SwiftUI View Paging

iOS 14 이상 스위프트UI의 신기능으로 TabView를 이용해서 페이징을 할 수 있는 기능이 추가되었다. 아래 동영상처럼 UICollectionView의 isPagingEnabled의 대체 기능이다. ScrollView를 horizontal로 설정하고, TabView를 만든 후에 안에서 View들을 생성한다. 이때, 모디파이어를 이용해서 tabViewStyle을 PageTabViewStyle()로 해주면 간단하게 만들 수 있다. (…근데 왜 이게 TabView로 기능이 들어간걸까?… 이름을 보면 매칭이 되긴하는데… 뭔가 흠…) Read more…

j4105 jellyfin transcoding이 잘 안되는 경우

J4105 하드웨어 성능이 크게 나쁘지 않아서 동영상 한 두개 정도는 소프트웨어로도 실시간 트랜스코딩을 할 수 있다. 다만, cpu 점유율이 너무 높기 때문에 기본으로 제공되는 하드웨어 트랜스코딩을 이용하면 더 쾌적하게 이용할 수 있다. 젤리핀, 우분투 20.04 환경에서 하드웨어 트랜스코딩을 VAAPI로 설정하면 한 번에 잘 되지 않는데 두 가지 이유가 있는 것 Read more…

vscode server reverse proxy 설정

vscode server를 설치하고 reverse proxy를 이용해서 SSL이 적용된 도메인으로 접근하려고 했는데, 잘 안 됐다. 이유는 websocket 연결 때문이었다. vscode를 https 모드로 활성화한 후에 공인 인증서가 아니어도 프록시가 작동하게 하는 모듈(vscode에서 기본 제공하는 인증서가 공인인증서가 아니므로), 그리고 websocket을 rewrite하는 코드와 apache2의 proxy_wstunnel을 활성화하면 잘 작동한다. 전체적으로 아래와 같은 설정을 자신의 설정에 Read more…

왜 CNAME은 ROOT에서 쓸 수 없는가? PTR 레코드란 무엇인가?

개요 도메인 등록 회사를 구글 도메인으로 바꾸면서 도메인의 루트에 CNAME을 등록할 수 없었다. 나는 집에서 DDNS을 이용해서 서버를 돌리고 있기 때문에, ip주소를 등록하는 A 레코드는 이용하기 어려웠다. 구글 도메인 레코드 등록 중에 도메인을 받는 레코드인 PTR 레코드가 있어 DDNS 도메인을 등록해봤다. CNAME이 아닌 PTR로 DDNS 주소를 등록하니 잘 동작했다. CNAME Read more…

라인 앱 개발 챌린지 후기

라인 전환형 인턴을 탈락하고 ssafy에서 열심히 공부하고 있던 와중에(라고는 하지만, 임베디드 공부는 커녕 HTML 만 주구장창 시킨다…. 반 사람들이 좋은 사람들이 아니었으면 정말 질렸을 듯.) iOS 개발이 하고 싶어 맥북을 구매했다. 개인적으로 책장의 책 목록을 정리할 수 있게 해주는 어플리케이션을 SwiftUI로 작성하고 있었는데, 라인 앱 개발 챌린지가 올라와서 한 10분 Read more…

SwiftUI CollectionView

SwiftUI는 대부분의 UIKit에서 쓰던 컴포넌트들을 보다 편리하게 이용할 수 있지만, 아직 몇몇 컴포넌트들은 구현되지 않았습니다. SwiftUI에서 구현되지 않은 컴포넌트 중 UIKit에서 유용하게 사용하는 CollectionView를 어떻게 SwiftUI 프로젝트에서 사용할 지 알아봅시다. 제가 찾아낸 방법은 두 가지입니다. 첫 번째로는 UIViewRepresentable을 이용하는 것이며, 두 번째는 SwiftUI의 List를 이용한 것 입니다. ScrollView와 VStack으로도 스크롤하면서 Read more…

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

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

우분투 19.10에서의 nimf 설치

nimf는 리눅스 한글 입력기 중에서 거의 유일하다시피 첫 글자 및 끝 글자 버그가 발생하지 않는 입력기이다. 그렇기 때문에 기분 좋은 한글 생활을 위해서는 nimf가 필수이지만, 최근 안 좋은 사건으로 인해 개발을 하시던 분이 개발을 그만 두게 되었다. 다행히도, 저장소와 gitlab을 남겨두셨기 때문에 우분투 19.04 이하 사용자는 PPA 저장소를 이용하면 되고, Read more…

Python3 Trie 자료구조 구현

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

WSL 윈도우10 SSH 자동 시작

참고 : https://www.tuwlab.com/ece/29342 참고 링크와 같이 bat 파일을 만들 수 있으나 실행 속도가 조금 느리고 부팅 시 마다 까만 창이 뜬다, 따라서 작업 스케줄러(cron에 해당)를 이용하면 좀 더 낫다. 윈도우 10 하단 검색창을 이용하여 작업 스케줄러를 연 다음 작업 만들기를 누른다. 그 후에 이름은 sshd로 하고, 설명에는 적당한 설명을 넣는다. Read more…