Chapter 2-3 Django 모델 & 마이그레이션 완전 정복

2025. 4. 30. 14:36·Django

🧱 Django 모델 & 마이그레이션 완전 정복

이 강의는 Django 모델 정의부터 필드 구성, 마이그레이션 적용까지 데이터베이스를 어떻게 효율적으로 다룰 수 있는지 알려줍니다. 북마크 앱을 예제로 하여, 실제 테이블 설계부터 적용까지의 전체 흐름을 이해할 수 있도록 구성되어 있습니다.


1. 📚 장고 모델과 필드 정의

1.1. 모델과 필드의 개념

  • 모델(Model): 데이터베이스의 테이블 구조 정의
  • 필드(Field): 각 테이블에 저장될 컬럼 속성 정의
  • 모델 정의를 통해 DB 명령어(CREATE, ALTER 등)를 자동으로 수행 가능

1.2. 예시 모델 정의 (Bookmark)

def class Bookmark(models.Model):
    name = models.CharField(max_length=100)
    url = models.URLField()
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name = '북마크'
        verbose_name_plural = '북마크 목록'
  • CharField: 문자열 (varchar)
  • URLField: URL 형식 문자열 + 유효성 검사 포함
  • DateTimeField:
    • auto_now_add=True: 생성 시점 자동 저장
    • auto_now=True: 수정 시점 자동 저장

1.3. 참고

  • Django 공식 문서 > Model Field Reference

2. 🛠️ DB 브라우저 설치 및 데이터 확인

  1. DB Browser for SQLite 설치:
    • 검색: "db browser for sqlite"
    • 본인 OS에 맞는 파일 다운로드 및 설치
  2. 프로젝트 폴더에서 db.sqlite3 열기
  3. 테이블 생성 여부 확인: 초기 상태에서는 0개 테이블

3. ⚙️ Django 마이그레이션 기본 흐름

3.1. 초기 마이그레이션 실행

python manage.py migrate
  • 기본 테이블 (auth, sessions, admin 등) 자동 생성됨
  • DB Browser에서 테이블 확인 가능 (F5 새로고침)

3.2. 앱 모델 반영

python manage.py makemigrations
  • /migrations 폴더 내 0001_initial.py 생성
  • 테이블 정의만 포함, 실제 적용은 안 됨
python manage.py migrate
  • 정의된 마이그레이션을 DB에 실제로 적용
  • 테이블이 생성되고 내용 반영됨

4. 🧠 마이그레이션 vs Git 커밋 비유

구분 설명 비유

makemigrations 변경 내용 정의 (파일 생성) Git의 commit
migrate DB에 실제 적용 Git의 push

💡 makemigrations는 준비 단계일 뿐, 반드시 migrate를 통해 DB에 적용해야 합니다.


5. 📌 테이블 이름 규칙

  • 테이블명: 앱이름_모델이름
  • 예: bookmark_bookmark

✅ 정리

  • Django 모델은 데이터베이스를 ORM 방식으로 설계하고 관리할 수 있는 도구
  • makemigrations → 변경 내역 정의
  • migrate → 실제 DB에 적용
  • 모델에 다양한 필드를 정의하고 생성/수정일시를 자동 기록 가능
  • DB 구조 변경 시에도 마이그레이션으로 쉽게 관리 가능

🎓 다음 수업에서는 모델 데이터를 어떻게 Admin 페이지에서 관리하는지 배워볼 예정입니다. 수고하셨습니다!

'Django' 카테고리의 다른 글

Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리  (0) 2025.04.30
Chapter 2-4 Django Admin 기능 완전 정복 요약본  (0) 2025.04.30
Chapter 2-2 Django Views Tutorial  (0) 2025.04.30
Chapter 2-1 Django 앱 생성 및 구조 설명 가이드  (0) 2025.04.30
Chapter 1-10 Django로 구구단 페이지 만들기  (0) 2025.04.29
'Django' 카테고리의 다른 글
  • Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리
  • Chapter 2-4 Django Admin 기능 완전 정복 요약본
  • Chapter 2-2 Django Views Tutorial
  • Chapter 2-1 Django 앱 생성 및 구조 설명 가이드
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (672) N
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37) N
      • 기술블로그 (38) N
      • 기술블로그-Fastapi편 (28) N
      • 기술블로그-Django편 (152)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (2) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 2-3 Django 모델 & 마이그레이션 완전 정복
상단으로

티스토리툴바