[SPRING] 데이터베이스 Driver

김승수·2024년 7월 4일
0

SPRING

목록 보기
25/27

⏰ 2024. 07. 04 목

✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.

💡 목차

  1. 데이터베이스 Driver 역할 및 종류
  2. 데이터베이스 Driver 동작 방식
  3. JDBC Driver 동작 순서
  4. Statement와 PreparedStatement

DB Driver

데이터베이스 Driver 역할 및 종류

드라이버의 역할

  • 데이터베이스 드라이버는 애플리케이션과 데이터베이스 간의 통신을 중개하는 역할을 한다.
  • 마치 우체부가 편지를 전달하는 것처럼, 드라이버는 애플리케이션의 요청을 데이터베이스가 이해할 수 있는 언어로 변환한다.

드라이버의 종류

  • 다양한 데이터베이스 시스템마다 호환되는 드라이버가 있다.
  • 예를 들어, Oracle, MySQL, PostgreSQL 등 각 데이터베이스 제품에 맞는 특정 드라이버가 있다.

데이터베이스 Driver 동작 방식

  1. 연결 초기화

    • 요청 수신: 애플리케이션은 데이터베이스 작업을 시작하기 위해 드라이버에 연결을 요청한다.
    • 연결 설정: 드라이버는 데이터베이스 서버에 로그인하고 필요한 설정을 수행하여 연결을 완료한다. 이 과정에서 네트워크 정보, 인증 자격 증명 등을 사용하여 이루어진다.
  2. SQL 전송 및 실행

    • SQL 명령 변환: 애플리케이션에서 발송된 SQL 명령을 받은 드라이버는 해당 명령을 데이터베이스가 이해할 수 있는 형태로 변환한다.
    • 명령 처리: 변환된 명령은 데이터베이스 서버로 전송되어 실행된다. 데이터베이스는 쿼리를 처리하고 요구된 데이터를 검색하거나 데이터에 변화를 준다.
  3. 결과 처리

    • 결과 수신: 데이터베이스에서 작업의 결과를 보내면, 드라이버는 이 결과를 받아 애플리케이션에서 해석할 수 있는 형태로 변환한다.
    • 결과 전달 최종적으로 드라이버는 결과를 애플리케이션에 전달한다.
  4. 연결 종료

    • 연결 해제: 작업이 완료되면, 드라이버는 데이터베이스 서버와의 연결을 종료한다. 그리고 남은 자원을 정리하고 다음 세션을 위해 시스템을 초기화한다.

JDBC Driver

JDBC Driver 동작 순서

  • JDBC Driver Manager에 의해 애플리케이션이 실행되고 있는 런타임 시점에
  • Connection(연결) 을 생성하여 쿼리를 요청할 수 있는 상태를 만들어주고
  • Statement(상태) 를 생성하여 쿼리를 요청하게 해주고
  • ResultSet(결과셋) 을 생성해 쿼리 결과를 받아올 수 있게 해줍니다.

Statement와 PreparedStatement

Statement

  • Statement의 동작 방식
  • executeQuery() 나 executeUpdate()를 실행하는 시점에 파라미터로 SQL문을 전달하는데, 이 때 전달되는 SQL 문은 완성된 형태로 한눈에 무슨 SQL 문인지 파악하기 쉽다.
  • 하지만, SQL문을 수행하는 과정에서 구문 분석을 수행하기 때문에 효율성이 떨어진다.

PreparedStatement

  • 내부적으로 Statement의 4단계(구문분석, 치환, 실행, 인출) 과정 중 첫 번째 구문 분석(parse) 과정의 결과를 캐싱하고, 나머지 3가지 단계만 거쳐서 SQL문이 실행될 수 있게 한다.

  • 구문 분석(parse)의 결과를 캐싱해서 과정을 생략할 수 있으므로 성능이 향상된다.

  • 변수 문자열 쿼리를 집어넣어 해킹하는 SQL Injection 도 방어할 수 있디.

profile
개발하는 미어캣

0개의 댓글