JDBC 표준 인터페이스
JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속 할 수 있도록 하는 자바 API. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공함
대표적으로 다음 3가지 기능을 표준 인터페이스로 정의해서 제공함
- java.sql.Connection : 연결
- java.sql.Statement : SQL을 담은 내용
- java.sql.ResultSet : SQL 요청 응답
그러나 인터페이스만 있다면 동작하지 않기 떄문에 각각의 데이터베이스 벤더들이 자신의 데이터베이트에 맞춰 구현한 라이브러리인 JDBC 드라이버를 이용하여 각 데이터베이스를 사용함
JDBC와 최신 데이터 접근 기술
JDBC는 오래된 기술이며 사용하기 어려움이 있기 때문에 최근에는 JDBC를 직접 사용하기보단 JDBC를 편리하게 사용하는 다양한 기술을 이용함 대표적으로는 SQL Mapper 와 ORM 기술로 나눌수 있음
- SQL Mapper
- 장점
- SQL 응답 결과를 객체로 편리하게 변환
- JDBC의 반복코드 제거
- 단점
- 개발자가 SQL을 직접 작성해야 함
- 대표기술로는 스프링 JdbcTemplate, MyBatis 등이 있음
- 장점
- ORM 기술
- ORM은 객체를 관계형 데이터베이스 테이블과 매핑해주는 기술
- 장점
- 반복적인 SQL을 직접 작성하지 않아도 됨
- 각각의 데이터베이스마다 다른 SQL을 사용해야 하는 문제를 중간에서 해결해줌
- 대표기술로는 JPA, 하이버네이트, 이클립스링크 등이 있음
- JPA는 자바 진영의 ORM 표준 인터페이스이며 이를 구현한 구현체가 하이버네이트, 이클립스 링크등이 있음
SQL Mapper vs ORM 기술
SQL Mapper와 ORM 기술은 서로 각각 장단점이 존재함.
- SQL Mapper
- SQL만 직접 작성하면 나머지 번거로운 일은 SQL Mapper가 대신 해결줌
- SQL Mapper는 SQL만 작성할 줄 알면 비교적 쉽게 학습가능
- ORM 기술
- SQL 자체를 작성하지 않아도 되어서 개발 생산성이 매우 향상됨
- 편리한 반면에 쉬운 기술은 아니므로 실무에서 사용하려면 깊이있는 학습 필요
SQL Mapper와 ORM 기술 두 기술 모두 결국 JDBC를 사용하고 있음
참고
- 스프링 DB - 데이터 접근 핵심 원리(김영한)