뭔가 벌여놓고 수습 못하는 버릇은 어딜 가지 못한다. 이대로 아이디어가 떠오르면 닥치는 대로 하다가 흥미 떨어지면 치우는 식으로 살 수는 없기에 지금까지 벌여놨던 것들을 정리하고자 한다. 여기서 언급하는 것들은 전부 개인 작업이며 업무상의 작업은 다루지 않는다.
2011년 3월에 첫 베타 릴리즈를 했다. 기능상으로는 거의 완성되었지만 릴리즈 이후 OpenGL 호환성과 관련된 크고 작은 이슈가 발견되었고 크로스 플랫폼 지원을 위해서 KDE 호환성을 벗겨내야 하는 고된 작업이 남았기에 (이와 관련된 이슈는 나중에 따로 다루겠다) 점차 관심에서 멀어져 갔다. 하지만 최근 소집해제를 2주 앞두고 이걸 이대로 방치할 수는 없다는 생각이 들어서 가장 우선적으로 처리하기로 했다. 4월 내에 KDE 의존성을 모두 벗겨내고 윈도용, 맥용까지 릴리즈할 계획이다. 그 이후는 버그픽스 수준으로 유지하다가 메인테이너십을 (넘길 수 있으면) 넘길 생각이다.
Konstruktor의 스핀오프격 프로젝트이다. Konstruktor로 모형을 제작했다면 이걸 HTML5의 도움을 통해 웹에서 3D로 보고 다른 사람들과 공유하고 평가하는 서비스를 의도했다. 들어가 보시면 아시겠지만 쉐이딩도 안 된 3D 모형이 대충 빙글빙글 돌아가는 수준까지 구현되어 있다.
사실 하나의 온전한 서비스를 만들겠다는 목적도 있지만 16년전 스펙으로 정의된 LDraw 모델을 현대적인 GPU에 최적화된 구조로 변환하는 리컴파일러를 만들겠다는 목적도 있었다. (그리고 완성된 결과는 Konstruktor에 백포팅) 그리고 현재 리컴파일러 구현하다가 노트북 고장나서 한동안 작업 못 하고 있었다. 우선 Konstruktor부터 해결해놓고 올해 상반기 정도에 끝장을 볼 계획.
어느날 집에서 술을 마시다가 떠오른 아이디어로 사흘만에 대충 만든 페이스북 앱. 임의로 설정된 능력치로 페이스북 친구들과 싸움을 하는 앱이다. 사실 여기에 시간을 쓸 가치는 없다고 생각한다. 그냥 계속 돌아만 가는 수준으로 방치할 듯.
이전에 언급한 바 있는 게시판 시스템이다. 현재 파이선으로 된 boilerplate만 짜놓고 방치중. 디자인은 계속 구상하고 있으니 여유 생기면 작업 들어갈 듯.
스타트업용 아이템. Flask와 SQLAlchemy로 백엔드 조금씩 조금씩 시간 나는대로 작업중. LDrawWeb 끝나고 본격적으로 작업 시작할 듯.
역시 스타트업용 아이템. 이건 도저히 혼자서 바로 시작할 수 있는 규모의 프로젝트가 아니기에 아이디어만 계속 정리중.
이거 아직도 쓰는 사람 있나?
여담이지만 언어도 다 제각각이라 혼란을 겪고 있다. Konstruktor 고치다가 boolean v; 해놓고 왜 컴파일이 안되지? 하고 한참을 고민했을 정도니 (…)
태초의 컴퓨터는 완전하게 개방된 시스템이었다. 장치만 가지고 있으면 거기서 할 수 있는 모든 행동은 완전하게 자유로웠다. 응용을 자유롭게 만들고 자유롭게 복사하고 자유롭게 배포할 수 있었다. 하지만 컴퓨터에 사람들의 이해관계가 얽히기 시작하면서 사용자들의 자유는 조금씩 줄어들기 시작했다. DRM이 대표적이고 컴퓨터의 모든 동작을 제조사들이 의도된 방향으로 제한하려는 Trusted Computing 같은 개념까지 등장했다.
애플은 극도로 폐쇄적인 환경을 지향한다. 애플은 자사에서 만든 하드웨어에 자사가 만든 소프트웨어를 올려서 자사의 유통망을 거쳐 판매한다. 그리고 애플이 가진 가장 큰 능력은 트렌드를 만드는 능력이다. 애플이 팔릴 만한 제품을 만들고 애플의 방식은 사실상(de facto)의 표준이 된다. 앱 스토어도 그 중 하나다. 애플은 스마트폰 응용을 통제된 환경 하에 배급하는 완벽한 사례를 제시했고 애플의 앱 스토어 모델은 대부분 스마트폰 플랫폼 제조사들이 채택하였다.
애플은 앱 스토어를 만든 것 뿐만 아니라 모든 컨텐츠는 자사의 앱 스토어를 통해서만 유통되도록 제한했다. 애플이 감시하는 환경에서 애플이 허락한 앱만 설치할 수 있다. 마침내 자기 장치에 앱을 마음대로 설치조차 하지 못하는 시대가 열리게 되었다. 그리고 애플의 행보를 따라가기 좋아하는 MS 역시 윈도 폰 7 플랫폼에서 컨텐츠의 유통은 윈도 마켓플레이스만을 통해 가능하도록 제한했다.
화면 작고 조작이 제한적인 스마트폰 세계의 일이라 이게 그렇게 대수롭지 않은 일로 보일 수도 있겠다. 하지만 MS는 거기에 한술 더 떠서 윈도 8의 메트로 플랫폼 역시 폐쇄된 시스템으로 만들어 버렸다. 폰이든 타블렛이든 PC든 메트로 환경에서 구동되는 모든 앱은 오직 MS가 허락한 앱만이 등록되는 윈도 마켓플레이스에서만 받을 수 있게 된 것이다. 기존 방식 앱은 종전대로 쓸 수 있다고 하지만 MS는 점차 기존 기반을 도태시키고 메트로로 이행하려는 움직임을 보이고 있다.
최근에 애플은 OS X의 신버젼 마운틴 라이언을 공개했다. 여기엔 한 가지 중대한 변경점이 있는데, 바로 (보안이라는 미명 하에) 맥 앱 스토어를 통하지 않은 서드 파티 응용은 기본적으로 설치가 제한된다는 점이다. 맥 앱 스토어에 올라와있지 않은 서드파티 응용을 설치하려면 보안 설정을 꺼야 한다. 한 마디로 애플의 의도는 이거다. “웬만해서 맥용 응용은 앱 스토어를 통해 유통시켜라.” 사실 맥 앱 스토어가 등장한 시점부터 애플의 의도는 예상이 가능했긴 하지만 마침내 윈도와 맥이라는 양대 PC 플랫폼 모두 컨텐츠의 유통을 통제하기 위한 움직임이 보이기 시작했다.
최근 SOPA와 PIPA 법안으로 인해 (IT 업체들을 중심으로) 자유라는 가치에 대한 담론이 형성된 것은 좋다. 하지만 이와 별개로 플랫폼 제조사들은 사용자들의 자유를 점차 죄고 있다. 앞으로 윈도 8과 마운틴 라이언이 출시되면 컴퓨터 사용자들의 자유는 앱을 마음대로 설치하지 못할 수준으로 좁아질 것이다. 여기서 우리가 자유를 지키기 위해서 할 수 있는 일은? 윈도 8과 OS X 마운틴 라이언을 보이콧하는 것이다!
요즘 제로보드 4 스타일의 새로운 웹 게시판 시스템을 구상하고 있다. 기존 제로보드 4 사용자들이 큰 불편을 느끼지 않도록 기본적인 틀은 유지하되 좀 더 현대적인 디자인을 가미하고 기존 시스템이 가진 한계를 극복하려고 한다.
첫번째로 가벼움에 촛점을 맞출 생각이다. 전체 페이지를 매번 서빙할 필요 없이 대부분의 요청은 Ajax를 통해 필요한 정보만 주고받게 될 것이다.
두번째로 comet 기법을 광범위하게 사용할 것이다. 예를 들어 페이지를 새로고침할 필요 없이 누가 댓글을 달면 게시물을 보고 있는 사람들에게 실시간으로 업데이트가 가는 일이 가능해진다.
세번째로 알림 기능. Facebook의 중독성이 큰 이유는 실시간 알림 기능인데 게시판에서의 상호작용이 실시간으로 통보된다면 좋을 것 같다. 물론 알림 기능에 불편을 느끼는 사람들도 많으니만큼 켜고 끄는 옵션도 제공하고.
서버 소프트웨어 스택은 파이선에 Flask를 사용할 생각이다. 다만, comet과 관련된 부분은 주 WAS와 별개로 나눌 계획인데 이것은 scalability를 위한 고려이기도 하고 앞으로 할 일에 대한 R&D의 목적도 있다. comet 서버는 Node를 쓰고 MQ는 Thrift를 쓸까 생각중이다. 딱히 큰 이유가 있는 건 아니고 평소에 흥미 가지고 있던 것들이라 겸사겸사 공부도 해둘 겸.
제작 기간은 1~2달 정도로 잡고 있다. 제로보드 4만큼의 기능을 그때까지 모두 제공하는건 힘들겠지만 기간 내에 기본적인 기능은 모두 완성하고 싶다.
Android 4.0 (Ice Cream Sandwich)에서 가장 큰 변화 중 하나는 유저 인터페이스가 완전히 달라진 점이다. 하지만 달라진 인터페이스는 시스템 전체에 적용되지 않고 구버젼(2.3 이하)의 Android를 대상으로 작성된 앱은 구버젼의 UI가, 신버젼에 맞춰서 만들어진 앱은 새로운 UI가 적용된다. 필연적으로 두 가지 UI가 한 시스템에 공존할 수 밖에 없는 환경이 만들어진다.
변경된 UI는 몇 가지 컨벤션의 변화를 수반하는데, 그 중 사용자에게 혼란을 가져다주기 가장 쉬운 부분이 바로 다이얼로그의 버튼 배치이다. 기존 2.3 이하 앱들은 버튼 배치가 확인 - 취소 순서대로 되어 있지만 4.0 이상 앱들은 버튼 배치가 취소 - 확인 순서대로 되어 있다. 버튼 배치가 앱에 따라 제각각이 된다. 유심히 살펴보지 않으면 취소 버튼을 누를 것을 확인 버튼을 누르게 되고 결국 사용자가 헤매기 쉬워진다.
구글이 버튼 배치를 바꾼 것은 나름대로의 이유가 있었을 것이다. 오랜 시간이 걸릴 일임은 자명하나 구글은 장기적인 안목으로 이런 변화를 만들었을 것이다. 하지만 기존 UI의 앱들이 단계적으로 퇴화(degrade)되고 새로운 UI 앱들이 주가 될 때까지는 엄청난 시간이 걸린다. 지금 Android Market의 대부분이 기존 UI를 사용한 앱들이고 ICS 기기들이 시장에 풀려도 앱 개발자들은 한동안 기존 버젼과의 호환성을 위해 기존 UI를 유지할 것이다. 두 가지 UI가 한 시스템에 공존하는 체제는 최소 1~2년 정도 지속될 거라고 본다. 결국 이 과정에서 일어나는 모든 혼란은 사용자가 감수할 수 밖에 없는 것일까?
간만에 해외 유저에게 예전에 만들었던 Konstruktor의 버그 리포팅 메일을 받았다.
님께,
저는 우분투/데비안 초보자인데 Konstruktor를 우분투 11.10에서 실행하는데 어려움을 겪고 있습니다.
패키지를 설치하고 어플리케이션을 실행시키면 “LDraw 부품 라이브러리를 찾을 수 없습니다. 만약 LDraw를 설치하셨다면 설치 경로를 지정해 주십시오. 만약 설치되어 있지 않다면 http://www.ldraw.org에서 받으실 수 있습니다”라는 팝업이 뜹니다.
어떻게 하면 될까요?
해결 방법을 알려주실 수 있으신가요? 생초짜를 위해 따라하기 식으로 설명해 주시면 더욱 좋구요.
시간 내 주셔서 감사합니다.
던컨
시간도 없던 차라 그냥 간단하게 어디 가서 이거 받으시고 어디에 압축 푸세요… 하는 식으로 간단하게 답장을 써서 보냈다.
그리고 방금 다시 안 된다는 메일이 왔는데 마지막 문장이 눈에 띄었다.
segfault님께,
답변이랑 링크 보내 주셔서 감사합니다. 그런데 아무 것도 해결되지가 않았습니다. 똑같은 내용이 팝업으로 뜨고, 설치 경로를 /usr/share/ldraw로 지정해 줘도 마찬가지입니다. 제가 뭔가를 잘못하고 있는 건가요?
그리고 mklist 압축 파일을 풀어봤는데도 아무런 변화가 없더군요.
그리고 그 압축 파일에 왜 exe가 있는지 궁금합니다. 이것들은 윈도 파일들 아니었나요?
4일 뒤에 8살짜리 아들 샘의 생일입니다. 그는 레고의 팬입니다. 이 문제를 해결해 주신다면 아들에게 깜짝 생일 선물이 될 수 있을 겁니다.
도움 주셔서 감사합니다.
던컨
순간 바쁘고 귀찮다고 대충대충 답변해 준 것을 후회했다. 내가 만든 프로그램이 누군가의 생일 선물이 되다니 기뻤다. 컴퓨터 프로그램 만들면서 이런 보람을 느끼게 될 줄이야.
일단 이쪽에서 해결되어야 할 문제로 보이기 때문에 최대한 빨리 확인해서 알려줘야겠다. 8살 아이의 생일을 망칠 수는 없으니…