본문 바로가기
Spring/Spring-detail

ORM 이란 무엇일까?

by YoonJong 2022. 9. 15.
728x90

ORM ( Object Relational Mapping )

 - 어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미

https://www.youtube.com/watch?v=OiAYmtq4Av8&list=PLlTylS8uB2fBOi6uzvMpojFrNe7sRmlzU&index=15

ORM 의 장점

 1. ORM을 사용하면서 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다.

 - 쿼리문을 작성하는 양이 줄어들어 개발 비용이 줄어든다

 - 객체지향적으로 데이터베이스에 접근할 수 있어 코드의 가독성을 높인다.

 

2. 재사용 및 유지보수가 편리하다

 - ORM 을 통해 매핑된 객체는 모두 독립적으로 작성되어 재사용이 용이하다

 - 각 클래스로 나뉘어져 있어 유지보수에 편리하다.

 

3. 데이터베이스에 대한 종속성이 줄어든다

 

ORM 의 단점

1.  ORM 만으로는 온전한 서비스를 구현하기에 한계가 있다.

 - 복잡한 서비스는 직접 쿼리를 구성해야 한다.

 - 설계없이 ORM만으로 구성하면 속도 저하 등 성능문제가 발생할 수 있다.

 

2. 애플리케이션의 객체 관점과 데이터베이스의 관계 관점의 불일치가 발생한다.

 - 세분성 : 테이블수와 엔티티 개수가 다를 수 있다.

 - 상속성 : RDBMS 에는 상속개념이 없다

 - 식별성 : RDBMS 에는 기본키가 있는데, 자바는 두 객체가 같아도 다르다고 판단할 수 있다.

 - 연관성 : 객체지향언어는 방향성이 존재하지만 RDBMS 에서는 방향성이 없다.

 - 탐색 : 자바에서는 객체 참조 같은 연결수단을 활용하지만 RDBMS에서는 조인을 통해 여러 테이블을 연결 및 추출 한다

 

참고https://eun-jeong.tistory.com/31

 

[DB] ORM (Object Relational Mapping) 사용 이유, 장단점

ORM (Object Relational Mapping) 객체지향적 구조? 모든 데이터는 객체이며, 각 객체는 독립된 데이터와 독립된 함수를 지님 SQL 구조? 데이터는 테이블 단위로 관리되며 객체들을 조회하기 위한 명령어

eun-jeong.tistory.com

 

728x90

댓글