주석의 중요성을 꺠닫는 요즘

maidenx 프로젝트를 진행하며, 규모가 커짐과 동시에 주석의 중요성을 깨닫게 된 요즘

Author: Han Damin
Tags: comment
Published: 2025/03/30 14:20

주석의 중요성을 꺠닫는 요즘

오늘도 아침부터 코딩을 하다가 문득 깨달은 것이 있어서 기록해본다.

요즘 러스트로 maidenx라는 머신러닝 프레임워크를 만들고 있다. 처음에는 작은 프로젝트로 시작했는데 어느새 코드가 1.5메가가 넘어가기 시작했다. 아침에 커피 한 잔 마시며 예전에 작성했던 코드를 들여다보는데, 내가 왜 이 함수를 만들었는지 기억이 안 나는 거다.

"이 함수가 뭐하는 건지..."

한참을 들여다보다가 겨우 기억이 났는데, 그 과정에서 또 다른 곳에서 비슷한 기능의 함수를 중복으로 만들어놓은 것도 발견했다. 그때 '아, 주석이 정말 중요하구나'라는 생각이 확 들었다.

사실 코드 작성할 때는 항상 머릿속에 모든 맥락이 있으니까 주석이 필요하다고 느끼지 않는다. "이 정도는 코드만 봐도 알겠지"라는 생각으로 넘어갔던 부분들. 근데 일주일만 지나고 보면 그 맥락이 완전히 사라져 있다. 특히 러스트처럼 문법이 복잡한 언어는 더더욱.

어제는 mps 모듈을 리팩토링하느라 5시간을 썼다. 주석이 없으니 각 함수가 어떤 목적으로 설계됐는지, 어떤 제약사항이 있는지 하나하나 다시 파악해야 했다. 이건 정말 비효율적인 시간 낭비였다.

오늘부터는 습관을 바꾸기로 했다. 함수 하나 작성할 때마다:

/// 이 함수는 무엇을 하는가?
///
/// 왜 이렇게 구현했는가?
///
/// 사용 예시:
/// ```
/// let result = some_function(args);
/// ```

이런 식으로 주석을 달기 시작했다. 처음에는 시간이 좀 더 걸리지만, 미래의 내가 분명 고마워할 거라고 생각한다.

프로젝트가 커질수록 코드보다 주석이, 구현보다 설계가 더 중요해진다는 걸 요즘 피부로 느끼고 있다. 이렇게 성장통을 겪으며 개발자로서 한 단계 성장하는 중인 것 같다.

지금은 tensor unary ops의 타입 프로모션 리팩토링이 목표인데, 이번에는 주석부터 작성하고 코드를 손대볼 생각이다. 과연 얼마나 시간이 절약될지 기대된다.

아, 그리고 내일은 꼭 새벽 02시 전에 자야지...