블로깅을 시작합니다!

공지사항 : 2007.03.17 19:09   By LiFiDeA
블로깅을 시작합니다.

사실 저는 2003년에 위키를 처음 접했고, 2005년부터는 개인지식관리용 위키엔진을 직접 만들어 사용해왔으니 블로그는 진작 만들어야 했는지도 모릅니다. 작년 말부터는 프레임웍 2.1 세미나 및 한국 루비 사용자 모임도 나갔었고, 주변 분들 - 대산형, 정목이, 동신이 등등 - 중에도 블로거가 꽤 많기에 블로그를 갖는 것이 어떤 의미를 갖는지로 잘 알고 있습니다.

지금까지 제가 블로그를 시작하지 못했던 이유는 아이러니하게도 그냥 시작하기에 블로그는 제게 너무나 중요한 것이기 때문이었습니다.  단순히 일기 및 정보를 공유하는 차원을 넘어 제 아이덴티티의 연장이요, 전문가로서 저의 상징이라고 생각했던 겁니다. 그러다보니 모든 것이 완벽한 상태에서 출발하려 했습니다. 전혀 새로운 개념의 블로깅 엔진을 만드는 것에서부터 독창적인 디자인 및 컨텐츠까지 갖추어진 상태라야 했죠.

하지만 이런 어설픈 완벽주의는 결과를 내는 데에 바람직한 것은 아니죠. 저는 결국 옴짝달싹 할수없는 상태에 빠지고 말았습니다. 일종의 Paralysis of Analysis가 된 겁니다. 청사진은 화려하고 아이디어도 많은데 정작 한 발짝도 움직일 수 없었던 거죠.

결국 일단 첫 걸음을 내딛기로 하였습니다. 계정은 티스토리에서 받아 개인 도메인을 연결하였고, 스킨도 골라서 사용하기로 한 겁니다. '이상적인 모습'과는 거리가 있지만 일단 서투르게나마 시작한 후 하나씩 갖추어 가려고 합니다. 사실 이 에세이도 아웃라인을 작성하고 쓰려고 했지만 폴 그레이엄의 글처럼 그냥 마음이 움직이는 대로 작성하고 있습니다.

앞으로 주로 다룰 주제를 설명하기 위해 저의 연구 관심사를 밝혀야겠군요. 바로 '우리 각자가 더 나은 사람이 되고, 더 나은 삶을 살도록 도와주는 정보 시스템을 개발하는 것'입니다. 이런 일에 관심을 가지는 이유는 사람이 가진 무한한 잠재력, 그리고 이를 최대한 끌어낼 수 있는 테크놀로지의 가능성을 믿기 때문입니다. 예를 들면 '프랭클린 플래너'를 통해 사람들이 하려는 일과 비슷하지만 첨단(state-of-the-art)의 정보기술을 최대한 활용하여 해 보자는 것입니다.

좀더 구체적으로는 개인의 삶에서 쏟아지는 수많은 데이터, 정보, 지식을 수집(입력이 아님)하여 여기서 의미(semantic) 정보를 추출하여 자동으로 조직화하고, 이를 인지구조에 최적화된 방법으로 서비스하자는 것입니다. 이 청사진이 실현될 경우 기억/분석/종합/창조 등 우리가 수행하는 대부분의 지적 활동의 생산성은 현저하게 향상될 것입니다.

저는 2002년부터 해당 주제에 천착해왔으며, 지식관리-목표관리-행동관리의 3가지 단계를 거쳐 가능성이 최대한 실현된 삶에 도달할 수 있다고 생각합니다. 이제 제 블로그의 이름이 LiFiDeA인 이유를 아시겠나요? Life as an Idea(이데아) - 이상으로서의 삶에 도전하자는 뜻입니다. LiFiDeA 로고속의 인물인 다빈치는 자신의 가능성을 최대한 실현한 점에서 존경하고 있습니다.

이는 물론 간단한 일이 아니기에 다양한 관점에서의 연구가 필요하며, 이러한 노력의 흔적이 제 블로그의 주된 컨텐츠를 구성할 것입니다. 기술적으로 다음 분야와 관련됩니다.

  • Artificial Intelligence : 인공지능 분야에는 더 똑똑한, 인간과 닮은 정보시스템을 만들기위한 많은 노력이 존재합니다. 특히 Knowledge Representation, Machine Learning, Natural Language Processing 등의 분야에 관심이 있습니다.
  • Future Web : 웹은 어떤 식으로든 발전하여 전세계의 모든 것을 연결하게 될 것입니다. 미래의 웹에서 개인과 조직은 어떻게 자신을 드러내고, 상호작용하게 될까요?
  • Information Retrieval : 정보검색 분야에도 관련된 기술이 많습니다. 특히 텍스트를 재료료 의미있는 데이터를 추출해내는 Text Mining / Information Extraction분야를 눈여겨 보고 있습니다.
  • Information Visualization : 시스템에 저장된 정보는 효과적으로 표현되어야 합니다. 테이블이나 리스트를 넘어 좀더 직관적인 방식으로 정보를 표현하는 기술이 필요합니다.
  • Dynamic Language : 앞서 열거한 기술들이 실제 사용가능한 시스템으로 구현되기 위해서는 강력한 언어 및 개발 환경이 필요합니다. Dynamic Language, 특히 간결하면서 풍부한 표현력을 지닌 Ruby및 Rails웹프레임웍을 좋아합니다.

물론 기술적인 관점에서만 접근해서 풀 수 있는 문제는 아니죠. 결국 목표는 인간을 향하고있기에 인간에 대한 이해가 필요합니다.

  • Human : 인간의 인식, 기억, 행동 등의 인지과학적 주제 / 욕망, 감정, 잠재의식 등의 심리학적 주제 / 피로 등의 생리학적 주제가 모두 관심의 대상입니다.
  • Self-help (자기관리) : 스스로의 삶을 개선하려는 노력을 가리킵니다. 제대로 된 방법론 없이 이를 뒷받침할 수 있는 시스템을 만드는 것은 쉽지 않겠죠. 구체적으로는 배우고 접하는 정보와 지식을 관리하는 법, 지식을 실천가능한 목표로 전환하는 법, 목표를 최대한 실천에 옮기는 방법에 관심이 있습니다.

어느 하나 간단한 주제가 아니지만 시간을 가지고 차곡차곡 채워 가렵니다.

신고

'공지사항' 카테고리의 다른 글

2010년, 성장과 성숙의 한해로  (4) 2010.01.18
블로그 주소이전 및 운영 계획  (0) 2009.09.03
향후 운영 계획입니다.  (0) 2007.04.05
블로깅을 시작합니다!  (3) 2007.03.17

개인 프로젝트를 왜 해야 하나

Essay : 2007.03.01 17:23   By LiFiDeA

오늘 저녁, 학교에서 MyKMS 디버깅을 하다가 문득 '내가 이걸 왜 계속 하는거지'하는 회의가 들었다. 사실 방학을 맞아 많은 시간을 스스로의 계획 하에 보내는 상황에서, 그 중 많은 부분을 개인 프로젝트에 보내고 있는데 최근 부쩍 이러한 회의가 자주 들고 있다. 나의 직관이 어떤 일의 가치에 대해 의구심을 품는 상황에서 보내는 신호인 '회의'를 받는 찰나에 개인 프로젝트에 대한 생각을 정리해보기로 했다.

사실 내가 개인 프로젝트를 시작한 것은 하루이틀 된 것은 아니다. 2002년 10월 경 일정관리 - 개인적으로 별로 좋아하지 않는 수식어이지만 - 프로그램인 MyLEO에서 시작해서 개인지식관리 프로그램인 MyKMS까지, 그리고 최근에는 이 두가지를 뒷받침하기 위한 이론개발까지 벌써 4년 가까이 이 일에 매달린 것이다.

그리고 그 동안 투자한 시간과 노력은 정말 어마어마하다. 내 일정에 대한 활동별 통계를 보여주는 MyLEO의 데이터 기준으로 주당 평균 10시간은 투자했으니, 일년이면 500시간, 4년이면 2000시간 가까이 된다. 내가 책 한권을 읽는데 5시간이 걸린다고 가정하면, 책 400권을 읽을 수 있는 시간이다. 다른 언어 - 중국어/일본어 - 를 하나 마스터하고도 남았을 시간이다.

정신적인 부담도 상당하다. 대부분의 프로그램이 서버에서 동작하는 까닭에 서버에 장애라도 생기면 일정 및 지식관리를 사용할 수 없다는 부담도 있었고, 뭔가 필요한 기능인데 디버깅이 안 되면 짜증이 막 나기도 했다.

사용자 삽입 이미지

MyLEO의 통계 화면

그렇다면 내가 그동안 이렇게 몰두한 일은 과연 값어치가 있는 것인가? 결론적으로 말해서 가치가 있다고 생각한다. 그동안의 노력에 대한 아쉬움 때문이 아니라 미래를 볼 때 그렇다고 생각한다. 그 이유를 알아보기 위해 내가 개인 프로젝트에 대해 세워 둔 원칙을 살펴보자. 내가 개발을 할 때에는

  1. 스스로에게 절실히 필요한 프로그램을 개발한다.
  2. 더 좋은 프로그램이 있는 경우에는 개발하지 않는다. (Don't re-invent the wheel)
  3. 평생 쓸 수 있는 품질을 유지한다.
    • 당장 시간이 더 들더라도 제대로 설계한다.
  4. 비슷한 필요를 지닌 다른 사람이 쓸 수 있도록 범용으로 만든다.
    • 개발과 동시에 문서화한다.
    • 패키지 수준의 범용성(configurability)을 유지한다.

이와같은 원칙을 지키도록 노력한다.

물론 원칙이 100% 지켜졌다고 말할 수는 없겠지만, 스스로의 생활에 많은 도움을 받으며, 주변에서 필요로 하는 사람에게 도움을 주기도 하였다. 내가 주로 개발한 프로그램이 개인 생산성에 지대한 영향을 끼치는 일정 및 지식 관리 프로그램이고, 이변이 없는 한 내가 평생 프로그램을 사용할 것임을 감안할 때, 그동안 프로그램 개발에 많은 시간과 노력이 투입된 것은 사실이지만, 내가 평생동안 절약할 수 있는 시간과 노력이 개발에 투자한 그것보다 훨씬 클 것이라고 생각한다.

또한 내가 스스로 편리하게 쓰는 프로그램을 쓰고싶은 사람이 있어서 그 사람에게도 도움을 줄 수 있다면 엔지니어로서 이보다 보람된 일은 별로 없을 것이라는 생각이 든다. 다른 사람이 만든 것을 불편한대로 사용하는 것이 아니라, 스스로의 필요에 정확히 부합하는 도구를 만들어 사용하는 만족감에 비하면 차라리 부차적인 것이기는 하지만 말이다.

이러한 활용의 측면 이외에 개인 프로젝트를 통하여 개발 전반에 걸쳐서 엄청나게 많은 것을 배울 수 있었다. 회사, 그리고 학교에서는 계속 C/C++ 프로그래밍만 했던 내가 CSS / Javascript / AJAX / XML / XSLT 웹 전반에 걸쳐서 폭넓게 공부하고 실습할 수 있었던 데에는 개인 프로젝트의 공이 절대적이었다. 최신 기술이 나오면 바로 자료를 찾아 공부한 후에, 개인 프로젝트에 적용해 보고 희열을 느끼곤 했다.

이러한 지식보다 더 중요한 배움이 있다면, '오랬동안 쓸 수 있을 만한' 소프트웨어 개발에 대한 노하우일 것이다. 사실 프로그램 개발은 고등 교육을 받은 사람은 누구나 할 수 있는 일이며, 그래서 소프트웨어 개발자가 전문직으로 대우받지 못하는 측면이 있다. 하지만, 소프트웨어 개발의 목표를 '대충 돌아가는 일회용' 프로그램이 아닌 '평생 쓸만한 고품질' 프로그램으로 바꾸어 설정하면 이야기는 완전히 달라진다. 지속 가능한 소프트웨어 개발을 위해서는 설계 및 개발 방법론 전반에 대한 폭넓은 이해와 통찰력이 필요하기 때문이다.

The_Pragmatic_Programmer에서 David Thomas가 설파하듯이 음식만 부페하는 것이 아니다. 소프트웨어 역시 제대로 설계되고 관리되지 못하고 관리되지 못하면 부폐하는 것이다. 문제는 대부분의 IT 기업에서 이러한 고품질의 소프트웨어 개발보다는 기한 맞추기식 개발이 요구된다는 것이다. 이런 환경에서 일을 통하여 능력을 개발하는 것은 어려운 일일 수밖에 없다.

하지만 나는 '평생 직접 고쳐가며 쓸' 소프트웨어 개발을 목표로 삼았기 때문에 항상 설계 및 방법론에서 최상의 것을 고집했다. 물론 그 까닭에 수차례 기존 코드를 거의 다 버리고 다시 작성해야 했긴 하지만 말이다. MyLEO 개발이 1년 정도 되었을 때 하드코딩한 웹페이지 수십개를 클래스 라이브러리로 바꾸던 일, 그 클래스 라이브러리의 코드 중복을 줄이기 위해 상속 구조로 바꾸면서 수많은 코드를 고쳐야 했던 일이 떠오른다. 당시에는 상당히 고달펐지만, 그일을 겪으면서 뼈저리게 체득한 '좋은 디자인'에 대한 깨달음과 집착은 엔지니어로서 평생의 자산일 것이라고 생각한다.

그동안 개인 프로젝트를 하면서 몇가지 느낀 것이 있다. 앞서 언급한 나의 원칙과도 통하는 것이지만, 우선은 최고의 품질을 유지해야 한다는 것이다. 소프트웨어의 품질은 '설계-구현-테스트-유지보수'로 이어지는 생명주기 중 어느 부분에 가장 많은 노력이 들어가느냐의 문제로 볼 수 있을 것이다. 품질좋은 소프트웨어는 설계에, 그 반대의 경우에는 유지보수에 대부분의 노력이 들어갈 것이다. 스스로 만들고 고쳐가며 사용할 프로그램에서 유지보수에 많은 노력이 들어가야 한다면 수지(?)가 맞지 않는다. 개발은 잠깐이지만 유지보수는 평생이기 때문이다. 문서화의 경우에도 마찬가지다. 하루이틀 쓸 프로그램이 아니라면 자신이 나중에 수정할 때에도 문서를 만들지 않으면 다시 코드를 보아야 하는 수고스러움이 있다.

최근 나의 원래 전공인 전자공학 - 마이크로 컨트롤러를 사용한 로봇 제작 - 에 다시 관심이 생겨서 공부하기 시작했다. 이번에도 내 방식대로 뭔가 쓸만한 것을 만들면서 공부하려고 한다. 개인 비서 로봇같은 것을 만들어 볼 생각이다. 아침에 깨워주고, 기분에 따라 음악도 들려주고 재롱도 부리는 그런 것 말이다. 아직은 개념조차 상당히 애매한 단계이지만, 미래에는 누구나 그런 로봇을 하나씩은 갖고 있지 않을까?

진정한 엔지니어는 주변에서 끊임없이 불편함과 개선점을 찾아 이를 개선할 수 있는 좋은 도구를 만드는 사람이라고 생각한다. 그리고 다른 사람의 문제를 해결하기 전에 스스로의 문제를 해결해 보는 것이 자연스러운 순서일 것이다. 오늘 당신의 문제는 무엇인가요?

신고

'Essay' 카테고리의 다른 글

최선을 다하지 않는 것이 최선이다?  (10) 2010.03.06
전문가의 시대는 끝났나  (0) 2008.10.03
개인 프로젝트를 왜 해야 하나  (0) 2007.03.01
글쓰기의 가치  (0) 2006.12.31

글쓰기의 가치

Essay : 2006.12.31 18:36   By LiFiDeA

온라인 상에 글을 쓰기로 결심했다. 다양한 주제에 대한 나의 생각을 블로그에 올리기로 한 것이다. 이미 몇 편의 글을 작성해서 올린 시점에서, '본격적으로'글을 쓰기에 앞서서 '글을 쓴다는 것'에 대해 글을 쓸 필요성을 느낀다. 글을 써야 하는 이유와, 지켜야 할 원칙을 서술하겠다.

사실 혼자 자유롭게 생각하는 것을 좋아하는 나로서는 글을 쓰는 것이 상당히 자연스러운 일이었다. 하지만, 글을 그다지 많이 쓰지는 않았다. 글을 쓰기보다는 아웃라인 작성이나 마인드 맵 그리기 등을 주로 해 왔기 때문이다. 주된 이유는 '효율성' 이었던 것 같은데, 같은 생각을 표현할 때에 시간이 오래 걸리고, 자연스럽게 나중에 이를 다시 떠올려서 수정하는 데에도 더 많이 들어가는 글 보다는 생각을 구체화하고 간단히 정리할 수 있는 다른 형태가 더 좋아 보였던 것 같다.

물론 앞서 열거한 형태의 생각 표현 방식이 갖는 장점을 무시할 수는 없다. 하지만, 이제는 글을 쓰자고 결심했다. 다른 방식이 흉내조차 낼 수 없는, 글이 갖는 비효율성을 가볍게 상쇄하는 '효과성' 때문이다. 결국 내가 하려는 것은 나의 생각을 표현하자는 것이고, 생각은 언어의 형식을 빌어 이루어진다. 그리고 글은 특정 주제에 관한 생각을 문장과 단락이라는 단위로 조직하고, 이러한 단위 간의 유기적인 연결을 통해 표현하는 방법이다. 문장과 문장 사이, 단락과 단락 사이의 관계 하나하나에도 저자의 생각이 반영되는 것이다. 이러한 의미에서 글은 사고 과정의 활자화라고 할 수도 있겠다. 반면에 아웃라인 작성이나 마인드 매핑은 모든 구성 요소간의 유기적인 관계를 요구하지는 않는다. 단지 특정 주제에 대한 생각을 모아 최소한의 질서를 부여한 결과물이다.

비유하자면 이들은 '구슬(생각)을 만드는' 작업이며, 글을 쓰는 것은 '구슬을 꿰는(조직화)'작업일 것이다. 특정 주제에 대해서 발상을 이끌어내는 작업, 이를 조직화하는 작업이 각각 중요한 일이지만 여기에서 글을 주목하는 것은 이러한 조직화 작용이 갖는 효력 때문이다.

필자는 특정 주제에 대해서 아웃라인을 작성하고 글을 쓰기 시작할 때에 이러한 효과를 극명하게 느낄 수 있었다. 우선 첫번째 느낀 점은 논리성이나 참신성 면에서 검증되지 않는 생각에 대해 아웃라인을 작성할 수는 있어도 글을 작성하기는 어렵다는 것이다. 생각의 단편들인 아웃라인이 집필이라는 과정을 거쳐 글이라는 유기적인 조직으로 거듭나기 위해서는 단편 간의 논리적인 연결 고리가 존재해야 하며, 집필이라는 행위를 정당화하는 '표현 가치'가 있어야 하기 때문이다. 반대로 말하면 생각을 검증하기 위해서는 글을 써 보면 된다는 것이고, 이러한 검증 작업을 통한 결과물인 글은 그만큼의 가치를 보증할 수 있을 것이다. '남에게 설명할 수 있다면 제대로 아는 것이다'라는 말을 들은 적이 있는데, 활자화된 설명인 글은 그 주제에 대한 명확한 이해를 보증하는 것이다.

두 번째 효과는 글이라는 조직화 과정에서 경험할 수 있는 생각의 완성이다. 종종, 아웃라인 단계에서 전혀 생각할 수 없었던 아이디어가 막상 글을 쓰는 단계에서 불쑥불쑥 튀어 나오는 경험을 한다. 아웃라인을 '뼈대 세우기'에, 글을 '살 붙이기'에 비유할 때 이러한 아이디어는 '살'에 해당하는 지엽적인 성격을 띠는 경우가 많지만, 집필 과정에서 종종 '뼈대'가 나오기도 한다. 생각의 조직화 과정에서 빠진 부분이 드러나고, 이를 채우지 않으면 글이라는 유기체를 완성할 수 없기 때문일 것이다.

여기에서 도출할 수 있는 글의 가치는 생각을 검증하고 조직화할 수 있는 수단이라는 점이다. 의식의 흐름에서 간헐적으로 튀어나오는 영감이 쓰기라는 작용을 거쳐 글이라는 완성품으로 탄생하는 것이다. 또한 이러한 조직화 작용은 생각을 공유하는 수단으로서 글이 갖는 경쟁력을 뒷받침한다. 일단 글의 형태로 조직된 생각은 최소한의 완성도를 보증하는 것이다. 반대로, 다른 사람과 공유하고 싶은 생각이라면 일단 글의 형태로 작성할 수 있어야 할 것이다.

예전에는 두껴운 책을 다 읽기 싫어 '핵심 요약본' 같은 것이 없나 두리번거렸던 것 같다. 물론 그런 접근이 바람직한 경우도 있겠지만, 대부분의 경우에는 '제대로 된 글'이 줄 수 있는 효과를 대체할 수 있는 표현 수단은 없는 것 같다. 특히 단순한 지식의 전달이 아닌 감동과 깨달음을 불러일으키는 수단으로서의 글은 무한한 가능성을 지닌다. 진부한 생각이라도 어떻게 표현되느냐에 따라 놀라운 효과를 불러 일으킬 수 있기 때문이다. 동서 고금을 막론하고 인류의 지적 문화 유산이 그 전달 수단으로 글을 채택하고 있는 데에는 이러한 배경이 있을 것이다.

앞서 언급한 글의 가치를 모든 글에서, 손쉽게 얻을 수 있는 것은 물론 아니다. 별 고민 없이 글을 쓴다면 생각을 메모한다거나, 표현 욕구의 해소에는 도움이 될 지 몰라도 스스로에게, 그리고 다른 사람에게 '읽히는 글'이 되기는 힘들 것이다. 모든 분야에 걸쳐 훨씬 다양한 매체를 통해 정보가 쏟아지는 시대에 정리되지 않은 글을 읽을 만큼 한가한 사람은 많지 않을 것이기 때문이다. 이런 상황에서 별 생각 없이 글을 쓰는 것은 차라리 죄악이다.

이러한 글이 갖는 가치만큼이나 '좋은 글'을 쓸 수 있는 능력의 중요성이 부각된다. 고위 공직자나 전문직 자격 시험에 가장 중요한 관문으로 '글 쓰기'가 포함된다는 점에서 우리 사회가 글 쓰기에 부여하는 가치를 알 수 있다. 신언서판이라는 성어에서 처럼 예전부터 사람의 지성을 판단하는 데에는 '그 사람의 글'이 큰 역할을 했었던 것 같다. 여기에는 특정 주제에 대한 생각을 논리적으로, 효과적으로 전달하는 과정에서 지적 능력의 총체가 발휘된다는 전제가 깔려 있다.

이러한 좋은 글을 쓰려면 어떻게 해야 할까? 인간의 다른 모든 활동과 마찬가지로 글 쓰기 능력 역시 훌륭한 작품을 많이 보고, 어떤 점에서 그러한 글들이 다른 글과 차별화되는지에 대해 느낀 후에, 이러한 점을 자신의 글에서 재현해보려는 노력에서 향상되는 것 같다.

종종 특정 분야의 '대가'의 글을 읽으면 문단의 구성, 수사 기교, 심지어는 단어의 선택에 까지도 수십년간 쌓인 내공이 스며 있는 것을 볼 수 있다. 꾸준히 읽고, 생각하고, 글을 쓰다 보면 먼 미래에 내가 쓴 글에서 위대함을 발견하는 사람을 발견할 수 있지 않을까.

신고

'Essay' 카테고리의 다른 글

최선을 다하지 않는 것이 최선이다?  (10) 2010.03.06
전문가의 시대는 끝났나  (0) 2008.10.03
개인 프로젝트를 왜 해야 하나  (0) 2007.03.01
글쓰기의 가치  (0) 2006.12.31

티스토리 툴바