Django ORM
ORM
ORM 이란 ?
ORM
이란 OOP 에서의 객체와 RDBMS 의 테이블을 자동으로 맵핑해주는 것을 의미한다.
장고에서는 Model 이라는 개념으로 데이터를 객체화하여 클래스로 표현한다.
문제는 RDBMS에서의 테이블과 시스템이 달라서 호환이 되지 않는데 이를 ORM 을 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 해결해준다.
즉 SQL문 없이 프로그래밍 언어를 통해 객체로 데이터베이스를 조작할 수 있게 되는 것이다.
장점
- ORM을 통해 완벽한 객체지향적인 코드를 작성할 수 있다.
- SQL을 사용하지 않아도 된다.
- DBMS의 종속성이 낮아진다.
- 재사용 및 유지보수의 편리성이 증가한다.
- 객채지향적 접근으로 인해 생산성이 높여진다.
- 부수적인 코드가 줄어든다.
단점
- SQL을 사용할 때 보다 속도가 느릴 수 있다.
- 복잡한 query 가 필요할 경우 SQL에 비해 어려움이 존재한다.
- ORM이 자동으로 SQL을 생성하기 때문에 튜닝이 불가능하다.
- 데이터 처리 과정을 확인하기 어렵다.
작동원리
- ORM 은 파이썬 객체 정보를 SQL문으로 맵핑한다.
- RDBMS는 ORM에게 데이터를 반환한다.
- 반환된 데이터를 파이썬 객체로 맵핑해준다.
댓글남기기