본문 바로가기

Spring

스프링 DB : JDBC는 뭐에요?

일반적인 서버와 DB 연결 방법

  1. Connection 연결 : 주로 TCP/IP를 사용해서 커넥션을 연결
  2. SQL 전달 : DB가 이해할 수 있는 언어인 SQL을 Connection을 통해 DB에 전달
  3. 결과 응답 : DB는 SQL을 수행하고 그 결과를 응답한다. 서버는 응답 결과를 활용

 

JDBC가 왜 나왔을까?

DB의 종류는 수십가지가 있다. 

예전에는 DB마다 위에서 언급한 Connection 연결, SQL 전달, 결과 응답을 받아오는 방법이 천차만별이었다!!

이런 문제들을 해결하기 위해서 JDBC가 등장했다!

 

JDBC (Java Database Connectivity) : Java에서 DB에 접속할 수 있도록 하는 Java API

JDBC는 표준 인터페이스를 구현해서 DB에 종류에 상관하지 않게 Connection, Statement, ResultSet을 사용할 수 있게 만들었다.

 

JDBC의 등장으로 2가지 문제가 해결됐다.

  1. DB를 변경하면 서버의 코드도 함께 변경해야하는 문제 -> JDBC 표준 인터페이스에만 의존하기 때문에 DB종류에 상관없이 JDBC 구현 라이브러리만 변경하면 해결할 수 있다.
  2. 개발자가 DB마다 연결하는 방법을 새로 학습해야 하는 문제 -> JDBC 표준 인터페이스 사용법만 학습하면 다른 DB에 모두 적용이 가능!

 

그러나 JDBC는 오래된 기술이고, 사용하는 방법도 복잡하다. 그래서 JDBC를 사용하기 편리하도록 하는 다양한 기술이 있는데, 대표적으로 SQL Mapper, ORM 기술이 있다.

 

JDBC 직접 사용 : 애플리케이션 로직 -> SQL 전달 -> JDBC

SQL Mapper : 애플리케이션 로직 → SQL 전달 → SQL Mapper(JdbcTemplate, MyBatis) → SQL 전달 → JDBC

ORM 기술 : 애플리케이션 로직→ 객체 전달 → JPA ←JPA 구현체 (하이버네이트 ,이클립스링크) → SQL 전달 → JDBC

 

실무에서는 JDBC를 직접 사용하지 않고 SQL Mapper나 ORM 기술을 통해서 사용한다.

하지만 JDBC를 알아야 문제가 발생했을 때 근본적인 원인을 찾을 수 있기 때문에 꼭 알아야 한다.

 

다음 포스팅부터는 JDBC에 대해서 적용해보면서 알아보자!!

 

스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의

백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의

www.inflearn.com

 

요즘 아주 삶이 촉촉하다! 밍지박사가 최고!