블로그 목록으로
텍스트 편집
2026년 5월 7일

탭·스페이스 혼용 문서 정리하는 방법

탭과 스페이스가 혼용된 텍스트 파일이나 코드를 정리하는 방법과, 파이썬 IndentationError를 포함한 실무 문제 해결법을 설명합니다.

Q.탭과 스페이스가 혼용된 파일은 어떻게 정리하나요?

VS Code에서 '탭으로 들여쓰기 변환' 또는 '스페이스로 들여쓰기 변환' 명령으로 일괄 변환할 수 있습니다. 코드 전반에 걸친 통일에는 Prettier(코드)나 EditorConfig(편집기 설정)를 사용합니다. Python 코드는 autopep8 또는 black 포매터가 자동으로 통일해 줍니다.

탭 스페이스 혼용IndentationError들여쓰기 통일expandtab

Python 코드를 다른 팀원에게 받아 실행했더니 TabError: inconsistent use of tabs and spaces in indentation 오류가 발생한다면, 탭·스페이스 혼용 문제다. 이 혼용이 발생하는 역사적 배경이 있다.

탭 vs 스페이스 혼용의 역사

초기 터미널 시대에는 탭 문자( )가 들여쓰기 표준이었다. IDE와 에디터가 보급되면서 "탭 너비를 2, 4, 8 중 어느 것으로 보여줄지"가 편집기마다 달라지자, 일관성을 위해 스페이스(보통 2칸 또는 4칸)를 표준으로 쓰는 문화가 생겼다.

2016년 Stack Overflow 개발자 설문(64,000명 응답)에 따르면 스페이스 사용자의 연봉이 탭 사용자보다 평균 6% 높다는 결과가 화제가 됐다(단, 인과관계 아님).

언어별 권장 들여쓰기 표준

언어권장 표준크기
Python (PEP 8)스페이스4칸
JavaScript (Prettier)스페이스2칸
Gogofmt 기본값
Ruby스페이스2칸
HTML/CSS스페이스2칸

VS Code에서 탭↔스페이스 변환

명령 팔레트(Ctrl+Shift+P)에서:

  • Indent Using Spaces: 탭 → 스페이스로 변환 (스페이스 개수 선택 가능)
  • Indent Using Tabs: 스페이스 → 탭으로 변환
  • Convert Indentation to Spaces: 현재 파일의 모든 탭을 스페이스로

Prettier로 전체 프로젝트 통일

bash
npx prettier --write "**/*.js" --tab-width 2 --use-tabs false

Python은 autopep8 또는 black:

bash
# black: 스페이스 4칸 강제
black my_script.py

# autopep8: PEP 8 준수로 변환
autopep8 --in-place --aggressive my_script.py

EditorConfig로 팀 전체 강제 적용

저장소 루트에 .editorconfig 파일을 추가하면 팀원 편집기 설정과 무관하게 통일된다.

ini
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8

[*.py]
indent_size = 4

[Makefile]
indent_style = tab

VS Code, JetBrains IDE, Vim, Emacs 등 주요 편집기가 .editorconfig를 지원한다.

Python TabError 즉시 해결

bash
# expand 명령으로 탭을 스페이스 4칸으로 변환 (Linux/Mac)
expand -t 4 input.py > output.py

# Windows PowerShell
(Get-Content input.py) -replace '	', '    ' | Set-Content output.py

정리 체크리스트

  • [ ] EditorConfig 파일이 저장소에 있는가?
  • [ ] Prettier 또는 언어별 포매터 설정이 있는가?
  • [ ] Git pre-commit hook으로 들여쓰기 검사를 자동화했는가?
  • [ ] 기존 파일의 혼용 탭을 일괄 변환했는가?

---

이 글은 AI가 공개 자료를 기반으로 작성했습니다. 언어별 들여쓰기 표준은 각 언어 공식 스타일 가이드를 우선 참조하세요.

텍스트 편집 도구 사용하기

바로 가기 →

관련 글

추가 참고 자료

다른 글 보기