반응형
The C Programming Language를 집필한 브라이언 커니핸이 지은 The Practice of Programming의 번역서이다. 인포북을 통해 같은 원서의 번역서가 2000년에 나온적이 있었지만 절판된 터라, 이 책은 인사이트에서 재번역되었다. 이 책에서는 C, C++, Java, Perl, Awk 등을 예제로 사용하고 있다. 스타일부터 표기법까지 9가지 장으로 프로그래밍에서 부딪치는 문제를 정리 및 분류하여 설명하고, 예제를 들어 이해를 돕고 있다. 각 장 말미의 요약이 잘 되어 있고, 관심있는 주제는 '더 읽어보기'를 통해 더 조사하도록 배려해 두었다. 원서가 1999년에 나온 터라, 현재 시점에서 출판된 지 거의 10년에 가깝지만 프로그래밍의 수련 원리는 크게 변하지 않았다는 생각이 들었다. 후기와 부록에서 문맥 요약을 통해 책을 한 번 읽고, 나중에 책에서 필요한 관련 내용을 찾고자 할 때 도움을 빨리 얻도록 구성했다.
프로그래밍 수련법
카테고리 컴퓨터/IT
지은이 브라이언 W. 커니핸 (인사이트, 2008년)
상세보기


반응형
반응형
사용자 삽입 이미지

P-Camp 그 두번째 만남을 다녀왔습니다. 2007년 10월 10일 수요일, 코엑스 컨퍼런스센터 401호에서 열렸습니다. 시작하기 전에 신청했던 샌드위치를 먹고나서(처음에는 물이 없어서 그냥 먹다가… 나중에 물을 주셔서 다행이었습니다.) 401호로 들어갔습니다. 오프닝 튜토리얼로 김창준님 께서 "Ontogeny[각주:1] of Unit Tests in Test Driven Development"를 주제로 발표해 주셨습니다. 국제 콘퍼런스 때에 발표되었던 자료라, 발표자료가 영어로 되어 있다고 하시더군요.

Test에는 두가지 방식이 있다고 하셨는데요.
  • Support Programming Test to pass
  • Critic Programming Test to fail
이 있다고 합니다. "린 소프트웨어 개발"의 저자 중 한 명인 Merry Poppendick은 둘 다 선택하라고 하는데, 발표자료에서 다루는 건 "Test to pass"쪽에 중점을 맞춘다고 하셨습니다.

V-Model
이야기와 함께, Design Pattern에는 GoF[각주:2] 여러가지 경험을 두루 쌓은 Christopher Alexander[/footnote]물리와 화학, 수학, 건축학, 전산과학 등을 공부했다고 합니다. [/footnote]가 지었다는 4권으로 된 "Nature of Order"가 소개되었습니다. (시간 없는 분은 2권만이라도 읽으라고 추천하시더군요. 저도 도서관에 신청했습니다.) 이 책은 검증받진 못했지만, 가능성이 있다고 합니다. Best practice라기보다는, A practice로 보는 게 맞다고 하시더군요.

Living Structure의 기준은 Wholeness(전체성)가 언급되었습니다. Life에 대해서 Christopher Alexander는 A와 B를 두고 어느 것이 더 살아있는 느낌이 나는지 피실험자로 하여금 고르게 하였는데, 대부분의 사람들이 살아있다고 느끼는 선택점은 대부분 일치했다고 합니다.
Which one of these two things would I prefer to become by the day of end of life?[각주:3]
Mistake-free[각주:4], 즉 실수가 없으려면 창조(설계적)보다는 생성(단계적)으로 접근하는 게, 실수의 여지가 감소하며 살아있는 느낌을 받을 수 있다고 합니다. 이는 Community, Product, 시(Poem)에도 적용 가능하다고 합니다.

여기서 정의된 Ontogeny는, "Living Sturcture를 만드는 과정"이라고 정의되었습니다. Addition(추가)와 대치되는 Differentiation(분화)[각주:5] 즉 자라나기 전에 기미가 나타나고, 그 후에 출현한다는 모습으로 설명되더군요.

또한 Contextual(직역하면 '문맥상의')을 키워드로 하여 본래 존재하던 것의 훼손을 경계한다는 이야기를 들었습니다. "건물을 피어나게 한다"라는 생각에 약간 감동을 받았습니다. 이를 Structure Preserving Transformation이라고 하더군요. 화가 Henry Matisse의 이야기와 더불어, 살아있는 특징에 대해 몇 가지 언급되었는데요. Center는 주의를 집중하게 하고, 도드라져 보이며, 하나 이상일 수 있다고 합니다. Pattern은 Center를 생성하는 규칙이고, 이보더 더 일반적인 Sequence는 과정을 거치면 Center가 만들어지는 것을 말한다고 합니다.

Unfolding Generative 15 Properties (of Natural Morphology)가 다음에 소개되었는데요. 다음과 같습니다.
(강조된 것은 *)
  1. Levels of Scale
  2. Strong Centers *
  3. Boundaries
  4. Alternating Repetition *
  5. Positive Space
  6. Good Shape
  7. Local Symmetries
  8. Deep Interlock and Ambiguity
  9. Contrast
  10. Gradients
  11. Roughness
  12. Echoes
  13. The Void
  14. Simplicity and Inner Calm
  15. Not-Separateness[각주:6]
이는 15 transformations라고도 불리고, Refactoring(Latent Center를 찾음으로써)에도 적용될 수 있다고 합니다. 신용카드가 유효한 지 검증하는, Luhn Algorithm으로 원시적인 코드에서 Center를 강화시킴으로써 자라는 코드를 보여 주셨는데 매우 인상깊었습니다. 특색처럼, 대규모 응용에는 Process, People Relation, Online Community, Interaction Design이 언급되었습니다.

Q&A시간에는 어떻게 이런 것들을 적용하면 좋겠냐고 하셨는데,
Do once more good thing, Do it again and again…이라고 하시더군요.
작은 좋은 것들이 모여 더 큰 좋은 일에 기여한다는 것이었죠.

토론에는 "14. 효율적인 교육과 여가활용 방안"에 참석했습니다. 뵙기 힘든 다양한 분들을 만나, 진솔한 이야기를 나누고 들을 수 있어 유익한 자리였습니다. 각자 여가를 어떻게 활용하는 지에 대해 퍼실리테이터 역할을 맡으신 분의 조정으로 돌아가면서 이야기를 듣고는 했습니다. "아키텍트를 꿈꾸는 사람들"이라는 네이버 카페에서 활동하시는 분도 있으시더군요. 혼자서 하는 공부와는 다르게 여럿이 하는 스터디는 책임감에서라도 더 열심히 하게되는 동기가 주어진다는 생각을 했습니다. 하지만 토론규칙이나 형식이 지나치게 제약을 주지 않은 한에서, 더 짜임새있더라면 좋지 않았을까 하는 아쉬움도 남았습니다.

토론이 끝나고 나서는, 희망하는 조에 한해서 퍼실리테이터가 토론에서 의미있는 결론이나, 새로이 통찰할 수 있는 것들을 모아 정리해서 간단히 발표하는 시간이었습니다. 발표하는 분에게는 한정판 Geek 티셔츠(!)가 주어지더군요. 발표까지 끝나고 나자, 어느덧 저녁 10시를 약간 넘긴 시각이 되었습니다. 만나기 힘든 분들이 한 자리에 모여 서로 소통하고 배울 수 있다는 점에서 P-Camp는 가치있다고 생각합니다. P-Camp 세 번째 만남을 기대합니다.

사용자 삽입 이미지 사용자 삽입 이미지
사용자 삽입 이미지 사용자 삽입 이미지
  1. 개체발생(Ontogeny)으로 번역되곤 합니다. 발생생물학에서 연구되는 주제 가운데 하나. [본문으로]
  2. Gang of Four의 두문자어(acronym)로, "GoF 디자인패턴"으로 번역된 책이 있다. [본문으로]
  3. http://www.spamula.net/blog/archives/000243.html에서 두 번째 *** 다음 부분을 참고하세요. [본문으로]
  4. free는 무료가 아닌 없다라는 의미 무설탕(sugar-free)과 같은 맥락. [본문으로]
  5. Cellular differentiation을 의미합니다 [본문으로]
  6. Nature of Order에 관한 PDF 형식의 자료를 보려면 다음을 참고합니다. http://www.dreamsongs.com/NewFiles/NatureOfOrder.pdf [본문으로]
반응형

+ Recent posts