읽기 쉬운 코드가 좋은 코드다.
내 손과 내 머리로, 복잡한 코드와 프로젝트를 통제하라!
여러분은 코드를 어떻게 관리하고 있는가? 다른 사람이 더 좋은 코드를 작성하는 방법을 물어보면 뭐라고 조언해주는가? 대부분 여러분보다 더 뛰어난 사람들에게 배운 지식과 아이디어를 떠올릴 것이다. 세상에는 수많은 뛰어난 사람들이 이미 생각했고 고안해낸 좋은 방법들이 흩어져 있다. 이 책은 그러한 지식과 지혜를 한데 모아 한 권으로 응축시켰다.
그리고 응축된 지혜를 매우 실용적이고 효과적으로 전달하고자 했다. 본문의 설명과 개념이 실제로 코드를 어떻게 변화시키고 진화시키는지 레스토랑 예약 시스템을 구현하는 예제를 통해 자세히 보여주고, 이를 통해 프로젝트를 시작부터 끝까지 경험하면서 현대 소프트웨어 엔지니어링의 좋은 관행을 복습하고 더 나은 코드를 작성하는 방법, 복잡하고 유지보수할 수 없는 코드를 개선하는 방법을 배울 수 있게 안배했다.
[옮긴이의 한마디]
어느 정도 이상의 규모를 가진 코드를 다루다 보면 나중에 항상 문제가 되는 부분이 있습니다. 작성된 코드는 점점 유지보수하기 어려워지고, 점점 낡은 코드가 되다가 어느 순간 그 누구도 건드리기 어려운, 엔지니어의 생명력을 길게 만들어주는 코드가 된다는 것이죠. 이건 코드가 사유화된다는 의미로도 볼 수 있을 것입니다. 공동 작업의 결과물이자 우리가 진행한 작업의 가장 최종적인 산출물이 말이죠.
처음 이 책에 대한 번역을 제안받았던 그때가 생각납니다. 회사를 옮긴 후 해석하기 어려운 레거시 코드와 씨름을 하고 있었고, 알 수 없는 판단들의 근거를 찾아내기 위해서 분투하고 있었습니다. 다행히 회사에는 클린 코드의 생각에 동조하는 동료가 많았고(물론 동의하지 않는 사람도 있었고), 어떻게 하면 조금 더 좋은 코드를 만들 수 있을지 고민하는 사람들이 있었습니다.
저는 이 책을 코드라는 산출물을 다뤄야 하는 많은 엔지니어와 매니저들에게 권하고 싶습니다. 코드라는 궁극적인 산출물을 어떻게 인식하고, 어떻게 관리해야 할 것인지, 그리고 코딩이라는 작업을 어떤 관점에서 바라봐야 할 것인지에 대해서 대한 이야기도 충분하게 하고 있다고 봅니다.