컴퓨터 활용/노년에 즐기는 코딩

[장고] 게시판 작업에서 자주 겪는 실수

easyfly 2025. 7. 7. 07:56
반응형

 

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 개발이 훨씬 수월해질 것입니다.


혹시 이외에도 자주 겪는 실수가 있다면 댓글로 공유해주세요!
같이 정리하면 더 좋은 개발 습관이 만들어집니다.

 

반응형