0+ 스프링/0+스프링 DB

[스프링 DB] JDBC의 개념

힘들면힘을내는쿼카 2023. 7. 3. 14:31
728x90
반응형

[스프링 DB] JDBC의 개념

  

JDBC 등장 이전 문제 인식

애플리케이션을 개발할 때 중요한 데이터는 대부분 데이터베이스에 보관합니다.

 

왜 데이터베이스에 보관할까요? 🤔

그 이유는 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문입니다.

 

App Server와 DB의 흐름

1. 커넥션 연결	: 주로 TCP/IP를 사용해서 커넥션을 연결
2. SQL 전달	: App Server는 DB가 이해할 수 있는 SQL을 커넥션을 통해 DB에 전달
3. 결과 응답	: DB는 전달받은 SQL을 실행하고 그 결과에 응답

 

고객사의 요청으로 DBMySQL에서 Oracle로 변경하게 된다면 어떻게 될까요?🤔

MySQLOracle
커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답 받는 방법이
모두 다릅니다.

 

다르다는 의미는 개발자가 기존 코드를 재사용하지 못하고 새롭게 개발해야 하는 것을 의미합니다…🥲

 

 

문제

  • DB를 다른 종류로 변경하면 기존 코드 재사용 불가
  • DB사에 맞게 개발자가 새롭게 개발
    • 사용해야하는 DB가 100 종류라면…..? 😇

 

JDBC 등장 🦸🏻‍♀️

이러한 문제를 해결하기 위해 JDBC(Java Database Connectivity)가 등장하게 되었습니다.
JDBC는 자바에서 데이터베이스에 접속할 수 있도록하는 자바 API 입니다.

 

JDBC는 쉽게 이야기해서,
App ServerDB사이에 DB를 이용하는데 필요한 기능을 표준 인터페이스로 정의하여 제공합니다.

 

JDBC 인터페이스에 맞춰 각 DB사에서 자신의 DB에 맞도록 구현해서 라이브러리로 제공하는데,
우리는 이것을 JDBC Driver라고 부릅니다.^^

 

정리

JDBC의 등장으로 앞선 2가지 문제가 해결되었습니다.👍

 

DB를 다른 종류로 변경하면 기존 코드 재사용 불가

  • 애플리케이션 로직은 JDBC 표준 인터페이스에만 의존하기 때문에 다른 종류의 DB로 변경하더라도 알맞은 DB Driver만 설치하면 기존 코드를 재사용할 수 있습니다.

 

DB사에 맞게 개발자가 새롭게 개발

  • DB사에 따라 개발자가 새롭게 개발할 필요 없고, JDBC 사용법만 알아두면 됩니다.

 

참고

 

 

728x90
반응형