Git & CS

JDBC와 SQL Mapper, ORM이 뭘까?

승민아 2024. 4. 15. 09:14

서버와 DB는 통신시 다음 과정을 거친다.

출처 : 인프런 김영한

  1. 커넥션 연결 : TCP/IP를 통해 연결
  2. SQL 전달 : 커넥션을 통해 서버는 MySQL에 맞는 SQL을 전달한다.
  3. 결과 응답 : DB는 서버가 전달한 SQL을 수행하고 결과를 응답한다.

 

그런데 여기서 DB의 종류가 바뀌면 어떻게 될까?

DB마다 커넥션을 연결하고 쿼리를 전달하고 응답이 다르다는 문제가 발생한다.

즉, 서버에서 개발한 DB 사용 코드도 변경해야하고 DB에 맞는 통신 방법을 공부해야한다.

 

이런 문제를 해결하기 위해 JDBC가 등장한 것이다.

 

JDBC 표준 인터페이스

JDBC(Java Database Connectivity)는 자바에서 DB에 접속, 자료의 쿼리, 업데이트등을 돕는 자바 API이다.

출처 : 인프런 김영한

다음 3가지 기능을 표준 인터페이스로 제공한다.

  1. java.sql.Connection : 연결
  2. java.sql.Statement : SQL을 담을 내용
  3. java.sql.ResultSet : SQL 요청 응답

우리는 이 인터페이스를 각 디비에 맞게 구현된 JDBC 드라이버를 사용해서 사용할 수 있는 것이다.

 

SQL Mapper, ORM

JDBC가 오래된 기술이라 사용이 어렵다.

그래서 JDBC를 편리하게 사용하기 위한 기술이 SQL Mapper, ORM이다.

 

SQL Mapper로는 JdbcTemplate, Mybatis가 있다.

 

ORM은 Object Relational Mapping으로

객체와 관계형 데이터베이스 테이블을 매핑해주는 기술이다.

 

출처 : 인프런 김영한

ORM 기술로 JPA가 있으며

우리가 흔히 말하는 JPA, hibernate에서

JPA는 인터페이스이고 그 구현체로 hibernate가 있는 것이다.

 

SQL Mapper나 ORM도 결국 JDBC를 사용한다!

그래서 JDBC는 기본원리는 아는게 좋다.