[Clean Code] Chapter 4. 주석

gahyun·2022년 2월 24일
0

(Feb. 23. 2022.)

기억하고 싶은 내용

  • 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. ... 주석은 언제나 실패를 의미한다.
  • 주석은 오래될수록 코드에서 멀어진다. ... 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하니까.
  • 나라면 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로, 그래서 애초에 주석이 필요 없는 방향으로 에너지를 쏟겠다.
  • 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. ... 지저분한 모듈이라는 사실을 자각한다. 그래서 자신에게 이렇게 말한다. "이런! 주석을 달아야겠다!" 아니다! 코드를 정리해야 한다!
  • 특별한 이유 없이 의무감으로 혹은 프로세스에서 하라고 하니까 마지못해 주석을 단다면 전적으로 시간낭비다. 주석을 달기로 결정했다면 충분한 시간을 들여서 최고의 주석을 달도록 노력한다.
  • 모든 함수에 Javadocs를 달거나 모든 변수에 주석을 달아야 한다는 규칙은 어리석기 그지없다.

소감

  • 주석을 이렇게까지 오지게 깔 줄 몰랐다. 주석으로 설명을 써놓으면 나중에 코드를 다시 읽고 이해하는 데 시간이 단축될 거라고 평소에 생각했었기 때문에, 주석을 향한 계속되는 폄하와 비방에 놀랄 수 밖에 없었다.
  • 하지만 읽고 곰곰이 생각해보면 대부분 맞는 말 같다.
    • 주석은 코드에 실질적인 변화가 있든 말든, 컴파일이 되든 말든 상관없이 그냥 남아서 자리를 지키고 있기 때문에 시간이 흐를수록 outdated되어 잘못된 정보를 담기 십상일 거다.
    • 적절한 함수명을 짓기가 어려울 때나 더 깔끔한 방식이 떠오르지 않을 때, 대충 본래의 의도 혹은 부연설명을 주석으로 달고 다음으로 넘어가곤 했었다. 말그대로, 미숙한 코드를 어떻게든 커버치기 위한 허접한 주절거림일 뿐이었다.
    • 내가 쓴 주석은 내 코드의 다른 독자들에게도 도움이 될 거라고 막연하게 기대하고 있었다. 그런 나 자신은 과연 다른 사람의 주석에 얼마나 도움을 받고 있나 생각해봤다. 별로 도움이 안 된다! 신뢰도 하지 않는 편이다. 주석이 있든 없든 코드를 읽고 확인한다. 그럼 과연 남들은 내 주석이 도움된다고 여겨줄까?
  • 첫 번째 워크텀을 보낼 때 내 팀리드였던 제임스는 매 함수마다 javadocs를 달길 원했다. 그는 영리하며 섬세했고, 배우거나 가르치는 걸 게을리하지 않아서 참 존경스러운 친구였다. 독서도 즐겨 하는 것 같다. 클린코드를 읽지 않았을 것 같지는 않다. 근데 왜 나에게 모든 함수에 주석을 달라고 한 걸까!? 내가 쓴 코드는 주석이 없으면 이해하기 힘들 정도였나? 함수를 다시 고쳐 쓰게 하기보다는 차라리 주석으로 설명하도록 하는 게 더 빠를 거라고 생각한 건가? 나는 스피킹이 딸리니까 차라리 글로 의사소통하자는 무언의 신호였던 거야? 아니면 클린코드에 동의하지 않았던 건가? 이유가 궁금하다. 그 땐 하라고 하니 아무 생각없이 시키는 대로 할 뿐이었다. 클린코드를 미리 읽어봤더라면 물어볼 수 있었을텐데.

궁금한 내용 / 잘 이해되지 않는 내용

0개의 댓글