파이썬 들여쓰기 에러(IndentationError) 해결하는 방법
파이썬을 배울 때 가장 먼저 만나는 벽
파이썬은 문법이 사람의 언어와 비슷해서 처음 프로그래밍을 배우는 사람들에게 아주 인기가 많습니다. 영어로 대화하듯 코드를 작성할 수 있어서 진입 장벽이 낮다고 소문이 나 있습니다.
하지만 코딩을 시작하고 몇 줄 안 되어서 당황스러운 순간을 마주하게 됩니다. 내가 작성한 코드는 아무 문제가 없어 보이는데 화면에 붉은색 글씨로 에러 메시지가 쏟아지는 상황을 겪게 됩니다.
그중에서도 가장 흔하게 발견되는 것이 바로 들여쓰기 에러입니다. 파이썬 초보자뿐만 아니라 경력이 있는 개발자들도 가끔 헷갈려서 마주하는 문제입니다.
이번 글에서는 이 에러가 왜 발생하는지 명확하게 이해하고 앞으로 다시는 이 문제로 시간을 낭비하지 않도록 실용적인 해결 방법을 자세히 알아보겠습니다.
이번 글에서는 맥(Mac)에 파이썬 3.14.8을 설치하고, 일부러 들여쓰기를 틀리게 써서 에러를 직접 내본 뒤 해결하는 과정을 화면과 함께 보여드립니다.
저는 코딩을 잘 모르는 초보입니다. 그래서 이 글은 설명만 읽지 않고, 맥에 파이썬을 직접 설치한 뒤 터미널에서 코드를 실행하며 따라 해본 기록입니다. 에러 화면이 좀 낯설기는 했지만, 메시지에 적힌 줄 번호를 따라가니 어디를 고쳐야 하는지 알 수 있었습니다.
x = 10
if x > 5:
print("크다")
위 코드를 test.py 파일로 저장해서 실행하면 아래와 같은 에러가 나옵니다.

에러 메시지가 알려준 대로 if 문 다음 줄(3번째 줄) 앞에 공백 4칸을 넣어서 고쳤습니다.
x = 10
if x > 5:
print("크다")
고친 코드를 다시 실행하니 에러 없이 아래처럼 크다가 출력됐습니다.
크다
파이썬에서 들여쓰기가 특별한 이유
자바나 C언어 같은 다른 프로그래밍 언어들은 코드의 블록을 구분할 때 중괄호를 사용합니다. 어디서부터 어디까지가 한 세트인지 기호로 정확하게 표시해 줍니다. 반면에 파이썬은 이런 기호 대신 오직 들여쓰기만을 사용해서 코드의 구조를 파악합니다. 코드의 시작과 끝을 눈으로 보이는 여백으로 판단하는 것입니다.
파이썬이 이런 방식을 선택한 이유는 가독성 때문입니다. 개발자들이 작성하는 코드는 컴퓨터가 읽는 용도이기도 하지만 결국 사람이 읽고 유지보수해야 합니다.
강제로 일정한 형태의 들여쓰기를 하도록 만들면 전 세계 어디서든 비슷한 모양의 코드가 만들어지고 다른 사람의 코드를 훨씬 더 쉽게 읽을 수 있습니다. 컴퓨터 입장에서는 조금 까다로울 수 있지만 협업을 중요하게 생각하는 파이썬의 철학이 담겨 있는 부분입니다.
들여쓰기 에러가 발생하는 대표적인 상황들
코드를 작성하다 보면 여러 가지 이유로 에러가 발생합니다. 어떤 상황에서 이런 문제가 생기는지 미리 알고 있으면 에러를 만났을 때 당황하지 않고 대처할 수 있습니다.
탭과 스페이스바를 섞어서 사용할 때
가장 흔하게 발생하는 원인 중 하나입니다. 키보드의 탭 키를 누르는 것과 스페이스바를 여러 번 누르는 것은 눈으로 보기에는 똑같이 보입니다. 하지만 컴퓨터는 이를 완전히 다른 문자로 인식합니다. 어떤 줄은 탭으로 들여쓰기를 하고 어떤 줄은 스페이스바로 들여쓰기를 하면 파이썬은 혼란스러워하며 에러를 발생시킵니다.
들여쓰기 간격이 일정하지 않을 때
조건문이나 반복문 내부의 코드들은 같은 깊이만큼 들여쓰기를 해야 합니다. 첫 번째 줄은 스페이스바 네 칸을 띄우고 두 번째 줄은 세 칸만 띄우면 구조가 무너집니다. 반드시 일정한 규칙을 유지해야 합니다.
들여쓰기가 아예 필요 없는 곳에 넣었을 때
조건문이나 함수 정의가 끝났는데도 습관적으로 다음 줄에 들여쓰기를 유지하면 에러가 납니다. 블록이 끝났다면 다시 맨 앞으로 들여쓰기를 없애고 작성해야 합니다.
들여쓰기 에러를 효율적으로 해결하는 방법
에러 메시지를 마주했을 때 어떻게 대처해야 하는지 구체적인 방법을 살펴보겠습니다. 실무에서 바로 적용할 수 있는 유용한 팁들입니다.
에러 메시지 읽는 법 익히기
에러가 나면 화면에 복잡한 영어 문장이 나타납니다. 여기서 가장 중요하게 봐야 할 부분은 가장 아랫줄에 나오는 메시지와 파일 이름, 그리고 줄 번호입니다.
에러 메시지 내용에 영어로 들여쓰기와 관련된 단어가 포함되어 있다면 의심할 여지 없이 이 문제입니다. 메시지가 가리키는 줄 번호로 이동해서 코드를 확인하면 됩니다.
에디터의 보이지 않는 문자 표시 기능 켜기
스페이스바와 탭을 눈으로 구분하기는 어렵습니다. 코드를 작성하는 프로그램의 설정에서 보이지 않는 공백 문자를 화면에 점이나 선으로 표시해 주는 기능을 켜두는 것이 좋습니다.
이 기능을 사용하면 어떤 줄은 점으로 채워져 있고 어떤 줄은 화살표로 되어 있는지 한눈에 확인할 수 있어서 섞여 있는 것을 쉽게 찾아낼 수 있습니다.
스페이스바 네 칸 규칙 엄수하기
파이썬 공식 코딩 가이드에서는 들여쓰기를 할 때 스페이스바 네 칸을 사용할 것을 강력하게 권장합니다. 탭 키를 누를 때 자동으로 스페이스바 네 칸으로 변환되도록 에디터 설정을 맞춰두는 것이 가장 안전한 방법입니다. 이렇게 하면 탭과 스페이스바가 섞이는 실수를 원천적으로 차단할 수 있습니다.
개발 환경을 활용한 자동 교정 기술
사람이 눈으로 직접 코드를 확인하고 수정하는 것에는 한계가 있습니다. 특히 코드가 수천 줄이 넘어간다면 들여쓰기 실수를 찾아내는 것은 모래사장에서 바늘 찾기처럼 어려울 수 있습니다. 이때 현대적인 개발 도구의 도움을 받으면 비용을 들이지 않고도 이 문제를 완벽하게 해결할 수 있습니다.
파이썬 전용 에디터나 통합 개발 환경을 사용하면 코드를 타이핑하는 순간에 잘못된 들여쓰기를 실시간으로 감지하고 빨간색 밑줄로 경고를 줍니다. 심지어 저장 버튼을 누르는 순간 자동으로 코드를 정돈해 주는 기능도 제공합니다.
코드를 예쁘게 정리해 주는 도구들을 프로젝트에 적용해 두면 개발자는 로직 구현에만 집중할 수 있고 들여쓰기 때문에 고민하는 시간을 완전히 없앨 수 있습니다.
들여쓰기에 관한 흔한 오해와 진실
파이썬 초보자들이 흔히 하는 오해 중 하나는 들여쓰기를 할 때 칸 수가 몇 칸이든 상관없다는 생각입니다. 실제로 어떤 곳에서는 두 칸만 띄우고 어떤 곳에서는 여덟 칸을 띄워도 코드 자체는 정상적으로 실행될 수 있습니다. 파이썬 인터프리터는 규칙만 일정하면 칸 수 자체를 강제하지는 않기 때문입니다.
하지만 이것은 위험한 생각입니다. 다른 사람과 코드를 공유하거나 나중에 스스로 코드를 수정할 때 큰 혼란을 초래할 수 있습니다. 한 프로젝트 안에서는 반드시 일정한 간격을 유지해야 합니다.
아울러 스페이스바와 탭을 혼용하는 것은 절대 안 된다는 사실을 기억해야 합니다. 실행은 되더라도 특정 환경에서 갑자기 에러가 뿜어져 나오는 원인이 됩니다.
자주 묻는 질문
들여쓰기 에러와 관련해서 사람들이 자주 묻는 내용들을 모아보았습니다.
에러가 났는데 코드 모양이 완벽해 보여요. 무엇이 문제인가요?
눈으로 보기에는 완벽해 보여도 스페이스바와 탭이 섞여 있을 확률이 가장 높습니다. 에디터에서 모든 공백을 지우고 스페이스바 네 칸을 직접 입력해서 다시 들여쓰기를 해보면 해결되는 경우가 대부분입니다.
파이썬은 왜 중괄호 대신 들여쓰기를 강제하나요?
코드를 읽기 쉽게 만들기 위해서입니다. 중괄호를 사용하면 가독성이 떨어지고 불필요한 기호가 많아집니다. 들여쓰기를 강제함으로써 모든 개발자가 일정한 형태의 깔끔한 코드를 작성하도록 유도하는 것입니다.
자동으로 들여쓰기를 고쳐주는 프로그램이 있나요?
네, 아주 많습니다. 코드를 자동으로 보기 좋게 정렬해 주는 도구들을 사용하면 저장할 때 알아서 올바른 들여쓰기로 맞춰줍니다.




댓글 0
첫 댓글을 남겨보세요.