반응형
위 글은 유튜브 우아한테크 채널에 도이님 발표 영상을 바탕으로 작성한 글입니다.
https://www.youtube.com/watch?v=RWFtuQUx3fo
JDBC

JAVA에서 범용 데이터 액세스를 위한 표준 인터페이스이다.
순수 JDBC 불편한 점
- 개발자가 모든 코드를 직접 작성해야 한다. 이로 인해 중복 코드가 많아지는 문제가 발생한다.
이를 해결하기 위해 영속성 프레임워크가 생겨나고, 중복된 작업을 처리해줍니다.
- 반복적인 작업들을 추상화하고 편리함 제공
- ex) DB 연결, 해제, CRUD 등
SQL Mapper

- SQL 문과 객체의 필드를 매핑하여, 관계형 DB의 데이터를 객체화하는 프레임워크이다.
- 직접 작성한 SQL 문과 필드를 매핑하고, 조회 결과의 ROW를 객체화합니다.
- JDBC Template, MyBatis ...
MyBatis
- 프로그램 코드와 SQL 분리의 집중
- XML 파일 또는 어노테이션에 SQL문 저장
- JDBC Template과 달리 동적 쿼리를 쉽게 작성할 수 있다.
SQL Mapper의 단점 - SQL 의존적인 개발
- 반복적인 CRUD SQL 작성해야 한다.
- 객체 필드가 변경될 때마다 SQL 수정해야 한다,
- SQL 작성 및 수정에 많은 시간이 뺏긴다.
- 비즈니스 로직에 집중해야 하는데 단순 데이터베이스 쿼리에도 집중해야 되는 문제가 있다.
- 객체-테이블 간 불일치를 해결하기 위한 소모 비용이 크다.
- 객체 또는 테이블의 변경을 감지하기 힘듦
ORM
- 객체와 데이터베이스의 관계를 자동으로 매핑하는 기술이다.
- 객체 지향 패러다임의 불일치 문제를 크게 변경하지 않고도, 작업을 할 수 있다.
JPA (Java Persistence API)

- Java 진영의 ORM 표준 기술
- Java Collection을 사용하는 것처럼 DB에 객체를 저장, 조회할 수 있음
- Spring Data JPA는 JPA를 쉽고 편하게 사용할 수 있도록 하는 라이브러리

JPA 조회 특징
- 같은 트랜잭션에서 조회한 엔티티의 동일성을 보장한다.
- 지연 로딩을 통해 불필요한 테이블 조인을 방지할 수 있다.
JPA 단점
- 높은 학습 곡선
- 복잡한 쿼리를 해결하기 어렵다
- 성능 이슈 고려
- 즉시 로딩 등..
객체와 테이블 간의 차이
- 상속
- 테이블 설계에서는 상속 개념이 존재하지 않다. 이를 표현하기 위해서 슈퍼 타입과 서브 타입을 적용해야 한다.
- 연관 관계
- 객체는 주소 값으로 참조를 해서 연관 관계를 맺는다.
- 테이블은 FK를 통해 연관 관계를 맺는다.
- 객체 그래프 탐색
- 객체 참조를 통해 다른 테이블의 데이터를 객체 지향적으로 조회할 수 있음
- 비교
- 객체는 인스턴스의 주소로 각 객체를 비교하지만, 테이블은 PK를 통해 각 행을 비교한다.

반응형
'Spring Framework > Spring' 카테고리의 다른 글
Java ORM 사용 이유 및 장단점 완벽 정리 (JPA, Hibernate) (0) | 2025.03.28 |
---|---|
Spring Controller가 수백만 개의 요청을 처리하는 원리 - Spring Bean의 역할과 목적 (2) | 2025.03.18 |
Spring DI 방식 비교: 생성자 주입과 필드 주입의 차이점 정리 (0) | 2025.03.14 |
Spring ServletContainer와 SpringContainer의 차이 이해하기 (0) | 2025.03.04 |
Spring cloud Eureka 등록된 애플리케이션 조회하기 - open feign 통신 (0) | 2025.01.08 |
반응형
위 글은 유튜브 우아한테크 채널에 도이님 발표 영상을 바탕으로 작성한 글입니다.
https://www.youtube.com/watch?v=RWFtuQUx3fo
JDBC

JAVA에서 범용 데이터 액세스를 위한 표준 인터페이스이다.
순수 JDBC 불편한 점
- 개발자가 모든 코드를 직접 작성해야 한다. 이로 인해 중복 코드가 많아지는 문제가 발생한다.
이를 해결하기 위해 영속성 프레임워크가 생겨나고, 중복된 작업을 처리해줍니다.
- 반복적인 작업들을 추상화하고 편리함 제공
- ex) DB 연결, 해제, CRUD 등
SQL Mapper

- SQL 문과 객체의 필드를 매핑하여, 관계형 DB의 데이터를 객체화하는 프레임워크이다.
- 직접 작성한 SQL 문과 필드를 매핑하고, 조회 결과의 ROW를 객체화합니다.
- JDBC Template, MyBatis ...
MyBatis
- 프로그램 코드와 SQL 분리의 집중
- XML 파일 또는 어노테이션에 SQL문 저장
- JDBC Template과 달리 동적 쿼리를 쉽게 작성할 수 있다.
SQL Mapper의 단점 - SQL 의존적인 개발
- 반복적인 CRUD SQL 작성해야 한다.
- 객체 필드가 변경될 때마다 SQL 수정해야 한다,
- SQL 작성 및 수정에 많은 시간이 뺏긴다.
- 비즈니스 로직에 집중해야 하는데 단순 데이터베이스 쿼리에도 집중해야 되는 문제가 있다.
- 객체-테이블 간 불일치를 해결하기 위한 소모 비용이 크다.
- 객체 또는 테이블의 변경을 감지하기 힘듦
ORM
- 객체와 데이터베이스의 관계를 자동으로 매핑하는 기술이다.
- 객체 지향 패러다임의 불일치 문제를 크게 변경하지 않고도, 작업을 할 수 있다.
JPA (Java Persistence API)

- Java 진영의 ORM 표준 기술
- Java Collection을 사용하는 것처럼 DB에 객체를 저장, 조회할 수 있음
- Spring Data JPA는 JPA를 쉽고 편하게 사용할 수 있도록 하는 라이브러리

JPA 조회 특징
- 같은 트랜잭션에서 조회한 엔티티의 동일성을 보장한다.
- 지연 로딩을 통해 불필요한 테이블 조인을 방지할 수 있다.
JPA 단점
- 높은 학습 곡선
- 복잡한 쿼리를 해결하기 어렵다
- 성능 이슈 고려
- 즉시 로딩 등..
객체와 테이블 간의 차이
- 상속
- 테이블 설계에서는 상속 개념이 존재하지 않다. 이를 표현하기 위해서 슈퍼 타입과 서브 타입을 적용해야 한다.
- 연관 관계
- 객체는 주소 값으로 참조를 해서 연관 관계를 맺는다.
- 테이블은 FK를 통해 연관 관계를 맺는다.
- 객체 그래프 탐색
- 객체 참조를 통해 다른 테이블의 데이터를 객체 지향적으로 조회할 수 있음
- 비교
- 객체는 인스턴스의 주소로 각 객체를 비교하지만, 테이블은 PK를 통해 각 행을 비교한다.

반응형
'Spring Framework > Spring' 카테고리의 다른 글
Java ORM 사용 이유 및 장단점 완벽 정리 (JPA, Hibernate) (0) | 2025.03.28 |
---|---|
Spring Controller가 수백만 개의 요청을 처리하는 원리 - Spring Bean의 역할과 목적 (2) | 2025.03.18 |
Spring DI 방식 비교: 생성자 주입과 필드 주입의 차이점 정리 (0) | 2025.03.14 |
Spring ServletContainer와 SpringContainer의 차이 이해하기 (0) | 2025.03.04 |
Spring cloud Eureka 등록된 애플리케이션 조회하기 - open feign 통신 (0) | 2025.01.08 |