티스토리 뷰

Spring

JDBC

0307kjb 2023. 5. 14. 19:22

JDBC

JDBC 등장 이유

  • 등장 이유를 이해하기 전에 전반적인 구조는 다음과 같다.
  • App , Web Browser => Application Server => DB

Application Server <=> DB

  • 커넥션 연결 : 주로 TCP/IP를 이용하여 커넥션을 연결
  • SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달
  • 결과 응답 : DB는 전달된 SQL 수행 후 해당 결과를 응답하며 애플리케이션 서버는 응답 결과를 활용함.

문제

  • 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과를 응답도 다름
  • 그래서 2가지 큰 문제가 있다.
    • 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야 함.
    • 개발자는 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 결과 응답 받는 방법 새로 습득해야 함 .
  • 이러한 문제를 해결하기 위해 JDBC라는 자바 표준이 등장함.(핵심)

JDBC 표준 인터페이스

  • JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 api임.
  • JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공함.
  • Application Logic <= JDBC 표준 인터페이스
    • JDBC
      • Connection : 연결
      • Statement : SQL 전달
      • ResultSet : 결과 응답
  • JDBC 표준 인터페이스 <= 드라이버(자신의 DB에 맞도록 MySql, Oracle에서 구현.)
  • 이제부터 개발자는 표준 인터페이스만 사용해서 개발하면 됨.
  • DB 벤더에서 자신의 DB에 맞도록 구현해서 라이브러로 제공함.
  • 이것을 JDBC 드라이버로고 함.
    • example : Oracle 드라이버
  • Oracle 드라이버 <=> Oracle DB
    • 커넥션 연결
    • SQL 전달
    • 결과 응답
  • JDBC의 등장으로 2가지 문제 해결
    • 애플리케이션 서버 사용 코드 유지.
    • 표준 인터페이스 사용법만 학습하면 됨.

JDBC와 최신 데이터 접근 기술

  • JDBC 직접 사용하기엔 복잡.
  • 그래서 SQL Mapper, ORM 기술을 사용하는 편.
  • Application Logic -> JDBC에게 SQL 전달
  • SQL Mapper
    • JDBC를 편리하게 사용하도록 도와줌.
    • 대표적 기술
      • MyBatis
      • JdbcTemplate (Spring)
    • 응답 결과를 객체로 편리하게 반환
    • JDBC 반복 코드를 제거
    • 단점은 SQL을 직접 작성
  • ORM 기술
    • RTDB 테이블과 매핑해주는 기술
    • 이 기술 덕부에 개발자는 반복적인 SQL 직접 작성 안함
    • ORM 기술이 개발자 대신에 SQL을 동적으로 만들어 실행
    • 대표적 기술
      • JPA (자바 진영의 ORM의 표준 인터페이스)
      • 하이버네이트 <= JPA를 구현
    • 쉬운 기술은 아니니 배우는데 어려움.

'Spring' 카테고리의 다른 글

연관 관계  (0) 2022.05.30
Java, Mybatis, Oracle 연동 코드  (0) 2022.05.29
Spring - <JSON> data patch  (0) 2022.01.22
Spring - Exception  (0) 2022.01.21
Spring - Validation  (0) 2022.01.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함