오늘도 개발

Django와 데이터베이스 - 0) Django ORM 본문

웹 프로그래밍/Django

Django와 데이터베이스 - 0) Django ORM

Sueeeeeee 2022. 6. 29. 17:53

이 포스트는 '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 쿼리로 번역하는지 제대로 이해하지 못하고 사용하면 속도가 느려질 수 있다.