메인 홈
home
사이트 맵 - 한눈에
home

주석은 대체 뭔가? 개발자라면 아는, 기계는 주석을 어떻게 무시할까? (완벽 가이드)

코드를 작성하다 보면 누구나 한 번쯤은 "이 부분이 뭐였더라?"라고 고민해본 경험이 있을 겁니다.
심지어 자신이 작성한 코드임에도 불구하고 시간이 지나면 이해하기 어려워지는 경우가 많죠.
바로 이런 문제를 해결하기 위해 탄생한 것이 '주석(Comment)'입니다. 오늘은 프로그래밍의 숨은 조력자인 주석에 대해 깊이 있게 알아보겠습니다.

1. 주석이란 무엇인가? 프로그래밍의 메모장

주석은 프로그램 소스 코드 내에 작성하는 설명문으로, 코드의 의미나 목적을 설명하는 텍스트입니다. 쉽게 말해 프로그래머가 프로그래머를 위해 남기는 메모라고 생각하면 됩니다.
1.
주석의 기본 개념
프로그램 실행에는 전혀 영향을 주지 않는 텍스트
코드의 가독성과 유지보수성을 높이는 도구
개발자 간의 소통 수단
2.
주석의 형태
한 줄 주석: // (C++, Java), # (Python), -- (SQL)
여러 줄 주석: /* */ (C, Java), ''' ''' (Python)
문서화 주석: /** */ (Javadoc), """ """ (Python Docstring)
3.
주석의 위치
코드 위나 옆에 작성
함수나 클래스 시작 부분에 설명 추가
복잡한 로직 전후로 상세 설명 배치

2. 주석은 왜 생겨났을까? 프로그래밍 역사 속 탄생 배경

프로그래밍 초창기에는 주석이라는 개념이 없었습니다. 하지만 프로그램이 복잡해지면서 필연적으로 등장하게 되었죠.
1.
1940년대 - 주석의 씨앗
초기 프로그래머들은 종이에 별도로 메모를 작성
천공 카드 시절에는 카드 여백에 연필로 설명을 적음
코드와 설명이 분리되어 있어 관리가 어려웠음
2.
1950년대 - 어셈블리어와 함께 등장
어셈블리어가 발전하면서 코드 내 설명의 필요성 대두
세미콜론(;)이나 별표(*)로 시작하는 주석 라인 도입
프로그램과 설명을 하나의 파일에서 관리 가능해짐
3.
1960년대 이후 - 현대적 주석의 정착
FORTRAN, COBOL 등 고급 언어에서 주석 문법 표준화
C 언어의 /* */ 스타일이 많은 언어에 영향
문서화 도구와 연계된 특수 주석 형식 등장

3. 기계는 왜 주석을 읽지 않을까? 컴파일러의 작동 원리

많은 초보 개발자들이 궁금해하는 부분입니다. 왜 컴퓨터는 주석을 무시할까요? 이를 이해하려면 프로그램이 실행되는 과정을 알아야 합니다.
1.
컴파일 과정에서의 주석 처리
렉서(Lexer)가 소스 코드를 토큰으로 분해
주석 기호를 만나면 해당 부분을 통째로 무시
파서(Parser)에게는 주석이 제거된 코드만 전달
2.
주석 제거의 기술적 원리
전처리기(Preprocessor)가 주석을 공백으로 치환
토큰화 과정에서 주석 패턴을 인식하고 스킵
최종 기계어에는 주석 정보가 전혀 포함되지 않음
3.
인터프리터 언어에서의 처리
Python, JavaScript 등도 실행 시 주석을 건너뜀
라인별로 해석하면서 주석 기호를 만나면 다음 라인으로
성능에 영향을 주지 않도록 최적화되어 있음

4. 주석은 왜 중요할까? 개발 현장의 필수 요소

주석을 귀찮아하는 개발자들도 있지만, 실무에서는 주석의 중요성을 절실히 느끼게 됩니다.
1.
미래의 나를 위한 배려
6개월 후 자신의 코드도 남의 코드처럼 느껴짐
당시의 의도와 맥락을 기록해두면 수정이 쉬워짐
버그 수정이나 기능 개선 시 시간 단축
2.
팀워크의 핵심 도구
다른 개발자가 코드를 빠르게 이해 가능
인수인계나 협업 시 커뮤니케이션 비용 감소
코드 리뷰 과정에서 의견 교환의 기초 자료
3.
유지보수성 향상
복잡한 비즈니스 로직의 이유 설명
특정 해결책을 선택한 배경 기록
향후 개선 방향이나 주의사항 명시
4.
문서화의 시작점
API 문서 자동 생성의 기반
사용 예제와 매개변수 설명 제공
프로젝트 전체 구조 파악에 도움

5. 주석 작성의 규칙과 베스트 프랙티스

좋은 주석을 작성하는 것도 하나의 기술입니다. 무작정 많이 쓴다고 좋은 것이 아니라, 적절한 규칙과 스타일을 따라야 합니다.
1.
주석 작성의 기본 원칙
What(무엇)보다 Why(왜)를 설명하라
코드가 스스로 설명하지 못하는 부분만 주석 처리
간결하고 명확한 문장으로 작성
2.
피해야 할 주석 스타일
당연한 내용의 반복 (i++; // i를 1 증가)
오래된 정보나 잘못된 설명
주석으로 처리한 죽은 코드 방치
3.
언어별 주석 컨벤션
Java: Javadoc 형식으로 클래스와 메서드 설명
Python: Docstring으로 함수 설명, PEP 8 스타일 준수
JavaScript: JSDoc 형식 활용, 타입 정보 포함
4.
효과적인 주석 예시
// 잘못된 예: 카운터를 증가시킴 counter++; // 좋은 예: 사용자 요청이 3회 초과 시 일시적 차단을 위한 카운터 counter++;
Plain Text
복사

6. 주석 통일성이 중요한 이유와 팀 규칙 만들기

개인 프로젝트라면 자유롭게 작성해도 되지만, 팀 프로젝트에서는 일관된 주석 스타일이 필수입니다.
1.
통일성이 필요한 이유
코드 가독성과 일관성 유지
새로운 팀원의 빠른 적응
자동화 도구 활용 가능
2.
팀 주석 가이드라인 예시
파일 헤더: 작성자, 날짜, 목적 명시
함수 주석: 매개변수, 반환값, 예외 설명
TODO 주석: 담당자와 완료 예정일 포함
경고 주석: FIXME, WARNING 등 레벨 구분
3.
주석 관리 도구 활용
코드 리뷰 시 주석 품질도 함께 검토
Linter로 주석 스타일 자동 검사
문서 생성 도구와 연동하여 활용도 극대화
주석은 단순한 메모가 아닌, 프로그래밍의 필수 요소입니다.
코드는 컴퓨터를 위한 것이지만, 주석은 사람을 위한 것이죠.
좋은 주석 습관을 들이면 자신뿐만 아니라 함께 일하는 모든 개발자에게 도움이 됩니다.
오늘부터라도 의미 있는 주석을 작성하는 습관을 들여보는 건 어떨까요?
미래의 여러분이 감사할 겁니다!