Object Relational Mapping (객체-관계-매핑)
어플리케이션 객체와 관계형 데이터베이스의 데이터를 매핑해주는 도구
- 객체 지향 프로그래밍 - 클래스 사용 / 관계형 데이터베이스 - 테이블 사용
- 대표적인 ORM : Hibernate, JPA 등
ORM 사용 이유
- 객체 모델과 관계형 모델 간의 불일치 존재
- 객체 지향 프로그래밍의 클래스 / 관계형 데이터베이스의 테이블
- 데이터베이스 접근을 프로그래밍 언어의 관점에서 접근!
- ORM을 이용해서 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치 해결
ORM의 장점
- 직관적인 코드로 데이터를 조작할 수 있음
- 개발자가 비즈니스 로직에 집중할 수 있음
- 부수적인 코드가 줄어들어 단순해지고 가독성 상승
- 재사용 및 유지보수 편리
- ORM은 독립적으로 작성되어 있기 때문에 객체들의 재사용 가능
- 매핑 정보가 명확하기 때문에 ERD에 대한 의존도를 낮춤
- DBMS에 대한 종속성 감소
- 대부분의 ORM은 DB에 종속적이지 않음
- DBMS를 교체하는 경우 더 적은 리스크로 수행 가능
- DBMS : 데이터베이스 관리 시스템
ORM의 단점
- 복잡도가 올라가는 경우 ORM만으로는 구현의 한계가 있음
- 직접 쿼리를 구현하지 않기 때문에 복잡한 설계는 어려움
- 특정 쿼리는 튜닝이 필요할 수 있음
- 자주 사용하거나 복잡한 경우
- 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어려움
'spring' 카테고리의 다른 글
영속성 컨텍스트 (0) | 2024.09.13 |
---|---|
JPA / Hibernate / Spring Data JPA (0) | 2024.09.13 |
JdbcTemplate (0) | 2024.09.13 |
JDBC (0) | 2024.09.13 |
Entity / DTO / DAO / Repository (0) | 2024.09.13 |