주석 3요소와 코드 보호
AI가 작성하는 주석은 대부분 기능을 그대로 설명하는 것뿐입니다. 3개월 후에 코드를 다시 보면 왜 그렇게 구현했는지 기억하기 어렵습니다. 이번 강의에서는 주석에 구조를 부여하고 "코드 삭제"에 대한 규칙을 정립합니다. 페이지에 두 개의 인터랙티브 데모가 있습니다.
코드는 "무엇을 했는지"만 표현할 수 있습니다. 왜 존재하는지, 왜 이렇게 구현했는지, 호출 시 무엇을 주의해야 하는지 — 이 정보들은 주석에 기록해야만 시간을 넘어 보존됩니다. "주석을 잘 써라"라는 말은 AI가 실행할 수 없습니다. 고정된 구조와 예시를 제공해야 합니다.
배경
이 함수가 어떤 비즈니스 문제를 해결하기 위한 것인지, 어떤 상황에서 호출되는지. 배경이 없으면 코드를 읽는 사람은 구현만 볼 수 있고, 왜 존재하는지는 알 수 없습니다.
설계 의도
왜 이렇게 구현했는지, 이 방식을 선택한 이유, 그리고 어떤 대안을 포기했는지. git log에서는 찾을 수 없으며, 주석이 유일한 기록 매체입니다.
핵심 제약
호출자가 알아야 할 것: 부작용, 의존 관계, 경계 조건 등 명확하지 않은 주의 사항. 이것이 없으면 다음 호출자가 함정에 빠지게 됩니다.
같은 merge_chat_history 함수에 대한 두 가지 주석 스타일을 클릭하여 전환하고, 각각이 남기는 정보량을 비교해 보세요.
세 가지 실제 시나리오에서 AI가 어떻게 해야 하는지 판단해 보세요. 선택지를 클릭하면 즉시 판정과 함께 해당 규칙 근거를 제시합니다.
현재 정답: 0 / 3
주석 보호
리팩토링 시 "주석이 너무 길다", "코드가 자기설명적이다", "정리하는 김에"를 이유로 배경과 설계 의도 주석을 삭제하는 것을 금지합니다. 구현 변경으로 주석이 부정확해진 경우 반드시 내용을 동기화하여 업데이트해야 합니다. 판단 기준은 하나뿐입니다: 이 주석 없이도 미래의 인수자가 왜 그렇게 했는지 이해할 수 있는가?
코드 삭제 선언
기존 기능 코드를 삭제하기 전에 반드시 사용자에게 이유를 명시적으로 알려야 하며, "정리하는 김에", "쓸모없어 보인다"를 이유로 조용히 삭제하는 것을 금지합니다. 코드를 제거해야 한다고 판단되면 먼저 // TODO: 삭제 권장 - 이유: xxx로 표시하고 허가를 받은 후 삭제합니다.
빈 catch 블록 금지. 모든 try/catch와 오류 분기는 실질적인 처리를 포함해야 합니다: 로그 기록 + 사용자에게 보이는 오류 메시지, 또는 합리적인 폴백 로직. console.log(e)만, pass, // ignore는 모두 조용한 오류 삼킴에 해당하며 절대 허용되지 않습니다.
주석의 사명은 코드가 표현할 수 없는 의사결정 정보를 보존하는 것입니다. 3요소 구조는 AI가 작성할 수 있는 형식을 제공하고, 보호 규칙은 삭제를 방지합니다. 두 가지가 함께 시간을 넘어 지식을 전달합니다.