ORM(Object-Relational Mapper)

찌니·2021년 3월 16일
0

ORM

보통 ORM이라고 하면 Object-Relational Mapping의 개념을 구체화하는 Object-Relational Mapper라이브러리를 가르킨다.
Object-Relational Mapping이란 단순한 쿼리문이나 복잡한 쿼리를 작성할 때 원하는 객체 지향 언어로 작성하게 해주는 것이다. 즉, 서로가 다른 두 개의 시스템을 연결시켜주는 개념이다.

다시 ORM으로 돌아와서 ORM의 목적은 코딩을 더 편리하게 해주는 라이브러리이며 코드와 데이터베이스를 연결해 사용할 때 둘의 연결을 간편하게 해주면서 사용자가 코드에 관한 부분만 신경쓰게 해준다. 중간다리

ORM의 장단점

파이썬도 ORM 라이브러리가 여러 개 있다. 그 중 가장 대표적이고 많이 사용되는 라이브러리는 SQLAlchemy이다.

장점

  • 현재 사용하고 있는 언어만 사용해도 됨
  • 데이터베이스 시스템으로부터 분리가 됨. 원하는 SQL시스템을 사용할 수 있음.
  • ORM에 따라 상이하지만 다양한 기능들을 지원함
  • 직접 작성하는 SQL 쿼리문이 없고 더 높은 성능의 SQL 쿼리문들이 작성될 수도 있다.

단점

  • 데이터베이스와 바로 연결하는 것보다 초기설정이 더 많아지거나 복잡해질 수도 있음
  • 내부 작동에 대한 충분한 이해가 없는 경우 문제 해결이 힘듦.
  • 데이터베이스에 직접 쿼리문을 보내는 것이 아니기 때문에 성능 저하가 발생함
  • 데이터베이스 복잡도를 데이터베이스 시스템에서 어플리케이션 코드로 옮기게 됨
  • 관계형 데이터베이스 시스템과 객체지향 언어의 기반 차이(Object-Relational Impedance Mismatch)를 고려해야함
    수학원리기반의 데이터베이스 시스템, 소프트웨어 엔지니어링 원리 기반의 객체 지향언어가 함께 작동할때 차이가 발생 EX) ==/is
profile
https://gggggeun.tistory.com/

0개의 댓글