봄바람이 불어 바깥 나들이 가기 좋은 날씨가 계속되고 있지만, 책상에 산더미처럼 쌓인 책의 유혹을 이기지 못하고 요즘 계속 기술서를 집중적으로 읽고 있는 상황이다. 오늘은 한빛미디어에서 따끈따끈하게 신간으로 보내준 '읽기 좋은 코드가 좋은 코드다'라는 책을 독자 여러분께 소개해보려 한다.
2년 전에 클린 코드: 애자일 소프트웨어 장인 정신이라는 책을 번역해서 독자 여러분들께 선보인 적이 있다. 물론 여러 가지 이유로 인해 흥행은 참패했지만(흑흑흑), 구입한 몇몇 분들로부터 책 내용 정말 좋다는 칭찬을 받아 기분이 좋긴했다. 엉클 밥 마틴의 공력이 느껴지는 이 책이 다루는 주제는 "깨끗한 코드"인데, 실제 코드 쓰기보다 코드 읽기를 훨씬 더 많이 하는 우리 프로그래머 관점에서 깨끗한 코드야 말로 축복이자 성전이라 말해도 과언이 아니다. '클린 코드'는 다소 주관적인 특성이 있긴하지만(저자가 엉클 밥이라는 사실을 기억하자. ㅋㅋ) 자바를 집중적으로 다루기 때문에 깊이도 있고 분량도 만만하지 않으므로 갓 자바에 입문한 초급 개발자가 읽기에는 애로 사항이 여기저기서 꽃필 가능성이 높다. 하지만 오늘 소개할 '읽기 좋은 코드가 좋은 코드다'는 그림과 쉬운 설명을 곁들여 여러 가지 프로그래밍 언어를 대상으로 초보 개발자에 적합한 방식으로 내용을 전개하므로 "클린 코드"에 앞서 워밍업으로 읽어보면 좋을 것 같다는 생각이 들었다.
'읽기 좋은 코드가...'는 10%의 노력으로 90%의 효과를 발휘하는 방법을 기술하는 책이라고 보면 틀림없다. 각 장에서 설명하는 내용은 난이도가 엄청나게 높지도 않고 실천하기도 크게 어렵지는 않지만 일단 실천하게 되면 당장 본전을 뽑을 수 있는 내용이 많기 때문에 개발 과정에서 자주 틀리는 부분을 포스트 잇으로 붙여 두고 주기적으로 복습하는 방법을 사용하면 좋은 성과를 얻을 수 있다. 게다가 실용적인 방식으로 접근하므로 뭔가 치밀한 규칙을 정해놓고 여기에 딱 맞춰 숨도 쉬기 어렵게 강제하는 대신 상식선에서 생각하는 방안을 제시한다는 또 다른 장점도 있다(늘 그렇듯 규칙이 너무 엄격하면 지키기가 어렵다). 물론 실천이 가장 중요하다는 사실은 절대로 변하지 않으므로 이 책을 읽는 당시에만 기분 좋다가 끝나버리면 안 된다는 사실도 명심하자.
자 그러면, 이 책의 구성은 어떤 식일까? 우선 '핵심 아이디어'에 간결하게 골자를 제시하고 실제 나쁜 코드를 예로 들어 좋은 코드로 바꾸는 방법을 설명한다. 그리고 나서 조금 더 어려운 내용으로 넘어가며 앞서 배운 내용을 확장한다. 마지막에는 요약을 둬서 앞에 나온 내용을 일괄 정리하고 있다. 이 책에서 구체적으로 다루는 내용은 1) 표면적인 수준에서 개선이 필요한 이름, 미학, 주석, 2) 루프와 논리를 단순화하기 위해 필요한 흐름 제어, 복잡한 논리, 변수와 가독성, 3) 코드 리펙터링을 위한 하위 문제 추출, 작은 작업, 생각을 코드로 만드는 방법, 코드 분량을 줄이는 방법, 4) 마지막으로 테스트와 가독성, '분/시간 카운터' 사례다. 분량이 250페이지도 채 안 되므로 부담없이 각자 관심 있는 부분부터 즐겁게 읽으며 남에게 보여도 부끄럽지 않을 정도로 코드 수준을 높이면 좋겠다.
EOB