Chapter4. 주석
주석을 달 시간에 어떻게 코드를 더 잘 표현할지에 대해 고민하자.
4.0 주석은 필요악이다.
분명 좋은 주석도 있다. 하지만 우리의 주석은 보통의 경우
나쁜 주석
일 가능성이 높다.주석을 다는 이유를 생각해보자. 나의 경우를 생각해보면 내가 작성한 코드를 상대방이 내가 의도한 대로 이해하기를 바라는 마음에 적는 경우가 많았다. 처음부터 다른 사람이 읽었을 때 의도한 대로 코드를 이해할 수 있게 작성해야 하는데 나는 그렇지 못했던 것이다.
또한 주석은 변화하는 코드에 따라가지 못하는 경우가 많다. 이것또한 많은 사람이 공감할 이야기라 생각한다. 혼자가 아닌 팀이 하는 프로젝트에 주석을 하나 달아 놓으면 그 주석은 미아가 되어버리는 경우가 많다.
4.1 주석은 나쁜 코드를 보완하지 못한다.
코드에 주석을 추가하는 일반적인 이유는 코드의 품질이 나쁘기 때문이다
만약 코딩을 하다
아 주석을 달아야 겠다!
라는 생각이 들면 절대 주석을 달면 안된다.코드를 정리해야한다.
표현력이 풍부하고 깔끔하며 주석없는 코드가 주석이 여럿 달린 코드보다 훨씬 좋다.
자신이 저지른 난장판을 주석으로 설명하려 애쓰지 말고 난장팡을 깨끗이 치우는데 시간을 쓰자!
4.2 코드로 의도를 표현하라
분명 코드만으로 의도를 설명하기 어려운 경우가 존재한다. 하지만 시간을 들이면, 생각을 조금 더 해보면 분명히 코드로 대다수 의도를 표현할 수 있을 것이다.
4.3 좋은 주석
좋은 주석은 필요하거나 유익하다. 단 명심하라 우수한 주석은 달지 않을 방법을 찾아낸 주석이라는 사실을!
4.3.1 법적인 주석
법적인 내용, 저작권 소유권 정보는 필요하다.
4.3.2 정보를 제공하는 주석
기본적인 정보를 제공하는 주석인 편리하다. 주로 테스트 케이스에서 의미가 있다.
4.3.3 의도를 설명하는 주석
표현력이 풍부한 이름을 가진 함수가 있다고 해도 만약 코드를 같이 공유하지 않는 사람이 본다면 헷갈릴 여지는 충분히 있다. 이럴때는 코드의 의도를 설명하는 주석을 달면 좋다.
이미 표현력이 풍부한 함수였고 저자의 의도까지 설명이 되어있다면 코드를 처음보는 사람도 충분히 이해할 수 있을 것임.
4.3.4 의미를 명료하게 밝히는 주석
때때로 애매한 인수나 반환 값은 그 의미를 읽기 좋게 표현하면 이해하기 쉬워진다.
물론 우리가 직접 작성하는 함수들은 앞서 이야기한 부분을 다 표현력있게 해야한다.
단, 우리가 작성한 코드가 아니라
표준 라이브러리
와 같이 이미 만들어져 있는 무언가를 사용할 때는 인수나 반환값이 애매할 때가 존재한다. 이런 경우에 주석을 달아서 그 의미를 명확하게 하는건 좋은 주석이다.
4.3.5 결과를 경고하는 주석
다른 프로그래메어게 결과를 경고할 목적으로 주석을 사용한다.
예를 들면 코드의 실행 결과로 무엇인가
삭제
되거나수정
되는 경우, 또는 실행시간이 매우 긴 경우가 있다.
4.3.6 TODO 주석
앞으로 할 일
을//TODO
주석으로 남겨두면 좋다.주의할 점은
//TODO
주석을 남겨놓고 너무 오랫동안 방치하는건 좋지 않다.수시로
TODO
주석을 점검하는 습관을 들이자
4.3.7 중요성을 강조하는 주석
자칫 대수롭지 않다고 여겨질 뭔가의 중요성을 강조하기 위한 주석
4.4 나쁜 주석
대다수 주석이 이 범주에 속한다.
4.4.1 주절거리는 주석
특별한 이유 없이 의무감으로 혹은 작업 프로세서에서 하라고 하니까 마지못해 다는 주석을 절대로 시간낭비다.
만약, 주석을 무조건 달아야하는 상황이라면 충분한 시간을 들여서 최고의 주석 을 만들자.
4.4.2 같은 이야기를 줒ㅇ복하는 주석
이미 표현력이 충분한 함수를 만들어 놓았는데, 그 함수에 굳이 주석을 달아서 함수를 설명할 필요는 없다.
이런 주석은 함수보다도 더 많은 정보를 제공하지 못한다.
4.4.3 오해할 여지가 있는 주석
정확하지 않는 주석은 정말 최악이다...
나쁜 주석은 너무 많아서 이하는 생략한다. 결론은 왠만하면 주석을 달 시간에 어떻게 더 표현력 있게 코드를 작성할지를 고민하자.
Last updated