[장고] 게시판 작업에서 자주 겪는 실수
Django 초보자를 위한 "자주 하는 실수 7가지" 정리
Django는 Python 기반의 강력한 웹 프레임워크입니다. 하지만 처음 접하는 분들에겐 작고 사소한 실수 하나가 큰 좌절로 이어질 수 있습니다. 이번 글에서는 Django 프로젝트를 진행하면서 초보자들이 자주 마주치는 실수들을 정리해 보고, 그 해결법도 함께 소개합니다.
1. 서버 실행 안 하고 브라우저 접속 시도
오류 메시지 예시:
ERR_CONNECTION_REFUSED
원인:
python manage.py runserver 명령어를 실행하지 않고 브라우저에서 접속을 시도하면 서버가 응답할 수 없습니다.
해결 방법:
python3 manage.py runserver 0.0.0.0:8000
로 서버를 실행한 후 브라우저에서 접속하세요.
2. ALLOWED_HOSTS 설정 누락
증상:
외부 IP로 접속했는데 계속 ‘DisallowedHost’ 오류 발생
해결 방법:
settings.py에서 ALLOWED_HOSTS를 아래와 같이 설정해 주세요:
ALLOWED_HOSTS = ['*'] # 개발 중일 경우
배포 단계에서는 IP나 도메인을 명시해야 합니다.
3. AWS 보안 그룹에서 포트 8000 미개방
오류:
서버가 정상 실행 중인데도 외부 접속이 안 되는 경우
점검 방법:
EC2 인스턴스의 보안 그룹 > 인바운드 규칙에서
포트 8000이 열려 있는지 확인하세요.
- 타입: Custom TCP
- 포트: 8000
- 소스: 0.0.0.0/0 (개발용)
4. UFW 방화벽에서 포트 차단
Ubuntu에서 자주 발생
sudo ufw status로 방화벽 상태를 확인하고,
sudo ufw allow 8000
로 포트를 허용해 주세요.
5. 모델 코드에서 괄호나 따옴표 누락
예시:
q = Question(subject='제목', content='내용', create_date=timezone.now()
위 코드는 닫는 괄호가 빠져서 SyntaxError: '(' was never closed 오류가 발생합니다.
해결:
Python에서는 괄호나 따옴표 하나라도 빠지면 전체 실행이 안 됩니다. 항상 코드 끝을 확인하세요.
6. 변수명 오타
오류 예시:
search.fields = ['subject'] # ❌
search_fields가 아니라 search.fields로 작성하면 NameError가 발생합니다.
정답:
search_fields = ['subject']
Django 관리자 커스터마이징 시 자주 하는 실수입니다.

7. 마이그레이션 누락
증상:
모델을 수정했는데도 반영되지 않음
해결 방법:
python manage.py makemigrations
python manage.py migrate
두 단계 모두 수행해야 데이터베이스에 반영됩니다.
마무리하며
개발 과정에서 실수는 누구나 합니다. 중요한 건 왜 오류가 발생했는지 이해하고 반복하지 않는 것입니다. 위 실수들은 대부분 아주 기본적인 부분이지만, 실제로 많은 초보자들이 반복해서 겪습니다.
작은 실수 하나가 개발 전체 흐름을 멈추게 할 수 있습니다. 위 내용을 체크리스트 삼아 하나씩 점검해 보세요. Django 개발이 훨씬 수월해질 것입니다.
✅ 혹시 이외에도 자주 겪는 실수가 있다면 댓글로 공유해주세요!
같이 정리하면 더 좋은 개발 습관이 만들어집니다.