본문 바로가기
서평

<실용주의 프로그래머> 개발서적 후기

by pandatta 2022. 9. 13.

실용주의 프로그래머 (The Pragmatic Programmer, 인사이트 출판)

회사 연구소장님의 추천으로 읽게 되었습니다. C++을 주로 파시던 Jay가 python을 프로토타이핑용으로 사용하시게된 계기가 된 책. 제가 읽어보았을 땐, 긴가민가하던 것들에 대해서 cool하게 대답해줘서 좋았습니다.


  • ‘깨진 창문 이론’은 뉴욕과 다른 주요 도시 경찰들에게, 큰일을 막기 위해 조그만 것들을 엄중 단속해야겠다는 영감을 불어넣어 줬다. 정말 그렇게 된다. 깨진 창문, 낙서, 기타 작은 위반 행위를 잘 단속했더니 중범죄가 줄었다. ‘깨진 창문’ (나쁜 설계, 잘못된 결정, 혹은 형편없는 코드)을 고치지 않은 채로 내버려 두지 마라. 발견하자마자 바로 고쳐라. - p.35
  • 돌멩이를 내놔야 할 때다. 큰 무리 없이 요구할 수 있을 만한 것을 찾아내라. 그리고 그걸 잘 개발해라. 일단 되면, 사람들에게 보여 주고, 그들이 경탄하게 하라. 그리고는 “물론 만약 …를 추가하기만 하면 더 나아지겠죠.” 하고 말하라. - p.39
  • 정확한 프로그램이란 무엇인가? 스스로 자신이 하는 일이라고 주장하는 것보다 많거나 적지도 않게 딱 그만큼만 하는 프로그램을 말한다. 이 주장을 문서화하고 검증하는 것이 계약에 의한 설계Design By Contract, DBC의 핵심이다. - p.185
  • 분명히 실행 중인 프로그램을 그냥 종료해 버리는 것은 때로 적절치 못하다. 해제되지 않은 자원resource이 남아 있을 수도 있고, 로그 메시지를 기록할 필요가 있을 수도 있고, 열려있는 트랜잭션을 청소해야 하거나, 다른 프로세스들과 상호작용해야 할 필요가 있을지도 모른다. (…) 되도록 빨리 종료해야 할 일이다. 일반적으로, 죽은 프로그램이 입히는 피해는 절름발이 프로그램이 끼치는 것보다 훨씬 덜한 법이다. - p.201
  • “하지만 물론 그건 절대 일어나지 않을 거야.”라는 생각이 든다면, 그걸 확인하는 코드를 추가하라. - p.202
  • 스파이, 반체제자, 혁명가들은 종종 세포cell라 불리는 작은 그룹으로 조직을 만든다. 각 세포의 구성원은 같은 세포에 속한 구성원만 알 수 있으며, 다른 세포에 누가 있는지에 대해서는 전혀 모른다. 그렇기 때문에 하나의 세포가 발각된다 하더라도, 다른 세포에 있는 사람들은 안전하다. 세포 간의 상호작용을 제거함으로써 모두를 보호하는 것이다. 우리는 이것이 코딩에도 적용할 수 있는 좋은 원리라고 믿는다. 코드를 세포(모듈module)로 구성하고, 이들 간의 상호작용을 제한하라. (역자 주: 흥미롭게도 OOP의 아버지 앨런 케이Alan kay는 세포에서 OOP의 아이디어를 얻었다. 그는 분자생물학을 전공했다.) - p.227
  • 버트란트 마이어Bertrand Meyer는 ‘소프트웨어 건축Software Construction’이라는 표현을 사용한다. 하지만 소프트웨어는 이런 식으로 돌아가지 않는다. 소프트웨어는 건축보다 오히려 정원일gardening에 더 가깝다. 딱딱하기보다는 유기적인 존재다. - p.291
  • 명세서가 안심용 담요 역할을 해서 개발자들이 코드 작성이라는 무서운 세상으로부터 보호받는 기간이 길어질수록 진짜 코드 작성 단계로 옮겨가기는 점점 더 힘들어진다. 이런 명세의 순환에 빠지지 말라. 언젠가는 코딩을 시작해야 하기 때문이다! - p.344
  • 옛 장인들은 자신의 작품에 서명하는 것을 자랑스러워했다. 여러분도 그래야 한다. - p.399

댓글