OpenCode로 Django 프로젝트 만들기: 실전 튜토리얼

Django를 배우기 시작하면 누구나 이런 고민을 하게 됩니다.
- “settings.py 구조가 너무 복잡한데 어떻게 정리하지?”
- “앱을 어떻게 나누어야 하지?”
- “CRUD 기능 하나 만드는데도 시간이 오래 걸리네?”
이때 OpenCode를 함께 쓰면 초급 개발자도 짧은 시간 안에
프로젝트 구조를 잡고 기본 기능을 구현하는 흐름을 빠르게 익힐 수 있습니다.
今回の記事では Django 새 프로젝트 생성 → 앱 만들기 → 기본 CRUD 기능 구현까지
처음부터 끝까지 OpenCode와 함께 진행하는 실전 튜토리얼을 제공합니다.
1. Django 새 프로젝트 생성하기

프로젝트 폴더를 하나 만들고 그 폴더 위치의 터미널에서 다음 순서로 시작합니다.
1) 가상환경 생성
python3 -m venv .venv
source .venv/bin/activate2) Django 설치
pip install django3) 프로젝트 생성
django-admin startproject mysite .폴더 구조가 생겼다면 이제 OpenCode를 열어봅니다.
2. OpenCode 실행 후 첫 작업: 프로젝트 구조 설명받기
터미널에서 오픈코드를 실행
opencode
TUI가 열리면 다음처럼 물어볼 수 있습니다.
/ask Django 기본 폴더 구조를 설명해줘. 특히 settings.py와 urls.py의 역할을 초보자 입장에서 쉽게 설명해줘.
여기서 얻을 수 있는 효과
- Django의 복잡한 구조를 “한 번에” 이해
- 어떤 파일을 언제 수정해야 하는지 자연스럽게 감 잡기
- 초보자가 가장 막히는 settings 관련 개념을 빠르게 털어냄
3. 앱(app) 생성부터 모델(model) 구성까지 AI에게 맡기기
예제로 간단한 “메모(Memo)” 앱을 만들어보겠습니다.
1) 앱 생성
python manage.py startapp memo
2) 모델 작성
OpenCode에 다음처럼 요청합니다.
/ask memo 앱에 작성자(author), 내용(content), 생성일(created_at) 필드를 가진 Memo 모델을 만들어줘. 초급 개발자가 이해하기 쉽게 주석도 추가해줘.
그러면 모델 초안이 생성됩니다.

from django.db import models
# Create your models here.
class Memo(models.Model):
"""간단한 메모 모델
필드:
- author: 메모 작성자 이름(문자열)
- content: 메모 내용(긴 텍스트)
- created_at: 메모가 생성된 날짜와 시간(자동 설정)
"""
# 작성자 이름을 저장합니다. 최대 100자, 필수 입력
author = models.CharField(max_length=100)
# 메모 내용을 저장합니다. 길이가 길 수 있으므로 TextField 사용
content = models.TextField()
# 객체가 처음 생성될 때 자동으로 현재 시간이 저장됩니다.
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
# 관리 사이트나 쉘에서 객체를 확인할 때 보기 좋은 문자열을 반환합니다.
return f"{self.author}: {self.content[:20]}" # content의 앞 20자만 보여줌이제 AI에게 후속 조치를 요청합니다.
그런데 이미 다음의 내용과 유사하게 사전에 권고를 합니다.
“원하시면 제가 INSTALLED_APPS에 등록하고 마이그레이션 커맨드를 실행해 드릴게요. 계속 진행할까요?”
/ask 모델 생성 후 필요한 admin 등록, migration 절차까지 단계별로 안내해줘.
4. Views & Urls — 기본 CRUD를 빠르게 만들기
OpenCode에게 다시 아래의 요청합니다.
/ask Memo 모델을 위한 기본 CRUD view 세트를 작성해줘.
함수 기반 view(fbv)로 작성해줘.또는 클래스 기반 view를 원한다면
/ask Memo 모델을 위한 CRUD 기능을 Class Based Views로 작성해줘.
위 이미지에서 보시는 바와 같이 AI는 내가 요청하는 것보다 더 발빠르게 일을 진행시키고 있다. 오픈코드는 심지어 우측에 ToDo리스크까지 보여주면서 작업을 진행한다.
그다음 자동으로 이어지는 요청 패턴
아래와 같은 것을 요구하려고 했으나, 이미 처리를 해버렸다!
“구현 완료: Memo 모델을 위한 Class-Based CRUD 뷰와 URL, 템플릿, 그리고 기본 레이아웃을 추가했습니다.”
/ask 방금 만든 viewset에 맞게 urls.py 라우팅을 작성해줘./ask template 파일도 초안으로 만들어줘. list.html, detail.html 형태로.이렇게 대화 흐름만 잘 만들면
초급 개발자도 단시간에 기본 기능을 완성할 수 있습니다.
5. templates 자동 생성 — 초급자의 난관 해결
템플릿 작업은 Django 초보자에게 난관입니다.
하지만 OpenCode는 문서 기반 패턴에 매우 강하므로 다음처럼 요청하면 됩니다.
/ask memo/list.html과 memo/detail.html 파일의 기본 HTML 구조를 만들어줘.
부트스트랩 기반으로 깔끔하게 구성해줘.예시 출력
- 리스트 페이지: 항목 목록 렌더링
- 디테일 페이지: 메모 내용 표시
- 작성 버튼 / 수정 버튼 포함
순차적으로 위와 같이 진행하려고 했으나 이미 다음과 같이 왠만한 것을 앞서 나가면서 처리해준 것을 알 수 있다.

이후
/ask list 페이지에 검색창 하나 추가해줘.이런 요청도 자연스럽게 처리됩니다.

6. 리팩터링 + 설명 요청: OpenCode의 진짜 장점
기능이 만들어졌다면 OpenCode에게 다음과 같이 물어봅니다.
/ask 지금까지 만든 memo 기능 전체를 리뷰해줘. 구조적으로 개선할 수 있는 부분 3가지를 알려줘.
(답변)
1) 폼을 forms.py로 분리하고 ModelForm 사용
2) 인증·권한(소유자) 모델 개선: author 문자열 → 실제 사용자 연결(또는 소유자 필드) + 뷰에 인증 요구
3) 검색·페이지네이션의 재사용 가능한 처리 추출 / 템플릿 정리 원하시면 제가 위 세 가지 중 하나를 직접 적용해 드리겠습니다. 어느 항목을 먼저 구현할까요?흔히 나오는 개선점
- views.py 파일 분리
- forms.py 추가
- 템플릿 반복 패턴 정리
- URL 네이밍 정리
개선 제안이 나왔으면 바로 구현을 요청합니다. 그러면 알아서 작업이 진행됩니다.
/ask 방금 제안한 개선점 순차적으로 구현해주세요.초급 개발자가 처음부터 ‘괜찮은 구조’를 갖춘 Django 프로젝트를 만드는 데 매우 효과적입니다.
7. 문서화 자동 생성 — README & 기능 요약
OpenCode에게 다음처럼 요청합니다.
@document 지금까지 만든 Django 메모 앱의 기능을 README.md에 기록할 버전으로 요약해줘. 설치 방법, 실행법, 모델 설명도 넣어줘.그러면
- 설치 & 실행 안내
- 기능 목록
- 스크린샷 자리 표시자
- API 또는 URL 목록
까지 깔끔하게 아래와 같이 정리됩니다.

8. 최종 단계: 테스트 코드까지 자동 생성
Django 초급자 대부분이 테스트 코드를 어려워하지만
OpenCode를 활용하면 매우 쉽게 시작할 수 있습니다.
/ask Memo 모델과 CRUD view를 검증하는 pytest 기반 테스트 코드를 작성하고 테스트를 진행해주세요.또는 Django 기본 테스트 프레임워크 사용
/ask Django TestCase 기반으로 memo 앱 테스트 코드를 작성하고 테스트를 진행해주세요.이렇게 테스트까지 자동 생성하면
혼자 개발하더라도 “실무형 프로젝트 구조”를 빠르게 익힐 수 있습니다.
위 요구에 다음과 같이 테스트 완료 결과를 알려줍니다.

整理する
今回の記事では OpenCode를 Django 개발에 실제로 적용하는 전체 흐름을 살펴봤습니다.
핵심 요약
- OpenCode는 Django의 복잡한 구조를 빠르게 이해하는 데 큰 도움을 준다.
- 모델, 뷰, URL, 템플릿까지 대화 중심으로 모두 생성 가능하다.
- 리팩터링과 문서화까지 자연스러운 대화로 이어진다.
- 초급 개발자도 실무형 Django 구조를 비교적 쉽게 습득할 수 있다.
다음 글에서는
프론트엔드(Next.js 등)와 OpenCode를 연결하여 UI/UX를 빠르게 제작하는 방법
を扱います。






