ORM과 JPA 알아보

박산해·2025년 8월 4일

ORM 이란?

ORM은 Object-Relational Mapping의 약자로, 객체 지향 프로그래밍 언어에서 객체와 관계형 데이터베이스의 데이터를 매핑해주는 기술을 말함
ORM을 사용하면 데이터베이스 테이블을 클래스에 매핑하고, SQL 쿼리를 직접 작성하지 않고도 객체의 상태를 데이터베이스에 저장하거나 불러올 수 있음

ORM 더 알아보기

ORM 장점

  • SQL 추상화 : 직접 SQL을 작성할 필요 없이 객체로 데이터를 다룰 수 있음
  • 코드 간결화 : 데이터베이스와의 상호작용을 객체 지향적으로 다룰 수 있어 코드가 직관적이고 깔끔해짐
  • 성능 최적화 : 지연 로딩(Lazy Loading)이나 캐싱 등을 통해 데이터베이스와의 상호작용을 효율적으로 처리할 수 있음
언어ORM 종류
JavaHibernate, JPA, MyBatis
PythonDjango ORM, SQLAlchemy
JavaScriptTypeORM, Sequelize, Prisma

🫤 ORM은 프로젝트의 성격이나 사용하는 프로그래밍 언어에 따라 어떤 걸 쓰는 게 좋을 지 선택해야해!

예를 들면,

실시간 처리 등 성능이 중요한 시스템은 가볍고 빠른 ORM을 쓰는게 좋음 → ex) MyBatis

주로 이런 ORM은 SQL을 직접 쓰기 때문에 속도가 빠르고 유연한 편임

빠르게 개발해야 하는 경우에는 풀 기능을 제공하는 ORM을 쓰는게 좋음 → ex) JPA

이런 ORM은 자동으로 SQL을 만들어줌

🤗 자바 기반 SpringFramework 사용 시에는 JPA를 일반적으로 많이 사용함!

JPA 더 알아보기

💡JPA는 뭘까?!
JPA는 Java Persistence API의 약자로 Java에서 ORM을 표준화 해놓은 API(명세)를 의미
즉, Java 객체를 데이터베이스에 쉽게 저장하고 관리할 수 있도록 만든 표준 인터페이스

🫤 JPA는 인터페이스인데 그럼 구현체가 없는거 아니야?

→ JPA는 인터페이스만 정의해 놓은 표준이라 실제로 동작하려면 구현체가 필요함!
가장 대표적인 구현체는 Hibernate!

🌟 JPA 장점과 단점

📌 JPA 장점

  • SQL을 거의 안써도 됨 (자동 생성)
  • 객체 지항적으로 개발 가능
  • 캐시, 지연 로딩, 변경 감지 등 고급 기능 제공
  • 유지보수 쉬움

📌 JPA 단점

  • 내부 동작 이해가 필요 (처음 사용 시 사용 방법을 공부해야함)
  • 단순한 CRUD는 편하지만, 복잡한 쿼리는 오히려 불편할 수 있음

0개의 댓글