프로그래밍의 규칙 - 언어를 벗어난 효율적 규칙들

최관수·2024년 6월 23일
0

서평

목록 보기
5/11

이 책은 처음부터 읽기 부담스럽다면 서문에서 권유한 것처럼, 목차에서 흥미를 끄는 규칙을 찾아 읽어나가는 방법도 괜찮다. 총 21개의 규칙을 예시 코드와 함께 설명하고 있다.

가장 첫 규칙인 ‘최대한 단순하게, 그러나 너무 단순하지 않게’에서는 단순성의 중요성을 강조하며, 코드의 단순성을 측정하는 기준으로 동료가 코드를 쉽게 이해할 수 있는지를 제안한다. 실제로 실무에서 코드를 작성할 때 난 두 가지 기준을 두고 작성한다. 내가 내 코드를 타인에게 잘 설명할 수 있는가, 그리고 내 설명이 없더라도 내 코드를 내 동료가 보았을 때 이해할 수 있는가, 혹은 납득할 수 있는가. 물론 실천하는 일이 쉽지는 않지만 최대한 노력하고 있는데, 비슷한 맥락에서 단순하지만 직관적으로 코드를 작성하는 방법에 대해 설명하는 부분이 인상적이었다.

기본적으로 이 책은 C++을 기반으로 쓰여 있는데, 해당 언어를 모르더라도 이해 가능한 규칙들이 있다. 예컨대 ‘좋은 이름은 최고의 문서다’라는 말은 단순히 글자 수를 줄이는 것이 아니라, 좋은 이름을 통해서 생각하게 하지 말라는, 즉 직관적으로 받아들일 수 있게 작명하라는 의미였다. 추가로 모두가 변수에 동일한 규칙을 적용하면 동료의 코드를 자신의 코드처럼 느낄 수 있음을 언급하고 있는데, 컨벤션의 중요성을 다시금 생각할 수 있는 부분이었다.

코딩을 하다 보면 다양한 예외 케이스를 상상하게 되지만, 이건 안전한 습관이기도 하면서 반대로 스스로 빠지는 함정이기도 하다. 모든 케이스에 대해 일반화를 하기 시작하면 코드가 비대해지고 불필요한 사이드 이펙트를 경험하기도 했다. 그런 맥락에서 ‘필요하지 않으면 구현하지 말라’는 규칙은 섣부른 일반화를 통해 절대 실행되지 않을 코드를 작성할 가능성이 크다고 지적하며, 많은 예외 케이스를 산정하고 대응하는 건 물론 좋지만 결국 사용되지 않으면 무의미할 수 있음을 말하고 있다.

그 와중에 직관적으로 다가오는 규칙은 ‘잡초를 뽑으라’는 규칙이었다. 동물의 숲에서 잡초를 주기적으로 뽑아주지 않으면 마을이 잡초로 뒤덮이듯, 개발 또한 코드 베이스에서 생기는 작은 문제들, 즉 잡초를 뽑아줘야 한다는 이야기였다. 하지만 이것이 잡초인지 아닌지 식별해야 하는 선행 과제가 필요하다. 잡초를 뽑는 일은 쉬운 일이지만 동시에 그렇기 때문에 외면하기도 쉬워지기 마련인데, 그 또한 언급하며 꾸준히 관리해 줘야 함을 언급하고 있다.

이 책은 다양한 측면에서 실용적이고 직관적인 규칙들을 제시하고, 좀 더 효율적이고 이해하기 쉬운 코드를 작성할 수 있도록 돕는다. 각 규칙은 게임을 구현한 현실적인 코드와 함께 제시되어 있어 좀 더 와닿는 부분이 있다. 언젠가 C++이 지금보다 친숙해지면 한 번 더 읽어보고 싶은 마음이 든다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

profile
평소엔 책과 영화와 음악을 좋아합니다. 보편적이고 보통사람들을 위한 서비스 개발을 꿈꾸고 있습니다.

0개의 댓글