까멜레오 소식

Posted 2008. 5. 14. 13:40
까멜레오는 얼마 전에 살짝 윈도 바이너리를 공개해놨는데 아직 베타 테스트 단계(이제 첫 릴리즈를 했음)라 널리 홍보는 하지 않고 있었습니다. 현재 성능 개선 및 안정화 작업으로 한참 바쁘게 보내고 있었습니다.

그런데 오늘 까멜레오 소식이 동시에 여러 곳에서 들어왔습니다. 일단 downloadsquad에서 Chameleo: Open source video player from Korea라는 제목으로 까멜레오 소개 기사가 올라왔습니다. 한국에서 하는 오픈소스 비디오 플레이어라는 제목이 마음에 드네요. 기사 내용은 간략합니다. 까멜레오가 있고, 여러 코덱을 지원하고 Joost나 Babelgum처럼 웹 비디오를 지원하지는 않지만 비트토런트 클라이언트를 내장하고 있다.

그리고 얼마 전에 GigaOM의 LIz Gannes와 까멜레오에 관해 전화 인터뷰를 했었는데, 관련 기사가 오늘 newteevee에 올라왔습니다. 제목은  Chameleo:New Open-Source Video Player입니다.  까멜레오 플레이어는 플러그인을 비롯한 확장성에 초점을 맞추고 있다고 비교적 정확하게 기사를 작성해 주었습니다. (전화 인터뷰에서 강조했습니다^^)  기사 말미에 제가 인터뷰하면서 했던 말도 나옵니다.


NomadConnection CTO Kwang Yul Seo told NewTeeVee that his company plans to release a Linux version of Chameleo this week and a Mac version in June.


일단 기사 내용에도 언급되었지만 까멜레오는 멀티플랫폼을 지원합니다. 윈도 바이너리는 이미 공개되어 있고, 지난주와 이번주에 리눅스 포팅 작업을 어느 정도 마무리 지었습니다. 이번주 금요일에 릴리즈할 0.1.3은 윈도 뿐만 아니라 리눅스 포트도 함께 릴리즈할 예정입니다. 맥 포팅은 계획되어 있는데, 늦어도 6월 말 전에는 릴리즈를 하려고 생각하고 있습니다.

더불어 웹초보님께서 저희보다 더 빠르게 downloadsquad의 글을 발견하고 까멜레오: 한국의 오픈소스 비디오 플레이어라는 제목으로 사용 후기까지 남겨주셨네요. 까멜레오의 장점과 단점을 예리하게 지적해 주셨습니다.  일단 툴팁이 없어서 메뉴 사용이 불편하다는 점은 인지하고 있었고 다음 버전에는 툴팁이 들어갈 예정입니다.



-- 여기부터는 개발자만 읽으세요  --

newteevee 기사 중에 보면 리소스를 좀 많이 먹는다는 지적이 있는데, 지난번에 릴리즈하고 나서 이 문제를 해결하는 데 많은 시간을 보내고 있습니다. valgrind 도구 중 하나인 callgrind도 프로파일링 해본 결과 YUV 비디오를 OpenGL 텍스터로 올리기 위해 RGB로 변환하는 gst-ffmpegcolorspace에서 CPU를 30% 이상 차지하고 있다는 사실을 발견했습니다.

현재 OpenGL 셰이더를 이용해  YUV to RGB 변환하는 부분과 SIMD 명령셋인 MMX, SSE, SSE2 등을 이용해 칼라 스페이스 변환하는 부분 코드를 작성하고 있는 중입니다. 이 문제가 해결되면 성능 문제는 어느 정도 해결될 것으로 보입니다.

이번주 금요일에 까멜레오 2번째 릴리즈인 0.1.3 릴리즈를 예정하고 있습니다. 아직 베타 릴리즈인 만큼 따뜻한 사랑과 애정으로 지켜봐주세요. 개발자 입장에서 프로그램은 자식 같아서 어디가서 안 좋은 소리 듣고 오면 가슴이 참 아프답니다. 비굴비굴. (__)


까멜레오 릴리즈 임박.

Posted 2008. 4. 28. 13:54
얼마 전에 오픈소스화한 까멜레오 프로젝트의 첫 바이너리 릴리즈를 이번주 수요일로 잡고 열심히 정리 중에 있습니다. 원래는 지난 주에 릴리즈를 하려고 했으나 또 막판에 욕심이 생겨서 조금 더 안정화를 하려고 일주일 정도 일정을 미뤘습니다.

일단은 윈도 인스톨러(.msi 혹은 .exe 형태) 형태로 홈페이지에서 직접 다운로드 받아서 설치하실 수 있도록 만들고 있습니다. 그리고 별도의 위젯 사이트를 준비 중인데, 여기서 원하시는 위젯을 다운 받아서 설치하시면 됩니다. 위젯 사이트에 자기가 만든 위젯을 등록할 수도 있습니다.

까멜레오 관련 홈페이지

까멜레오 메인 홈페이지

까멜레오 프로젝트 블로그(영문)
까멜레오 오픈소스 홈페이지
까멜레오 메일링 리스트
까멜레오 커뮤니티 홈페이지(곧 개장)

까멜레오 개발자 서광열님
까멜레오 개발자 이인서님
까멜레오 개발자 전종환님
까멜레오 개발자 조치원님


블로그가 없는 분들은 생략했습니다.

참고: 오픈소스로 공개한 이후 최근에 북마크 위젯이 생겼습니다.

까멜레오 OCaml 지원.

Posted 2008. 4. 28. 13:48
까멜레오는 주로 Python과 C로 작성되었습니다. UI와 위젯 작성은 파이썬으로 하고, 속도가 생명인 미디어 재생/분석 코드는 C로 작성되어 있습니다.  그런데, 프로젝트를 하다보니 코드를 C로 작성하면 아무래도 작성 시간도 오래 걸리고, 품질도 그리 높지가 않더군요. 특히, 메모리 깨먹는 버그나 멀티쓰레드 관련 버그는 정말 괴롭습니다.

최근에 이런 문제를 돌파해보고자 함수 언어인 OCaml을 까멜레오 구현 언어로 추가하기 위한 작업을 끝마쳤습니다. 특히, 비디오 처리(video processing) 코드를 OCaml로 작성해서 오류를 줄이고 작성 속도도 높여보자는 것이 가장 중요한 취지입니다.

기존 까멜레오 코드가 상당 부분 파이썬으로 코딩되어 있기 때문에 OCaml와 Python을 연결하기 위해 Pycaml 프로젝트를 가져다가 조금 고쳤습니다. OCaml과 Python이 직접 붙는 것은 아니고, Ocaml의 C 인터페이스를 이용해 Python/C API에 붙이는 방식으로 구현되어 있습니다.

아직 기본적인 데이타 타입 변환만 있고, Python의 list, tuple. dict와 OCaml의 list, tuple, assoc list 등을 변환해주는 코드 등이 부족한 상태라 사용이 그리 쉽지는 않은 상태입니다. 이쪽은 OCaml로 코드를 작성하면서 조금씩 추가해 나가려고 생각하고 있습니다.



영어 개발 환경

Posted 2008. 4. 16. 12:34
까멜레어를 오픈소스화한 이후에 까멜레오 개발팀은 까멜레오 관련 모든 논의와 토론을 메일링 리스트트랙을 통해 하고 있습니다. 아직 시작은 미약하지만 영어 사용권 개발자들을 무시할 수 없기 때문에 모든 준비는 영어로 하는 것을 원칙으로 정했습니다. 따라서 오픈소스하기 몇 달 전부터 트랙의 티켓은 모두 영어 작성해 왔습니다.

사실 한국 사람들만으로 구성된 개발팀에서 지속적으로 영어를 사용해 커뮤니케이션하는 일이 처음에는 쉽지 않았습니다. 프로젝트 초기 셋업 때 영어로 작성을 하다가 중간에 한 번 효율성을 문제로 한글로 복귀한 적도 있었습니다. 오픈소스 논의가 본격화되면서 다시 영어로 돌아가기는 했지만요.

처음 영어로 전화했을 때 가장 큰 문제점은 한글로는 더 자세히 적었을 버그 정황 설명을 영어로는 1-2줄에 다 축약해 버린다는 점이었습니다. 뭔가 부족하다고 느끼면서도 어떻게 표현할지 몰라서 막연히 전달되리라 생각해 버리는 것이죠.

지금은 영어로 개발 관련 의사소통을 하는 일이 어느 정도는 자연스러운 문화로 정착이 되었습니다. 물론 이런 습관은 수십 개의 오픈 소스 프로젝트 메일링 리스트에서 원하는 질문을 하고 답변을 받고, 의견을 제시해야 하는 오픈소스 개발자에게 반드시 필요한 자질이라고 생각됩니다.

대기업에서는 영어 사용에 대한 기사가 많이 나오던데, 개발팀의 주소통 언어로 영어를 사용하는 또 다른 예가 있으면 알려주세요.

까멜레오 위젯 만들기

Posted 2008. 4. 15. 18:39
전종환 님이 까멜레오 위젯 만들기를 주제로 글을 올려주시고 계십니다.

Chameleo Widget 만들기 1
Chameleo Widget 만들기 2
Chameleo Widget 만들기 3

아직 문서화가 많이 부족하긴 합니다만, 까멜레오 위젯이 어떤 방식으로 만들어지는지 간단히 맛을 보실 수 있는 글이 되겠습니다.

저도 시간나는 대로 튜토리얼과 매뉴얼 작업에 들어갈 예정입니다.



까멜레오 오픈.

Posted 2008. 4. 14. 14:39
오픈소스 까멜레오 프로젝트 페이지가 오픈했습니다. 아직 문서화를 많이 하지는 못한 상태이긴 하지만 서브버전을 통해 소스를 내려 받은 후에 빌드해서 프로그램을 실행시켜 볼 수 있습니다. 까멜레오 전체 구조, 위젯 만들기 등 문서는 앞으로 차츰 추가해 나갈 예정입니다.

개발 메일링 리스트도 만들었습니다. 구글 그룹스를 이용하면 되는데 다음과 같이 세 개의 메일링 리스트가 있습니다.

[1] http://groups.google.com/group/chameleo : 까멜레오 전반에 관련된 논의를 하는 곳입니다. 일반적인 질의/응답도 이 메일링 리스트로 하시면 됩니다.

[2] http://groups.google.com/group/chameleo-commit : 까멜레오 소스 코드 커밋 메일이 오는 곳입니다.

[3] http://groups.google.com/group/chameleo-bugs : 버그 관련된 리포트를 받을 수 있는 곳입니다.


까멜레오 개발팀은 IRC에도 상주하고 있습니다. irc.freenode.net으로 접속하셔서 #chameleo 방으로 들어오셔서 질문하시면 시간나는대로 즉각 응답해 드리고 있습니다.


까멜레오 구현.

Posted 2008. 4. 10. 17:14
개발자들이면 당연히 어떤 어플리케이션이나 프레임워크를 들여다 볼 때 어떤 기반 기술로 이루어졌는지 궁금해 하실 것입니다. 까멜레오는 100% 오픈소스 라이브러리들만 사용해서 만들었습니다. 까멜레오에서 중요하게 사용되는 컴포넌트는 다음과 같습니다. UI를 비롯해 거의 대부분의 요소를 파이썬 바인딩을 통해 사용하고 있습니다.

GStreamer (with DirectShow plugin)
cairo
librsvg
GTK+
OpenGL

Python
pyglet
PIL(Python Imaging Library)
PkgResources


까멜레오는 비디오 위에 자연스럽게 UI를 보여주기 위해 OpenGL 기반의 3D GUI 툴킷인 GLUX를 만들었습니다. GLUX는 GTK+와 QT처럼 (물론 훨씬 간단합니다) 일반적인 2D UI를 표현할 수 있고, 3D 애니메이션과 반투명(translucent)한 UI를 구현할 수 있게 해주는 파이썬으로 작성된 라이브러리입니다.

또한 비디오 메타데이터를 처리하는 부분이 까멜레오가 GStreamer 등 로우레벨 미디어프레임워크와 차별화하는 부분입니다. 일례로, 간단한 자막 등을 표시하기 위해 자막을 GStreamer 파이프라인(DirectShow의 필터그래프로 유사한 개념)을 통해 흘려보는 방식은 비디오 메타데이터를 처리하는 최선의 방법으로 보기 어렵습니다. 까멜레오는 자막을 비롯한 비디오 태그, 각종 메타데이터를 쉽게 붙이고 처리할 수 있는 프레임워크를 제공합니다.

자막을 단순히 보여주기만 하는 것이 아니라 자막 데이터를 받아서 빈칸을 만들어 받아쓰기 위젯을 만들 수도 있고, 자막을 검색할 수도 있고, 어려운 단어는 자동으로 인터넷 사전을 뒤져서 뜻을 보여주는 등 간단한 메타데이터 하나로도 무궁무진한 어플리케이션을 만들어낼 수 있습니다.

까멜레오 오픈과 더불어 지금까지 예제로 만들어진 까멜레오 위젯을 몇 개 소개해 볼까 합니다. 1탄으로는 자막 검색 위젯입니다. 자막 검색이라고 하면 약간 혼란의 여지가 있는데, 곰플레이어가 제공하는 것처럼 자막이 없는 비디오의 자막을 자동으로 찾아주는 서비스는 아니고 자막 내에서 원하는 단어를 찾는 기능입니다.

사용자 삽입 이미지

요즘 웹에 글 올릴 때 특정 장면을 캡춰해서 이미지나 애니메이트 GIF로 올리는 경우가 많은데, 이 때 효율적으로 사용하실 수 있는 도구입니다. 위 그림은 자막 내에서 "호모"라는 단어를 찾아본 것입니다. 검색 결과를 클릭하면 해당 장면의 스냅샷과 함께 자막을 보실 수 있습니다. 초록색으로 크게 보이는 버튼을 누르시면 해당 장면부터 재생을 할 수도 있습니다.

일단은 가장 기본적인 기능만 구현되어 있는데, 자막 검색 관련해서 추가적인 아이디어 있으면 알려주세요.

까멜레오 오픈소스 준비.

Posted 2008. 4. 10. 15:51
제가 일하는 노매드커넥션에서 1년간 준비해오던 까멜레오 프로젝트를 이번주에 오픈소스로 릴리즈하기 위해 지금 열심히 다듬고 있는 중입니다. 원래 계획은 이번주 금요일인데, 지금 문서화 작업 정도에 따라서 토요일이나 일요일 정도로 연기될 수도 있을 것 같습니다.

블로그를 통해 몇 번 소개드린 적이 있는데 까멜레오는 미디어 어플리케이션을 쉽게 만들 수 있는 미디어 프레임워크입니다. 물론 일반 사용자에게는 까멜레오 미디어 플레이어를 제공하기도 하지만, 오픈 소스 까멜레오는 미디어 플레이어 보다는 프레임워크에 가깝습니다.

오픈소스 까멜레오의 모토는 "Your Custom Player"입니다. 까멜레오는 단순히 미디어 재생을 넘어서 멀티미디어를 활용한 다양한 어플리케이션을 쉽게 만들 수 있게 프레임워크를 제공합니다. 까멜레오는 여러가지 방식으로 개인화할 수 있는 데 현재 크게는 1) 위젯과 2) 채널을 통해서 나만의 미디어 플레이어를 만들 수 있도록 하고 있습니다.

사용자 삽입 이미지

위 스냅샷은 위젯들을 고를 수 있는 화면입니다. 비디오 위젯은 동영상을 보면서 즐길 수 있는 간단한 어플리케이션으로 생각하시면 됩니다. 까멜레오는 일반 개발자들이 이런 동영상 위젯을 쉽게 작성할 수 있는 플랫폼 역할을 한다고 생각하시면 됩니다.

예를 들어 다음 스냅샷처럼 돋보기 위젯은 화면의 일부 영역을 확대할 수 있습니다. 미디어 플레이어에 일부 장면을 확대하는 기능을 집어 넣기 위해 미디어 플레이어를 전부 다 만들 수는 없는 노릇입니다. 까멜레오를 활용하면 기본 인프라는 그대로 활용하고 내가 원하는 기능만 플러그인 형태로 쉽게 끼워넣을 수 있습니다.

사용자 삽입 이미지


채널은 미디어 콘텐트를 다운로드 혹은 재생할 수 있는 유통 경로를 말합니다. 주스트(Joost), 바벨검(Babelgum), 미로(Miro) 등 요즘 미디어 플레이어는 전통적인 동영상 재생 기능과 콘텐트 다운로드 기능을 합친 것이 특징입니다. 까멜레오는 채널 개념을 만들고 개발자들이 자신이 보고 싶은 채널(P2P, UCC 등)을 쉽게 추가할 수 있게 하는 것이 특징입니다.어차피 동영상 재생 기능 및 기본적인 기능은 똑같은데 채널 하나 추가하려고 새로운 미디어 플레이어를 만들어내는 수고를 줄이는 것이 목적입니다.

사용자 삽입 이미지


까멜레오를 확장하는 구체적인 방법이나 API는 오픈소스와 더불어 공개할 예정입니다. 지금 열심히 문서 작업 중에 있으니 나만의 미디어 플레이어를 만들어서 친구들에게 배포하고 싶으신 분들은 관심 가지고 지켜봐주시면 좋을 듯 합니다.


까멜레오 홈페이지 개장

Posted 2008. 2. 27. 00:38
까멜레오 프로젝트가 홈페이지를 새롭게 단장했습니다. 까멜레오는 제가 회사에서 진행하고 있는 공개 프로젝트입니다. 비디오 플레이어인 동시에 비디오 응용 프로그램을 쉽게 개발할 수 있는 비디오 플랫폼을 표방하고 있습니다.

현재 까멜레오 엔진 부분을 LGPL 라이선스로 릴리즈하려고 안정화 작업이 한참입니다. 까멜레오가 어떤 기능을 제공하는지 궁금하신 분은 홈페이지에 올라와있는 스크린캐스트를 통해서 간단하게 살펴보실 수 있습니다.

현재는 기본적인 비디오 재생 기능 외 몇 가지 샘플 위젯을 제공하고 있습니다. 샘플 위젯의 예로는

- 웹브라우저 (게코 엔진)
- 캡춰
- 블로깅
- 태그 삽입기
- 자막
- 자막 검색 (자막 내 검색)
- 퍼즐
- 돋보기
- 받아쓰기

등이 개발되어 있습니다. 얼른 릴리즈하고 싶은데 안정화나 성능 개선 이슈가 마음먹은 만큼 금방 되지가 않네요. 조만간 릴리즈 소식을 전하겠습니다.
제가 개발중인 까멜레오 개발팀 블로그가 만들어졌습니다. 이 블로그는 주로 저의 개인적 관심사만을 다루어왔다면 까멜레오 개발팀 블로그에서는 개발팀 내부의 이야기, 개발 관련 소식, 미디어 기술과 관련된 글들이 올라올 예정입니다.

아래 구인 글도 있는데, 개발이 예상보다 조금 지연되고 있는 면이 있어서 이번에 인력도 더 투입하고 개발에 박차를 가하고자 합니다. 이번 채용 공고는 제가 직접 작성했습니다. 흐흐. 빨리 오픈도 해야하는데, 아직 안정화시키고 클로즈 테스트를 하는데 시간을 쓰고 있습니다.

혹시 구인 공고 관련해서 궁금한 것 있으신 분은 언제든지 질문 주세요. 메일로 보내주셔도 좋고, 이 글에 리플도 다셔도 되고요. skyul@nomadconnection.com 입니다.



㈜ 노매드커넥션 개발자 채용

Posted 2007. 10. 26. 16:06
 

㈜ 노매드커넥션 개발자 채용

 

노매드커넥션(http://www.nomadconnection.com)에서 동영상 미디어 플랫폼 까멜레오 프로젝트를 함께 개발할 역량 있는 개발자를 구합니다.

 

까멜레오 프로젝트(http://www.chameleo.org)?

 

까멜레오가 동영상 미디어 플랫폼이란 다소 생소한 용어를 사용하는 이유는 미디어 플레이어와 응용 소프트웨어 개발 플랫폼을 접목하였기 때문입니다. 까멜레오는 동영상 플레이어 위에서 다양한 응용 프로그램을 구동할 수 있도록 API를 제공합니다. 아래 스크린샷은 몇 가지 동영상 응용 프로그램(동영상 위젯)의 예를 보여주고 있습니다.

 

사용자 삽입 이미지

 

 

위젯 외에 까멜레오는 기존 미디어 플레이어와 무엇이 다른가요?

 

1)    플러그인 아키텍처

 

까멜레오는 플러그인 아키텍처를 지향하고 있습니다. 까멜레오의 모든 기능은 플러그 인으로 구현되어 있으며 적은 양의 코드로도 쉽게 까멜레오 플레이어에 자신이 원하는 기능을 추가할 수 있습니다. 예를 들어, 새로운 콘텐트를 얻어올 채널(웹의 경우 YouTube, Veoh이고 P2P나 포드캐스팅 등 어떤 채널이든)을 추가하고 싶다면 Channel 인터페이스를 구현해주기만 하면 됩니다.

 

2)    메타데이터

 

까멜레오는 사용자의 참여를 통해 동영상에 다양한 메타데이터를 추가하고 이를 활용한 응용 프로그램을 쉽게 개발할 수 있는 환경을 제공하고 있습니다. 메타데이터는 각 장면에 감상평, 인물정보, 위치, BGM 등 다양한 정보를 포괄하며 메타데이터 자체의 포맷을 공개해 개발자가 원하면 얼마든지 추가적인 정보를 남길 수 있도록 하고 있습니다.

 

기존의 메타데이터를 다양한 응용 프로그램이 이용할 수도 있는데, 일례로 자막 API를 이용하면 단순히 자막을 화면에 보여줄 뿐만 아니라, 여러 단어를 추출한 후 영어 사전을 검색해 단어와 뜻을 실시간으로 화면에 뿌려줄 수 있습니다. 혹은 영어 자막의 일부를 비워서 사용자가 채우게 만드는, 받아쓰기 위젯을 만들어낼 수도 있습니다.

 

3)   웹과 연동

 

까멜레오 플랫폼은 미디어플레이어이면서 웹 브라우저를 내장하고 있습니다. 기존 웹 브라우저 내장 방식처럼 웹 따라 비디오 따로 노는 방식이 아니라, 까멜레오는 동영상 위에 웹을 반투명하게 보여주게 됩니다. 상당수의 까멜레오 위젯은 웹 연동 위젯이며 웹에 존재하는 다양한 콘텐트를 동영상과 접목하는 연결 고리를 제공합니다. 동영상+웹 위젯은 쉽게 위젯을 만들 수 있는 환경을 제공하면서도, 풍부한 동영상 감상 환경을 제공한다는 측면에서 사용자들에게 특별한 가치를 제공합니다.

 

 

까멜레오 개발자가 하는 일?

 

까멜레오 개발자는 단순한 응용 프로그램 개발자가 아닙니다. 까멜레오 개발자는 3차원 공간을 사용하고 화려한 효과를 보여줄 수 있는 UI 툴킷을 만듭니다. 동영상 응용 프로그램을 개발할 수 있는 API를 설계하고 구현합니다. 비디오와 메타데이터의 결합과 검색이라는 분야를 다루게 됩니다. 웹과 데스크톱의 연동을 고민해야 합니다.

 

까멜레오 개발자는 동영상을 이용한 전혀 새로운 서비스를 고민하고 있습니다. 기존의 수동적 감상으로는 생각할 수 없었던 다양한 서비스가 까멜레오 내에서는 가능하며, 동영상을 이용한 새로운 서비스를 어렵지 않게 해낼 수 있습니다. 동영상 서비스에 대한 수 많은 아이디어를 고민하고 실험해서 확인해보는 것이 까멜레오 개발자의 일입니다.

 

 

까멜레오 개발자를 하면 뭐가 좋을까요?

 

저희 노매드커넥션은 까멜레오 개발자가 뛰어난 개발자로 성장하는데 필요한 모든 자원을 지원하고 있습니다. 까멜레오 개발팀은 전형적인 학습하는 개발 조직입니다. 까멜레오 개발팀은 세미나, 강의, 스터디 등을 병행하고 있으며 까멜레오 팀원은 누구나 다른 팀원에 대한 교육 책임을 지게 됩니다. 까멜레오 개발자는 하루에 30분에서 1시간은 항상 개발, 미디어, 플랫폼에 대한 지식을 얻는 데 사용하고 있습니다.

 

까멜레오 개발자는 원하는 도서를 얼마든지 구입할 수 있습니다. 개발자에게 있어 연구 개발비의 전부는 도서 구입이며 까멜레오 프로젝트에 직접 혹은 간접적으로 관련된 모든 주제의 도서 구입비는 노매드커넥션에서 지원해 드립니다. 다만, 도서를 구입했으면 반드시 해당 도서를 읽고 그 내용을 팀원들에게 전파해야 하는 책임이 뒤따르고 있습니다.

 

까멜레오 개발자는 외부 활동이 적극적으로 장려됩니다. 까멜레오 개발팀의 철학은 작은 회사일수록 개발자 개인이 스스로 발전해야 하고 또 알려져야 한다는 생각입니다. 외부 강연, 집필, 번역 등의 개발자 역량 개발에 대해서는 회사 차원에서 적극적으로 지지하고 있으며, 개인의 발전과 프로젝트의 발전을 조화롭게 도모하고 있습니다. 자기 일에 자부심을 가지고 외부에도 적극적으로 말할 수 있는 개발자를 환영합니다.

 

 

까멜레오 개발팀의 조직 문화는 어떤가요?

 

위에서 시키는 일만 하느라 회사 일이 재미가 없으십니까? 자신의 창조성, 창의력이 회사의 조직 문화에 묻혀 빛을 발휘하지 못하고 있다고 생각하십니까? 까멜레오 개발팀은 수평적인 개발 조직을 자랑합니다. 까멜레오 프로젝트는 누군가가 시켜서 억지로 하는 프로젝트가 아닙니다. 모든 아이디어를 개발팀 개개인에서 출발하고, 개발팀의 검증을 거쳐서 실현됩니다. 까멜레오 개발팀에서는 여러분의 상상력을 현실로 바꿀 수 있습니다.

 

또한, 까멜레오 개발 팀은 외부로 열려있습니다. 까멜레오 개발자는 곧바로 오픈 소스 개발자입니다. 까멜레오 프로젝트는 처음부터 오픈 소스화를 계획하고 개발되고 있으며, 까멜레오 개발자는 자연스럽게 오픈 소스 개발자가 됩니다. 또한 까멜레오 프로젝트 자체도 GTK, Gecko, PIL, Cairo, Twisted, Spring Python, GStreamer 등 셀 수 없이 다양한 오픈 소스 프로젝트를 활용해 개발되고 있습니다.

 

 

까멜레오 개발자가 갖춰야 될 역량은?

 

까멜레오 프로젝트는 다양한 오픈 소스 프로젝트 기반 위에 구축되어 있기 때문에, 까멜레오 개발자는 오픈 소스 사용 경험이 풍부하고 여러 오픈 소스를 가져다가 수정할 수 있는 능력이 있어야 합니다. 물론, 이런 경험은 까멜레오 프로젝트에 참여하시면 지속적으로 쌓으실 수 있으며 개발팀에 지원하실 때는 최소한의 역량만 갖추고 있으시면 됩니다.

 

까멜레오 플랫폼의 공식 개발 언어는 C/C++, 파이썬, 자바스크립트입니다. C/C++은 미디어 플레이어와 관련된 코덱 및 필터 개발에 사용되고, UI와 로직은 대부분 파이썬으로 구현되어 있습니다. 또한 웹 위젯과의 연동 및 웹 어플리케이션 개발과 관련하여 자바스크립트, HTML, CSS 등도 어느 정도 지식이 있으시면 좋습니다.

 

 

채용 절차는 어떻게 되나요?

 

일단 간단한 이력서(영문/국문 상관 없음)와 연락처를 서광열(skyul@nomadconnection.com)으로 보내주시면 됩니다. 간단한 서류 면접을 통과하면 곧바로 면접을 보시게 됩니다. 채용 기간은 정해져 있지 않습니다. 원하는 자리가 채워지면 마감 공고를 올릴 생각입니다. 기다리지 마시고 지원해 주시길 바랍니다.

 

벤처와 인재

Posted 2007. 8. 20. 03:40
요즘 가는 가는 곳마다 좋은 인재 없냐고 난리입니다. 최근 노매드커넥션에서도 인력 충원을 준비하고 있습니다. 까멜레오 개발에 속도를 보태려는 개발자 인력 충원 계획입니다. 이전에 "A급 인재를 어떻게 잡을 것인가?"라는 글을 쓴 적도 있는데, 그때의 결론은 좋은 인재에게는 그에 상응하는 보상을 해줘야 한다는 것이었습니다. 여러 요소가 있지만 물질적인 요소를 무시해서는 안 된다는 것이 논지였죠.

그런데 정작 벤처에 몸담으면서 사람을 뽑으려니 이게 말처럼 쉬운 게 아니긴 합니다. 우리 회사도 그렇지만, 사실 달라는 데로 돈 다 줄 수 있으면 벤처 기업을 할 이유가 없습니다. 벤처는 결국 아직 돈을 잘 못 버는 배고픈 회사이기 때문입니다.

최근 화두는 작은 기업에서 연봉 외에 열정적인 개발자에게 제시할 수 있는 가장 매력적인 요소가 무엇일까 하는 점이었습니다. 오랜 고민 끝에 내린 결론은 가치 있는 프로젝트에 참여할 수 있다는 사실과, 그 프로젝트를 통해 성장할 수 있는 경험을 주는 것입니다. 이력서에 한 줄 적었을 때 이력서가 빛날 수 있는 멋진 프로젝트 말이죠.

회사에 뼈를 묻어 충성할 사람보다는 열정과 야망이 너무 커서 몇 년 후에는 더 큰 프로젝트를 찾아 떠나갈 수 있는 사람이 더 좋습니다. 그런 개발자들이 성장할 수 있는 곳, 또 적극적으로 개발자를 키우고 후원해 줄 수 있는 배짱 있는 회사가 되는 것이 제가 일하는 노매드커넥션의 목표입니다.

실제 구인 공고가 나오면 제가 생각하는 인재와 그 인재를 위해 우리가 해줄 수 있는 일을 더 구체적으로 글을 쓰겠습니다.


벤처 기업을 한다는 것

Posted 2007. 8. 20. 03:06
요즘은 까멜레오(http://www.chameleo.org 현재 제가 개발 중인 미디어 플레이어입니다) 알파 릴리즈(클로즈드)를 위한 마무리 작업을 열심히 하고 있습니다. 원래 알파 버전 릴리즈 계획을 8월 중순으로 잡았는데, 생각보다 사소한 문제들이 많은 관계로 일정이 조금 지연되고 있어서 속이 탑니다.

오늘 회사에 모여서 회사의 존재 이유, 까멜레오라는 제품을 통해 무엇을 이루고 싶은지를 진지하게 이야기하는 시간을 가졌습니다. 분명 회사를 시작하고, 제품을 기획할 때 어느 정도 이야기를 나눈 사안임에도 불구하고, 그 동안 구체적인 제품의 형태를 만들어 나가는 데 정신을 팔려서 왜 이 제품을 만들기 시작했는지를 잊고 있었다는 사실을 깨달았습니다.

1년 앞을 내다볼 수 없는 게 신생 벤처 기업인데, 그동안 너무 안이한 마음을 가지고 있었던 게 아닌가라는 생각을 해봅니다. 작은 회사에서 대기업처럼 명확히 일을 구분해서 할 수 있는 것도 아닌데, 막연히 내 역할을 '기술', '개발', 구현'이라고 한정하고 그 울타리 속에서만 활동했다는 생각도 들었습니다. 물론 각자의 전문 분야가 있지만, 좁은 시야에서 구현하는 데만 치중해 정작 본질을 놓치고 있는 건 아닌가라는 생각도 들었고요.

벤처 기업은 좀 더 능동적으로 행동해야 합니다. 주어진 일을 해내는 것은 당연하고, 나 스스로 끊임 없이 일을 찾아서 만들어 내는 능력이 필요합니다. 벤처 기업은 더 열정적이어야 합니다. 정량적으로 계산하고 최적화된 효율을 찾는 것도 좋지만, 벤처의 마인드는 다소 비효율적이더라도 밤을 새며 비전을 얘기하고 기술을 개발하며 즐거워할 수 있어야 합니다.

제품 개발 4개월, 알파 버전이긴 하지만 첫 릴리즈를 앞둔 시점에서 가장 중요한 것은 초심을 되찾는 게 아닌가 합니다.

까멜레오 프로젝트 블로깅 정책

Posted 2007. 6. 26. 03:12
지난 14일 제가 진행 중인 까멜레오 프로젝트에 대한 간략한 설명을 드린지 벌써 2주가 지났네요. 그간 여러 작업이 이루어졌음에도 불구하고, 회사 내부에서 까멜레오 프로젝트에 대한 블로깅 정책이 정해지지 않은 터라 관련 내용을 포스팅하기가 조심스러운 상황에 있었습니다.

오늘 회사에서 회의를 통해 까멜레오에 대한 블로깅 정책을 확정지었습니다. 까멜레오 플랫폼과 플레이어 모두 릴리즈와 동시에 오픈소스화를 생각하고 있는 프로젝트이기 때문에 관련된 기술 이슈에 대해서도 최대한 자유롭게 블로깅을 허용하는 쪽으로 결론을 내렸습니다.

그간 비디오 데이터 저장 기술과 관련된 조사 및 디자인 작업을 하느라, 플랫폼과 플레이어 쪽 작업이 약간 지연되긴 했지만, 앞으로 적극적인 블로깅을 통해 많은 분들의 의견을 들으려고 합니다. 꼭 까멜레오에 대한 내용 뿐만 아니라, 코덱에 대한 고민, 플랫폼에 대한 고민, 플레이어의 기능 및 UI에 대한 고민 등을 함께 공유해서 많은 분들이 좋아하고, 사용하기 편한 소프트웨어를 만드는 데 큰 목적이 있습니다.

내일부터는 자유롭게 까멜레오 프로젝트에 대한 썰을 풀어볼까 합니다. 그동안 입이 근질근질해서 고생했거든요^.^…

까멜레오 프로젝트

Posted 2007. 6. 14. 02:55
한동안 블로그가 뜸했습니다. 회사에서 나름대로 야심찬 프로젝트를 준비하느라 바빠서 블로그에 신경쓸 시간이 없었네요. 사실 블로그라는 게 열심히 할 때는 탄력 받아서 열심히 쓰는데, 한 번 게을러지기 시작하면 관성이 붙더라고요.

그동안은 개인적인 관심사만 블로그에 올렸었는데, 이번에는 간단히 제가 회사에서 하고 있는 일을 소개해 보려 합니다. 저는 현재 (주)노매드커넥션이란 회사에서 일하고 있고, 공식 직함은 CTO이고 실제로는 개발팀장의 역할을 수행하고 있습니다.

현재 주력으로 개발 중인 프로젝트는 까멜레오(Chameleo)입니다. ‘까멜레오’라는 이름은 카멜레온에서 왔고, 어원을 따졌을 때 레온이 사자라면 레오는 아기 사자를 의미합니다. 작고 귀여운 카멜레온이란 뜻이지요. 까멜레오는 미디어 플랫폼을 지향합니다.

미디어 플랫폼은 꽤나 추상적인 말이라 구체적으로 어떤 제품인지 상상하기 어려울 수도 있는데, 쉽게 말하면 미디어 플레이어나 미디어 편집기 등 동영상과 멀티미디어에 관련된 응용 프로그램을 손쉽게 제작할 수 있는 플랫폼 혹은 런타임입니다. 플래시를 이용해 웹플레이어를 손쉽게 제작할 수 있는 것과 비슷한 개념이지요.

까멜레오는 다음과 같이 세 가지의 주요 특징을 가지고 있습니다.

1) OpenGL 및 3D 기술을 차용한 UI
2) 동영상 메타데이터 DB와 검색
3) 미디어 위젯

현재 까멜레오 블로그를 보면 플랫폼을 이용해 만든 데모 프로그램을 보실 수 있는데, 일단은 말풍선 위젯이나 점수 매기기 위젯 등 간단한 기능들을 보실 수 있습니다. 최종적으로는, 위젯을 쉽게 제작하고 사용할 수 있도록 플랫폼을 완전히 오픈하는 것을 염두에 두고 있습니다.





기술적으로는 현재 90% 이상의 코드가 파이썬으로 작성되어 있고, 위젯 작성도 파이썬 기반이 될 것입니다. 다양한 오픈소스 프로젝트와 표준 기술들을 사용하고 있습니다. 다른 기술들에 대해서도 개발을 진행하면서 차츰 소개를 할 생각입니다.

현재 플랫폼의 개발은 어느 정도 진척이 많이 되었고, 더불어 까멜레오 플랫폼을 이용한 데스크탑 동영상 플레이어도 클로즈드 알파단계에서 초기 테스트를 진행 중입니다. 현재 계획으로는 6, 7월 중에 공개 가능한 베타 버전이 나오리라 예상이 됩니다. 앞으로도 관련 소식을 업데이트 하겠습니다.

까멜레오 프로젝트 페이지를 방문하시면, 초대권 신청하는 란이 있습니다. 이름과 이메일을 남겨 주시면, 베타 버전이 완성될 경우 가장 먼저 체험해 볼 수 있는 기회를 드립니다!