2005년 7월 21일 목요일

메타 블로그에 대한 생각

국내에는 다양한 설치형 블로그나 서비스형 블로그가 있습니다. 개인별로 생각하는 건 다를 수 있겠지만 제 생각으론 사용하기에 불편함이 없을 수준의 프로그램들이 충분하게 있다고 봅니다.

그 런데 유독 메타 블로그 프로그램은 특별하게 사용할 만한 것들이 없는게 이상하게 생각 되었습니다. 물론 메타 블로그라는 시스템이 여러 사이트가 동시에 존재하기 보다는 포탈 형식의 한곳으로의 집중이 유리한 면이 있습니다. 하지만 개념을 바꿔서 생각해보면 조그만 그룹들들을 이어주는 연결 역할을 하는 메타 블로그 시스템들이 유기적으로 연결되어 커다란 시스템을 구성해보면 어떨까 생각이 들었습니다.

이미 웹에서는 이런 아이디어가 많이 퍼져 있습니다. WEB2.0이 그러하고 몇몇 P2P프로그램 역시 그러합니다. 위키 시스템도 한나의 위키가 일종의 정보저장소의 역할을 하기도 하지만 다른 위키들과 소통을 하기 위해서 시스터위키 같은 시스템을 이용하고 있습니다. 메타 블로그 시스템도 서로 다른 피드들을 공유하거나 자신들이 수집한 피드들의 정보를 통해서 새로운 2차적인 정보를 생산할 수 있다면 재밌는 일이 생길 수 있을 거라 생각했습니다.

결과적으로 이번에 시작한 한양메타블로그 프로젝트는 새로운 방식의 메타 블로그 시스템을 구축해 보자는 시도인 것입니다. 일단 제가 다니는 한양대학교의 블로거들을 위한 시스템을 구축해야 하겠죠. 그리고 완성 결과를 오픈소스로 공개하여 다른 시스템도 생겨날 수 있도록 하려고 합니다. 물론 프로젝트는 지속적으로 진행되면서 프로그램은 발전해 나가야 하겠죠.

일단 초기에 진행되는 과정에서는 프로젝트 공개를 하지 않고, 1차 완성이 되는 시점에서 SourceForge나 KLDP.NET에 등록하고 그곳을 통해서 지속적인 배포를 하려고 합니다.

현 재 다양한 시도를 염두에 두고 있습니다. 메타 메타 블로그 시스템(위에서 설명한 연동하는 메타 블로그)을 비롯해서 팟캐스팅을 좀 더 편하고 현실적으로 지원할 수 있는 방안도 생각중이고(기존의 제공 방법은 서버의 트래픽 문제나 등록이 불편한 점 등의 문제가 있는 것 같습니다) API제공이나(당연하겠습니다만) 기존의 피딩 방식에서는 코멘트나 트랙백을 알기 힘든 점도 어떻게 향상시킬 수 있을지 생각하고 있습니다.

중간 중간에 저작권 문제나 피딩 수집의 공개정책 같은 사안들에 부딪칠 수 있겠지만 일단은 기술적인 부분에 중점을 두고 프로그램을 개발해 나갈려고 합니다. 운영시에 발생할 수 있는 다양한 문제들은 시험 운영을 통해서 체크해 나갈려고 합니다.

2005년 6월 9일 목요일

조엘의 생각을 들어보자





조엘 온 소프트웨어
조엘 스폴스키 지음, 박재호.이해영 옮김/에이콘출판

해외의 개발자 사이에서는 이미 많이 알려져 있는 컬럼(혹은 웹로그)인 Joel on Software는 외국의 개발자 메일링 리스트를 구독하다보면 가끔 인용당하는(?) 그의 글로 인해서 내게도 익숙했다.

우리나라에서는 안철수 연구소에서 몇몇 글들을 번역해주고 있기 때문에 이미 알고 있는 사람들은 조엘테스트니 일별 빌드니 하는 것이 어느정도 익숙할 것이다. 다만 안랩에서 모든 글을 번역한게 아니라서 영어가 부족한 나와 같은 사람에게는 아쉬운 점이 있었는데 그의 블로그와 같은 제목으로 미국에서 출간되었던 책이 번역되어 접하게 되니 반가운 마음을 금할 수가 없었다.

 예약 구매로 도착한 다음날에 다 읽어버렸다. 굉장히 직설적인 방법으로 이야기를 하는 그의 글은 시원한 느낌과 함께 즐거움을 안겨주었다. 특히 얼마전에 읽었던 The Art of Unix Programming과 여러모로 비교되면서 이런 저런 생각을 해볼 수 있어서 즐거움은 배가 되었다. 직설적인 화법의 소유자답게 그는 레이몬드(TAOUP의 저자)의 의견에 동감하는 부분은 인정하면서도 그의 생각과 일치하지 않는 부분에는 단호하게 아니다라고 말한다.

예를 들어 레이몬드는 TAOUP에서 GUI(Graphic User Interface)와 CUI(Console User Interface)를 이야기 하면서 GUI는 확장성이나 효율성등의 면에서 유닉스의 전통적인 CUI프로그램(pipe를 이용하고 한가지 용도에 최적화된)에 못미친다고 이야기 한다. 그는 CUI프로그램에 GUI로 인터페이스를 구축하는 방식이 더 유연한 방식이라고 보는데, 이에 대해 조엘은 CUI방식을 고입하는 것이야 말로 Usebility를 해치는 것이라 말하고 있다.

난 UNIX스타일의 개발을 더 좋아하기 때문에 조엘의 생각은 내 생각과 다른 부분도 있었다. 하지만, 근거 없이 GUI가 우월하다고 이야기하는 그런 방식의 전개가 아니고 조엘 나름데로의 경험과 생각을 기반으로 하고 있어서, 일견 그의 생각에서도 많은 것을 배우고 타당점을 찾을 수 있었다.

분명히 다른 프로그램과의 인터페이스 측면이나 자동화 측면, 그리고 프로그램에 어느정도 익숙해질 숙련 사용자를 위한 면에서 CUI인터페이스 제공과(레이몬드 역시 무조건 적으로 GUI를 비판하는 것이 아니라 CUI를 기반으로 하는게 어떨까 하는 의견이다) 텍스트 기반의 통신이 좋을 것이다. 하지만 프로그램을 가볍게 사용하는 라이트유저나 프로그램의 사용성(단순하게 사용하기 편리한) 향상을 위해서는 잘 설계된 GUI역시 많은 도움이 될 수 있을 것이다.

결국, 여기에서는 프로그램의 사용 환경에 따른 선택이 중요하게 작용할 것이며, 우리가 평소 이야기 하듯 상황에 따른 선택이 중요할 것 같다.

개인적으로는 GUI프로그램들이 CUI인터페이스를 제공하는 것도 좋을 것 같다고 생각한다. 직접 프로그램을 사용하면서 CUI인터페이스의 필요성을 느낀 경우가 많았는데, 특히 작업을 자동화해서 여러 프로그램에게 협업을 시키게 한다는 부분이든지 프로그램을 테스트 할 경우에서 편리한 점이 많았다.

개발자들 사이에서 이견을 발견하는 것은 쉬운 일이지만 어느 정도 정점에 선 사람들이 그렇게 다른 의견을 이야기 하는 것은 언제나 많은 교훈을 준다. 각자의 의견은 대부분 일리가 있고 나름데로 타당한 이유를 가지고 있기 때문에 내가 몰랐던 부분들에 대해서 생각해 볼 수 있는 기회를 주고 내 생각을 정립할 수 있는 기회가 된다. 조엘의 책에서는 그와 다른 개발자 사이의 이견들을 발견할 수 있고 각각의 주장들을 접할 수 있다(조엘은 대부분 상대 주장도 싣거나 출처를 제시하고 있다).

책을 읽으면서 그렇게 접한 다른 주장들도 시간을 내서 알아보거나 읽어본다면 많은 도움이 될 수 있을 것이다.

책에도 나오고 있지만, 조엘이 제시하여 상당히 유명해진 조엘 테스트 라는 것이 있다. 한 조직을 평가하는 기준으로 12가지의 테스트를 만들었는데, 전체 몇 개의 테스트를 통과했는지에 따라 조직을 평가한다. 각 테스트마다 1점으로 12점은 완벽한 조직, 11점은 괜찮지만 10점 이하는 문제가 있는 것으로 평가한다. 방법론이나 개발방법에 대한 테스트가 아니라 단순하게 조직의 질을 테스트하는데 목적을 두고 있는 것 같은데, 우리나라에서 12점 만점을 받는 조직은 몇개 안될 거란 생각이 든다(솔직히 하나라도 있을까?). 물론 우리나라의 문화적인 차이 때문에 조엘 테스트 중에 적합하지 않은 것도 있을 수 있지만, 조엘 테스트에서 좋은 점수를 받기 위해 노력하는 조직은 더 높은 수준의 질을 유지할 수 있을거라 생각한다. 조엘 테스트를 보면 새로운 기술에 민감하면서 조직의 질을 높이기 위해서 노력하는 조직들이 유리할 것 같다는 생각이 든다. 내 생각도 그렇게 기민한 조직이 앞으로 생존가능성이 높을 것 같다.

조엘이 블로그에 쓴 글들을 모아서 책으로 발간했기 때문인지 책 전체를 관통하는 하나의 생각이나 주제 같은 것은 없다. 다만 조엘이 느끼고 생각한 짧은 글들을 하나씩 읽어가면서 내가 생각했던 것들과 비교도 해보고 조엘의 생각에 감탄도 하면서 즐겁게 읽을 수 있는 것이 이책의 묘미가 아닐까 생각한다. 더불어 컴퓨터 화면을 통해서 봤던 글이기는 하지만 종이로 된 책을 읽을 때의 감성적 느낌을 통해서 같은 글을 읽었을 때 느끼지 못했던 새로운 것들을 느낄 수 있는 것도 또 다른 묘미일 것이다.

2005년 5월 9일 월요일

Security : Divide and Conquer






해킹, 침입의 드라마
케빈 미트닉.윌리엄 사이먼 지음, 이성희.송흥욱 옮김/사이텍미디어(희중당)

 최근 케빈 미트닉의 행방을 보면 전업한 해커(혹은 크래커)의 성공적인 사례를 보여주는 듯 하다.

그는 이번 책으로 벌써 두권의 보안관련 서적을 출판했으며, 현재는 보안 컨설턴트로 활동중이기도 하다. 음지에서 생활하던 그가 석방 후 보안분야에서 활동을 하고 보안에 관계된 서적을 출판하는 것을 보면 인생은 새옹지마라고 말할 사람도 있을 것이다.

이런 저런 이야기들을 제쳐두고 그의 책을 들여다보자. 도움이 되는 정보를 많이 얻을 수 있다. 특히 사회공학해킹은 우리나라를 비롯하여 전세계에서 특별한 대비책을 가지고 있지 않는데, 이는 사회공학 해킹이 인간의 본성을 이용한다는데 그 원인이 존재한다고 생각한다.

케빈은 그의 책을 통해서 그러한 사회공학해킹에 대한 유형을 이야기 하고 대비책을 말하고 있다. 물론 그 대비책이란 것들이 실행과 유지를 하는데 많은 시간이 들거나 많은 자금이 드는 경우도 있지만, 간단한 조치를 통해서 큰 효과를 얻을 수 있는 것도 이야기 하고 있다.

네크워크를 통한 침입을 막는 것만이 전부가 아니라는 사실을 알고 다양한 침입을 방지하는 것이 제대로 된 보안을 위한 길이라 볼 수 있을 것이다.

지난번의 책(해킹, 속임수의 예술)을 통해서 자신이 사용했던 혹은 알고 있는 사회공학해킹에 관해서 다루었는데, 이번에는 몇 가지 해킹 에피소드를 분석하면서 보안에 대한 경각심을 불러 일으키고 있다. 책에서 말하고 있는 이야기들은 케빈 자신의 이야기가 아니며(지난번과 달리) 케빈은 그들의 이야기를 검증하고 부연설명과 얻을 수 있는 교훈을 설명하고 있다.

다루는 에피소드의 범위가 상당히 넓어서 11개의 에피소드가 나오는데, 각 케이스가 대부분 중복되는 경우가 아니라 나름데로의 특징을 가지고 있는 경우이다. 아마도 케빈은 자신이 생각한 침입의 경우에 대해서 분류를 나누고 각 분류에 해당되는 에피소드들을 조사했거나 주변의 에피소드들을 수집하고 분류하는 과정에서 책에 나오는 에피소드들을 추렸지 않을까 생각된다.

각각의 에피소드들은 간단한 스크립트를 이용한 크래킹을 비롯해서 치밀하게 계획된 시스템 침입이나 고도의 기술을 이용한 시스템 해킹, 사회공학 해킹기법을 이용한 기술적 해킹, 프래킹, 사회공학 해킹, 모의침입 테스트 등의 광범위한 침입방법들을 다루고 있다.

개인적으로 첫번째 에피소드인 카지노 털기를 재밌게 봤는데 이들의 행위가 전형적인 해커의 모습과 많이 닯아 있어서 그런것 같다. 각 주인공들은 일부는 컴퓨터를 제대로 알고 있는 전형적인 해커가 나오기도 하고 내가 보기에는 다른 사람들의 스크립트나 취약점 문서들만 이용해서 크래킹을 하는 그다지 스크립트 키드(script kid) 수준의 크래커가 나오기도 한다(물론 내 관점이다). 그리고 컴퓨터에 관해서 그렇게 능통하지는 않지만 사회공학 해킹 능력이 뛰어난 사람도 나온다.

각 에피소드들은 상당히 재미있어서(이 부분은 공저자인 윌리엄 사이먼의 도움이 컸을 것이다) 소설처럼 읽기에도 전혀 무리가 없다. 책을 11개의 이야기가 모여있는 모음집 정도로 생각하고 재미있게 읽을 수 있을 정도지만 각 에피소드마다 있는 케빈의 에피소드 분석과 대응방안은 보안책인자나 보안을 담당하고 있는 사람들에게 많은 도움을 줄 수 있을 것이다. 대부분의 회사나 단체들은 보안사고가 발생하는 그 사고를 공개하고 대처방안을 논의하거나 자신들의 대처와 그 결과를 밝히지 않는다. 오히려 그런 사고가 발생했다는 사실을 감추기 위해서 노력하는 경우가 많다. 결국 해킹의 유형들이 공개되는 경우가 드물기 때문에 대처를 확실하게 수립하지 못하는 것이다. 이 책의 에피소드들은 대부분의 공격기법들을 망라하고 있기 때문에 굳이 케빈의 조언을 유념하지 않더라도 책을 읽은 보안담당자들은 각각의 케이스에 따른 대처방안을 스스로 생각해 볼 수 있을 것 같다.

결론


 먼저 출판되었던 케빈의 첫번째 책과 마찬가지로 이번책에도 그가 제시하는 대처방안을 모두 적용한다는 것은 현실적으로 거의 불가능하다. 이러한 문제점 때문에 그의 책은 완벽한 보안 가이드가 되기 힘들다. 하지만 우리는 아마도 그의 책에서 필요한 부분이 집중적으로 보안을 강화할 수 있는 방법 얻을 수 있을 것이다. 하나의 구멍만 있어도 1000의 구멍을 막기 위해 들였던 노력이 수포가 되어 버리는 보안분야에서는 넓은 범위를 방어하기 위한 전략보다는 중요성에 따라 다른 수준의 보안을 적용하는 것이 더 중요하다.

케빈은 단순하게 컴퓨터를 이용한 침입뿐 아니라 사회공학해킹이나 여러기법들을 혼용한 기법 등도 다루고 있는데 그가 제사힌 대처방안들을 이용하면 꽤나 높은 수준의 보안 시스템을 구축할 수 있다. 그러한 보안시스템을 높은 수준의 보안을 요하는 곳에 적절하게 적용하는 것이 이와 같은 책을 보고 얻을 수 있는 것이 아닐까 생각한다. 확실히 넓은 지역을 몇개의 구멍만을 유지한체 힘겹게 방어하는 것보다 필요한 지역만 각각 철통같이 방어하는 것이 유리하다.

2005년 5월 2일 월요일

눈을 뜨고 명확하게 보자.






촘스키, 누가 무엇으로 세상을 지배하는가
레미 말랭그레 그림, 드니 로베르 외 인터뷰 정리/시대의창

노암 촘스키란 이름은 프로그래밍을 공부하면서 AI분야에 사용되곤 하는 생성문법이론의 창시자로 몇번 들어본 적이 있었다. 그리고 가끔 다른 사람들의 글에서 그의 이름이 언급되곤 하는 걸 봤던 것이 내가 그에 관해 들어본 전부이다.가끔씩 듣는 그에 대한 이야기로 인해 막연하게 관심을 가지고 있었다. 우연하게 몇권의 책을 구입하면서 촘스키 3부작이란 이름으로 그를 인터뷰한 내용을 책으로 발간한 내용을 만날 수 있었다. 활발한 활동의 대부분을 저술로 보내는 만큼 그가 직접 저술한 책들이 여러권이지만, 왠지 인터뷰를 통해서 처음 접한다는 것이 좀 더 친근한 첫만남인 것 같은 생각이 들었다.

프랑스에서 출간된 이 책은 촘스키와 프랑스인인 인터뷰어와의 대화를 기초로 작성되었다. 기본적으로 별다른 가감없이 질문과 답변을 정리하고 있으며, 이해를 돕기 위한 주석을 통해서 보충 설명을 하고 있다. 질문에 대한 답변을 통해서 촘스키는 그가 평소 말하고 주장하는 바를 다양하게 표현하고 있다. 다양한 사례를 통해서 우리는 그의 주장을 파악할 수 있으며, 그의 생각을 알아볼 수 있다.

프랑스에서 발간된 책인 만큼(실질적인 저자-인터뷰어-도 프랑스인인 만큼) 미국과 유럽을 비교하면서 설명하고 있는 부분이 많다. 그래서 미국만큼 유럽에 익숙하지 않은 내가 읽기에는 쉽게 이해되지 않는 부분이 몇 군데 있었다. 미국에 대해서도 그다지 많은 부분을 알지 못하기 때문에 이해도가 더 떨어지긴 했으나 맥락을 짚어 가면서 이해하고자 노력하였다.

책의 서두에서는 프랑스에서 많은 화제가 되었던(맥락상으로) 포리송 사건에 대해서 이야기를 하고 있다. 이 부분은 국내에 그다지 소개된 부분이 아니고 관심있을 만한 사건은 아니라서 이부분에 대해서는 표현의 자유에 대한 그의 생각을 엿보는 기회로 생각하였다. 표현의 자유는 그가 이야기 하는 각종 권력을 감시하고 대항하는 활동을 위한 기본적인 전제조건이다. 결국 표현의 자유가 침해받는 어떠한 상황이라도 그는 용납할 수 없었을 것이다. 나 역시 얼마 전에 읽었던 "신문읽기의 혁명(손석춘)"에서 이야기되었던 보도관제 등의 표현의 자유에 대한 억압을 생각해보면 표현의 자유에 대한 억압은 결국 부당한 권력 행사를 돕는 작용을 하게 될 것이라 생각하고 있었다. 아마도 우리가 거대한 권력에 대항(혹은 최소한의 권리행사)을 한다면 표현의 자유만이 도구가 될 수 있을 거라 생각한다.

200페이지 정도의 분량의 이 책에서 그가 이야기 하고자 하는 바는 일관된 한가지 주장이다. 그는 수 많은 권력들로 부터 대중들에게 가해지는 피해들을 경고하고 그들 권력을 감시해야 한다고 말한다. 그의 주장은 언듯보면 황당한 음모이론처럼 느껴지기도 한다. 국가권력, 언론권력, 기업권력과 같은 강한 힘을 가진 자들이 세상을 지배하기 위해서 어떠한 행동을 하고 있다는 그의 주장은 음모이론들과 어느 정도 맥락을 같이 한다고 볼 수도 있다. 그렇다고 그의 주장이 황당하기만 한 이야기인 것은 아니다. 우리의 주변에는 잠시만 생각해봐도 알 수 있는 음모들이 존재한다. 신문은 그들의 생각 혹은 더 큰 권력의 지시에 의해서 기사를 조작(편집 및 모든 조작을 생각해서)하며 기업은 그들의 의도를 관철하기 위해서 폭력이나 권력을 동원하기도 한다.

얼마 전에 삼성에 노조를 만들기 위해서 준비하던 사람들의 휴대폰이 도청당하고 그들에게 유무형적으로 협박이 가해진 사건이 있었다. 실제로 현재까지도 노조없는 기업을 유지하고 있는 삼성이 노조건립을 막기 위해서 다양한 조작을 하고 있다는 사실은 널리 알려져 있다. 불법적인 방법까지 동원하면서 그런 활동을 벌이고 있지만, 언론과 국가의 보호로 이러한 일들은 언론에도 널리 보도되지 않고 재판에서도 유리한 판결을 받는다. 최근 판결에서도 삼성은 기소중지를 얻어냈다(도청및 위치추적 등에 대한 고소).

촘스키는 이러한 권력등에 대항해서 글을 쓰고 연설을 한다. 스스로를 안전한 담장안에서 활동하는 운동가라 말하고 있지만 그는 세상에 진실을 알리고 움직임을 일으키기 위해서 그의 수많은 글에서 주장하고 있다. 권력에 대한 경계심을 가지고 그들을 감시해야하는 의무는 대중에게 있다고 말하고 있는 것이다.

2005년 3월 11일 금요일

독기학설, 혜강 최한기로 가는 발판





독기학설
김용옥 지음/통나무

평소 혜강 최한기에 대해서 관심을 가지고 있었으나 그의 대표작인 기학이나 신기통, 추측록 등을 읽어볼 엄두를 내지 못하고 있었다. 언젠가는 읽어봐야겠다는 막연한 생각만을 가지고 있었을 뿐이었다.

그러던 차에 독기학설이라는 책에 대해서 말을 들었다. 기학이라는 책에 대한 독서감상문이라는 김용옥씨의 주장이었는데. 읽어보고 느낀 점은 혜강을 알기 위해서 입문하려는 나같은 사람에게 들려주고 싶은 혹은 혜강에 대해서 생각을 해본적이 없는 사람에게 알려주고 싶은 말을 쓴 것 같다는 생각이 들었다. 사실, 이 책은 원래 단행본으로 발간하려는 글이 아니었고 어떤 학술지에 실을 학술논문으로 작성하였다고 한다. 그 학술지에서 이 글의 파괴력(학자들의 입장에서 생각해보면 리차드 도킨스의 [과학혁명의구조]로 인해 느꼈을 파괴력같은 느낌이었을 것 같다) 때문에 게재를 거부 당했다고 한다.

결국, 단행본으로 발간을 결심했고 내가 읽은 책은 1999년에 출시된 책에 몇가지 수정을 한 2판이다.

학술논문으로 작성되었던 글인 만큼 생각없이 쉽게 읽을 수 있는 글은 아니다. 일단 의견을 뒷받침 하기위한 각주들이 꽤나 많은데, 각 각주들은 설명하는 주석도 있지만 대부분 참고문헌에 대한 언급이기 때문에 각 참고문헌들에 대해서 별다른 지식이 없는 나와 같은 사람들에게는 그 참고문헌의 내용을 유추해야 하는 어려움이 따른다. 그리고 평소 한자를 읽을 기회가 없어서 거의 잊고 있던 한자들도 꽤나 나오기 때문에(물론 한글로 독음한 것도 있으나 아닌 경우도 많다) 독음 자체를 하지 못해 이해하기 힘든 부분도 있으며 한글로 나오는 단어라도 뜻을 몰라 사전을 뒤져야 하는 경우도 있다(평소에 어휘력의 부족을 느끼지 못했는데 김용욕씨의 어휘의 범위가 나와는 다르다는 것을 느꼈다. 그만큼 풍부한 어휘를 사용하기도 하고 한편으로는 어렵게 말을 하기도 한다 ^^;).

글은 크게 두 부분으로 나누어져서 서술되는데 첫번째 부분에서는 조선조의 철학의 흐름에서 우리가 실학이라고 알고 있는 부분이 실제로 존재했었는지 조선근대사의 많은 생각들이 실학이라는 테두리 안에서 존재했었는지를 따져본다.

이 부분을 읽으면서 리차드 도킨스의 [과학혁명의구조]를 읽고 느꼈던 느낌을 받을 수 있었다.
리차드 도킨스는 그의 저서에서 우리가 흔히 교과서에서 보는 변증법적인 과학 발전과정은 실제의 과학사에서 찾아보기 힘들며 오히려 각 시대에 존재하였던 수많은 생각들 중 하나가 주류를 이루고 있던 생각들을 대체하는 과정(주로 나이 먹어 죽음으로서)에서 패러다임 쉬프트(패러다임의 교체)가 일어난다고 이야기 하였다.

그럼에도 불구하고 후세에서 그런 과정을 기술할 때, 변증법적으로 한 이론의 취약점이 발견되고 그 이론을 보충한 반이 다시 원래 이론인 정과 합쳐져서 그 합이 다시 주류를 이루는 이론인 정이 된다는 알려져 있는데. 이런 형식을 사용하는 것은 실제로 실제적인 과정을 잘못 해석하였거나 후세의 배움의 용이성을 위함이라는 것이다(이 의견에는 다른 사람들의 생각도 포함되어 있다).

그렇게 실학의 실체에 대해서 이야기하며 도올은 조선말에 살았던 혜강 최한기라는 사람에 대해서 주목할 필요가 있다고 한다. 혜강는 주자학이라는 하나의 패러다임 안에서 계통을 이루던 대부분의 조선조 학자들과는 괘를 달리 했다는 것이다. 과학사의 패러다임 쉬프트와 같은 사건을 일으키지는 못했지만, 충분히 가치가 있는 연구를 하였으며 그 연구는 그 시점에서의 위대함 때문에 현실에서 조명해야 할 것이 아니라 지금 시점에서도 필요한 것이기 때문에 살펴볼 필요가 있다고 말한다.

150페이지도 안되는 짧은 분량의 책이지만 그 안에는 진실을 보기위한 씨앗이 들어있다고 생각한다. 물론 도올의 의견이 무조건 옮다는 것은 아니지만, 나 역시 그러지 않을까 생각했던 그리고 궁금했던 부분에 대한 그의 의견에는 대부분 동감한다.

기학이 새롭게 나왔다고 한다(2004년에 개정판이 출시되었다). 내가 어떤 것들을 느끼고 배울 수 있을지 흥분이 된다. 새로운 것을 배우고 그 배움을 익히는 것처럼 즐거운 것이 또 있을까. 독기학설을 통해서 혜강 최한기의 생각에 접근 할 수 있는 발판을 쌓은 느낌이다. 멀게만 느껴져서 다가가기 힘들었던 벽에 조금은 가까워진 느낌이다.

[인상깊은구절]
다산은 일생을 페리페리(주변)에서 살았다. 그렇지만 그의 모든 관심은 센타(중심)에 있었고 실제적으로 그의 행동은 센타에 영향을 주었다. 혜강은 일생을 센타에서 살았다. 그러나 그의 관심은 항상 센타를 초월한 곳에 있었다.

2005년 3월 7일 월요일

프로그래밍에 관한 철학서








Art of UNIX Programming
Eric S. Raymond 지음, 김희석 옮김/정보문화사
유닉스나 리눅스게 많은 관심을 가지고 있지 않은 사람이라도 컴퓨터에 관심을 가지고 여러 분야를 공부하다 보면 에릭 레이몬드라는 사람을 한번쯤은 접하게 된다.이책의 필자인 에릭 레이몬드는 유닉스/리눅스 공동체에 여러가지 공헌을 한 프로그래머로서도 많이 알려져 있지만, 몇가지 사건으로 더욱 잘 알려져 있다.

그 첫번째가 시장과 성당 이라는 글을 통해서다. 이 논문은 fetchmail이란 프로그램을 통해서 소프트웨어 개발에서 어떤 스타일이 존재하는지 그리고 어떤 의의를 지니고 있는지 연구한 결과를 담고 있다. 두번째로 Open Source운동의 중심에서 활동한 면을 들 수 있다. 여러가지 의견이 있지만 그는 Open Source운동에서 중심적인 역할을 담당했던 인물이다.

그 이외에도 몇가지 일들로 인해서 그는 유닉스/리눅스 공공체에서는 널리 알려진 인물이 되었으며, 그 이외의 분야에서도 관심을 받 게 되었다.

평소에도 해커 사전이라고 불리는 Jargon File 등을 비롯한 다양한 문서들을 집필, 감독 하였고 활발한 집필활동을 펼치고 있다. 주로 그가 작성한 문서들은 온라인으로 배포가 되었고 변동된 사항이 있으면 추가하여 문서가 업그레이드 되었다. "Art of Computer Programming"역시 온라인으로 존재하며 5년간에 걸쳐서 꾸준하게 작성한 결과물이다.

책은 흐름상 두 부분으로 나뉘어진다. 첫번째는 유닉스의 철학을 설명하는 부분이고 두번째는 그 철학이 어떻게 적용되며, 어떤식으로 작동하지는를 말하는 부분이다. 우리들이 흔히 배우던 교과서에서 보자면 삼각함수의 원리와 그 유례를 설명하는 첫 부분과 예제와 연습문제를 통해서 각 원리들이 어떻게 적용되고 우리는 어떻게 적용시켜 다른 문제를 해결할 수 있는지 알게 되는 것과 같다.

특히, 두번째 부분에서는 성공적으로 유닉스 개발 철학이 적용되어 개발된 소프트웨어들을 살펴본다. 만일 독자가 자신의 프로젝트에 서 적용했을때 어떤 효과를 기대할 수 있을지, 어떻게 적용할 수 있을지 알도록 돕고 있다.

책에서 설명하는 유닉스의 철학은 비단 유닉스에서만 성립는 것이 아니라 소프트웨거 전반적에 걸쳐서 타당하게 적용될 수 있는 내용 들이다. 유닉스 공동체의 이런 철학들은 유닉스가 원래 좋은 소프트웨어고 공동체가 원래 훌륭했기 때문에 발생한 것이 아니다. 단지, 30년이 넘는 세월 동안 프로젝트가 진행되고 소프트웨어가 발전해 오면서 쌓이게 된 지식들이 집합되었기 때문에 그와 같은 철학을 탄생시킨 것이다. 분명 이 책에는 그런 지식들이 포함되어 있다. 어느 정도 도움을 받을 수 있을 건지는 개인에 따라 다르겠지만, 적 든 많든 도움을 얻을 수 있을 거라 생각한다.

책의 제본상태는 훌륭하지만, 몇 군데 오타가 있고, 조금 이해하기 힘든 번역(오역은 아니나 혼란스러웠다)도 준재한다. 하지만, 전체적으로 번역은 잘된 편이다.

이 책을 보면서 몇번이나 소리내어 웃었는지 모른다. 너무 재밌어서 지하철에서도 한손에 들고 시간가는 줄 모르고 읽었었다(책이 작 은 편이 아님에도 불구하고!). 내가 사용하던 프로그램, 내가 프로그래밍 할 때, 생각없이 했던 작업들에 그런 원리가 숨어 있다는데 놀랐고, 나의 프로그래밍 방법에 개선할 점을 알 수 있었다. 비록 유닉스 프로그래밍이란 타이틀을 달고 있지만, 위에서 말한바와 같 이 다양한 분야에 적용될 수 있으며 어느정도 프로그래밍을 해서 자신만의 방법이나 생각같은게 잡힌 사람들에게는 중간 길잡으로써 좋을 거라 생각한다.

인터넷에 전문이 공개되어 있다.

2004년 10월 23일 토요일

이 책을 읽으면서 생각해봐야 할 것들.








Professional 소프트웨어 개발
스티브 맥코넬 지음, 윤준호 외 옮김/인사이트
Code Complete란 책으로 국내에서 유명한 스티브 맥코넬은 글을 잘 쓰기도 하고 많이 쓰는 것으로 유명한 사람중 한명입니다. 그는 자신이 느끼고 겪은 일들, 자신이 생각한 내용들을 책으로 써서 많은 사람들에게 도움을 주는데, 이 책은 그런 그의 작업 중 평소의 생각을 정리한 책이라 할 수 있습니다.필드에서 일을 하고 프로젝트 등을 진행해 오면서 자신이 느꼈던 점들을 정리해서 발표한 내용이 이 책이 가지고 있는 특징이라 할 수 있습니다. 그렇기 때문에 저자가 살고 있는 미국이라는 지역에 토대를 두고 있는 이야기들이 대부분이라고 할 수 있습니다.

하지만, 소프트웨어 산업이라는 산업 구조상 범세계적일 수 밖에 없고 우리나라의 대학 제도나 그 밖에 많은 것들이 미국과 크게 다르지 않기 때문에 우리에게 역시 많은 도움이 될 수 있는 서적입니다.

이 책을 읽을 때는 크게 세가지 사항에 염두를 두고 읽는 것이 좋습니다.
저자가 말하고자 하는 것은 단순하게 막개발을 벗어나서 체계적인 개발을 하자는 식의 계몽구호 같은 것이 아닙니다. 저자는 소프트웨어 개발의 향상을 위해서 크게 세가지 것에 중점을 두고 이야기 하고 있습니다.

첫번째로 우리나라에는 거의 알려져 있지 않은 소프트웨어 엔지니어링이라는 개념에 대해서 사례를 들어가며 자세히 설명을 하고 있습니다. 더불어 소프트웨어 엔지니어링의 산출물들을 적용한 다양한 사례를 보이면서 그 효율성을 이야기하고 있습니다.

두번째는 공학적인 측면 그리고 전문적인 측면에서의 소프트웨어입니다.
이 부분에서 저자는 소프트웨어를 개발하는 사람을 다른 전문영역(건축사나 의사 등)에 비교하여 설명하고 있습니다. 그리고 전문적인 소프트웨어 개발을 위하여 인증제도와 윤리규칙의 중요성이 대해서 말하고 있습니다. 실제로 다른 전문영역에는 각각의 인증제도가 존재하고 있으며, 직업별 윤리조항이 존재합니다. 이런 부분은 직업의 전문성 강화에 도움을 줍니다. 저자는 소프트웨어 산업에도 믿을 수 있는 인증받은 개발자들이 참여할 수 있기를 바라고 있습니다. 이러한 부분은 미국에서도 소프트웨어공학 관련 인사들의 노력으로 소프트웨어 관련학과에 대한 공인인증이라던지 윤리규정 제정과 같은 작업들이 이루어지고 있습니다.
국내에도 최근들어 컴퓨터 관련학과들에 대한 인증작업이 추진되고 있습니다. 실용적이고 체계적인 인증기준들만 마련된다면 대학 졸업생의 수준이 전문적인 개발자로 활동할 수 있을 만큼이 될 수 있을것입니다.

세번째는 개인의 역량강화를 위한 개인과 조직의 노력입니다.
저자는 책에서 자신의 회사인 Construx의 PDL이란 제도를 통해서 이 부분을 말하고 있습니다. 저자는 회사에서 자체적으로 개발한 PDL이란 제도를 도입하여 사내 직원들의 소프트웨어 개발 역량을 점진적으로 향상시켜가고 있다고 말하고 있으며, 회사의 사례를 들어 말하고 있습니다. 리뷰에서 상세하게 말할 수는 없지만, 저자의 회사에서는 PDL을 통해 많은 성과를 거두었으며, 이는 CMM의 P-CMM과도 통한다고 볼 수 있을 것 같습니다.

첫번째 저자의 생각은 이미 잡지나 책 등 다양한 매체를 통해서 국내 소프트웨어 업계에 알려진 그리고 알려지고 있는 내용입니다. 이 책에서 우리가 주목하야 할 것은 두번째와 세번째 생각입니다.

전문적인 소프트웨어 개발자로서의 첫단계인 대학에서의 교육, 그리고 개인의 역량강화를 위한 노력과 조직의 조직원 역량강화를 위한 노력. 이러한 것들이 앞으로 필요하고 이러한 것들을 이루었을 때, 높은 역량을 가진 조직으로 그리고 높은 역량을 가진 개인으로 나갈 수 있다고 생각합니다.

Man of Month를 마치며

벌써 2020년 1월 14일이다. 19년의 마지막 달에 Man of Month라는 팀의 제도를 시작한다고 했었는데, 12월이 지나고 그 다음 달도 거의 절반이 흐른 것이다. MoM을 시작하면서 하겠다고 계획했던 것들도 실제 한 것들과 비교해보니...