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 : 프로그래밍에 대한 이야기, 신변잡기

Man of Month를 마치며

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