티스토리 뷰

Hobby/Book

[Book] 읽기 좋은 코드가 좋은 코드다.

생각많은 소심남 2013. 7. 29. 00:41

하루에 한 챕터씩 읽자는 다짐을 하고 처음 완독한 책에 대해서 서평을 간단히 써보고자 한다.



 항상 내 서평을 보면 내 경험에 대해서 책의 내용과 비교해보는 형식으로 서술되어 있고, 이 책을 읽게 된 이유도 좀 그런 것과 연관이 많다. 

사실 프로그래밍을 하는 사람이라면 누구나 그런 생각을 하겠지만 과연 좋은 코드에 대한 서술을 내릴 수 있는 사람이 있을까? 물론 그 답에 "내가 만든 코드" 라고 답할 수 있으면 그 사람은 정말로 대단한 거겠지만 정말로 프로그래밍 세상에서 완벽이라는 것은 없는 거 같다. 항상 버그가 있고, 어딘가에는 개발자가 생각하지도 못한 것들이 존재한다. 그래서 누구나 좋은 코드에 대한 답을 찾으려 노력한다. 이 책도 그런 내용과 마찬가지로 가독성이라는 특정점을 바탕으로 좋은 코드에 대한 정의를 내리고 있다. 

 이 책이 설명하는 것은 이거다. 기본적으로 완벽한 코드는 없고, 그런 코드가 되기 위해서는 타인도 이 코드를 읽었을 때 딱 이해가 갈만한 그런 코드가 좋은 코드라고 설명하고 있다. 물론 우리는 다른 사람이 코드를 볼 때 이해하기 쉽도록 주석을 달고는 하지만 정말 상황에 따라서는 이 주석이 더 가독성이 떨어뜨리는 경우도 발생한다. 혹은 바로 이해하기 쉽게 함수의 기능을 간략한 요약한 내용을 이름으로 적용했는데 막상 이 이름의 모호성으로 인해서 혼란이 발생하는 경우도 있다. 가령 수의 비교같은 경우도 higherThan() 이라는 함수가 있으면 혼란이 올수 있는 요인은 과연 return 값이 인자에 비해서 이상인 값이 들어와야 함수가 실행되는 건지, 혹은 초과인 값이 들어와야 하는 건지에 대해서 모호성이 있다는 것이다. 이런 상황에서는 어떻게 수정할 수 있는지 작가의 시점에서 소개한다.

 개인적으로 책을 읽으면서 '아 이건 내 케이스였는데...' 라는 생각이 들정도로 다양한 케이스에 대한 소개와 예시가 제공된다. 특히 프로그래밍 언어에 한정짓지 않고, 문제에 대한 방법론을 알려주고 있기 때문에 딱히 프로그래밍에 전문적이지 않더라도 흥미있게 읽을만한 요소들이 포함되어 있었다. 그리고 앞에서 말했던 것처럼 케이스에 대한 방법론이기 때문에 굳이 처음부터 꾸준히 읽을 필요가 없다. 목차를 보고 내게 내문제이다. 싶으면 그 부분만 읽어서 어떻게 설명되어 있는지를 찾으면 그만이다. (물론 나는 처음부터 읽기 했지만.,..)

 아무튼 하루에 한 챕터씩 읽어도 금방 읽을만큼 책의 분량이 부담스럽지 않다. 오히려 안에서 다루고 있는 내용 자체가 어쩌면 어렵게 느껴질 만한 내용들이었는데 오히려 일반적인 케이스와 모범 답안을 보여주고 있기 때문에 나름대로 재미있게 읽을 수 있었다. 한번 자신이 만들고 있는 코드를 가독성 측면에서 개선하고 싶다면 한번쯤 읽어 볼 것을 추천한다.

댓글