오래된 주석의 가치
주석은 과거의 기록입니다. 주석을 항상 최신화하는 건 불가능합니다. 주석에 과거의 의도를 담으면 미래의 개발자에게 코드를 이해하는데 도움이 됩니다.
주석에 대한 의견들을 찾아보면 주석을 최신화하는 게 중요하다는 의견을 많이 찾아볼 수 있습니다. 지금의 동작과 달라진 과거의 주석은 코드를 잘못 이해시킬 수 있기 때문입니다. 이 관점에서 보자면 주석을 남기는 건 항상 선택의 영역입니다. 주석을 남기는 것의 비용이 크기 때문에 주석으로 인한 미래의 이득과 관리 비용을 저울질해야합니다.
저도 비슷하게 생각했어요. 지금과는 다른 과거의 동작을 설명하는 주석은 코드 읽기를 방해한다고 생각했습니다. 그렇기 때문에 가능하면 “왜”에 집중하려고 했어요. “어떻게”를 주석에 적으면 낡기 쉽지만 “왜”는 덜 낡기 때문에 “왜”에 집중하려고 했습니다.
지금도 “왜”에 대한 내용을 적는 게 중요하다고 생각합니다. 하지만 조금 달라진 점이 있어요. 지금과 달라진 과거의 “왜” 역시 의미가 있다고 생각해요. 코드는 끊임없이 변화해요. 어떤 코드는 진화 과정의 꼬리뼈 같은 흔적기관처럼 여전히 남아있지만 왜 있는지 알기 어려워요. 꼬리뼈가 의미가 있던 시절에 “왜” 꼬리뼈가 있었는지에 대한 주석을 남겨놓았다면 미래의 개발자에게 큰 도움이 될 거에요. 물론 의미 없어진 꼬리뼈와 주석 전체를 잘 지울 수 있는 게 제일 좋다고 생각합니다. 꼬리뼈를 잘 지우기 위해서도 과거의 “왜”는 중요하다고 생각해요.
과거의 프로젝트를 유지보수하는 건 꽤나 동적인 과정이에요. 미래를 예측하기 어려워서 선택했던 잘못된 선택들을 이젠 고치고 정리할 때에요. 이때 과거의 “왜”를 알게 되는 건 코드 삭제와 같은 과감한 결정을 할 때 좋은 지도가 됩니다.