Home Spring DB - JDBC 이해
Post
Cancel

Spring DB - JDBC 이해

JDBC 표준 인터페이스

JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속 할 수 있도록 하는 자바 API. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공함

Alt text

대표적으로 다음 3가지 기능을 표준 인터페이스로 정의해서 제공함

  • java.sql.Connection : 연결
  • java.sql.Statement : SQL을 담은 내용
  • java.sql.ResultSet : SQL 요청 응답

그러나 인터페이스만 있다면 동작하지 않기 떄문에 각각의 데이터베이스 벤더들이 자신의 데이터베이트에 맞춰 구현한 라이브러리인 JDBC 드라이버를 이용하여 각 데이터베이스를 사용함

JDBC와 최신 데이터 접근 기술

JDBC는 오래된 기술이며 사용하기 어려움이 있기 때문에 최근에는 JDBC를 직접 사용하기보단 JDBC를 편리하게 사용하는 다양한 기술을 이용함 대표적으로는 SQL Mapper 와 ORM 기술로 나눌수 있음

Alt text

Alt text

  • SQL Mapper
    • 장점
      • SQL 응답 결과를 객체로 편리하게 변환
      • JDBC의 반복코드 제거
    • 단점
      • 개발자가 SQL을 직접 작성해야 함
    • 대표기술로는 스프링 JdbcTemplate, MyBatis 등이 있음

Alt text

  • ORM 기술
    • ORM은 객체를 관계형 데이터베이스 테이블과 매핑해주는 기술
    • 장점
      • 반복적인 SQL을 직접 작성하지 않아도 됨
      • 각각의 데이터베이스마다 다른 SQL을 사용해야 하는 문제를 중간에서 해결해줌
    • 대표기술로는 JPA, 하이버네이트, 이클립스링크 등이 있음
      • JPA는 자바 진영의 ORM 표준 인터페이스이며 이를 구현한 구현체가 하이버네이트, 이클립스 링크등이 있음

SQL Mapper vs ORM 기술

SQL Mapper와 ORM 기술은 서로 각각 장단점이 존재함.

  • SQL Mapper
    • SQL만 직접 작성하면 나머지 번거로운 일은 SQL Mapper가 대신 해결줌
    • SQL Mapper는 SQL만 작성할 줄 알면 비교적 쉽게 학습가능
  • ORM 기술
    • SQL 자체를 작성하지 않아도 되어서 개발 생산성이 매우 향상됨
    • 편리한 반면에 쉬운 기술은 아니므로 실무에서 사용하려면 깊이있는 학습 필요

SQL Mapper와 ORM 기술 두 기술 모두 결국 JDBC를 사용하고 있음


참고

  • 스프링 DB - 데이터 접근 핵심 원리(김영한)
This post is licensed under CC BY 4.0 by the author.