ORM = Object Relational Mapping
객체-관계 매핑
객체와 관계간의 불일치를 해결하기 위해 만들어진 개념
객체와 DB의 테이블이 매핑을 이루는 것
객체가 테이블이 되도록 매핑 시켜주는 것
ORM 을 통해 SQL Query가 아닌 직관적인 코드(메서드)로서 데이터 조작 가능
JPA가 바로 자바 ORM 표준 API 명세이다.
객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있도록 도와준다.
선언문, 할당, 종료 등의 부수적인 코드가 없거나 줄어든다.
각종 객체에 대한 코드를 별도로 작성하기 때문에 코드의 가독성을 올려준다.
SQL의 절차적인 접근이 아닌 객체 지향적인 접근으로 인해 생산성이 증가한다.
재사용 및 유지보수의 편리성이 증가한다.
ORM은 독립적으로 작성되어있고 해당 객체들을 재활용 할 수 있다.
모델에서 가공된 데이터를 컨트롤러에 의해 뷰와 합쳐지는 형태로 디자인 패턴을 견고히 다지는데 유리하다.
매핑 정보가 명확하다.
DBMS에 대한 종속성이 줄어든다.
완벽한 ORM으로만 서비스를 구현하기가 어렵다.
프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.