2008년 3월 17일 월요일

프로그램 그려보기

김진애님의 자기 집을 그려보자 라는 글을 보면서 문득 소프트웨어를 설계할 때도 사용할 수 있는 방법이다 라는 생각이 들었습니다. 제가 관심을 가지게 된 부분은 이 부분인데요.

주택을 설계할 때면 나는 집주인을 유혹하곤 한다. 같이 그려 봅시다 하고. 직업상 나는 남들이 말로 표현하는 것 또는 몸으로 표현하는 것을 잘 파악해서 그림으로 그려 내는 사람이지만 살 사람의 마음 깊은 속, 심리 깊은 속까지 들어가기란 그리 쉽지 않다. 이럴 때 집주인이 뭔가 그려 주면 훨씬 더 가깝게 짐작할 수 있다. 힌트가 풍성해지는 것이다.집주인은 쑥스러워들 한다. “못 그려요.” 그려 보고 나서는 “그리기 만만치 않데.” 하기도 한다. 내가 권하는 것은 건물의 형태나 전체의 구성은 아니다. 이것은 아무래도 어려운 일이고 전문적인 훈련이 필요하기 때문이다. 권하는 것은,

주로 집 내부의 가구 배치, 컴퓨터 배치, 텔레비전 배치 같은 것들이다. 전문가인 나보다도 집주인이 훨씬 더 잘 아는 물품들, 습관들, 선호도가 나타나는 항목들이다.



그러니까 집을 설계할 때 집주인과 함께 그가 정말 원했던 것을 알아가는 과정의 일종으로 좀 더 직관적으로 생각할 수 있는 집의 내부 같은 부분을 그린다. 라는 것인데요. 이 과정의 진정한 가치는 집주인이 단순히 자신이 생각했던 것을 그림으로 표현해서 건축가에게 전달하는게 아니라, 그림을 그리는 과정을 통해서 자신이 인식하고 있지 않았던 혹은 자신도 몰랐던 원했던 것을 발견할 수 있다는데 있는거죠. 그리고 그런걸 발견하지 못할 수도 있지만 집을 짓는 과정의 초반부터 참여하는 것은 집을 짓는 다는 일종의 프로젝트에 대한 참여도와 소속감을 높일 수 있을 것 같구요. 뭐, 물론 이 경우는 자신의 집을 짓는 것이지 당연히 그런게 높겠지만 말이죠.

이제 프로젝트 설계에 적용을 해볼까요?


클라이언트와 회의를 할 때, 그들이 원하는 요구사항을 추출해내는 것이 결코 쉬운게 아니죠. 그렇기 때문에 요구사항에 관련된 서적들 만 해도 몇 권씩 되기도 하는 거구요. 그런데 그런 요구사항을 알기위한 보조적인 방법으로 위와 같은 방법을 사용해보면 어떨까요? 사실 많은 프로젝트에서 대부분 사용자나 클라이언트측의 담당자도 자신들이 원하는 프로그램을 정확히 파악하고 있지 못하는 경우가 많거든요. "이런 이런 형태의 프로그램을 만들어 주세요" 혹은 "이런 기능을 포함하는 프로그램을 만들어 주세요" 라고 이야기를 하지만 프로젝트를 진행하다보면 "이런 기능을 더 추가해야 겠는데요" 라거나 "그 기능은 별로 필요가 없을 것 같네요" 라는 정도의 말을 자주 듣게 되요. 물론, 고마울 정도로 클라이언트 측에서 계획을 잘 세워서 오는 경우도 있기는 하지만, 그렇게 많지는 않죠.

그럼 실제로 그림을 그리는 방법을 어떻게 응용해볼 수 있을까요?


우선 클라이언트와 앉아서 프로그램에서 핵심적인 기능들을 추려보는 거에요. 아마도 그렇게 추려진 기능들은 요구사항이 제대로 추출되지 않았다면 제작후에도 수정을 할 가능성이 많은 부분이겠죠. 그렇게 추려진 기능들을 종이에 한번 그려보도록 유도하는 거에요. 실제 모니터 화면에서 자신이 보게될 화면을 그려보도록 하는거죠. 전체 화면을 그리도록 하고, 특정 기능들을 실행되는 과정을 그림으로 그려보는 거에요. 이런 과정을 통해서 단순히 원하는 요구사항 목록을 뽑는게 아니라 클라이언트가 선호하는 화면구성, 중요요소, 실행과정 같은 걸 알 수 있는 힌트를 얻을 수 있는 겁니다.

CRC(Class-Responsible-Collaboration) Card 라는 소프트웨어 디자인(코드의 설계를 이야기하는 거죠)을 위한 기법이 있는데요. 간단하게 설명하면 인덱스 카드 정도의 종이에다가 3등분을 하여(좁은 가로줄 아래로 등분하는 세로줄을 그리는거죠) 상단에는 클래스의 이름을 하단 왼쪽에는 그 클래스가 해야할 일들을 오른쪽에는 그 클래스와 연관된 클래스의 이름을 적는거죠. 그렇게 프로그램에서 구현된 클래스들을 실제 한장의 카드로 만들어 보는 과정을 통해서 실제로 어떤 클래스들이 만들어 질지 미리 예측을 해볼 수가 있는데요. 그렇게 만든 클래스 카드를 프로그램의 특정 기능을 동작시키는데 사용해보는거죠. 예를 들어 장바구니에 물건을 넣는다고 하고, 장바구니, 물건, 사용자 같은 클래스가 있다고 생각하는거죠. 그러면 물건을 넣는 기능을 그 카드들을 배열해보면서 동작시키는거에요. 물건을 보는 화면에서 장바구니를 클릭하면 물건.물건정보() 같은 메쏘드가 호출이 될 것이고 물건.고유번호() 를 사용자.장바구니얻기() 해서 얻은 장바구니에 장바구니.추가() 같은 방식으로 넣는다. 뭐, 이렇게 꼭 되진 않겠지만 카드를 이리저리 배열해보면서 구성을 하는거죠. 여러명의 개발자가 같이 하고 있었다면 일종의 롤플레잉 게임처럼 각자 나누어 클래스를 담당하고 어떤 기능을 정하고 각자 필요한 부분에서 카드를 내거나 설명을 해요.

이런 방식들로 사용될 수 있는데, 다시 본론으로 돌아가보죠. 그림을 그리는 작업도 어쩌면 CRC카드 처럼 아직 우리가 눈으로 볼 수 없는 것들을 미리 볼 수 있게 해주는 작업일겁니다. 생각만 했는데 실제로 보니 다른 점들이 보이고 하는거겠죠. 그리고 실제로 보니 이런 저런 부분이 바뀌었으면 하는 부분도 있을 테구요.

흠.. 결론은 백번 들어도 한번 보는 것만 못하다 정도가 될 수 있을려나요? :-)

2008년 3월 15일 토요일

자람 신입생 워크샵 2008

이번주 그러니까 3월 11일부터 13일까지 제가 속해 있는 자람이라는 동아리에서 "신입생 워크샵"이라는 행사를 했습니다.

행사 준비를 일주일 정보 밖에 못했기 때문에 생각했던 것 만큼 많은 내용을 담을 수는 없었지만, 좋은 다양한 경험을 할 수 있는 시간이었습니다. 그렇게 진행되었던 뼈대가 다른 비슷한 행사를 준비하는 경우에도 적용될 수 있을 것 같습니다.

이번의 경우 여건상 하루에 1시간 30분이라는 시간 밖에 운용할 수 없었습니다. 3일동안 다 합쳐봐도 5시간이 안되는 시간이죠. 그렇게 짧은 시간에 무엇을 할 수 있느냐는 물음에 당연히 도달하게 되었습니다. 그래서, 프로그래밍을 한번도 접해보지 않은 신입생에게 그 흥미를 이끌어내는 과정을 제안했습니다.

첫째날


첫째날은 터틀(turtle)이라는 간단한 교육용 시스템을 다루는 시간으로 정했습니다. kturtle이라는 kurtle의 구현중 하나를 사용하고 싶었지만 KDE 라는 제약 때문에 python에 기본으로 내장되어 있는 turtle을 이용하였습니다.

http://edu.kde.org/kturtle/pics/kturtle4.png
kturtle 동작화면 (from kturtle website )

파이썬 내장 turtle의 경우 간단히 아래처럼 시작할 수 있습니다
from turtle import *
reset()
forward(10)
left(50)
forward(10)

간단한 몇가지 문법을 이용해서 화면에 그림을 그리는 과정이지만 그 안에서 프로그래밍의 기본적인 제어문이나 알고리즘에 대한 개념을 배울 수 있습니다. 이번 신입생들과 조를 나누어 turtle을 배우는 시간도 신입생들과 재학생 모두에게 도움이 되는 시간이었습니다. turtle처럼 간략한 문법을 가지고 있는 시스템은 최대한 문제의 해결과정에 집중할 수 있도록 해주기 때문에 프로그래밍을 처음 배우는 사람에게 적합한 것 같습니다. 1시간 약간 넘는 시간 도안 몇가지의 다양한 문제들을 해결해보고 마지막은 자유작품을 제출해서 가장 많은 표를 얻은 팀에게 상품을 수여하기도 하였습니다.

둘째날


둘째날의 1시간 30분중 20분은 신입생을 위해서 만든 홍보 동영상과 졸업한 선배들을 찾아가서 인터뷰를 요청한 영상을 편집하여 상영했습니다.

이번 행사의 특징중 하나는 최대한 동영상이나 사진, 그리고 turtle처럼 눈으로 볼 수 있는 과정들이 많았다는 점입니다. 이것은 1시간 30분이라는 시간이 생각하기에 따라 짧을 수도 길수도 있기 때문입니다. 결국 이 시간을 지루하게 느낄 수 있는 사람들도 있을테고 그들의 흥미를 최대한 높일 수 있는 방식으로 시각적인 과정의 비율을 높였습니다. 또한, 눈으로 그 결과를 바로 볼 수 있기 때문에 더 쉽게 접근이 가능하다는 점도 선택 이유였습니다.

동영상 상영 이후, 제가 준비한 "시작하는 후배들을 위하여.."라는 제목의 30분짜리 발표가 있었습니다. 이후 자람15기 김효준선배현업개발자와의 대화라는 프로그램이 있었습니다.


시작하는 후배들을 위하여 세미나에 사용된 pt의 일부

세째날


마지막날에는 Open Space Technology 라는 형식의 토론을 진행했습니다. 초기에 우려했던 바와는 다르게 성공적으로 진행할 수 있었고, 5개의 테이블에서 10개정도의 주제가 토론되었습니다. OST 기법은 동아리에 4번째 적용하는 것이었는데, 기본지식이 없는 신입생들과 함께 하는 것이라 성공에 대한 의문이 있었는데, 이번 시도로 다양한 집단에 성공적으로 적용할 수 있는 가능성을 볼 수 있었습니다.

결론


일단, 무언가 새로운 행사를 구성해서 진행을 한것도 거의 3년만의 일이라서 여러면에서 즐거웠습니다. 계획을 세우는 것도 재밌었고, 약간 바쁜 일정이었지만 제시간에 준비해서 발표했을 때의 기쁨도 있었습니다. 무엇보다 새로운 것들을 시도했던게 보람찬 일이었습니다. 차후로 이와 같은 행사들이 이어지면 좋겠지만, 지금의 모습을 답습하기보다는 항상 새롭게 바뀌는 모습이었으면 좋겠습니다. 그리고 이번 과정을 듣지 못했던 학교의 다른 후배들이 아쉬웠는데, 다음행사는 더 많은 참여가 가능한 방법을 모색해야겠습니다.

tags : 신변잡기

2008년 3월 13일 목요일

시작하는 후배들을 위하여..

자람 18기 문병원(tasyblue@gmail.com)


작성일 : 2007년 3월 31일


수정일 : 2008년 3월 12일


처음 이 세미나를 기획하면서 여러가지 생각들을 했습니다. 어떻게 하면 그들의 생각에 전환을 줄 수 있을까. 어떻게 해야 스스로의 열정을 느낄 수 있게 할지. 그러다 문득 든 생각이 있습니다. "우리들이 지금까지 보아온 수 많은 명언들, 그리고 다양한 종류의 위대한 책들. 그런 것들을 수 없이 접했어도 일어난 변화가 이 정도라면, 우리에게 영향을 줬던 그 무언가에 문제가 있는 것이 아니라. 바로 우리 자신이 문제였던게 아닐까" 하는 생각입니다.

제가 어떤 이야기를 해도, 어떤 행동을 보여도 여러분께 끼칠 수 있는 영향은 미약하기 짝이 없을 것입니다. 결국 받아 들이는 것은 개인이니까요. 이건 단순히, 체념적인 생각이 아니라. 어떤 일을 시작할 때, 그 한계를 파악하는 것이라 생각합니다. 비관적으로 들리더라도 전 이렇게 생각합니다. 오늘 내가 이 앞에 앉은 이들의 삶을 바꿀 수는 없는 것이라고.

하지만, 지금 이 글을 작성하는 제 마음에는 내 생각과는 다른 감정으로 가득합니다. 우리는 우리를 바꿀 수 있고, 우리는 다른 이들을 변화하도록 도울 수 있습니다. 그리고 우리는 주변을 행복하게 하고, 더 나아가 세상을 행복하게 할 수 있습니다. 그 시작은 미약한 변화를 일의키는 단 하나의 행동이며, 결국 어떠한 시도도 무모하거나 의미 없는게 아니라고 생각합니다.

진부한 말이라도, 이미 알고 있는 것이라도. 그것이 좋은 길이라면, 그것이 바른 것이라면 서로 상기시키고 함께 해야 한다고 생각합니다.

제가 앞으로 이야기 하고자 하는 것들은 그렇게 진부하기도 하고, 어떻게 보면 의미 없는 이야기지만 여러분께 지금 이순간 제가 드리고 싶은 진심입니다.

이번 기회를 통해, 이렇게 만나게 되어 반갑고 짧은 시간이지만 서로에게 의미있는 시간이 될 수 있기를 기대합니다.

Computer Science and Engineering


한양대학교 전자전기컴퓨터공학부를 선택하는 순간, 그리고 자람이라는 학회를 선택하는 순간, 여러분의 공부는 전산에 어느 정도 이상씩 관련된다. 지금 여기서 알아볼 전산에 대한 공부는 그 기초가 되는 전산을 알아보기 위함이다.

일단 우리는 뭉뚱그려서 전산학이라고 말하는 우리가 선택한 전자전기컴퓨터공학부에서 컴퓨터공학부에 해당하는 학문은, 그 구별을 크게 컴퓨터 사이언스와 소프트웨어 엔지니어링으로 나눌 수 있다. 여기서 말하는 구분은 내 생각일 뿐이며, 여러분들의 이해를 돕기 위해 임의로 구분한 것이라는 것을 일단 전제하려고 한다.

컴퓨터 사이언스(Computer Science)는 물리학이나 화학, 생물학과 마찬가지로 컴퓨터를 구성하는 원리나 컴퓨터를 이용하여 작동되는 다양한 프로그램들에 대해서 연구하는 학문이다. 필연적으로 학술적인 성격을 많이 가지고 있으며, 주로 대학이나 연구소에서 그 발전이 이루어진다.

컴퓨터에 관련된 분야 중에서(여러분이 앞으로 배울 교과가 각각의 분야라고 생각해도 된다) 컴퓨터 설계(Computer Architecture), 운영체제(Operating System), 컴파일러(Compiler), 데이터 베이스(Database), 파일 시스템(File System), 알고리즘(Algorithms), 자료구조(Data Structure), 네트워크(Network) 등의 분야가 이에 해당한다.

다시 말해, 컴퓨터 사이언스는 우리의 분야를 구성하고 있는 가장 기초적인 이론적 토대를 제공하는 부분이다. 결국 소프트웨어 개발이란 그 소프트웨어가 실행되고 개발되는 하드웨어적 소프트웨어적 기반요소가 자리 잡은 상태에서 이루어지는 것이므로, 그 기반에 대한 이해가 필연적으로 높은 수준의 소프트웨어 개발 역량으로 이어진다는 것을 생각해 볼 수 있으 것이다. 여기에 컴퓨터 사이언스의 중요함 중에 하나가 있다.

소프트웨어 엔지니어링(Software Engineering)은 일반적으로 소프트웨어 개발 프로세스와 같은 개발 방법에 대한 공학적 접근을 말하지만. 여기서 말하고자 하는 것은 그를 포함하는 소프트웨어 개발에 직접적으로 관련되는 전반적인 부분이다.

교과목으로 그 범위를 이야기해 보자면, 객체지향 프로그래밍(Object Oriented Programming), 프로그래밍 언어들(자바 프로그래밍, C 프로그래밍, ML, Scheme, Haskell..), 프로그래밍 방법론 등이 이에 해당한다.

단순하게 대학에 한정지어 각 분야의 비율을 따져보면 8:2정도로 컴퓨터 사이언스가 높은 비중을 차지한다. SE관련 분야들이 차후 실제 개발에 밀접하게 연관된다는 사실을 볼 때, 이는 아직 대학에 SE의 중요성에 대한 인식이 미흡하다는 것으로 생각할 수 있는데, 우리가 이런 상황을 극복하기 위해서는 소프트웨어 개발의 다양한 요소들을 나름의 계획을 세워 알아나가야겠다.

소프트웨어는 살아 있다


여기서 말하고자 하는 내용은 100% 내 개인적인 생각이지만, 꽤 높은 확률로 적중할 것이라고 생각한다.

일단 소프트웨어 분야가 점점 중요성이 더해지고 있다고 생각하는 근거를 보자면 아래와 같다.

  • 몇년 전부터 인텔리전트 아파트의 개념이 강해지고 있다. -> 앞으로 점점 똑똑한(Smart) 주거환경에 대한 관심과 투자가 이루어질 것이다.

  • 최근까지 휴대폰의 지상목표는 최대한 작고 가볍게였으나, 요즘은 다양한 기능과 사용성이 중요시 되고 있으며, 얼마전 IPhone의 등장은 소프트웨어의 혁신이 제품의 매력의 결정적인 요소가 된다는 점을 보여준다.

  • 구글에서 시작했던 구글맵, 그리고 그로 인해 현재 웹에 광범위하게 퍼진 AJAX -> 현재 구글의 웹 에플리케이션들은 컴퓨터를 이용하는 사람들의 이용 패턴을 바꾸어 놓을 정도의 영향력을 보여주고 있다.

  • 중요성이 점점 부각되고 있는 컨버전스의 핵심은 소프트웨어이다. -> 차후 높은 수준의 제품의 뒤에는 높은 수준의 소프트웨어가 핵심이 될 것이다.

  • 구글과 애플은 대표적으로 강력한 소프트웨어 개발능력 회사의 승패를 결정하는 요소가 되었던 예.

    • 구글은 소프트웨어 개발 능력이 회사의 발전을 주도한 전형적인 경우

    • 애플은 경우는 구글에 비해 소프트웨어 개발 역량이 차지하는 비율은 적은편, 애플의 혁신적인 아이디어가 애플의 현재 발전의 주요인. 하지만 그것을 뒷 받침 했던 것이 소프트웨어 개발 역량, 애플의 재등장의 숨은 주역은 소프트웨어 개발.




위에서 말하고 있는 근거는 그다지 설득력있는 근거는 아니지만, 직관적으로도 최근 우리 주변의 다양한 분야에 소프트웨어가 포함되고 지능화되거나 자동화되고 있다는 것을 알 수 있다. 이러한 변화는 차후 더 가속화될 것이며 앞으로 역량있는 개발자들의 수요는 더욱 늘어날 것이다.

How to study computer programming


위기지학을 하라


위기지학(爲己之學) : 학문의 시작은 자신을 위한 학문이다.
학문에는 자기를 위하는 위기지학(爲己之學)과 남을 위하는 위인지학(爲人之學)이 있다. 위기가 먼저고 위인이 나중이다. 수신제가가 있어서 치국평천하가 있는 것과 같다. 경전공부는 수기, 즉 내 몸을 닦는 위기지학이다. 그것은 안으로 수렴하는 공부다. 이를 통해 바탕이 서면, 그 다음에는 밖으로 미루어 확장하는 치인 또는 안인(安人)의 위인지학으로 나아간다. 역사와 경세제민(經世濟民)의 공부가 그것이다.

- 다산선생 지식경영법, 정민, 페이지66~67



소프트웨어 개발도 자신을 위한, 자신이 사용하는 소프트웨어를 만드는 것이 그 시작이 되어야 한다. 남을 위해서만 만드는 프로그램에서는 개발동기를 찾을만한 내용을 발견할 수 없고, 소프트웨어 개발과 같은 정신적인 측면이 차지하는 부분이 많은 작업에서는 동기나 흥미가 굉장히 중요한 요소.

요즘 프로그래머들 중에서는 예전에 게임을 하면서 자신이 직접 그 게임을 만들어 보고 싶다는 생각에서 프로그래밍을 시작한 경우가 많음.

주변이나 다양한 분야의 이름있는 개발자들을 보면, 실제 생활에서 소프트웨어 개발능력을 활요하고 있는 경우를 많이 볼 수 있음.

  • 장혜식 : 파이썬 커미터와 FreeBSD 포트 커미터로 생활에 필요한 프로그램들을 주로 파이썬이나 다른 스크립트 언어를 이용하여 만들어 사용.


  • 이승근 : 자람 17기, 내가 말은 안했지만, 존경하는 선배. 역시 필요한 프로그램들을 종종 개발하여 잘 사용하고 있음.

    • MSN 봇

    • 한양 소리바다

    • 카플 (이건 매쉬업용으로 만드는거지만)

    • 스토커

    • ...




위기지학에 대한 좋은글로 김창준 씨의 "프로그래머의 위기지학"을 추천한다.

프로그래밍은 종합학문


만류귀종(萬流歸終) : 프로그래밍은 종합학문이다. 공부의 중심을 잡고 변화와 변주를 추구하라. '주제와 변주'사이를 넘나드는 한편의 교향곡과 같은 생활이 필요하다.

꼭, 프로그래밍을 잘 하기 위해서가 아니라 생각을 넓히기 위해서라도 다양한 분야에 대한 공부가 필요하다.

프로그래밍이 종합학문이라기 보다는(물론 프로그래밍도 종합학문이지만) 프로그램 개발이 종합적인 요소들을 필요로 한다.

프로그램 개발은 단순히 프로그램을 만드는 과정뿐만이 아니라. 프로그램을 기획하고, 프로그램을 제작하는 과정에서 다양한 사람들과 의견을 조율하고, 요구사항을 생성하고, 프로그램의 사용성을 개선하고, 프로그램을 테스틍 하는 등의 모든 과정과 함께, 프로그램이 개발된 이후에 서비스하는 과정에서 발생할 수 있는 요구사항 변경이나, 유지보수 작업같은 부분까지 포함하는 일이다.

프로그램 개발은 사람이 하는 일이고 그 목적은 다양하겠지만, 궁극적으로 사람이 관련되기 때문에 그에 따라 발생하는 다양한 문제가 생긴다. 그로 인해, 심리학이나 인지공학 같은 부분, 인간관계론 같은 대인관계에 관한 기술, 대화나 회의를 위해 필요한 기술, 자료를 체계적으로 정리하고 요점을 뽑는 기술등 언듯보면 관련이 없어보이는 작업들이 함께 필요해진다.

시작하는 후배들을 위하여


무식한 대학생이 되지 않도록


매번 듣는 말이지만, 목적과 수단을 잘 구분하라.

프로그래밍 기술은 목적이 아니다.

당신이 프로그래밍을 하고 배우는 것은 무엇 때문인가?
그대 이름은 <무식한 대학생>

그대는 대학에 입학했다. 한국의 수많은 무식한 대학생의 대열에 합류한 것이다. 지금까지 그대는 12년 동안 줄세우기 경쟁시험에서 앞부분을 차지하기 위해 부단히 노력했다. 영어 단어를 암기하고 수학 공식을 풀었으며 주입식 교육을 받아들였다. 선행학습, 야간자율학습,보충수업 등 학습노동에 시달렸으며 사교육비로 부모님 재산을 축냈다.

그것은 시험문제 풀이 요령을 익힌 노동이었지 공부가 아니었다. 그대는 그 동안 고전 한 권 제대로 읽지 않았다. 그리고 대학에 입학했다. 그대의 대학 주위를 둘러 보라. 그 곳이 대학가인가? 12년 동안 고생한 그대를 위해 마련된 '먹고 마시고 놀자'판의 위락시설 아니던가.

그대가 입학한 대학과 학과는 그대가 선택한 게 아니다. 그대가 선택 당한 것이다. 줄세우기 경쟁에서 어느 지점에 있는가를 알게 해주는 그대의 성적을 보고 대학과 학과가 그대를 선택한 것이다. '적성' 따라 학과를 선택하는 게 아니라 '성적' 따라, 그리고 제비 따라 강남 가듯 시류 따라 대학과 학과를 선택한 그대는 지금까지 한 권도 제대로 읽지 않은 고전을 앞으로도 읽을 의사가 별로 없다. 영어영문학과, 중어중문학과에 입학한 학생은 영어, 중국어를 배워야 취직을 잘 할 수 있어 입학했을 뿐, 세익스피어, 밀턴을 읽거나 두보, 이백과 벗하기 위해 입학한 게 아니다. 그렇다면 차라리 어학원에 다니는 편이 좋겠는데, 이러한 점은 다른 학과 입학생에게도 똑같이 적용된다. '인문학의 위기'가 왜 중요한 물음인지 알지 못하는 그대는 인간에 대한 물음 한 번 던져보지 않은 채, 철학과, 사회학과, 역사학과, 정치학과, 경제학과를 선택했고, 사회와 경제에 대해 무식한 그대가 시류에 영합하여 경영학과,행정학과를 선택했고 의대, 약대를 선택했다.

한국 현대사에 대한 그대의 무식은 특기할 만한데, 왜 우리에게 현대사가 중요한지 모를 만큼 철저히 무식하다. 그대는 <조선일보>와 <동아일보>가 '민족지'를 참칭하는 동안 진정한 민족지였던 <민족일보>가 어떻게 압살되었는지 모르고, 보도연맹과 보도지침이 어떻게 다른지 모른다. 그대는 민족적 정체성이나 사회경제적 정체성에 대해 그 어떤 문제의식도 갖고 있지 않을 만큼 무식하다.

그대는 무식하지만 대중문화의 혜택을 듬뿍 받아 스스로 무식하다고 믿지 않는다. 20세기 전반까지만 해도 읽지 않은 사람은 스스로 무식하다고 인정했다. 그러나 지금은 대중문화가 토해내는 수많은 '정보'와 진실된 '앎'이 혼동돼 아무도 스스로 무식하다고 말하지 않는다. 하물며 대학생인데! "당신의 능력을 보여주세요!"에 익숙한 그대는 '물질적 가치'를 '인간적 가치'로 이미 치환했다. 물질만 획득할 수 있으면 그만이지, 자신의 무지에 대해 성찰할 필요조차 느끼지 않게 된 것이다.

그대의 이름은 무식한 대학생. 그대가 무지의 폐쇄회로에서 벗어날 수 있을 것인가. 그것은 그대에게 달려 있다. 좋은 선배를 만나고 좋은 동아리를 선택하려 하는가, 그리고 대학가에서 그대가 찾기 어려운 책방을 열심히 찾아내려 노력하는가에 달려 있다.

홍세화, 2004.1.26. 진보누리에서



무식한 대학생이 되지 말이라. 네가 공부하는 것은 단지, 공부를 해야 해서가 아니다. 생각의 그리고 행동의 중심을 갖자. 지금까지 살아온 삶은 자신의 의지에 따른 삶이 아니었을 수도 있다. 하지만 이제 마음의 중심을 가져라

마음이 바로 선다면 그 때야 비로소 삶을 다체롭게 그리고 여유있게 살 수 있을 것이다.

난 스노우 보드를 타길 좋아한다. 보드를 탈 때는 몸의 중심을 잘 유지하는 것이 중요하다. 일단, 활강하면서 중심을 유지하는 방법만 알게 된다면, 간단한 중심이동으로 다양한 턴을 하면서 경사면을 내려올 수 있다.

마찬가지로 삶의 중심이 바로 선다면 대학생활에서도 다양한 가치와 경험의 순간을 경험할 수 있을 것이고 그러한 것들이 생활의 활력이자 더 나은 사람이 되는데 도움이 될 것이다.

당신의 스승을 찾아라


스승의 형태는 중요하지 않다. 학교 선배나 교수님이라도 상관없고 한권의 책, 혹은 잡지에서 우연히 본 기사의 저자라도 상관없다. 하지만 그 스승은 분명 현재의 위치의 당신에게 혁명적인 변화를 주었고 그 변화를 이루어 나갈 수 있어야 한다.

스승을 통해서 스승의 경지에 도달하고자 하면, 그 스승을 더욱 자세히 알게 된다. 그리고 그렇게 노력하다보면 어느 순간 예전과 같은 감정을 느낄 수 없게 될 것이다. 그것이 성장이다.

스승을 찾기 위해서 노력하라. 가만히 있는데 그런 존재가 나타날리가 없다. 찾기 위해 뛰어다녀라. 탐구하고 궁리하라. 즉, 다양한 사람을 만날 수 있는 기회에 부단히 참여하고, 새로운 시도를 두려워 하지 말아라. 다양한 책을 읽고, 이런 모든 일 과정에서 눈을 부릅뜨고 스승의 존재를 찾기위해 노력하라. 찾으라 그럼 얻을 것이다.

이번 1년 이 책은 읽어라


책에는 죽은 지식도 들어있고, 책을 읽다가 혁명적인 경험을 한다거나, 자신이 송두리째 바뀌는 그런 경험을 하기는 어렵다.

하지만, 그렇다는 것을 알 정도는 책을 보아야 하지 않을까?

아래, 두권의 책은 지난 1년, 더 나아가 최근 5년 동안 읽은 책중에서 삶을 바꾸는 힘을 느겼던 책이다.

 



 




tags : 프로그래밍에 대한 이야기, 신변잡기

2007년 8월 7일 화요일

2007년 7월 독서목록

7월에 읽기 시작한 책은 총 9권. 아직 다 읽지 않은 책도 있지만, 전반적으로 내용은 파악하고 있습니다. 7월 중순까지는 맡았던 일이 있어서 제대로 책을 읽을 시간이 없었습니다. 그래서 20일 이후부터 책을 볼 수 있었는데, 아무래도 10일 남짓 읽은 책이다 보니 양도 많지 않은 편이고 쉽게 볼 수 있는 책들이 대부분입니다.


 



리눅스 커널 2.6 구조와 원리


타카하시 히로카즈.오다 이츠로.야마하타 이사쿠 지음, 이영희 옮김, 한동훈 감수/한빛미디어


리눅스 커널에 관한 책들은 꽤나 많은 편입니다. 인터넷 서점에서 "리눅스 커널"이라는 검색어로 검색하면 20건 가까이 나올 정도로 특정 분야치고는 사람들의 많은 관심을 받고 있습니다. 하지만 리눅스 커널의 중요성에 비교하면 적은 관심이라고도 볼 수 있는데, 그것은 실제로 리눅스 커널을 수정하거나 관심을 가지는 경우가 적기 때문입니다. 리눅스의 경우는 이미 서버 시장에서는 메이저급 운영체계이며, 일반 사용자들 사이에서도 널리 알려져 있는 편입니다(사용률에 상관없이). 하지만 그들 중 대다수가 커널 컴파일도 하지 않는다는 점을 생각해볼 때, 실제로 이용은 많이 하고 있지만 그에 비해 관심은 적은편이라 할 수 있습니다.


 


이야기가 샛길로 빠졌는데, 이 책은 그런 리눅스 커널을 설명하는 책 중에서 일단 시간에 가깝습니다. 그 점이 장점이기도 하고 단점이기도 한데. 일단 최신 리눅스 커널의 동향을 설명하고, 최신 소스를 통해서 이야기 하고 있기 때문에 책의 내용을 잘 파악한다면, 현업에서 적용하기에 용이합니다. 더불어 2.6은 여러면에서 바뀌었기 때문에 예전 커널을 통해서 말하고 있는 책들에서는 볼 수 없는 정보들이 많이 있습니다. 하지만, 이런 부분이 단점이 되기도 하는데, 2.6버전에 다양한 기능이 추가되고 커널의 덩치가 커지면서(2.4에도 물론 그런 경향이 있었습니다) 책 한권으로 커널 소스 전체를 커버하기 힘들게 되었습니다. 예전의 유닉스나 리눅스 커널을 설명하는 책 처럼 커널 전체 소스를 책 한권으로 만들 상황이 아니기 때문에 비록 두꺼운 책이긴 하지만 핵심만 집어서 설명하고 있는 수준입니다. 그러므로 이 책 한권만으로 커널을 정복하기가 어렵고 제목처럼 커널의 구조와 원리를 파악하는데 요긴하다고 생각합니다.


 


여행의 기술
알랭 드 보통 지음, 정영목 옮김/이레


알랭 드 보통은  글을 참 멋스럽게 쓰는 사람입니다. 그의 다른 책들을 보아도 한가지 주제에 대해서 정말 다양한 방식으로 이야기하고 생각하고 있습니다. 우리 주변의 흔한 것들에서 우리가 미처 발견하지 못했던 혹은 상식과는 완전히 다른 그 무언가를 찾아내는 겁니다. 그 때문인지 모르지만 최근 몇년 사이에 한국에서 인기도 많아지고 처음 출판되었던 "왜 나는 너를 사랑하는가"의 촌스러운 커버와는 확연히 비교되는 세련된 표지와 편집으로 최근의 책들이 출판되고 있습니다. 책의 표지나 편집이그 책을 평가하는데큰 부분을 차지해서는 안되는 것이나(내용이 중요하죠 물론) 실제로는 책의 인상을 결정할 뿐만 아니라 구입이나 읽는데도 영향을 미치는 부분입니다. 최근 저자의 다른 책들은 멋있는 표지로 그 인기를 더해가는 것 같습니다. 제목도 꽤나 매력적이구요.


 


책의 내용은 제목과 같으면서도 다릅니다. 별로 그럴 경우는 없겠지만 이 책에서 여행에 필요한 일반적인 의미에서의 기술을 생각한다면 원하는 걸 얻을 수 없을 것입니다. 이 책은 예전보다 흔하고 쉬워진 여행에서 예전만큼 그 여행을 즐기지 못하는 사람들에게 여행이란 의미, 그리고 여행에서 느낄 수 있는 다양한 감정을 보여주고 있습니다. 과거의 다양한 사람들의 모습에서 그런 의미들을 발견하고 있는 것이죠. 전, 여기에 소개 된 몇 개의 여행 중에 풍경을 그림으로써 자연을 사랑하는 방법을 배운다는 제프리와 함께 하는 여행이 맘에 들었는데, 많은 기대는 안 하고 봤던 책이지만 좋은 걸 얻을 수 있었습니다.


 


행복의 건축
알랭 드 보통 지음, 정영목 옮김/이레


앞에 이야기 한, "여행의 기술"과 함께 알랭 드 보통의 저작입니다. 아마도 가장 최신 작품이 아닐까 생각이 드는데요. 내용은 역시나 저자 특유의 관찰과 시각으로 건축을 바라보는 것입니다. 건축물이 단순하게 의식주의 사는 곳의 역할만 하는 것이 아니라 다양한 역할과 특징이 있다는걸 보여주고 있습니다.


 


최근, 향후 5~6년에 걸쳐서 건축을 공부할 계획을 준비중인데, 그것을 위한 준비는 아니지만 건축에 대한 관심이 커져서 이 책을 사게 되었습니다. 막상 사서 읽어보니 책의 내용도 좋은데, 책에 나오는 건축물들의 사진이 눈에 띄더군요. 멋있는 건축물도 많고 잘 못된 예로 제시되는 것도 꽤나 있는데, 둘다 보는 재미가 있습니다. 특히 전 건축물의 요소로만 생각했던 계단이나 나무로 된 바닥 마감 같은게 그 나름의 아름다움과 의미가 있다는게 재밌고 관심이 갔습니다.


 


야생초 편지


황대권 지음/도솔


 우연히 헌 책방에 보고 TV에서 많이 보기도 해서 익숙한 책이라 골랐던 책입니다. 그런데 성격이 원래 베스트셀러라 불리는 책들을 좋아하지 않아서 한참을 관물대에서 묵혀두고 있다가 읽을 만한 책이 없던차에 손에 들었는데, 생각보다 재밌고, 생각보다 깊은 내용에 스스로를 반성하게 되었습니다.


 


돌이켜 생각해보니, 책의 첫인상만 보고 책을 평가한 경우나 너무도 많았습니다. 원래 책은 즐겁게 읽어야 한다고 생각하고 있지만, 그래도 너무 재밌겠다 싶은 책들만 챙겨보는게 아닌가 싶었습니다. 재미가 없을 것 같아서 묶혀 뒀던 책을 나중에야 읽으면서 후회하는 경우가 요즘 몇 번 있습니다. 지난번에 "대화"가 그랬는데 이번에는 "야생초 편지"가 그렇군요.


 


참 좋은 책입니다. 혹시나 저처럼 선입견에 읽지 않으신 분들은 한번 읽어보시면 좋을 것 같습니다.


 


새의 선물
은희경 지음/문학동네


 책을 사려고 몇 개월 전부터 온라인 서점의 카트에 넣어 두었었는데, 어쩌다보니 계속 구입이 미뤄졌었습니다. 그러다 결국은 사지 않고 읽게 되었는데요. 결론부터 말하자면 읽다가 보니 예전에 읽었던 책이었습니다. -_-; 원래 책이나 영화나 한번보면 잘 잊지 않는데, 요즘은 이상하게 잘 잊어버리네요. 차곡차곡 쌓는 것보다 버리는걸 배워야 한다는건 알고 있지만, 이건 버리는 것도 아니고 잊혀지는 거니..


 


하지만 두번째 읽는 책임에도 역시 좋더군요. 우리나라 소설은 잘 안 읽게 되는데, 이런 소설들은 집을 때는 뜸이 걸리더라도 읽게되면 그 매력에 무섭게 빠져드는 것 같습니다. 문장 하나 하나가 생동감이 있고 인물묘사도 어찌나 좋던지.. 그리고 조금 시간이 지난 작품임에도 주인공의 성격이나 삶의 태도는 요즘의 요즘의 일명 쿨하다는 여성들의 모습과 정말 닮아 있는 것 같습니다. 물론 겉만 그렇다는 거지만요. 그 형성과정이야 같겠습니까.


 


일반적인 여성의 이야기는 아니지만, 여성을 담고 있는 책입니다.




김약국의 딸들
박경리 지음/나남출판


 "새의 선물"이나 이 책이나 어찌보면 비슷하다고도 할 수 있습니다. 시대는 다르지만 여성의 이야기를 담고 있는 책이니까요. "김약국의 딸들"이라는 제목처럼 이 책은 딸들의 이야기를 담고 있습니다. "김약국"이라 불리는 아버지는 그 배경의 역할을 하고 있지요. 읽으면서 "오만과 편견"이 여러번 떠올랐습니다. 앞에서는 "새의 선물" 비슷한 구석이 있다고 했지만, "오만과 편견"에 비교해보면 여자가 나온다는 점 정도가 비슷할 뿐입니다.


 


비슷한 구석이 많은 두 작품이지만, 그래도 이 책에 더 점수를 주고 싶습니다. 사실 "오만과 편견"은 삶의 위트를 담아내고는 있지만 삶의 아픔까지 담아내고 있지는 않거든요. 이 책에는 삶의 한 부분이 아니라, 그 시절 삶의 전체가 남김없이 녹아 있는 느낌입니다. 좋은것도 있지만 나쁜것도 있고, 행복한 것도 있지만 불행도 같이 있는거죠.


 


 


 


   


 


 




 


 


이 글은 스프링노트에서 작성되었습니다.

2007년 7월 5일 목요일

참언론실천시사기자단: 시사저널 기자단의 열정을 응원하며

전, 시사저널이라는 잡지를 소위 시사저널 사태라는 일이 발생하기 전에는 거의 들어본 적이 없습니다. 간단하게 이야기하면, 시사저널이라는 잡지를 읽어본 적도 없습니다.

컴퓨터 공학을 전공하면서, 제가 공부하는 부분을 너무 좋아했기 때문인지 정치나 언론에 대해서는 관심을 가지지 않았습니다. 그러니 그렇게 큰 위상을 가지고 있다던 시사저널을 본적이 없는게 어쩌면 당연하겠죠. 지금은 그렇게 다른 부분에 전혀 관심을 가지지 않았다는걸 약간 후회하고 앞으로 관심을 가질려고 생각중입니다. 하지만, 그때는 그랬었죠.

그래서 저도 이번에 시사저널 기자들이 1년간의 파업 끝에 결국 사표를 제출하고 새로운 저널을 준비한다는 것을 김홍기님의 블로그의 포스트를 보고 처음 알게 되었습니다. 며칠 전에 인터넷 뉴스에서 시사저널 기자들이 사표를 내고 시사저널을 떠났다는 것은 볼 수 있었습니다. 하지만, 자세한 언급들이 되어 있지 않아서 그 내막이나 세부사항에 대해서 알게 된 것은 기자단의 새로운 홈페이지에서 입니다.

기자단에서 새롭게 저널을 준비하고 있는 참언론실천기자단의 홈페이지에 가서 몇가지 글을 보고 그들에 대한 사랑에 생겼습니다. 전 이렇게 열정적으로 필사적으로 현재를 살아가는 사람들을 보면 사랑하는 마음을 감출수가 없습니다. 그들의 생각 하나하나를 알수 없겠지만 그래도 그들의 마음은 느껴졌습니다.

제가 처해 있는 상황상, 여기서 할 수 있는 일들은 별로 없습니다. 정기구독을 신청하는 정도나 주변에 제가 아는 사람들에게이 일에 대해서 한번 알아봐라는말 정도뿐입니다. 밖에 있었으면 조금 더 도움이 될 수 있는 방법들이 있었을 텐데요. 그런게 약간 아쉽습니다.

자신의 인생을, 자신의 기준으로 살아가길 원하고, 그렇게 사는 이들에게 박수를 보냅니다.


2007년 6월 29일 금요일

소프트웨어는 살아 있다

이찬진님의 글을 보면서 하단의  핸드폰 회사들은 소프트웨어에 관심을 가져달라는 말에 문득 기억난 내용이 있습니다.

올해 3월에 대학에서 활동하고 있는 소프트웨어 전공 학회인 자람에서 후배들을 대상으로 조그만 발표를 했습니다.

 발표 내용은 이제 대학 생활을 시작하는 후배들에게 얼마 차이나지 않지만, 제가 느꼈던 다양한 일들과 그로 인해 얻은 교훈을 정리한 것이었습니다. 발표내용을 완전히 포함하고 있지는 않지만 구글독(Google Doc)에 발표 자료를 올렸는데, 그 중간에 제가 가장 강조하고 싶었던 것이 있습니다.

 아래와 같은 내용입니다.

소프트웨어는 살아 있다


여기서 말하고자 하는 내용은 100% 내 개인적인 생각이지만, 꽤 높은 확률로 적중할 것이라고 생각한다.

일단 소프트웨어 분야가 점점 중요성이 더해지고 있다고 생각하는 근거를 보자면 아래와 같다.

  • 몇 년 전부터 인텔리전트 아파트의 개념이 강해지고 있다. -> 앞으로 점점 똑똑한(Smart) 주거환경에 대한 관심과 투자가 이루어질 것이다. 

  • 최근까지 휴대폰의 지상목표는 최대한 작고 가볍게였으나, 요즘은 다양한 기능과 사용성이 중요시 되고 있으며, 얼마전 IPhone의 등장은 소프트웨어의 혁신이 제품의 매력의 결정적인 요소가 된다는 점을 보여준다.

  • 구글에서 시작했던 구글맵, 그리고 그로 인해 현재 웹에 광범위하게 퍼진 AJAX  -> 현재 구글의 웹 에플리케이션들은 컴퓨터를 이용하는 사람들의 이용 패턴을 바꾸어 놓을 정도의 영향력을 보여주고 있다.

  • 중요성이 점점 부각되고 있는 컨버전스의 핵심은 소프트웨어이다. -> 차후 높은 수준의 제품의 뒤에는 높은 수준의 소프트웨어가 핵심이 될 것이다.

  • 구글과 애플은 대표적으로 강력한 소프트웨어 개발능력 회사의 승패를 결정하는 요소가 되었던 예.

    • 구글은 소프트웨어 개발 능력이 회사의 발전을 주도한 전형적인 경우

    • 애플은 경우는 구글에 비해 소프트웨어 개발 역량이 차지하는 비율은 적은편, 애플의 혁신적인 아이디어가 애플의 현재 발전의 주요인. 하지만 그것을 뒷 받침 했던 것이 소프트웨어 개발 역량, 애플의 재등장의 숨은 주역은 소프트웨어 개발.




 위에서 말하고 있는 근거는 그다지 설득력있는 근거는 아니지만, 직관적으로도 최근 우리 주변의 다양한 분야에 소프트웨어가 포함되고 지능화되거나 자동화되고 있다는 것을 알 수 있다. 이러한 변화는 차후 더 가속화될 것이며 앞으로 역량있는 개발자들의 수요는 더욱 늘어날 것이다.

 -- 2007.3.23, 시작하는 후배들을 위하여 발표에서 참고


  현재, 국내 기업들의 다양한 문제점 중, 차후 중요성이 커질 문제점을. 전 소프트웨어 개발역량의 부족이라고 생각합니다. 물론, 우리나라에도 다양한 분야의 고수들이 있지만, 이들을 모여있지도 않을 뿐더러 그들의 역량을 완전하게 발휘할 수 있는 환경도 갖추어지지 않은 경우가 많습니다.

 그리고 단순히 환경의 문제만은 아닙니다. 소프트웨어 개발을 바라보는 관점이라든지, 접근하는 태도, 개발자들의 사고방식도 달라져야 한다고 생각합니다.

 이 글에서 문제에 대한 대안을 제시하고자 하는 건 아닙니다. 다만, 소프트웨어 개발이라는 부분은 차후 그 중요성을 더해갈 것이고, 그만큼 소프트웨어의 미래는 밝을 것이다(준비하는 자에게는)라는 겁니다. 전 희망을 이야기하고 싶습니다.

Man of Month를 마치며

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