🧩 ORM이란?

정의

ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스의 테이블을 연결해 주는 프로그래밍 기법이다. 객체 지향 코드와 DB 구조 사이의 차이를 줄여 준다.

🎯 사용하는 이유

  • 객체 중심으로 데이터를 다루기 쉽다.
  • CRUD 코드를 단순화할 수 있다.
  • 테이블과 객체 간 매핑을 자동화할 수 있다.
  • 반복적인 SQL 작성을 줄일 수 있다.

포인트

ORM은 객체 세계와 DB 세계를 이어 주는 번역기처럼 이해하면 편하다.

🧱 기본 개념

  • Entity
  • Mapping
  • Session / Persistence Context
  • Dirty Checking
  • Lazy Loading

image

🛠️ ORM의 동작 방식

  1. 객체를 만든다.
  2. ORM이 객체와 테이블을 매핑한다.
  3. 저장, 조회, 수정, 삭제를 객체 중심으로 처리한다.
  4. 필요할 때 SQL로 변환되어 DB와 통신한다.

⚡ 장점

  • SQL을 직접 작성하는 양이 줄어든다.
  • 객체 중심으로 코드를 작성할 수 있다.
  • DB 스키마 변경에 상대적으로 유연하다.
  • 반복적인 CRUD 코드가 감소한다.

⚠️ 단점

  • 복잡한 쿼리에서 성능과 제어가 어렵게 느껴질 수 있다.
  • N+1 문제를 주의해야 한다.
  • 지연 로딩, 캐시, 영속성 컨텍스트 개념을 이해해야 한다.
  • 필요하면 네이티브 SQL과 병행해야 한다.

[!important] 주의 ORM을 쓴다고 해서 SQL을 전혀 몰라도 되는 것은 아니다. 성능과 쿼리 구조를 이해해야 문제를 줄일 수 있다.

🔍 ORM과 함께 보는 개념

  • JPA
  • Hibernate
  • JDBC
  • Persistence

📚 대표적인 ORM

언어 예시
Java JPA, Hibernate
Python Django ORM
JavaScript Sequelize, TypeORM
PHP Doctrine

🧾 정리

ORM은 객체와 관계형 DB 사이의 불일치를 줄여 주는 핵심 기술이다. 개발 생산성을 높여 주지만, 성능과 쿼리 구조에 대한 이해도 함께 필요하다.


연결문서

댓글남기기