본문 바로가기
back-front end

[항해99] ORM

by lucian 2022. 7. 30.

ORM이란? 

 - Object Relatinal Mapping의 약자로 객체 관계형 매핑. 객체와 RDB 테이블를 연결해주는 도구이다.

 -  객체와 테이블은 둘의 호환가능성을 두고 만들어진 개념이 아니기에 ORM을 이용하여 SQL문을 자동 생성하여 연결을 돕는다. 결국 따로 SQL문을 생성할 필요가 없기에 객체를 통해 간접적으로 DB조작이 가능해진다.

 - MVC 패턴에서 모델(Model) 부분을 기술하는 도구이다.
   (MVC란? https://hanamon.kr/mvc%eb%9e%80-mvc-design-pattern/ )

 

ORM을 왜 쓰는데?

 - ORM을 이용하면 DB접근을 자신이 쓰는 프로그래밍 언어의 관점에서 만들 수 있다.

 - 객체 간의 관계를 바탕으로 sql문을 자동 생성하여 엔티티를 객체로 표현할 수 있다. 

 - 간접적으로 DB를 다룰 수 있다.

 

장/단점

 - 장점

   - SQL Query문이 아닌 메서드로 데이터를 조작할 수 있다.

   - 원하는 객체로 프로그래밍 할 수 있어 코드의 가독성을 높여준다.

   - SQL의 절차/순차적인 접근 대신 객체지향적인 관점만 고려하면 된다.

   - ORM은 기존 객체와 독립적으로 작성되었기에 재사용/유지보수 편리성이 증가한다.

   - DBMS에 쓰는 시간을 줄여준다.

 

 - 단점

   - ORM은 편리하지만 프로젝트의 복잡성이 커질수록 난이도가 높아진다. 또한 부족한 설계로 속도 저하나 일관성을 무너뜨리는 문제를 야기할 수 있다.

   - 객체와 RDB 테이블의 관계를 연결시켜줬다고 하지만 간격을 좁힌 것일 뿐 일치하지는 않는다.

   - 문제가 발생했을 때, 어디서 일어난 것인지 찾기 힘들다.(DB는 불타고 있는데 ORM은 방관잼...그리고 나는 쿼리문을 모르니깐...)

댓글