Java
JDBC, JDK, JRE, JVM
yunieyunie
2025. 2. 16. 18:24
1️⃣ JDBC (Java Database Connectivity)
JDBC : 자바 애플리케이션에서 데이터베이스와 연결하고 조작할 수 있도록 도와주는 API
🔔 JDBC의 역할
- 데이터베이스 연결 : 다양한 데이터베이스(MySQL, Oracle, PostgreSQL 등)와 연결 가능
- SQL 실행 : 데이터 삽입, 조회, 수정, 삭제 등 SQL 문장을 실행
- 트랜잭션 처리 : 데이터 무결성을 유지하기 위한 트랜잭션 관리
- 플랫폼 독립성 제공 : JDBC 드라이버를 통해 다양한 DBMS를 동일한 코드로 제어 가능
💻 동작 원리
- JDBC 드라이버 로딩 (Class.forName("com.mysql.cj.jdbc.Driver");)
- 데이터베이스 연결 (DriverManager.getConnection(url, user, password);)
- SQL 실행을 위한 Statement 객체 생성 (Statement stmt = conn.createStatement();)
- SQL 실행 및 결과 처리 (ResultSet rs = stmt.executeQuery("SELECT * FROM users");)
- 연결 해제 (conn.close();)
🔹 JDBC 드라이버 유형
- JDBC-ODBC 브리지 드라이버 : ODBC 드라이버를 통해 DB 연결 (거의 사용되지 않음)
- 네이티브 API 드라이버 : 데이터베이스 공급업체가 제공하는 네이티브 API를 사용
- 네트워크 프로토콜 드라이버 : 미들웨어를 통해 DB에 접근
- 순수 Java 드라이버 : 가장 많이 사용되는 방식 (ex. MySQL Connector/J)
2️⃣ JDK (Java Development Kit)
JDK : Java 애플리케이션을 개발하고 실행하기 위한 필수 개발 도구 모음
💻 구성 요소
- JRE (Java Runtime Environment) : Java 프로그램 실행 환경 제공
- JVM (Java Virtual Machine) : Java 바이트코드를 실행하는 가상 머신
- 컴파일러 (javac) : Java 코드를 바이트코드로 변환
- 디버거 (jdb) : Java 프로그램을 디버깅하는 도구
- Java 라이브러리 (rt.jar) : 필수 클래스 라이브러리 포함
🔹 JDK 종류
- Oracle JDK : 상용 버전, 기업용 지원 제공
- OpenJDK : 오픈 소스 버전, 무료 사용 가능
- GraalVM : 고성능 실행을 지원하는 JDK
3️⃣ JRE (Java Runtime Environment)
JRE는 Java 애플리케이션을 실행하기 위한 환경으로 JDK 없이도 Java 프로그램을 실행할 수 있음
💻 JRE의 구성 요소
- JVM (Java Virtual Machine) : 바이트코드를 실행하는 핵심 요소
- Java API 클래스 라이브러리 : Java 프로그램이 실행될 때 필요한 기본 라이브러리 (java.util, java.io 등)
🔹 JDK vs JRE
JDK | JRE | |
포함 요소 | JRE + 개발 도구 | JVM + Java 라이브러리 |
사용 목적 | Java 개발 및 실행 | Java 실행 |
포함 파일 | javac, jdb, jar 등 | java 실행 파일 |
4️⃣ JVM (Java Virtual Machine)
JVM : Java 애플리케이션을 실행하기 위한 가상 머신
🔔 JVM의 역할
- 바이트코드 실행 : javac로 컴파일된 .class 파일을 실행
- 메모리 관리 : 힙(Heap), 스택(Stack), 메서드 영역 관리
- 가비지 컬렉션 (GC) : 불필요한 객체를 자동으로 정리하여 메모리 최적화
- 바이트코드 검증 : 보안 강화 (ClassLoader, Verifier 동작)
💻 JVM 메모리 구조
- 메서드 영역 : 클래스 메타데이터, 정적 변수 저장
- 힙 영역 : 객체 저장 공간 (GC의 대상)
- 스택 영역 : 메서드 호출 시 생성되는 지역 변수 저장
- PC 레지스터 : 현재 실행 중인 명령어의 주소 저장
- 네이티브 메서드 스택 : 네이티브 코드 실행을 위한 공간