1. 주석 (Comments)
- 역할: 코드 안에 설명이나 메모를 남겨서, 본인이나 다른 사람이 코드를 이해하기 쉽도록 도움.
- 한 줄 주석: # 뒤에 오는 내용은 파이썬이 실행하지 않음.
- 여러 줄 주석: ''' ... ''' 또는 """ ... """ 로 여러 줄을 주석 처리할 수 있지만, 실제로는 문자열로 취급되어 문서화용(docstring)으로도 사용됨.
1-1. 한 줄 주석 (#)
- # 기호는 한 줄 주석 시작을 알리는 문자
- # 뒤에 오는 내용은 모두 파이썬 인터프리터가 무시하여 실행되지 않음
- 코드에 대한 설명, 메모, 임시 비활성화용으로 많이 사용
- 여러 줄 주석 대신 여러 줄에 각각 #를 붙여서 사용할 수도 있음
print("시작")
# 이것은 한 줄 주석입니다.
# 실행 시 아예 무시되어 메모리에도 남지 않습니다.
print("끝")
동작 원리 설명
- # 뒤 내용은 실행 전에 파이썬 인터프리터가 제거하여 메모리에 남지 않는다.
- 그래서 주석 처리 용도로 더 적합하고, 더 가볍고 명확하다.
1-2. 여러 줄 주석과 문서화 문자열 (Docstring)
- 여러 줄 주석은 보통 작은따옴표 3개(''' ... ''') 또는 큰따옴표 3개(""" ... """)로 감싸 작성
- 파이썬에서는 이 문법이 문자열 리터럴로 인식되며, 실제 주석이라기보다 문서화 문자열(docstring) 로 주로 사용됨
- 함수, 클래스, 모듈에 대한 설명을 작성할 때 사용
- 코드 중간에 작성하면, 실행 시 해당 문자열이 평가되지만 변수에 할당하지 않으면 무시됨(주석 효과)
doc = '''
이 문자열은 변수에 저장되어
프로그램에서 일반 문자열처럼 사용됩니다.
'''
print(doc)
# 출력:
# 이 문자열은 변수에 저장되어
# 프로그램에서 일반 문자열처럼 사용됩니다.
def func():
"""이 함수는 예시용 문서화 문자열입니다."""
pass
print(func.__doc__)
# 출력: 이 함수는 예시용 문서화 문자열입니다.
print("시작")
'''
이 문자열은 실행 시 평가되지만,
변수에 저장하지 않으므로 아무 영향이 없습니다.
즉, 코드 실행에는 영향을 주지 않는 주석 역할을 합니다.
'''
print("끝")
# 출력:
# 시작
# 끝
동작 원리 설명
- ''' ... ''' 또는 """ ... """ 로 감싼 여러 줄 문자열은 문자열 리터럴이다.
- 만약 함수, 클래스, 모듈 정의 바로 아래에 위치하면 docstring 으로 인식되어 도움말 등에 활용된다.
- 하지만 코드 중간에 그냥 단독으로 있으면, 실행 시 파이썬이 문자열 객체를 만들었다가 바로 버린다.
- 즉, 메모리에는 잠깐 생성되지만 변수에 저장하지 않아 곧바로 폐기되어, 실행에 영향이 없으므로 주석처럼 사용 가능하다.
1-3 # 주석과 여러 줄 주석의 차이
| 구분 |
# 한 줄 주석 |
여러줄 주석 / Docstring ( ''' ''' 또는 """ """) |
| 문법 |
# 뒤에 주석 작성 |
작은따옴표 또는 큰따옴표 3개로 문자열 감싸기 |
| 실행 영향 |
완전히 무시되어 실행에 영향 없음 |
실행 시 문자열 객체로 평가되나, 변수에 할당 안 하면 무시됨 (주석처럼 사용) |
| 사용 목적 |
코드 설명, 임시 주석 처리 |
함수, 클래스, 모듈 설명(docstring), 긴 설명 작성 |
| 여러 줄 주석 용이성 |
여러 줄마다 #를 붙여야 함 |
한 번에 여러 줄 작성 가능 |
| 가독성 |
짧은 설명에 적합 |
긴 설명에 적합 |
📝 주석 작성 팁
- 의미 있는 주석을 쓰자
- 코드를 읽는 사람이 이해하기 쉽도록, 왜 이 코드를 썼는지 의도를 설명하는 주석이 가장 좋다.
- 단순히 “변수 선언” 같은 너무 뻔한 주석은 오히려 방해가 될 수 있다.
- 코드와 동기화 유지
- 코드를 수정할 때 주석도 함께 업데이트해야 한다.
- 주석이 오래돼서 실제 코드와 다르면 혼란을 준다.
- 짧고 간결하게 작성
- 주석은 길게 쓰기보다 핵심만 간결하게 전달하는 것이 좋다.
- 복잡한 로직에는 단계별 주석 사용
- 여러 줄에 걸친 복잡한 처리나 알고리즘 구현 시 각 단계마다 주석을 달아 이해를 돕는다.
- 함수와 클래스에는 docstring 활용
- """ """ 안에 함수나 클래스의 역할, 입력값, 반환값 등을 설명해두면 나중에 자동 문서 생성 도구와 연동할 수 있다.
- 임시 코드 비활성화는 한두 줄까지만
- 너무 많은 코드를 주석 처리하는 대신, Git 등의 버전 관리 시스템을 활용해 과거 코드를 관리하는 게 좋다.
- 일관성 있는 스타일 유지
- 팀에서 코딩할 때는 주석 스타일과 위치를 통일하면 가독성이 좋아진다.