기술블로그-Django편
📝 Django 모델 클래스 상속 개념 쉽게 이해하기
Chansman
2025. 4. 30. 14:36
📝 Django 모델 클래스 상속 개념 쉽게 이해하기
1️⃣ Django 모델 클래스란?
Django에서 데이터베이스와 연동되는 클래스는 반드시 models.Model을 상속해야 합니다. 그래야만 Django가 해당 클래스를 DB 테이블로 인식하고 자동으로 필드 생성, 쿼리 기능 등을 사용할 수 있게 해줍니다.
from django.db import models
class Bookmark(models.Model):
title = models.CharField(max_length=100)
url = models.URLField()
위 코드에서 Bookmark는 우리가 만든 모델(=자식 클래스)이고, models.Model은 Django가 제공하는 부모 클래스입니다.
2️⃣ (models.Model)은 매개변수일까?
❌ 아닙니다! 함수의 매개변수처럼 보이지만, 이건 클래스 상속 구문입니다.
- class 자식클래스(부모클래스) 형식으로 상속을 표현합니다.
- 즉, Bookmark(models.Model)은 "Bookmark 클래스는 models.Model을 상속받는다"는 뜻입니다.
3️⃣ 상속의 목적은?
부모 클래스인 models.Model에는 다음과 같은 강력한 기능이 담겨 있습니다:
기능 설명
DB 테이블 자동 생성 | makemigrations, migrate 명령어로 생성됨 |
필드 등록 | CharField, URLField 등을 통해 컬럼 생성 |
ORM 기능 제공 | Bookmark.objects.all() 같은 쿼리 가능 |
관리자 페이지 자동 연동 | admin 페이지에 모델 자동 등록 가능 |
즉, 상속을 통해 데이터베이스 모델로서 갖춰야 할 모든 기능을 자동으로 가져올 수 있습니다.
4️⃣ 비유로 쉽게 이해하기 🚗
class ElectricCar(Car):
pass
- ElectricCar는 우리가 만든 자식 클래스
- Car는 기본 기능(바퀴, 핸들 등)을 제공하는 부모 클래스
→ 자식은 이름만 정하고, 기능은 부모 클래스에서 물려받음
5️⃣ 결론 ✅
✔️ 자식 클래스는 우리가 이름을 정해서 만들고,
✔️ 부모 클래스(models.Model)의 기능을 상속받아 데이터베이스 모델로 동작하게 되는 것입니다.
이제부터 Django 모델 클래스를 정의할 때는 항상 models.Model을 상속하는 이유를 확실히 이해하고 쓸 수 있겠죠? 😎