Object Relational Mapping
객체와 관계형 DB의 데이터를 자동으로 연결해주는 것
- 객체 모델과 관계형 모델간의 불일치 존재 → 객체간 관계를 바탕으로 SQL 자동 생성하여 불일치 해결
- Persistant API라고도 할 수 있음. (ex : JPA)
- 비즈니스 로직에 더 집중할 수 있음
- SQL 쿼리가 아닌 직관적 코드(메서드)로 데이터 조작가능하기 때문
- 코드 가독성을 올려줌
- 절차적 순차적 접근이 아닌, 객체지향적 접근으로 생산성 증가
- 재사용 및 유지보수 편리성 증가
- ORM 독립적으로 작성, 해당 객체를 재활용 할 수 있음
- 매핑 정보 명확, ERD의존도 낮춤
- DBMS 종속성 줄어듬
- 대부분 ORM솔루션은 DB에 종속적이지 않음
→ 구현방법 뿐 아니라 많은 솔루션에서 자료형 타입까지 유효Object
에 집중하므로, 극단적으로는 DBMS 교체 작업에도 적은 리스크와 시간
- ORM 으로만 완벽한 서비스를 구현하기 어려움
- 사용은 편리하지만 설계는 매우 신중해야함
- 프로그램 복잡성 증가 → 난이도 올라감
- 잘못 구현된 경우, 속도 저하 및 일관성 무너지는 문제점 발생 가능
- 일부 자주 사용되는 대형 쿼리는 속도를 위해 별도 튜닝 필요 (SP 사용)
- 프로시저가 많은 시스템에선 ORM의 객체지향적 장점 활용하기 어려움
- 다시 객체로 바꿔야하며, 그 과정에서 생산성 저하나 리스크 발생
Procedure
: 프로시저, 데이터베이스에 대한 일련의 작업을 정리한 절차를 RDBMS
에 저장한 것 SP
: Stored Procedure (저장 프로시저), 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합