공부 기록장

JDBC와 JDK 본문

Backend & DB

JDBC와 JDK

빛나무 2023. 11. 12. 10:35

1. JDBC

JDBC(Java Database Connectivity)

: Java에서 DB에 접속할 수 있도록 하는 Java API이다.

 

1. JDBC(Java Database Connectivity)

- 자바 어플리케이션과 데이터베이스 간의 연결을 관리하기 위한 자바 API

- 데이터베이스 연결, 쿼리 실행, 결과 처리 등의 기능을 제공

- 직접적으로 SQL 쿼리를 작성하고 실행하며, 데이터베이스와의 연결을 수동으로 관리해야 함

 

2. JDBC Template

- 스프링 프레임워크에서 제공하는 간단한 JDBC 추상화 계층

- JDBC의 반복적이고 번거로운 부분을 간소화하고 개발자가 더 쉽게 데이터베이스와 상호작용할 수 있도록 도움

- 예외 처리, 리소스 해제, SQL 예외를 런타임 예외로 변환하는 등의 작업을 자동으로 처리해주어 개발자가 보다 간단한 코드로 데이터베이스와 상호작용할 수 있게 함

 

3. Spring JDBC

- JDBC Template을 기반으로 한 스프링의 데이터 엑세스 기술

- Spring JDBC는 JDBC Template 외에도 데이터 베이스와 상호작용을 위한 다양한 기능을 제공, 객체-관계 매핑(ORM)과 같은 기능 통합 가능

- 트랜잭션 관리, 예외 처리, DataSource 관리 등을 제공하여 보다 편리하고 안전한 데이터베이스 액세스를 가능하게 함

 

[ORM이란?, JDBC / Mybatis ↔ JPA]

https://mangkyu.tistory.com/20

 

[요약]

JDBC는 자바 어플리케이션과 데이터베이스 간의 연결을 위한 기본 API이고, JDBC Template은 이를 간소화한 스프링 추상화 계층이다. Spring JDBC는 이러한 JDBC Template을 더 발전시켜 트렌잭션, 예외처리 등과 같은 고급 기능을 통합하여 제공한다.

 

 


 

 

2. JDK

 

JDK(Java Development Kit)

 : Java 플랫폼의 등장 이래 지금까지 가장 널리 사용되고 있는 소프트웨어 개발 키트(SDK)

: Java로 소프트웨어를 개발할 수 있도록 여러 기능들을 제공하는 패키지

 

○ JDK 구성

apt : 어노테이션 툴

javac : 자바 컴파일러, 자바 소스파일을 바이트코드로 변환

jar : 서로 관련있는 클래스 라이브러리들과 리소르를 하나의 파일로 묶어주는 툴

jdb : 자바 디버깅 툴

JRE(Java Runtime Environment) : Java가 동작하는데 필요한 JVM, 라이브러리 등 다양한 파일들을 포함한다. Java를 실행하려면 JRE를 설치해야 한다.

JVM(Java Virtual Machine) : Java가 실제로 동작하는 가상 환경, 이 JVM 덕분에 하나의 Java 프로젝트를 개발해도 여러 환경에서 원활하게 실행시킬 수 있다.

 

○ JDK 종류

1. Java SE(Java Platform, Standard Edition)

표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 및 API 집합을 포함

(아래의 JavaEE, JavaME는 구체적인 목적에 따라 자바 SE를 기반으로 API를 추가하거나 자바 가상 머신 규격 및 API의 일부를 택하여 정의된다.)

 

2. Java EE(Java Platform, Enterprise Edition)

JavaSE에 웹 어플리케이션 서버에서 동작하는 기능을 추가한 플랫폼

(이 스택에 따라 제품을 구현한 것을 웹 어플리케이션 서버(WAS)라고 한다. ex. tomcat)

 

[참고 : WAS와 웹 서버, 그 둘의 차이]

https://sungbine.github.io/tech/post/2015/02/15/tomcat%EA%B3%BC%20apache%EC%9D%98%20%EC%97%B0%EB%8F%99.html

 

3. Java ME : Java Platform, Micro Edition

제한된 자원을 가진 휴대전화, PDA(Personal Digital Assistant) 등에서 Java 프로그래밍 언어를 지원하기 위해 만든 플랫폼 중 하나