»
S
I
D
E
B
A
R
«
오픈소스 소프트웨어 라이센스 가이드
Jun 29th, 2010 by Wegra Lee

오픈 소스 제품을 쓸 때마다 항시 헷갈리는 라이선스 정책.. 혼자 개발할 때면 큰 상관이 없지만, 회사 프로젝트라던가, 다른 사람과 함께 개발할 것이라면 라이선스를 잘 따져봐야 한다.

회사에서 1회성 교육을 받긴 했지만, 몇 달 지나니 영 생각이 나지 않는다. 이것이 저것 같고, 저것이 이것 같고.. ㅎㅎ 그래서 한 번 구글링을 해보니 역시나 KLDP 에서 비교적 자세하고 쉽게 정리해두었다. (그것도 아주 오래 전에) 필요할 때마다 참고하도록 하자.

오픈소스 소프트웨어 라이센스 가이드

한 가지.. 오픈 소스계의 또 하나의 큰 틀인 Eclipse 재단의 CPL (Common Public License) 이 누락된 점은 조금 아쉽다.

The Go Programming Language
Nov 12th, 2009 by Wegra Lee

Noop 에 이어 구글이 또 하나의 프로그래밍 언어를 소개했다. Go 라는 이름의 언어로, 벌써 제법 성숙한 상태라, 과거 Turbo C 나 초창기 UltraEdit 로 Java 코딩하던 추억을 떠올리면 충분히 직접 사용해볼 수 있는 수준이다.

Go 언어는 크게 두 가지 관점에서 아주 마음에 든다.

처음부터 다시 시작했다.

현재의 것에 계속해서 군더더기를  붙여 나가다 보면 점차 비대해져 관리를 어렵게 하고 혁신을 가로막는다. 때문에 종종 처읍부터 다시 시작하는 것이 필요하다.

번외로.. 구글이나 애플과 같은 회사가 이런 일을 참 잘하는데, 최근 40살 된 e-mail 을 대체하겠다며 큰 기대를 받고 있는 Google Wave 나 이미 성숙할 대로 성숙한 핸드폰의 개념을 바꿔버린 iPhone 같은 것이 좋은 예이다.

덕분에 더 이상 필요 없거나 폐해가 더 큰 기능들을 과감히 없애 날렵해짐과 동시에 병렬 프로그래밍과 같이 새시대에 필요한 기능들을 실장하고 있다.

C/C++ 를 경량화시켰다.

내가 가장 혐오하는 프로그래밍 언어인 C++. C++ 는 기능 확장이 아니라 축소를 먼저 해야 한다고 내가 몇 년 전부터 얘기하고 다녔는지 모른다. 물론 Go 가 C++ 의 직접적인 축소판은 아니지만, 같은 C 계열 (호환이 아니라 파생의 의미로) 언어로써 정말 최소한부터 다시 시작하는 언어이다. 홈페이지에서 언급한 몇몇 설계상의 결정 사항들은 정말 내 가슴을 후련하게 해준다. 포인터 연산, exception, assertion, 오버로딩 등에 대한 설명은 나의 그간 경험에 비춰 특히 공감이 된다. 수많은 개발자들.. 아무리 설명을 해줘도 계속 교체되고, 새로온 사람들에게 또 설명하고.. 그러다 지쳐 포기했던 기억이.. ^^

Go 가 잘 발전해서 C++ 의 영향력이 감소하는데 한 몫 해주길 바래본다.


References

  1. Official Site
  2. Tech Talk (YouTube Video, 1 hour)
  3. PDF for the above Tech Talk

잡설.

소프트웨어 플랫폼 경쟁에 있어 우리 나라 기업들은 도저히 상대가 안되는게.. 애플이나 구글같은 회사는 핵심 소프트웨어 개발 역량이 정말 대단하다. 우리처럼 API 겉만 감싸는 수준이 아니라, 필요하면 언어 자체를 수정하거나(최근 GCD 를 위해 C 언어를 확장함) 심지어 만들어버리기까지 한다(Go, Objective-C). 애플은 LLVM/CLang 이라는 GCC 대체 프로젝트를 진행해 큰 성취를 보이고 있고, 구글 가상 머신을 뜯어 고쳤다(Dalvik VM). 소프트웨어 설계 자체도 참 대단하다. 이미 25년의 OS 개발 경험을 축적하고 있는 애플의 OS X 는 전신인 NextStep 시절부터 소프트웨어 설계의 바이블 격인 Design Patterns 책 저술에 지대한 영향을 미쳤다. 현재의 플랫폼도 깊이 들여다보면 ‘우와!’ 하는 감탄사가 절로 나오는 멋진 구조를 어렵지 않게 찾아볼 수 있다.

핵심 기술이 없으면 오픈 소스/커뮤니티에라도 적극 참여해 그들의 노하우를 최대한 빨리 흡수하며 기반을 쌓는 것이 큰 도움이 된다. 모토롤라의 이번 Droid 출시가 좋은 예이다. 작년, 큰 위기를 느낀 모토롤라는 진행중이던 프로젝트들을 대다수 취소하고 회사 전체를 환골탈퇴하는 모험을 감행했다. 덕분에 신규 제품이 나오지 않아 시장 점유율을 급격하게 떨어졌지만, 구글과의 밀접한 협력으로 Android 2.0 폰을 타 기업들보다 몇 개월 앞서 출시할 수 있었다. 결과는 더 지켜봐야겠지만, 구글과의 돈독한 관계뿐 아니라, Android 시장에서 적어도 당분간은 타 업체들을 선도할 수 있는 충분한 노하우를 얻었을 것이다.

허나 안타깝게도 우리 나라 기업들은 이런 방향으로의 가시적인 움직임은 보이질 않는다. 티맥스 윈도우나 삼성 바다의 예에서 보듯이, 오히려 독자적인 플랫폼을 시도하고 있다. 아직은 실체가 드러나지 않아 확언할 수는 없지만, 중학생들에게 ACM 이나 IEEE 논문을 쓰라는 격으로 보인다. 유사하거나 오히려 더 참신한 아이디어가 나올 수는 있으나, 그 깊이와 완성도는 비교할 수 없을 것이다. 유수의 석학들과 경쟁해 진정 그들을 뛰어 넘고자 한다면, 조급함을 억누르고 차근히 기초를 닦는 인내의 기간이 필요하다.

John Carmack.. And the Reason Why I like Him.
Nov 5th, 2009 by Wegra Lee

최근 Doom Classic 이라는 iPhone 게임을 런칭하며 그가 남긴 글[1][2]은 그를 좋아할 수 밖에 없게 만든다.

게임 출시와 함께 올라오는 글들은 보통은 그 게임의 특징을 장황하게 기술하며 홍보에 열을 올리는 것이 정석이지만, 그는 다르다. 게임이 만들어지기까지의 과정, 그러면서 겪은 시행착오와 노하우, 앞으로의 계획.. 그리고 소스 코드까지 함께 공개해버린다.

자신이 하는 일에 대한 긍지와 자부심이 충만하고, 공유를 통해 함께 성장할 수 있음을 믿고 있다는 반증이 아닐까? 과거 그가 (아마도) 퀘이크의 코드를 공개한 사건은 당시 게임 업계에서는 상당한 반향을 일으켰다. FPS 게임의 선구자였고, 당시까지도 가장 앞선 기술력을 자랑하던 회사 중 하나였던 그들이 노하우의 정수를 숨김없이 공개한 것이다. 그 후 Id 에서는 수많은 엔진들의 코드를 지속적으로 공개하였고, 그래서 새로운 플랫폼이 시장에 등장할 때마다 가장 앞서 포팅되는 단골 게임으로 자리잡고 있다. 이러한 그들의 물질적 정신적 기여와 그 뜻을 받아 함께 노력해온 사람들에 힘입어 3D 게임 시장은 눈부시게 발전하였고, 최근엔 오픈 소스 랜더링 엔진인 오우거[3]를 활용해서도 최고 수준급 게임[4]도 등장하기에 이르렀다.

확대 해석과 일반화한 부분도 없지 않겠지만, John 은 여전히 퀘이크의 소스를 공개했던 시절의 믿음을 그대로 간직하고 또 실천하고 있다. 존경할 만한 인물 중 하나이다.


References

  1. Development on Doom Classic (by John Carmack)
  2. Wolfenstein 3D – iPhone development (by John Carmack)
  3. ORGE – Open Source 3D Graphics Engine
  4. Torchlight (by Runic Games)
Grand Central Dispatch.. Now Opened for All.
Sep 16th, 2009 by Wegra Lee

Apple 이 Snow Leopard 출시와 함께 가장 최근에 들고나온 강력한 무기중 하나인 Grand Central Dispatch (GCD) 를 오픈소스화하는 다소 놀라운 결정을 내렸다. (Click Here)

아마도 GCD 가 비표준 C 확장(Block – Click Here)을 요구하는 등, 이를 활용한 코드가 플랫폼 종속적이어서 저변 확대의 걸림돌이 될 것이라 판단한 것이 아닌가 싶다.

인터넷 상으로도 이렇게 바로 볼 수 있고 (Click Here), SVN 이나 Git 으로도 물론 다운 받아 볼 수 있다. 간략히 살펴보고 있는데, inline assembly 가 나오는 등 역시 low-level 기능이라 만만치 않다. 커널 수준의 코드를 자주 접해본 사람이 아니라면 만만치 않을 수 있겠다. 적어도 GCD 의 동작 메커니즘 등 기반 지식이 쌓고 코딩을 좀 해본 후 도전하는 것이 좋을 듯..

»  Substance: WordPress   »  Style: Ahren Ahimsa