객체지향 언어와 관계형 데이터베이스가 서로 같지 않기 때문에 필요한 것이 ORM이다.
ORM은 객체와 데이터베이스의 데이터를 서로 연결해주는 역할을 수행한다.
ORM (Object Relational Mapping, 객체-관계 매핑)
장점
생산성 향상, 비즈니스 로직에 집중
> 개발자가 일일이 쿼리문을 작성하지 않아도 된다.
재사용 및 유지보수 용이
> query(데이터 베이스에게 데이터를 요청)를 작성하지 않고 만들어진 함수를 가져다가 사용한다.
DBMS 종속되지 않음
> Oracle, MYSQL, SQLite, Maria db 별로 SQL 문이 서로 다르다. 그런데 이러한 부분을 신경
쓰지 않아도 된다.
--------------------------------------------------------------------------------
단점
프로젝트가 복잡한 경우 난이도 상승한다.
Raw Query 보다 성능이 낮을 수 있다.
> 직접 쿼리를 날리는 것보다 성능적으로 떨어질 수 있다.
데이터베이스에 쿼리를 날렸을 때의 성능을 얘기하는 것이 아닌 Raw Query랑 ORM을 사용했을 때
성능 차이가 있다는 의미
장고 ORM
데이터 베이스의 구조를 잡는 것이 Model과 Field이다.
Model
Field
자료형을 판단하는 역할
QuerySet API
데이터를 뽑아올 때 어떤 함수를 가져다가 사용하는지