본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] 파이썬 들여쓰기 가이드 : 탭(Tab) vs 공백(Space) 무엇이 정답일까?

by Papa Martino V 2026. 1. 30.
728x90

탭(Tab) vs 공백(Space)
탭(Tab) vs 공백(Space)

 

파이썬을 처음 배우는 초보자부터 숙련된 개발자까지, 가장 기초적이면서도 논쟁이 치열한 주제 중 하나가 바로 들여쓰기(Indentation)입니다. 다른 언어에서는 들여쓰기가 단순한 가독성을 위한 선택 사항이지만, 파이썬에서는 문법적 구조를 결정하는 핵심 요소입니다. 코드의 운명을 결정짓는 'Tab vs Space' 논쟁에 대해 파이썬 공식 표준과 현업의 관례를 바탕으로 명확한 해답을 제시해 드립니다.

1. 파이썬에서 들여쓰기가 중요한 이유

C나 Java 같은 언어는 중괄호{}를 사용하여 코드 블록을 구분합니다. 반면, 파이썬은 오직 들여쓰기만으로 코드의 종속 관계를 정의합니다. 들여쓰기 한 번이 잘못되면 프로그램이 아예 실행되지 않거나(IndentationError), 논리적으로 전혀 다른 결과를 초래할 수 있습니다. 이는 파이썬의 창시자 귀도 반 로섬이 코드를 '읽기 쉽게' 만들기 위해 강제한 규칙입니다.

2. 공식 가이드라인: PEP 8의 권장 사항

파이썬 개선 제안서 8번, 즉 PEP 8은 파이썬 코드를 작성하는 공식 스타일 가이드입니다. 여기에서는 들여쓰기에 대해 아주 명확한 기준을 제시하고 있습니다.

  • 권장 사항: 4개의 공백(Spaces)을 사용하는 것을 강력하게 권장합니다.
  • 탭(Tab)의 지위: 탭은 이미 탭으로 작성된 기존 코드와의 일관성을 유지하기 위해서만 사용해야 합니다.
  • 혼용 금지: 하나의 코드 안에 탭과 공백을 섞어서 사용하는 것은 절대 금지됩니다. 파이썬 3에서는 이 두 가지가 섞여 있으면 실행 시 오류가 발생합니다.

3. 탭(Tab) vs 공백(Space) 상세 비교

왜 현대 개발 환경에서는 '4개의 공백'이 승리하게 되었는지 아래 비교표를 통해 확인해 보겠습니다.

  • 공식 표준 (PEP 8)

허용되나 권장하지 않음표준 권장 사항

항목 탭 (Tab) 공백 (Spaces, 4칸)
가독성 일관성 에디터 설정에 따라 폭이 달라짐 어느 환경에서나 동일한 폭 유지
파일 용량 적음 (문자 1개 처리) 상대적으로 큼 (문자 4개 처리)
현업 협업 설정 차이로 인한 코드 깨짐 발생 가능 가장 안정적이고 보편적인 방식

4. 코드 예시 (Sample Example)

올바른 들여쓰기와 잘못된 들여쓰기의 차이를 파이썬 코드로 살펴보겠습니다.

# [Good] PEP 8을 준수하는 4공백 들여쓰기
def calculate_area(radius):
    if radius > 0:
        pi = 3.14159
        return pi * (radius ** 2)
    else:
        return 0

# [Bad] 탭과 공백이 섞인 경우 (Python 3에서 오류 발생 가능)
def greet(name):
    print("Hello")
	print(name)  # 이 줄만 탭(Tab)으로 작성된 경우 오류!

현대적인 코드 에디터(VS Code, PyCharm 등)를 사용하면 Tab 키를 눌러도 자동으로 4개의 공백으로 변환해주는 기능이 기본적으로 설정되어 있습니다. 따라서 개발자는 편하게 Tab을 누르되, 실제 소스 코드에는 Space가 입력되도록 설정하는 것이 가장 스마트한 방법입니다.

5. 실전 팁: 기존 코드의 들여쓰기를 바꾸고 싶다면?

만약 기존에 탭으로 작성된 코드를 공백으로 바꾸고 싶다면, 일일이 지우고 쓸 필요가 없습니다. 대부분의 IDE에는 "Convert Indentation to Spaces"라는 기능이 내장되어 있습니다. 또한 autopep8이나 black 같은 코드 포매터(Formatter) 라이브러리를 사용하면 명령어 한 줄로 전체 프로젝트의 들여쓰기를 표준에 맞게 자동 교정할 수 있습니다.

6. 결론: "4 Spaces is the Standard"

파이썬의 세계에서 들여쓰기는 단순한 스타일이 아니라 약속입니다. 혼자 개발할 때는 탭을 써도 큰 문제가 없겠지만, 오픈 소스에 기여하거나 팀 단위 협업을 할 때는 4개의 공백을 사용하는 것이 '프로페셔널한 파이썬 개발자'의 기본 소양입니다. 지금 바로 여러분의 에디터 설정을 확인해 보세요!


내용 출처 및 참고 자료

  • Python Software Foundation: PEP 8 -- Style Guide for Python Code (Indentation)
  • The Zen of Python (PEP 20): "Explicit is better than implicit."
  • Google Python Style Guide: Indentation and Tabs
728x90