
이 책을 읽기 전서부터 저는 이 책에 대한 기대감이 컸습니다. 프로그래머라면 무조건 읽어야 한다는 책 중 하나였기 때문에 많이 궁금하기도 했습니다. 왠지 이 책을 읽고나면 프로그래머로서 더욱 성장할 수 있을거라 생각되었습니다.
우선 이 책을 읽으면서 든 생각은 절대 한 번에 소화할 수 있는 책이 아니라는 점이었습니다. 우선 책에서 설명하는 코드의 내용이 방대했기 때문입니다. 특히 '점진적인 개선'파트에서는 여러 페이지에 걸쳐 소개되는 많은 양의 코드를 점차적으로 수정해나가며 보여주기 때문에 집중해서 읽어야 했습니다. 앞으로 이 책을 여러번 읽으며 완전히 제 것으로 만들고 싶어졌습니다.
또 막상 이 책을 읽으니 저번에 읽었던 '리팩터링'책과 많이 흡사하다고 느꼈습니다. 둘 다 테스트와 관련된 내용을 되게 중시하면서 다루고 있었습니다. 또 '클린 코드'책에서도 정말 클린한 코드를 작성하려면 여러 번 같은 코드를 분석하며 재작성해야한다고 말하고 있습니다. 실제 글을 쓸 때도 초안을 작성하고 여러번 수정을 거치면서 최종안이 나오는 것처럼, 클린한 코드도 여러번의 시도로 점점 나아진다고 말하고 있으며 이는 '리팩터링'책에서 말하는 것과 일맥상통합니다.
하지만 클린한 코드를 작성하는 것은 결코 쉬운일이 아님을 이 책을 통해서 알게 되었습니다. 간단하게는 변수 명과 함수 명부터 함부로 작성하면 안됨을 강조합니다. 이름을 대충 정하고 주석을 다는 것은 매우 안좋은 행위라고 설명하고 있습니다. 여기서 저는 반성을 크게 하였습니다. 가끔 제가 봐도 코드의 가독성이 떨어지고 이해하기가 어려운 경우에는 그냥 주석을 달아서 설명을 하곤 했었는데 이런 행위가 엄청난 독이 된다고 책은 설명하고 있습니다. 애초에 주석이 필요없을 정도로 코드의 가독성을 높이는 것이 더욱 좋은 방향이라고 말합니다. 저는 이 주장이 정말 맞다고 생각하며 크게 동의를 하였습니다.
이 책의 예제코드는 모두 Java를 기반으로 하여 작성이 되어있습니다. 저는 요새 프론트엔드 개발 쪽으로 일을 하고 또 이 쪽만 공부를 하다보니 상당히 오랜만에 Java 코드를 접하게 되었습니다. 간만에 Java 코드를 볼 수 있어서 신선하고 좋았습니다.
이 책을 읽으면서 저는 아직 멀었구나 하는 생각이 크게 들었습니다. 아직도 배울 것이 너무 많으며 배우고 싶은 것들이 많습니다. 단순히 코드가 제 기능을 한다고 해서 좋은 코드가 아님을 크게 깨달았습니다. 또한 클린한 코드를 유지해야 다른 사람들이 제 코드를 읽을 때 더욱 좋은 효율이 날 수 있으며 이는 제 스스로도 마찬가지입니다.
한 번에 모든 내용을 익힐 수 없기에 이 책을 근처에 두고 꾸준히 읽으며 제 스스로의 코딩 작성 능력 또한 계속해서 키우려고 합니다. 그만큼 클린한 코드를 작성하는 것은 쉬운 일이 아니며 꾸준한 노력을 통해 얻어지는 결과임을 알게 되었기 때문입니다.