파이썬(Python)은 다른 프로그래밍 언어와 달리 코드를 구조화하는 데 있어 '들여쓰기(Indentation)'를 문법적으로 강제하는 독특한 특징이 있습니다. C언어나 자바가 중괄호({})를 사용하여 코드 블록을 구분한다면, 파이썬은 오직 들여쓰기 공간을 통해 제어문과 함수 범위를 결정합니다.

1. IndentationError: expected an indented block (구조적 누락)
이 오류는 파이썬 인터프리터가 "여기서부터는 하위 코드 블록이 시작되어야 하는데, 왜 들여쓰기가 되어 있지 않느냐"라고 묻는 것과 같습니다. 주로 조건문(if), 반복문(for, while), 함수 정의(def), 클래스 정의 뒤에 실제 실행할 코드가 오지 않았을 때 발생합니다.
발생 원인
if문 뒤에 실행 코드를 바로 작성하지 않고 비워둔 경우- 함수를 선언만 하고 내부 로직을 작성하지 않은 경우
- 반복문 아래의 실행 문장이 상위 문장과 동일한 열에 위치한 경우
해결 방법
가장 단순한 해결책은 해당 구문 아래에 최소 한 줄 이상의 들여쓰기 된 코드를 추가하는 것입니다. 만약 나중에 코드를 작성할 예정이라 잠시 비워두어야 한다면 pass 키워드를 사용하세요.
# 오류 발생 사례
if True:
# 아무 내용 없음 (Error!)
# 올바른 해결 방법
if True:
print("조건이 참입니다.")
# 혹은 pass 사용
def my_function():
pass
2. IndentationError: unindent does not match any outer indentation level (정렬 불일치)
이 오류는 들여쓰기의 깊이가 일관되지 않을 때 발생합니다. 파이썬은 동일한 코드 블록 내에서는 반드시 정확히 같은 크기의 공간을 유지해야 합니다. 단 한 칸의 오차만 있어도 파이썬은 해당 코드가 어느 블록에 속하는지 판단하지 못해 실행을 거부합니다.
발생 원인
- 코드 블록의 시작과 끝의 들여쓰기 칸 수가 다른 경우
- 복사한 코드와 기존 코드의 들여쓰기 설정이 다른 경우
- 수동으로 스페이스바를 누르다 실수로 한 칸을 더 밀거나 덜 밀었을 경우
해결 방법
오류가 발생한 줄뿐만 아니라, 그 바로 윗줄과의 정렬을 확인해야 합니다. 대부분의 최신 코드 에디터(VS Code, PyCharm 등)에서는 수직 가이드라인을 제공하므로, 시각적으로 코드가 일직선상에 있는지 확인하는 습관이 중요합니다.
3. Tab과 Space 혼용 문제 (TabError: mixed spaces and tabs)
눈으로 보기에는 들여쓰기가 완벽해 보이는데 계속 오류가 난다면, 십중팔구 탭(Tab)과 공백(Space)이 섞여 있는 경우입니다. 파이썬 3 버전부터는 한 소스 코드 내에서 탭과 공백을 혼용하는 것을 엄격히 금지하고 있습니다.
어떤 줄은 탭 키로 들여쓰고, 어떤 줄은 스페이스바 4번으로 들여쓰면 시각적으로는 같아 보일지 몰라도 컴퓨터는 이를 완전히 다른 문자로 인식하여 TabError 또는 IndentationError를 발생시킵니다.
해결 및 예방책 (에디터 설정 활용)
이 문제를 해결하는 가장 좋은 방법은 에디터 설정을 변경하는 것입니다.
- VS Code: 하단 상태 표시줄의 'Spaces: 4' 또는 'Tab Size: 4'를 클릭하여 'Convert Indentation to Spaces'를 선택하세요.
- 공통 권장사항: 파이썬 공식 스타일 가이드(PEP 8)에서는 스페이스 4칸을 권장합니다. 에디터 설정에서 "Tab 키를 누를 때 자동으로 공백 4칸으로 변환" 옵션을 활성화하는 것이 좋습니다.
4. 개발 생산성을 높이는 들여쓰기 관리 팁
단순히 오류를 고치는 것을 넘어, 장기적으로 오류를 예방하기 위한 전문적인 팁 세 가지를 제안합니다.
자동 포매팅 도구 활용 (Linting & Formatting)
Black이나 Autopep8 같은 도구를 사용하세요. 코드를 저장할 때마다 들여쓰기를 자동으로 교정해 줍니다. VS Code 사용자의 경우 'Format on Save' 옵션을 켜두면 들여쓰기 스트레스에서 완전히 해방될 수 있습니다.
블록 단위 이동 단축키 숙지
여러 줄의 코드를 한꺼번에 들여쓰거나 내어쓸 때는 마우스를 쓰지 마세요. 블록을 지정한 후 다음 단축키를 사용하면 정밀한 조절이 가능합니다.
- 들여쓰기:
Tab - 내어쓰기(왼쪽으로 이동):
Shift + Tab
보이지 않는 문자 표시 설정
에디터 설정에서 'Render Whitespace' 옵션을 켜면 공백은 점(·)으로, 탭은 화살표(→)로 표시됩니다. 이를 통해 혼용된 부분을 직관적으로 찾아낼 수 있습니다.
핵심 요약 정리
- IndentationError는 파이썬의 코드 블록 구분 약속을 어겼을 때 발생한다.
- 제어문(if, for 등)이나 함수 뒤에는 반드시 들여쓰기 된 실행 코드가 와야 하며, 내용이 없다면
pass를 사용한다. - 탭(Tab)과 공백(Space) 혼용은 치명적인 오류의 원인이 되므로 하나로 통일한다 (권장: 스페이스 4칸).
- VS Code 등 에디터의 'Format on Save' 기능을 활용하여 들여쓰기를 자동화하는 것이 가장 효율적이다.
'오류 > 파이썬' 카테고리의 다른 글
| [Python 파이썬] ModuleNotFoundError 오류 해결 방법 (0) | 2026.01.17 |
|---|---|
| [Python 파이썬] IndexError 오류 해결 방법 (0) | 2026.01.16 |
| [Python 파이썬] TypeError 오류 해결 방법 (0) | 2026.01.15 |
| [Python 파이썬] SyntaxError 오류 해결 방법 (0) | 2026.01.13 |