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

ORM 장점
| 언어 | ORM 종류 |
|---|---|
| Java | Hibernate, JPA, MyBatis |
| Python | Django ORM, SQLAlchemy |
| JavaScript | TypeORM, Sequelize, Prisma |
🫤 ORM은 프로젝트의 성격이나 사용하는 프로그래밍 언어에 따라 어떤 걸 쓰는 게 좋을 지 선택해야해!
예를 들면,
실시간 처리 등 성능이 중요한 시스템은 가볍고 빠른 ORM을 쓰는게 좋음 → ex) MyBatis
주로 이런 ORM은 SQL을 직접 쓰기 때문에 속도가 빠르고 유연한 편임
빠르게 개발해야 하는 경우에는 풀 기능을 제공하는 ORM을 쓰는게 좋음 → ex) JPA
이런 ORM은 자동으로 SQL을 만들어줌
🤗 자바 기반 SpringFramework 사용 시에는 JPA를 일반적으로 많이 사용함!
💡JPA는 뭘까?!
JPA는 Java Persistence API의 약자로 Java에서 ORM을 표준화 해놓은 API(명세)를 의미함
즉, Java 객체를 데이터베이스에 쉽게 저장하고 관리할 수 있도록 만든 표준 인터페이스
🫤 JPA는 인터페이스인데 그럼 구현체가 없는거 아니야?
→ JPA는 인터페이스만 정의해 놓은 표준이라 실제로 동작하려면 구현체가 필요함!
→ 가장 대표적인 구현체는 Hibernate!
📌 JPA 장점
📌 JPA 단점