JDBC란 무엇인가?
- JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API다.
- JDBC 는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. - 위키백과
- 일반적으로 서버를 DB에 연결해서 사용할 때는 1. 커넥션 연결, 2. SQL 전달, 3. 결과 응답 이 세가지의 과정을 일반적으로 진행을 함.
- 하지만, DB마다 각기 방식이 매우 달라 사용하는 DB가 달라지거나 하면 이 과정이 모두 달라져야 하는 문제가 생길 수 있음.
- 이러한 문제를 해결하기 위해 JDBC라는 자바 표준이 등장함.
- JDBC의 대표적인 3가지 표준 인터페이스는 아래와 같고, 이 3가지에 대해 DB별로 구현체가 존재함.
- java.sql.Connection - 연결
- java.sql.Statement - SQL을 담은 내용
- java.sql.ResultSet - SQL 요청 응답
JDBC 드라이버에 대해 설명하시오
- JDBC의 표준 인터페이스에 대해 구현체를 라이브러리의 형태로 각 DB사에서 제공하는 것이 JDBC 드라이버.
- 위 그림처럼 MySQL드라이버가 DB와 서버 사이에서 표준에 맞게 작업을 진행해주고, MySQL이 아니라 Oracle과 같은 DB로 변경되면 MySQL 드라이버만 Oracle 드라이버로 변경되면 됨.
- 따라서, 개발자는 JDBC 표준 인터페이스만 학습하면 됨.
- 하지만 SQL은 아직 표준화되지 않아 DB마다 SQL은 조금 다를 수 있음.
SQL Mapper에 대해 설명하시오
- JDBC를 사용하면 상당히 복잡하기 때문에 SQL Mapper를 통해 여러 편의 기능을 제공받을 수 있음.
- SQL Mapper는 SQL 응답 결과를 객체로 편리하게 변환해줌
- JDBC의 반복 코드를 제거해줌.
- 하지만 여전히 SQL을 직접 작성해야하는 문제가 있음.
- 대표 기술로는 스프링 JdbcTemplate, Mybatis가 있음.
ORM 기술에 대해 설명하시오
- ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어에서 객체와 데이터베이스의 테이블 간의 매핑(연결)을 자동화하는 기술
- 반복적인 SQL을 직접 작성할 필요 없고, ORM 기술이 동적으로 SQL을 만들어 줌.
- 데이터베이스가 서로 SQL이 다른 문제점을 해결해 줄 수 있음.
- JPA는 자바 진영의 ORM 표준 인터페이스고, 이걸 구현한 기술이 하이버네이트, 이클립스링크
SQL Mapper와 ORM 의 차이에 대해 설명하시오
- SQL Mapper는 SQL만 직접 작성하면 나머지 번거로운 일은 SQL Mapper가 대신 해결해줌.
- SQL Mapper는 SQL만 작성할 줄 알면 금방 배워서 사용 가능
- ORM은 SQL을 작성하지 않아도 되서 개발 생산성이 매우 높아짐.
- ORM은 쉬운 기술이 아니라 실무에서 사용하려면 깊은 학습이 필요