IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Column  > developerworks
개발자 책꽂이

오픈 소스 개발 이야기 2선



박재호박재호 jrogue@gmail.com

블로그 '컴퓨터 vs. 책'과 '프로젝트 관리'를 운영하고 있으며, "조엘 온 소프트웨어"를 비롯한 IT 전문서적 번역가로 활동 중이다.


2009년 06월 02일


지난번 개발자 책꽂이 칼럼에서는 마이크로소프트 내부 개발 과정에 대해 소개했다. 그렇다면 오픈 소스 개발 과정은 어떨까? 자유롭고 창의적이고 신나겠다는 생각이 들지도 모르지만, 소프트웨어 개발은 본질적으로 어려운 작업이기 때문에 역시 나름대로 고민이 있기 마련이다. 이달에는 오픈 소스와 관련한 개발 이야기를 다루는 책 두 권을 소개한다.


1번 타자

오픈 소스(Open Sources)” 오픈 소스(Open Sources)
팀 오라일리 외 지음, 송창훈 외 지음, 한빛미디어 2000년 출간

아쉽게도 지금은 절판된 이 책은 초창기에 오픈 소스 혁명가들이 바라본 오픈 소스에 대한 다양한 시각을 조망하고 있다. 목차에 따르면 해커 문화, 버클리 유닉스 역사, 인터넷 엔지니어링 태스크 포스 팀, GNU 운영체제와 자유 소프트웨어 운동, 시그너스 솔루션즈, 소프트웨어 공학, 레드햇 소프트웨어, 오픈 소스 정의, 모질라와 같은 다양한 오픈 소스 관련 회사와 문화를 다루고 있다.

이 책은 정형적이고 이미 틀이 잡힌 상태에서 출발하는 마이크로소프트 개발 방법과는 달리 풀뿌리 개발 조직에서 출발해 스스로 틀을 잡아나가는 오픈 소스 개발 방법을 분석한다. 비록 10년 전에 출간되었지만, 상용 소프트웨어 진영을 끊임없이 긴장하게 만들어온 오픈 소스 운동의 시발점을 다루므로 현 시점에도 여전히 유효한 내용을 담고 있다. 일부 소수의 해커 중심 문화로 인식되어 왔던 오픈 소스 운동이 1990년 이후(특히 리눅스가 나온 이후) 컴퓨터 역사에 미친 영향을 생각해보면 놀라울 정도다.

다른 내용도 좋았지만 이 책에서 특히 흥미롭게 읽었던 내용 중 하나는 리누스 토발즈가 직접 쓴 “첨단의 리눅스”라는 수필이다. 유닉스 호환 운영체제라는 이야기를 들어가면서, 그 당시 최첨단으로 알려진 마이크로 아키텍처에 역행하는 모놀리틱 아키텍처를 채택함으로써 인터넷에서 운영체제 아키텍처 논쟁을 불러일으킨 배경 이야기를 흥미롭게 풀어나간다. 지금도 읽으면서 고개를 끄떡이는 토발즈가 쓴 문구는 다음과 같다.

“이식성이 뛰어난 코드를 원한다고 해서 꼭 이식성을 이루는 추상 계층을 만들 필요는 없다. 다른 대안이 있으면 그 대안을 사용하면 된다. 근본적으로 마이크로 커널의 이식성을 높이려는 노력은 시간 낭비다. 그것은 마치 사각형 타이어를 달고 있으면서도 정말로 빠른 자동차를 만들려는 것과 같다. 무조건 빨라야만 하는 것, 바로 그러한 커널의 추상화 노력은 본질적으로 비생산적이다.”

이렇듯 이론적인 시스템이 아니라 실제로 사용되는 시스템 사이에서 이식성을 어떻게 해야 좋을지 고민하는 리누스 토발즈의 모습을 지켜보면 사용자와 동떨어진 이상 세계가 아닌 현실 세계를 지탱하는 철학으로서 오픈 소스를 다시 한번 생각하게 된다.



위로


2번 타자

드리밍 인 코드 드리밍 인 코드
스콧 로젠버그 지음, 황대산 옮긴, 에이콘출판사 2009년 출간

해킹과 마찬가지로 소프트웨어 개발은 영화나 소설에서 나오듯이 절대로 흥미진진하고 활기차고 속도감 있게 진행되지 않는다. 차라리 따분한 회의, 일정 지연, 팀원 사이 충돌, 고객 불만 등 따분하고 지루한 줄다리기가 벌어진다고 보는 편이 훨씬 현실적이다.

오픈 소스 프로젝트라고 예외는 아니다. 자유 분방한 해커들이 밤에 피자랑 맥주를 주문해 요기를 해가며 워크스테이션 앞에서 위대한 오픈 소스를 만들어낸다고 생각하지만, 천만의 말씀! 옆에서 지켜보면 어지간한 인내심을 보이는 사람이라도 분통이 터져 미치고 환장할 가능성이 높다.

드리밍 인 코드는 위험천만하게도 느려 터진 소프트웨어 프로젝트를 따라가며 개발 과정에서 어떤 일이 일어났는지를 바둑 복기하듯이 다시 한번 들려준다. 이 책은 (꼭 들어 맞는 정의는 아니지만…) 일정 관리를 위한 오픈 소스 소프트웨어인 챈들러(http://chandlerproject.org) 개발 과정을 덤덤하게 서사식으로 풀어 쓰고 있다. 이야기 중간 중간에 소프트웨어 공학과 관련한 뒷이야기가 곁가지로 끼어 들어 책 내용을 풍족하게 만들어준다(물론 독자에 따라 이런 뒷이야기가 서사 구조를 방해하는 훼방꾼이라 생각할지도 모른다).

하지만 이 책은 첫 공개 버전 1.0이 나오기까지 A부터 Z까지 개발 일정을 따라가는 완결된 형태가 아니라, 원래 계획에서 절반도 채 달성하지 못한 버전 0.6에서 시간이 갑자기 멈춰버린다. 이 책 지은이인 스콧 로젠버그가 3년 동안 소프트웨어 시간에 갇혀 있다가 탈출해버렸기 때문이다. 따라서 예상치 못하게 미완의 오픈 소스 프로젝트를 주제로 삼은 모양새가 되어버렸다.

이 서평을 쓰는 2009년 5월 말 현재 최신 버전인 1.0.3을 직접 내려 받아 사용해보면 알겠지만 웅대한 비전, 엄청나게 똑똑한 기획자, 날고 기는 개발자들, 재정적인 뒷받침에도 불구하고 챈들러는 사실상 실패한 프로젝트로 보인다. 오픈 소스 세상에서 수많은 프로젝트가 등장하고 수많은 프로젝트가 사라지며 극소수 프로젝트만 사용자들의 열렬한 지지를 업고 스타로 등극하는 상황에서, 챈들러라고 해서 특별 대접을 받을 이유는 없다는 생각이다.

하지만 챈들러는 프로젝트 진행 상황을 사실적으로 정리한 ‘드리밍 인 코드’라는 책이 뒷받침한다는 이유만으로도 후대에 본을 보여주는 간접적으로 성공한 프로젝트가 아닐까 싶다. 이 책을 읽으면서 소프트웨어 개발이 어렵다는 사실을 공감할 수 있다면 더 바랄 나위가 없겠다.


이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us
[지난 developerWorks Column 보기]



위로


사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

뉴스레터
 
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.

Special offers
Screencast
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의