오늘도 개발
Django와 데이터베이스 - 0) Django ORM 본문
이 포스트는 'Django와 데이터베이스' 시리즈의 첫번째 글이다.
Django로 데이터베이스를 다루는 과정은 다음과 같으며
각 단계를 이어지는 포스팅에서 자세히 다룰 예정이다.
1) models.py에서 클래스(모델) 정의 (click)
2) migration (click)
- python3 manage.py makemigration 실행
=> models.py에 기반하여 migration 코드 생성(migration은 테이블 설계도)
- python3 manage.py migrate 실행
=> migration 코드 실행
=> DB에 테이블 생성
3) Django QuerySet API로 데이터베이스에 CRUD 실행 (click)
여기서는 우선 Django가 데이터베이스를 어떻게 조작하는지 살펴보자.
Django ORM(Object-Relational Mapping)
장고에서는 SQL 없이 파이썬 언어만으로 데이터베이스를 조작할 수 있다.
Django ORM이 있기 때문이다.
Django ORM은 파이썬 언어를 SQL로 바꿔주는 번역기다.
Django ORM은 파이썬 언어를 SQL로 번역한 후 데이터베이스 테이블을 조작해준다.
ORM은 Object-Relational Mapping의 약자로
OOP의 클래스와 데이터베이스의 테이블을 매핑해주는 기술이다.
ORM을 사용하는 언어(Js, python 등)의 클래스 하나는 데이터베이스 테이블 하나와 매칭된다.
Django ORM 사용 장점
- 빠르게 개발을 할 수 있다.
- 각 데이터베이스는(Postgre, MYSql, Oracle...) 조금씩 다른 SQL 쿼리를 사용하는데
Django ORM을 사용하면 장고가 알아서 데이터베이스에 맞게 쿼리를 생성한다.
Django ORM 사용 단점
- Django ORM이 파이썬 코드를 어떤 SQL 쿼리로 번역하는지 제대로 이해하지 못하고 사용하면 속도가 느려질 수 있다.
'웹 프로그래밍 > Django' 카테고리의 다른 글
| ManyToManyField VS ForeignKey (0) | 2022.07.05 |
|---|---|
| Django와 데이터베이스 - 2) 마이그레이션(migration) (0) | 2022.07.01 |
| Django와 데이터베이스 - 1) Django 모델(Model) (0) | 2022.06.30 |
| Django 개요 - 기본 개념, 프로젝트 세팅 (0) | 2022.06.28 |
| Django 인트로 (0) | 2022.03.23 |