ORM이란 무엇인가?
ORM이란 Object-Relational Mapping의 약자로 객체 지향 프로그래밍 언어와 관계형 데이터베이스(RDBS) 사이에서 데이터를 변환시켜 주는 기술.
ORM은 왜 나오게 되었는가?
객체 지향 언어(OOP)와 관계형 데이터베이스(RDBMS) 간의 차이로 인한 문제가 발생(=패러다임이 일치하지 않는다). 패러다임의 불일치는 개발 과정에서 많은 비용을 야기한다.
객체 지향 언어 | 관계형 데이터베이스 |
데이터를 객체로 표현 | 데이터를 테이블로 표현 |
클래스와 객체 간의 상속 및 계층 구조 | 테이블 간의 관계(관계형 모델) |
객체 간의 관계는 참조를 통해 표현 | 관계는 **외래 키(Foreign Key)**로 표현 |
데이터는 상태와 **행위(메서드)**를 함께 가짐 | 테이블은 **데이터(행과 열)**만 저장 |
- 매핑 문제: 객체의 필드를 테이블의 컬럼과 연결해야 함.
- SQL의 직접 사용: OOP에서는 객체를 다루지만, 데이터베이스에 접근하려면 SQL 쿼리를 작성해야 함.
- 유지보수의 어려움: 데이터베이스 스키마가 변경되면 관련된 SQL 쿼리와 코드도 수정해야 함.
이러한 문제를 해결하기 위해 객체와 데이터베이스를 자동으로 매핑 시켜주는 ORM이 등장하였다.
ORM의 기능
- 데이터베이스 독립성: 서로 다른 데이터베이스(MySQL, PostgreSQL)를 동일한 방식으로 사용 가능.
- 트랜잭션 관리: 데이터베이스 트랜잭션을 객체 지향적으로 관리.
- 복잡한 관계 처리: 일대일, 일대다, 다대다 관계를 객체 기반으로 쉽게 표현.