기타

[DB] ORM(Object-Relational-Mapping) 프레임워크

sujin7837 2022. 4. 22. 18:00
반응형

ORM(Object-Relational-Mapping)

ORM은 데이터베이스와 객체지향 언어 사이의 호환되지 않는 데이터를 변환하는 기법입니다. 객체와 관계 사이의 매핑이라고도 합니다. ORM이 없을 때에는 개발자가 DB에 접근하기 위해 SQL 쿼리를 직접 만들었습니다. 그렇기 때문에 SQL 문법을 숙지하고 있어야 하며 개발 코드와 DB가 서로 종속적이었습니다. ORM은 이를 해결하기 위해 등장하였고, RDB 모델을 OOP(Object Oriented Programming : 객체지향 프로그래밍)에 Entity 형태로 투영시키는 방법을 사용합니다. ORM으로 인해 중복 코드를 줄일 수 있고, SQL의 의존적인 코딩에서 벗어나 생산적인 코딩이 가능해지고, 유지보수가 편리해집니다.

 

ORM 프레임워크의 장점

1. 객체 지향적인 코드로 인해 직관적이고, 비즈니즈 로직에 더 집중할 수 있게 도와줍니다.

  • 선언문, 할당, 종료와 같은 부수적인 코드가 없거나 급격히 줄어듭니다.
  • 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높여줍니다.
  • SQL의 절차적/순차적 접근이 아닌 객체 지향적인 접근으로 인해 생산성이 증가합니다.

2. 재사용 및 유지보수의 편리성이 증가합니다.

  • ORM은 독립적으로 작성되어 있고 객체들을 재활용 할 수 있기 때문에, 모델에서 가공된 데이터를 컨트롤러에 의해 뷰에 합치는 형태로 디자인 패턴을 견고하게 합니다.
  • 매핑 정보가 명확하므로 ERD에 대한 의존도를 낮출 수 있습니다.

3. DBMS 종속성이 줄어듭니다.

  • 대부분의 ORM 솔루션은 DB에 종속적이지 않습니다.
  • 종속적이지 않으므로 구현 방법뿐만 아니라 많은 솔루션에서 자료형 타입까지 유효합니다.
  • 프로그래머는 DBMS를 교체해야하는 경우에도 Object에 집중하여 비교적 적은 리스크와 시간이 소요됩니다. 또한 자바에서 변경이 발생하는 경우에도 equals, hashcode 등의 오버라이드와 같은 자바의 기능을 이용하여 간결하고 빠른 가공이 가능합니다.

 

ORM 프레임워크의 단점

1. 완벽한 ORM만으로 서비스를 구현하는 것은 어렵습니다.

  • ORM을 사용하는 것은 편리하지만 설계할 때에는 매우 신중하게 해야합니다.
  • 프로젝트의 복잡성이 커지면 ORM 구현 난이도가 높아질 수 있습니다.
  • 잘못 구현하면 속도 저하 및 일관성이 무너지는 문제가 발생할 수 있습니다.
  • 자주 사용되는 대형 쿼리는 속도 향상을 위해 SP(Stored Procedure) 등 튜닝이 필요한 경우가 있습니다.
  • DBMS의 고유 기능을 사용하기 어렵습니다.

2. 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵습니다.

  • 이미 프로시저가 많은 시스템에서는 다시 객체로 바꿔야 하는데, 이 과정에서 생산성 저하나 리스크가 발생할 수 있습니다.

 

 

출처 : https://gmldbd94.tistory.com/23

 

ORM 프레임워크(Oject-Relational-Mapping)

ORM 프레임워크(Oject-Relational-Mapping) 란? ORM은 데이터베이스와 객체지향 프로그래밍 언어간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 관계 매핑이라고도 한다. 객체지향 언

gmldbd94.tistory.com

 

반응형

'기타' 카테고리의 다른 글

[MyBatis] 마이바티스(MyBatis)  (0) 2022.04.22
[CSS] text-align 속성  (0) 2022.03.04
[운영체제론] Process  (0) 2021.12.11
[운영체제론] IPC(Inter-Process Communication)  (0) 2021.12.11
[운영체제론] System Call  (0) 2021.12.11