[Django] ORM이란?

🌟ORM

🎯ORM이란?

ORM(Object-relational mapping)이란 OOP(객체지향) 언어로 생성한 객체와 DB를 매핑하는 프로그래밍 기법을 의미합니다.

OOP는 클래스를 사용하며 객체를 만들고 이를 DB에 저장해야합니다. 이때 DB는 테이블 사용하는데, 테이블과 클래스는 서로 호환되는 형식이 아니므로 DB에 객체를 저장할때 둘 사이에 이질성이 발생하게 됩니다.

이와같은 이질성을 해결하기 위하여 ORM을 사용합니다. ORM은 객체를 파악한 뒤 자동으로 SQL 쿼리문을 생성하여 데이터베이스에 객체를 저장,수정할 수 있게 해줍니다.

🎯ORM의 장점

  1. 순차적으로 접근해야 하는 SQL과 달리 OOP를 사용하므로 간결하고 재사용성이 높습니다.
  2. 매핑하는 정보가 명확하여 데이터 파악에 유리합니다.
  3. DB에 종속적이지 않으므로 DB를 관리하는 DBMS를 교체한다해도 수정에 있어 비교적 리스크가 적습니다.

🎯ORM의 단점

  1. 잘못된 구현을 한다면 데이터간 일관성이 무너지므로 신중한 설계가 필요합니다.
  2. 프로젝트가 커질수록 설계가 복잡해집니다.
  3. 프로시저(프로그램을 기능에 따라 여러개로 분리한 것)가 많은 프로젝트이면 다시 객체로 변환시켜야하는 테스크가 많아 되려 비효율적일 수 있습니다.

Written by@이주형
平常心

GitHubFacebook