최대 1 분 소요

ORM

ORM 이란 ?

ORM이란 OOP 에서의 객체와 RDBMS 의 테이블을 자동으로 맵핑해주는 것을 의미한다.

장고에서는 Model 이라는 개념으로 데이터를 객체화하여 클래스로 표현한다.

문제는 RDBMS에서의 테이블과 시스템이 달라서 호환이 되지 않는데 이를 ORM 을 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 해결해준다.

즉 SQL문 없이 프로그래밍 언어를 통해 객체로 데이터베이스를 조작할 수 있게 되는 것이다.

장점

  • ORM을 통해 완벽한 객체지향적인 코드를 작성할 수 있다.
  • SQL을 사용하지 않아도 된다.
  • DBMS의 종속성이 낮아진다.
  • 재사용 및 유지보수의 편리성이 증가한다.
  • 객채지향적 접근으로 인해 생산성이 높여진다.
  • 부수적인 코드가 줄어든다.

단점

  • SQL을 사용할 때 보다 속도가 느릴 수 있다.
  • 복잡한 query 가 필요할 경우 SQL에 비해 어려움이 존재한다.
  • ORM이 자동으로 SQL을 생성하기 때문에 튜닝이 불가능하다.
  • 데이터 처리 과정을 확인하기 어렵다.

작동원리

  1. ORM 은 파이썬 객체 정보를 SQL문으로 맵핑한다.
  2. RDBMS는 ORM에게 데이터를 반환한다.
  3. 반환된 데이터를 파이썬 객체로 맵핑해준다.

댓글남기기