[TIL] [2024.10.16] Clean Code
#노개북 #노마드코더 #개발자북클럽
오늘 읽은 범위 : 4장. 주석
함수나 변수로 표현할 수 있다면 주석을 달지 마라
코드가 변해도 주석이 변하리라는 보장은 전혀 없다.
- 설계서를 작성해서 문서관리를 하자. etc) JIRA, Confluence, Slack, Office(Word, Excel …)
이력 관리는 주석이 아닌, 형상관리 툴을 사용하자. etc) Git, SVN, Toltoise …
- 있으나 마나 한 주석을 달려는 유혹에서 벗어나 코드를 정리하라. 더 낫고, 행복한 프로그래머가 되는 지름길이다.
주석은 어떤 상황에서 어떻게 사용하는 것이 좋은가. 책을 읽다보니 코드를 처음 배울 때, CSS를 배너주석 아래에 기능별로 모아놓는다던가 Early return Pattern을 몰라 끝없는 중첩구문을 마주하던 기억이 떠올랐다. 그 당시에는 그리 길지 않은 코드였기에 배너주석 아래에 기능별로 모여있는 것이 합리적이라고 생각했었지만 이후 규모가 커지면서 관리해야할 코드가 늘어나자 배너 주석은 있으나 마나 한 존재가 되었고, 오히려 CSS를 모듈화하여 때론 페이지별로, 때론 기능별로 관리하는 것이 더 효율적이라는 것을 알게되었다. 지금 생각해보면 값진 경험이었지만 이 책을 먼저 읽었더라면 많은 도움을 받지 않았을까 생각한다.
오늘은 주석에 관련된 이야기였지만, 가장 인상깊었던 내용은 에라스토테네스의 체라는 알고리즘의 최적화에 대한 이야기였다. 개발 공부를 하면 할 수록 수학과는 떼놓을 수 없다는 느낌을 받는다. 소수를 구할 때 제곱근보다 더 큰 숫자의 배수는 고려하지 않아도 된다니! 누군가는 당연히 알고있는 문제일 수도 있지만, 나에게는 O(n²)나 걸리는 문제가 O(nloglogn)으로 획기적인 시간단축을 이루는 최적화 방법이었다. (당시에는 중요하게 생각하지 않았지만, 실제로 학부생때 선배는 정수론을 읽어보라고 추천했었다.)
주석(註釋) : 낱말이나 문장의 뜻을 쉽게 풀이하는 것,
코드에서 주석이란 역설적이게도 그 뜻과는 반대로 쉽게 풀어쓰려는 의도가 도리어 가독성을 해치게 된다는 점에서 깊게 공감했다. 정작 필요한 곳에 사용되지 못하는 주석은 필요한 곳에 사용된 주석마저 지나치게 만들 수 있기 때문에 없으니만 못하다.
(말은 쉽지, 코드를 보여 줘.)
"Talk is cheap, show me the code”
- Linus Torvalds -
위 격언에 빗대어보면 주석을 달아서 읽는 사람이 이해할 수 있도록 하라는 의미가 아니라, 코드를 명확하게 작성하여, 누구라도 알아볼 수 있는 코드를 추구하라는 의미로도 통용되지 않을까.
https://kirahaa.github.io/clean-code-05/
- 깔끔하고 정리가 잘 된 글 -https://yong-nyong.tistory.com/33
- 간단명료한 글 -
- TIL 이라는 목적에 충실한 글 -
Subscribe to my newsletter
Read articles from 김동진 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by