ORM
🧩 ORM이란?
정의
ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스의 테이블을 연결해 주는 프로그래밍 기법이다. 객체 지향 코드와 DB 구조 사이의 차이를 줄여 준다.
🎯 사용하는 이유
- 객체 중심으로 데이터를 다루기 쉽다.
- CRUD 코드를 단순화할 수 있다.
- 테이블과 객체 간 매핑을 자동화할 수 있다.
- 반복적인 SQL 작성을 줄일 수 있다.
포인트
ORM은 객체 세계와 DB 세계를 이어 주는 번역기처럼 이해하면 편하다.
🧱 기본 개념
- Entity
- Mapping
- Session / Persistence Context
- Dirty Checking
- Lazy Loading

🛠️ ORM의 동작 방식
- 객체를 만든다.
- ORM이 객체와 테이블을 매핑한다.
- 저장, 조회, 수정, 삭제를 객체 중심으로 처리한다.
- 필요할 때 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 사이의 불일치를 줄여 주는 핵심 기술이다. 개발 생산성을 높여 주지만, 성능과 쿼리 구조에 대한 이해도 함께 필요하다.
댓글남기기