부끄러워져서 다짐하는 의미로 글 한 토막.
Mythical Man Month 의 Freidric Brooks 의 신작(작년에 나왔지만) The Design of design 을 요즘 읽고 있다. ((다만 요즘 출근 시간을 앗싸리 땡겨 버려서, 차가 안막히다 보니(…) 진도가 좀 늦다)) 반 쯤 읽은 상탠데, 반복해서 강조하는 내용 중 하나가,
디자이너는 자기 분야의 “모범적인 예제(exemplar)”들을 탐구하고, 연구하고, 그 안에 담긴 원리(rationale)를 이해하고 상황에 맞게 해석해야 한다.
의 내용이다.
좀 더 자세히 쓰자면, 해당 분야의 이론이 되는 근거들(컴퓨터 공학이라면 수학/논리학/전기 공학 …)를 충분히 배우는 것도 중요하고 실무의 내용도 알아야 하며, 이를 이해하기 위해 역사적인 모범 예제들을 탐구하라는 것. 그리고 이런 게 정규 교육 과정의 일부가 되어야 한다라는 건데.
학부시절을 생각해보면 이런 걸 제대로 접해본 적이 있나 싶어서 좀 부끄러워 졌음. 작게는 컴퓨터 프로그래밍으로, 조금 넓게는 어떤 서버의 구조를 생각하고 이걸 구현하는 일을 직업으로 삼고 있는데, 나는 얼마나 이 분야의 역사적인 사례(exemplar)에 대해 탐구해왔나 생각해보니 Orz.
학부 내내 코드를 자세히 읽어본 건 거의 최초 버전의 UNIX 운영체제 ((수업기간의 1/3 기간 정도를 Lion’s code 라는 책을 가지고 소스 코드를 읽으면서 진행한 수업이 있다; 덤으로 동아리 스터디 + 자체 공부로 약간의 UNIX 내부(system V r4) 약간 공부한 수준이니)) , linux kernel ((2.4.x; 이것도 절반은 자의로 스터디하고, 나머지는 소스 코드 분석해서 문서화하는 알바 하면서 얻은 것)) 정도 뿐이다. 회사 와서는 이전에 작성된 서버코드를 여러 개(대략 4개?) 쯤 읽긴 했지만, 이건 빨리빨리 보느라 대충 봤으니…
뻔한 소리지만, 컴퓨터 공학 / 전산학 (Computer Engineering, Computer Science) 는 그렇게 역사가 오래된 분야가 아니다. 그런데도 나는 이 분야의 일부에 국한한 부분을 전문(?)으로 하면서도, 역사, 그리고 그 역사에 담긴 모범 예제들, 그리고 그 안에 담긴 생각들에 대해 너무나도 무지하다. 아직 젊다고 자위할 게 아니라, 좀 더 정진해서 배워야 할 필요가 매우 많다.
어익후 리눅스 커널 소스 자세히 봤으면 잘 한거지 뭐 (…)
전부다 자세히 본 것도 아니고 일부 서브 시스템만 신나게봤지비 Orz. MM/FS랑 Process일부 만 본듯…
자세히 봤다는건 “밑 까지 가봤다”지…
2.4랑 2.6 다른게 어마어마한데 하나도 안 따라간거랑, 2.6 도 나오고나서 바뀐걸 생각하면…
최근에 쓰인 따끈따끈한 코드도
다른 사람이 쓴 거면 보기 힘들던데
고대의 코드를 보는 건 (…)
겪고 싶지 않아요 ;ㅅ;
“따끈따끈 != 깊이 생각해서 잘 작성한 코드”라고 생각하지 않니 -_-;
“모범적인 예제(exemplar)” 가 꼭 “읽기 쉬운 코드”는 아니겠지만 “충분히 읽어볼만한 코드”이긴 할 듯?
글쓰신 것들로 봐서는 rein 님이 만드신 코드가 exemplar가 될 수 있을 듯 ㅎㅎ
그건 멀고 먼 얘기고요 :)
재미있어보이는 책이네. 요즘 디자인…이라는 개념에 관심이 많다보니.
번역이나 해라 :)
Fred Brooks 란 저자를 생각할 때 제가 번역하게 될 일은 없을꺼에요(…)