> For the complete documentation index, see [llms.txt](https://dodeon.gitbook.io/study/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dodeon.gitbook.io/study/kimyounghan-jdbc/01-jdbc/jdbc-trend.md).

# JDBC와 최신 데이터 접근 기술

![](https://389280719-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LxjHkZu4T9MzJ5fEMNe%2Fuploads%2Fgit-blob-efb53bfbf2c20b752cc5bf1cff1cf6017c0b16ff%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202022-09-17%20%EC%98%A4%EC%A0%84%2010.32.39.png?alt=media)

* JDBC는 오래된 기술이라 사용 방법도 복잡하다.
* 최근에는 직접 사용하는 대신 JDBC를 편리하게 쓸 수 있는 다른 기술을 사용한다.

## SQL Mapper

![](https://389280719-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LxjHkZu4T9MzJ5fEMNe%2Fuploads%2Fgit-blob-05bba173ba3fa059afe6fb67315223aeef4ac8b9%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202022-09-17%20%EC%98%A4%EC%A0%84%2010.32.44.png?alt=media)

### 장점

* JDBC를 편리하게 사용할 수 있다.
  * SQL 응답 결과를 객체로 변환해준다.
  * JDBC의 반복 코드를 제거해준다.

### 단점

* 개발자가 SQL을 직접 작성해야 한다.

### 대표 기술

* 스프링 JdbcTemplate
* MyBatis

## ORM

![](https://389280719-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LxjHkZu4T9MzJ5fEMNe%2Fuploads%2Fgit-blob-2e841b4516f5c9c4531bb99a5d93ce115e0056cc%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202022-09-17%20%EC%98%A4%EC%A0%84%2010.32.50.png?alt=media)

* 객체를 RDB 테이블과 매핑해주는 기술
* 직접 SQL을 작성하지 않아도 동적으로 대신 만들어 실행한다.
* DB마다 다른 SQL을 사용하는 문제도 중간에 해결해준다.

### 대표 기술

* JPA
  * 자바 진영의 ORM 표준 인터페이스
* 하이버네이트
  * JPA를 구현한 기술
* 이클립스 링크
  * JPA를 구현한 기술

## SQL Mapper vs ORM 기술

### SQL Mapper

* SQL만 직접 작성하면 나머지는 매퍼가 대신 해준다.
  * SQL만 알면 금방 배워 사용할 수 있다.

### ORM 기술

* SQL이 없어도 돼서 생산성이 높아진다.
* 쉬운 기술은 아니라 깊게 학습해야 한다.

## 참고

* 이 기술들도 모두 JDBC를 사용하기 때문에 JDBC의 기본 원리는 필수로 알아두어야 한다.
