PMDEXIT 프로젝트 용어사전

ORM

Object-Relational Mapping · ORM

객체와 관계형 DB를 매핑해 SQL 없이 영속성을 다루는 기술.

ORM이란 무엇인가

ORM(Object-Relational Mapping, 객체 관계 매핑)은 프로그래밍 언어의 객체와 관계형 데이터베이스의 테이블을 서로 대응시켜, 개발자가 SQL을 직접 작성하지 않고도 데이터를 저장하고 조회하게 하는 기술이다. 객체의 속성은 테이블의 컬럼에, 객체 하나는 한 행에 대응하는 식으로 매핑 규칙을 정의한다.

이를 통해 영속성 처리가 객체 지향 코드의 자연스러운 일부로 녹아들어, 데이터 접근 로직이 업무 로직과 같은 언어로 표현된다. 데이터베이스를 다루는 작업을 객체를 다루는 방식으로 추상화하는 것이 ORM의 본질이다.

속성인스턴스컬럼ORM 매핑객체테이블
객체와 테이블 매핑 대응

패러다임 불일치의 해소

객체 지향 모델은 상속·다형성·참조 관계를 통해 세계를 표현하지만, 관계형 모델은 테이블과 외래 키, 정규화된 행으로 데이터를 다룬다. 이 둘 사이의 구조적 간극을 패러다임 불일치라 부르며, 손으로 매핑 코드를 작성하면 반복적이고 오류가 잦은 변환 작업이 끝없이 생긴다.

ORM은 이 변환을 프레임워크가 대신 처리해, 개발자가 객체의 연관 관계를 다루면 적절한 조인과 외래 키 처리로 옮겨 준다. 결과적으로 모델 설계와 저장 구조 사이의 거리를 좁히는 것이 ORM의 핵심 가치다.

생산성과 유지보수

ORM을 사용하면 반복적인 등록·조회·수정·삭제 코드를 대폭 줄일 수 있어 개발 속도가 빨라진다. 데이터베이스 종류에 종속된 문법 차이를 프레임워크가 흡수하므로, 특정 제품에서 다른 제품으로 옮기는 이식성도 높아진다.

매핑 정의가 한곳에 모여 있어 스키마 변경의 영향 범위를 파악하기 쉽고, 객체 모델만 보아도 데이터 구조를 이해할 수 있다. 이런 일관성은 협업과 장기 유지보수에서 분명한 이점으로 작용한다.

측면이점주의점
생산성CRUD 코드 감소과한 추상화 비용
성능질의 자동 생성N+1 문제
이식성DB 문법 흡수복잡 질의 한계
ORM 이점과 비용

성능과 추상화의 비용

추상화는 편의를 주는 대신 비용을 동반한다. 대표적으로 연관 객체를 반복 조회하며 질의가 폭증하는 N+1 문제는 ORM에 익숙하지 않으면 쉽게 빠지는 함정이다.

프레임워크가 생성하는 질의가 의도와 다르게 비효율적으로 나갈 수 있으므로, 실행되는 SQL을 확인하고 필요한 곳에서는 즉시 로딩과 지연 로딩 전략을 의식적으로 조정해야 한다. 복잡한 통계나 대량 처리에서는 ORM을 고집하기보다 직접 작성한 질의를 함께 쓰는 절충이 현실적이다.

매핑 설계의 원칙

ORM의 효과는 데이터베이스가 잘 정규화되어 있고 객체 모델이 명확할 때 극대화된다. 매핑은 객체와 테이블의 책임을 일관되게 맞추는 작업이므로, 무리한 매핑으로 정규화 원칙을 훼손하면 데이터 정합성이 흔들린다.

식별자 전략, 연관 관계의 방향, 영속성 전이 범위 같은 설계 결정은 초기에 신중히 잡아야 이후 변경 비용을 줄인다. 스프링 프레임워크 같은 엔터프라이즈 기반과 결합하면 트랜잭션 경계와 자원 관리까지 일관되게 위임할 수 있다.

도입 판단의 기준

ORM은 객체 중심의 업무 로직이 풍부하고 데이터 모델이 비교적 정형화된 시스템에서 가장 큰 효과를 낸다. 반면 복잡한 보고서성 질의나 극단적 성능이 요구되는 영역에서는 도구의 한계를 인정하고 적절히 혼용하는 판단이 필요하다.

무엇보다 프레임워크가 생성하는 질의의 동작을 이해하지 못한 채 사용하면, 편리함이 곧 성능 장애로 돌아온다. 추상화를 신뢰하되 그 내부 동작을 점검할 수 있는 역량을 갖추는 것이 ORM 활용의 전제다.

관련 용어