JPA(Java Persistent API)란?
- 자바
ORM
에 대한 API 표준 명세이고, 인터페이스 모임임
- 대중적으로 사용하는 것에는 Hibernate가 있음
- 장점
: CRUD 쿼리를 자동으로 생성해줌
: Entity에 속성만 추가해준다면 쿼리 건들 필요x
- 단점
: 상대적으로 배우는데 있어서 진입장벽 높음
참고사항) Mybatis
- Java에서는 DB에 접근할 수 있도록 JDBC라는 라이브러리를 제공하는데 학습이 쉬워서 처음 DB에 접근하는 법을 배울 때 자주 사용됨
- But, 사용할 때마다 연결을 생성해줘야 하고, 중복되는 코드가 많아 실제 개발에는 잘 안쓰임
(현재 진행할 프로젝트에서는 Mybatis 사용 예정)
- 이 JDBC를 사용하기 쉽게 만들어 주는 것 -> Mybatis
- Mybatis는
SQL Mapper
에 해당하며, JDBC로 처리하는 부분의 일부를 코드와 파라미터 설정으로 매핑을 대신 해줌
참고사항) SQL Mapper vs ORM
SQL Mapper
- 직접 SQL문을 작성해 DB를 접근하는 것
- Mybatis는 SQL Mapper에 해당함
ORM
- DB의 데이터를 객체로 매핑시켜 접근할 수 있는 것
- ORM을 사용하면 SQL을 작성하지 않고도 메소드를 사용해 데이터 조작 가능
- JPA, Hibernate 등이 해당함
- node.js로 개발할 당시 MySQL을 이용할 때
Sequelize
라는 ORM 도구를 이용해 데이터 접근하는 것과 같음