올해 내내 일에만 파묻혀 살다가 오랜만에 개인 프로젝트를 했다. 맥에서 쓸 GUI 만들려니 역시 Swing만큼 익숙한 게 없어서 오억 년 만에 자바를 쓰는데, J2SE에 있는 클래스나 메서드는 다 기억나서 편했지만 Java라는 언어 자체를 도저히 못 참겠어서 Kotlin으로 작업했다. 레이아웃 매니저는 MigLayout을 썼고, 맥 앱 패키징은 JDK 15에 번들된 jpackage를 썼는데 훌륭했다.
UI 디자인을 직접 할 일이 가끔 있어서 학습을 위해 잘 정리된 앱 UI를 틈날 때마다 봐서 감각을 올리곤 한다. 그러기 위해 ui8.net 같은 곳에서 제공하는 UI Kit들을 레퍼런스로 쓰는데, PSD로 열면 메모리 19G 먹으며 별나라로 가버리기 때문에 파이썬 psd-tools를 써서 그룹 레이어별로 정리하는 스크립트를 만들었다. psd-tools는 성능이 느린 것을 빼고 생각보다 아주 잘 동작했다. 하지만 Text 요소들의 폰트 정보들을 제대로 가져오지 못하는 문제가 있었다.
Sketch 소스는 zip을 풀고 나면 다 JSON으로 보관되어 있어 편해 보였지만, 정말 모든 게 다 JSON으로 있어서 렌더러를 만들 엄두가 안 나서 제외했다.
Adobe XD는 스케치처럼 zip에 JSON 형식인데 폴더나 JSON 구조가 훨씬 더 깔끔했다. 하지만 역시 렌더러 만들기는 엄두가 안 나서 좋은 방법이 없을까.. 고민하다 Adobe XD 플러그인을 살펴봤다. SDK가 JavaScript고 생각보다 API 설계가 잘 되어 있어서 XD 플러그인 만들기로 방향을 바꿨다. XD 플러그인 SDK의 핵심은 require('scenegraph')인데 문서가 있긴 했지만 코딩 중에 문서 왔다 갔다 하는 건 못 참아서.. 원본 코드를 찾아보려고 Adobe XD 바이너리를 뒤져봤는데 결론은 JS 인터페이스로 노출했을 뿐이고 139MB짜리 바이너리 속에 꼭꼭 숨어있었다. 깔끔히 포기하고 문서 보고 플러그인 만들기로 했다.
개인 프로젝트를 할 때마다 마주하는 문제다. 적당한 선에서 끊을 수가 없다. 인위적으로 자원을 제한하지 않으면 결국 이 프로젝트도 영영 끝나지 않을 것이다.
Continue Reading
Discover more thoughts and insights
공부 전략 몇가지
학습한 기술을 계속 사용하기만 하는 것은 마치 우리가 꾸준한 운동을 하는 것처럼, 그저 훈련이다. 학습이 아니다. 반면 새로운 기술서를 읽고 이해하고 깨달음을 얻은 것은 그저 지적 유희를 즐겼을 뿐이지 공부한
마인드 해킹 - 인상 깊었던 구절
다 읽은 후 인상 깊었던 구절들을 역순으로 적어본다. 카페인 중독자들이 사회적으로 용인된 이 갈색 액체 흥분제를 정기적으로 소비해야만 하는 강박을 통하여 과연 실제로 득을 보는지에 관한 논란은 아직도 끝나지
젠투리눅스 설치기!
HanIRC의 까나리님과 leanblue(codethread)님의 권유로 데스크탑에 Gentoo Linux를 설치하게 되었습니다. 다들 젠투 좋다고 젠투로 오라고 하셔서 쉽게 꼬임(?)에 넘어갔는데, 막상 설치하기