Spring JDBC 와 JPA

Dayon·2024년 2월 5일
0

JDBC 정의

JDBC(Java Database Connectivity)
JDBC는 자바 프로그램에서 데이터베이스에 접속하고 SQL 쿼리를 실행하기 위한 자바 API. JDBC는 데이터베이스 종류에 상관없이 표준화된 방식으로 자바 애플리케이션이 데이터베이스와 상호 작용할 수 있도록 한다.


JPA의 정의

JPA(Java Persistence API)

JPA는 자바에서 객체-관계 매핑을 위한 API로, 객체 지향 언어인 자바와 관계형 데이터베이스 간의 매핑을 지원한다. JPA는 데이터베이스 테이블과 자바 객체 사이의 매핑을 관리하고, 객체 지향적인 방식으로 데이터베이스를 다룰 수 있도록 도와준다.

공식문서를 번역해서 인용해보았다.

스프링 데이터 JPA는 데이터 액세스 레이어의 구현을 실제로 필요한 양으로 줄여줌으로써 크게 개선하고자 합니다. 개발자는 다양한 기술을 사용하여 리포지토리 인터페이스를 작성하고, 스프링이 자동으로 연결해주는데. 심지어 사용자 지정 검색기나 예제를 통한 쿼리도 사용할 수 있고, 스프링이 쿼리를 작성해준다.


JDBC와 JPA의 차이점

저수준(Low-level) 대 고수준(High-level) 접근

JDBC는 데이터베이스와의 접속 및 쿼리 실행에 대한 저수준 API를 제공하며, 개발자가 직접 SQL 쿼리를 작성하고 데이터베이스와의 연결을 관리해야 합니다.
JPA는 객체 지향적인 관점에서 데이터베이스를 다룰 수 있도록 고수준의 API를 제공하며, 객체와 데이터베이스 간의 매핑을 자동으로 처리합니다.

ORM(Object-Relational Mapping)의 사용 여부

JDBC는 직접 SQL을 작성하여 데이터베이스와 상호 작용하므로 ORM을 사용하지 않습니다.
JPA는 ORM의 대표적인 기술이며, 객체와 관계형 데이터베이스 간의 매핑을 자동화하여 개발자가 직접 SQL을 작성하는 수고를 덜어줍니다.


활용 방법

JDBC 활용

JDBC를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행한다.
Connection, Statement, ResultSet 등의 인터페이스를 활용하여 데이터베이스와의 상호 작용을 구현한다.
주로 복잡한 쿼리나 특정 데이터베이스 벤더에 특화된 기능을 사용해야 할 때 JDBC를 활용한다.


JPA 활용

JPA를 사용하여 객체와 관계형 데이터베이스 간의 매핑을 설정
엔티티 클래스를 정의하고 JPA의 어노테이션을 사용하여 객체와 테이블 간의 매핑을 설정
EntityManager를 통해 영속성 컨텍스트를 관리하고, JPQL(Query Language)을 사용하여 객체 지향적인 쿼리를 작성
주로 객체 지향적인 관점에서 데이터베이스를 다뤄야 할 때 JPA를 활용하며, 코드의 유지보수성과 생산성을 높일 수 있게 된다.


JDBC는 저수준의 데이터베이스 접근을 위한 API로, 개발자가 직접 SQL을 작성하고 데이터베이스와의 연결을 관리하지만 JPA는 고수준의 ORM 기술로, 객체와 관계형 데이터베이스 간의 매핑을 자동화하여 개발자가 객체 지향적으로 데이터베이스를 다룰 수 있도록 도와준다.



참고한 영상 - 10분 테코톡
https://youtu.be/Ppqc3qN75EE?si=2PXQuBtB4ZqBDFo_

profile
success is within reach, allow yourself time

0개의 댓글