라인 앱 개발 챌린지 후기

라인 전환형 인턴을 탈락하고 ssafy에서 열심히 공부하고 있던 와중에(라고는 하지만, 임베디드 공부는 커녕 HTML 만 주구장창 시킨다…. 반 사람들이 좋은 사람들이 아니었으면 정말 질렸을 듯.) iOS 개발이 하고 싶어 맥북을 구매했다. 개인적으로 책장의 책 목록을 정리할 수 있게 해주는 어플리케이션을 SwiftUI로 작성하고 있었는데, 라인 앱 개발 챌린지가 올라와서 한 10분 정도 고민하다가 신청했다. 내용은 메모장 개발 챌린지. 사진 첨부가 가능한 메모장을 만드는 과제이다. 단, 별도의 제한은 없으나 Swift이고, iOS10 이상 버전을 지원해야했으므로 인턴 후에 UIKit을 적당하게 까먹고 있을 무렵 다시 더보기…

SwiftUI CollectionView

SwiftUI는 대부분의 UIKit에서 쓰던 컴포넌트들을 보다 편리하게 이용할 수 있지만, 아직 몇몇 컴포넌트들은 구현되지 않았습니다. SwiftUI에서 구현되지 않은 컴포넌트 중 UIKit에서 유용하게 사용하는 CollectionView를 어떻게 SwiftUI 프로젝트에서 사용할 지 알아봅시다. 제가 찾아낸 방법은 두 가지입니다. 첫 번째로는 UIViewRepresentable을 이용하는 것이며, 두 번째는 SwiftUI의 List를 이용한 것 입니다. ScrollView와 VStack으로도 스크롤하면서 아이템의 뷰들을 보여줄 수 있지만, 이 경우 Cell Reuse가 되지 않으므로 추천하지 않습니다. 이번 글에서는 CollectionView를 SwiftUI에 적용해보고, 아이템을 눌렀을 때, 네비게이션 컨트롤러 하의 뷰 컨트롤러가 이동하는 것까지 구현합니다. UIViewRepresentable을 더보기…

우분투 19.10에서 nvidia 환경에서 wayland 사용하기

대부분의 nvidia 그래픽카드 사용자는 최신 리눅스에서 wayland를 바로 사용할 수 없다. nvidia가 표준 인터페이스인 GBM을 사용하지 않고, EGLStreams라는 독자 인터페이스를 사용하기 때문이다. (대충 리누스 토르발스 손가락 욕 짤이 필요하다.) 다행이도 가장 많이 쓰는 데스크탑 환경 중 하나인 gnome에서는 3.32버전 부터 EGLStreams를 지원하게 되었고, 3.34에서는 어느 정도 안정적으로 동작하는 것 같다. nivdia 사용자가 그놈에서 Wayland를 쓰기 위해서는,

Direct Rendering Manager가 설정됨. DRM은 커널과 Xwindow 사이에서 동기화에 관여하는 새로운 명령어 집합이라는 듯. 암튼 wayland 쓰려면 켜줘야 함.

더보기…

우분투 19.10에서의 nimf 설치

nimf는 리눅스 한글 입력기 중에서 거의 유일하다시피 첫 글자 및 끝 글자 버그가 발생하지 않는 입력기이다. 그렇기 때문에 기분 좋은 한글 생활을 위해서는 nimf가 필수이지만, 최근 안 좋은 사건으로 인해 개발을 하시던 분이 개발을 그만 두게 되었다. 다행히도, 저장소와 gitlab을 남겨두셨기 때문에 우분투 19.04 이하 사용자는 PPA 저장소를 이용하면 되고, 19.10 이상 사용자라면 gitlab의 빌드 절차를 따르면 된다. 하지만 최근에 gtk 라이브러리가 업그레이드 되면서 그냥 빌드한다면, 경고로 인해 빌드를 실패한다. (GTimeVal가 지원 종료될 예정이기 때문에) 따라서 빌드를 하기 전에 nimf-master 더보기…

Python3 Trie 자료구조 구현

문자열 검색에 자주 사용되는 자료구조인 Trie이다. 대학 수업에서는 따로 가르쳐 주지 않은 기억인데, 코딩 테스트에서는 꽤나 자주 이용되는 자료 구조인 것 같다. (2017, 2019 카카오 블라인드 테스트의 문제 하나 씩의 정해에서 사용되었다.) 이것보다 간단하게 구현하려면, 사전 자료구조를 계속 중첩하면서 구현하는 방법도 있다. 별도의 노드와 트라이 객체를 분리해서 작성할 필요 없이 노드 객체만을 사전과 카운트로 작성해주면 더 간단하게 구현이 가능하다.

글쓴이 연유,

WSL 윈도우10 SSH 자동 시작

참고 : https://www.tuwlab.com/ece/29342 참고 링크와 같이 bat 파일을 만들 수 있으나 실행 속도가 조금 느리고 부팅 시 마다 까만 창이 뜬다, 따라서 작업 스케줄러(cron에 해당)를 이용하면 좀 더 낫다. 윈도우 10 하단 검색창을 이용하여 작업 스케줄러를 연 다음 작업 만들기를 누른다. 그 후에 이름은 sshd로 하고, 설명에는 적당한 설명을 넣는다. 트리거는 새로 만들기를 누른 후, 작업 시작 : 시작할 때로 한다. (로그온 할 때로 하면 살짝 느림.) 동작은 새로 만들기를 누른 후, 프로그램/스크립트 란에 “C:\Windows\System32\bash.exe” -c “sudo service ssh start”를 더보기…

글쓴이 연유,

asus prime x470-pro WOL 설정

바이오스 :Advanced Mode > Advanced > APM Configuration에서 ErP Ready는 Disabled, Power On By PCI-E는 Enabled로 바꾼다. 윈도우 :1. 최신 인텔 I211-AT 드라이버 설치 (인텔 홈페이지에서 설치 권장)2. 장치 관리자 > Intel(R) I211 Gigabit Network Connection에서 “고급 > PME 활성화”를 값(V): 활성화됨 으로 바꾼다. 같은 목록에 있는 Wake on Magic Packe도 활성화됨으로 바꾼다. 전원 관리에서 모든 항목(전원을 절약하기 위해 컴퓨터가 이 장치를 끌 수 있음, 이 장치를 사용하여 컴퓨터이 대기모드를 종료할 수 있음, 매직 패킷에서만 컴퓨터의 대기모드를 종료할 수 있음)를 더보기…

우분투 로그인 시 볼륨 재설정 막기

우분투는 커널 모듈로 ALSA를 쓰고 있고, 서버로 Pulse를 쓰고 있다. 최근에 이상한 문제점이 하나 있는데, 로그인을 새로할 때마다, 볼륨을 중간치로 초기화해버린다. 이번에 음소거를 했든, 최저 음량으로 했든, 최고 음량으로 했든. 공공장소에서 재부팅 했을 때, 볼륨이 초기화된 것을 모르고 쓰면 타인에게 피해를 줄 수 있고, 헤드폰 낀 채로 재부팅 후에 볼륨 조절을 깜빡하고 음악이라도 틀면 귀나갈 듯한 음량으로 재생될 수 있다. 볼륨 초기화를 막기 위해 다음 파일을 편집한다. 시작 부분에 다음 모듈을 주석처리 한다. 해당 모듈을 로드하지 않으면, 재부팅 후에도 볼륨이 더보기…

네트워크 서비스 탐색 사용하지 않기 알림창 해결

리눅스 배포판을 사용하다 보면 “네트워크 서비스 탐색 사용하지 않기 – 현재 네트워크는 .local 도메인을 가지고 있어 Avahi 네트워크 서비스 탐색에 문제를 일으킬 수 있습니다. 서비스를 사용하지 않습니다.” 라는 알림창이 뜨는 것을 종종 볼 수 있다. 사용하는 데 크게 문제는 안되지만, 네트워크 연결 시 마다 뜨는 것이 조금 거슬리므로 알아보자. 이 알림창은 네트워크가 연결될 때, Avahi에 의해 뜨게 된다. 데몬의 위치는 /etc/network/if-up.d/avahi-demon이다. Avahi는 mDNS와 관련된 서비스인데, 이 알림창은 mDNS(Multicast DNS)가 비활성화 되었음을 알려주는 알림창이다. mDNS는 이름답게 멀티캐스트를 통해 모든 컴퓨터에 ip주소에 더보기…

디스크 스케줄링 알고리즘

(사실 글을 쓰는 이유는 C-SCAN의 C가 무슨 의미인지 궁금해서 쓴다.) FCFS First come, First serve, 이름답게 오는 순서대로 정직하게 처리해주는 방식. 별도의 최적화가 없기 때문에 평균 대기시간이 느리다. SSTF Shortest Seek Time First, 현재 위치에서 탐색 시간이 가장 짧은 블럭을 먼저 처리해주는 방식. 헤드가 자주 움직일 수 있고, 어떤 블럭은 중간에 끼어든 블럭으로 인해 처리가 너무 느리거나, 영영 처리되지 않을 수 있다. (Starvation) SCAN 엘리베이터 알고리즘의 일종. 일반적인 엘리베이터는 움직이는 방향의 변화와 사람들이 기다리는 평균 대기시간을 줄이기 위해서 한쪽으로만 움직이다가, 더보기…