[Django 프로젝트] 시 감상과 감상문 남기기
나주 박선생이 부탁한 체험학습 프로그램을 짜다가 그동안 과제로 삼았던 '시 감상' 프로젝트를 덤으로 시작했습니다. 장고 웹프레임워크를 이용하여 리눅스 시스템에서 vi에디터와 visualstudio code를 사용하여 작업을 진행했습니다. 감상문 작성에서 문제가 되는 부문은 ChatGPT와 협업을 통해 해결했습니다. 다음은 오늘 프로젝트 후에 정리한 내용입니다.
1. Django 기본 개발 흐름
✅ models.py: 데이터 구조(시, 감상문)를 정의합니다.
✅ views.py: 사용자의 요청을 받아서 처리합니다.
✅ urls.py: 사용자가 접속하는 경로(URL)를 views 함수와 연결합니다.
✅ templates: 화면에 보여지는 HTML 파일을 만듭니다.
→ Django는 모델, 뷰, URL, 템플릿이 항상 하나의 흐름으로 연결되어야 합니다.
2. OpenAI API 연동할 때 주의사항
✅ 최신 openai 라이브러리(1.0.0 이상)에서는 새로운 방식(OpenAI 객체 client 사용)으로 호출해야 합니다.
✅ organization="..." 설정은 API 키와 일치하는 조직 ID를 사용해야 합니다.
✅ 요청은 client.chat.completions.create()로 보내야 하고, 결과는 response.choices[0].message.content로 받아야 합니다.
3. 서버 오류(500) 해결 방법
✅ 서버 터미널에 에러가 안 보일 때는 F12 → Network → Response 탭을 활용한다.
✅ 문제를 정확히 보려면 Django DEBUG = True로 설정한다.
✅ 에러 메시지(Traceback 또는 Response)를 꼼꼼히 읽고, '원인'을 찾는 것이 중요하다.
4. Django 서버 실행과 기본 명령
python manage.py runserver | Django 개발 서버 실행 |
python manage.py makemigrations | 모델 변경사항 감지 |
python manage.py migrate | DB에 적용 |
CTRL + C | 서버 중지 |
5. 실전에서 얻은 교훈
✅ 오류 메시지를 끝까지 읽으면 반드시 단서가 있다.
✅ 버전이 바뀌면 코딩 방식도 달라진다. (특히 OpenAI 패키지)
✅ 한 번 해결한 문제는 다음에 훨씬 빠르게 대응할 수 있다.
✅ 서버가 에러를 주면 좌절하지 말고, 조용히 '어디가 문제인지' 분석하는 자세가 중요하다.
6. 지금 프로젝트의 현재 상태
✅ 시(Poem) 등록, 출력 완료
✅ 시 상세페이지 정상 표시
✅ 감상문 자동 생성(→ OpenAI API) 성공
✅ 브라우저(F12 Network)로 API 통신 확인 가능
즉, 지금은 '시 + 감상문' 기초 서비스 뼈대를 갖춘 상태입니다.
한 줄로 요약
Django로 웹 앱을 만들고, OpenAI API를 새 버전에 맞춰 연결하는 과정을 완전히 체험했습니다.
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
[Django] 웹 프레임워크 URL 분리 (1) | 2025.05.01 |
---|---|
리눅스 가상환경에서 Django와 OpenAI를 강제로 설치하는 방법 (2) | 2025.04.28 |
Django에서 MTV란? (5) | 2025.04.27 |
REST API란 무엇인가요? (4) | 2025.04.26 |
웹 개발: 프론트엔드와 백엔드 (3) | 2025.04.25 |