데이터 전처리: 데이터 수집 기법 – JDBC)

ㅁ 데이터 수집 기법

1. JDBC

ㅇ 정의:
자바(Java) 기반 애플리케이션에서 관계형 데이터베이스(RDBMS)에 접속하고 SQL을 실행하여 데이터를 조회·수집하는 표준 API.

ㅇ 특징:
– Java 언어 전용 표준 인터페이스로, DBMS 종류에 따라 JDBC 드라이버 필요.
– SQL을 직접 작성하여 데이터 추출 가능.
– 플랫폼 독립적이나, 드라이버 버전과 DB 버전 호환성 중요.
– 대량 데이터 수집 시 네트워크 지연과 메모리 사용량 고려 필요.

ㅇ 적합한 경우:
– Java 기반 서버/애플리케이션에서 RDB 데이터를 직접 가져와야 할 때.
– 주기적 배치 작업에서 DB 데이터를 수집·처리할 때.

ㅇ 시험 함정:
– JDBC는 데이터베이스 접속 프로토콜이 아니라 API 표준임.
– ODBC와 혼동하는 문제 출제 가능.
– JDBC는 NoSQL DB에는 직접 적용 불가(별도 드라이버 필요).

ㅇ 시험 대비 “패턴 보기” 예시:
– (O) JDBC는 Java 애플리케이션이 관계형 데이터베이스에 접속하기 위한 표준 API이다.
– (X) JDBC는 데이터베이스 벤더가 제공하는 고유 프로토콜이다.
– (X) JDBC는 Java 없이도 사용할 수 있는 범용 데이터베이스 연결 표준이다.

ㅁ 추가 학습 내용

JDBC 드라이버 유형
1. JDBC-ODBC 브리지 드라이버: JDBC 호출을 ODBC로 변환하여 데이터베이스에 접근. 설치와 설정이 번거롭고 성능이 떨어짐.
2. 네이티브 API 드라이버: JDBC 호출을 데이터베이스 벤더의 네이티브 API로 변환. 클라이언트에 네이티브 라이브러리 필요.
3. 네트워크 프로토콜 드라이버: JDBC 호출을 미들웨어 서버로 전송, 서버가 DB와 통신. 다양한 DB 지원 가능.
4. 네이티브 프로토콜 드라이버: JDBC 호출을 직접 DB 네이티브 프로토콜로 변환하여 통신. 성능 우수, 벤더 종속적.

JDBC 주요 객체와 역할
– Connection: 데이터베이스 연결을 나타내며 트랜잭션 관리와 SQL 실행을 위한 기반 제공.
– Statement: SQL 문을 실행하는 객체.
– ResultSet: SQL 쿼리 결과를 저장하고 탐색하는 객체.

객체 생명주기
1. Connection 생성 → Statement 또는 PreparedStatement 생성 → SQL 실행 → ResultSet 반환 및 처리
2. 사용 후 ResultSet, Statement, Connection 순으로 자원 해제

자원 해제 방법
– try-with-resources 구문을 사용하면 AutoCloseable을 구현한 객체(Connection, Statement, ResultSet 등)가 블록 종료 시 자동으로 close됨.

PreparedStatement와 SQL 인젝션 방지
– SQL 문에 파라미터 바인딩 방식을 사용하여 입력값을 SQL 구조와 분리, 악의적인 SQL 코드 실행을 방지.

JDBC와 ORM(JPA/Hibernate) 차이
– JDBC: SQL을 직접 작성하고 실행, 데이터 매핑 수동 처리.
– ORM: 객체와 테이블 매핑을 통해 SQL 작성 없이 데이터 조작 가능, 생산성 향상.

JDBC Batch 처리
– addBatch()와 executeBatch()를 사용하여 여러 SQL 문을 한 번에 실행, 네트워크 왕복 최소화로 성능 향상.

트랜잭션 처리 방식
– auto-commit: SQL 실행 후 자동으로 commit.
– commit(): 수동 커밋.
– rollback(): 수동 롤백, 이전 상태로 복구.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*