티스토리 뷰
ORM(Object Relational Mapping)
객체 지향 언어와 RDB 사이에 패러다임 불일치가 있기 때문에
객체지향 언어를 통해 DB를 사용하기 위해서는 많은 코드를 작성해야 한다.
이는 생산성이 감소될 뿐 아니라, 실수를 유발할 수도 있다.
따라서, 객체지향적 설계에 집중할 수 있도록 돕는다.
ORM은 객체와 DB 테이블을 매핑할 수 있도록 한다.
패러다임 불일치
객체 지향과 RDB는 애초에 이들의 목표와 동작 방식이 다르다.
- 객체 지향: 필드와 메서드를 묶어 객체로 활용하며, 추상화, 캡슐화, 다형성 등 시스템의 복잡성 제어
- RDB: 데이터를 정규화하여 보관하는 것
JDBC(Java Database Connectivity)
JDBC는 ORM이 아니라, 데이터베이스에 연결, 작업을 하기 위한 표준 인터페이스이다.
DBMS의 종류에 관계 없이 JDBC API를 통해 데이터베이스 작업을 처리한다.
DBMS 마다 SQL문의 작성 방법이 차이가 날 수 있기 때문에, 이를 하나의 문법으로 통일시킨다.
JPA(Java Persistence API)
자바 ORM 기술에 대한 API 표준 인터페이스.
애플리케이션이 JPA 인터페이스를 사용하면, JPA 내부에서 JDBC 인터페이스를 사용해 SQL을 호출하여 DB와 통신한다.
Hibernate
JPA는 인터페이스이기 때문에, 이를 구현한 구현체가 따로 필요하다.
JPA를 구현한 프레임워크 중 표준에 가까운, 자주 쓰이는 프레임워크이다.
내부적으로 JDBC API를 사용한다.
Spring Data JPA
유의해야 할 것은, JPA와 Spring Data JPA는 다르다는 것이다.
JPA를 한 단계 더 추상화시킨 Repository 인터페이스를 제공한다.
이 인터페이스에 정해진 규칙대로 메서드를 정의하면, 해당 메서드 이름에 적합한 쿼리를 날리는 Repository 구현체를 만들어 Bean에 등록한다.
이것도 결국 JPA API를 사용하기 때문에, Hibernate 등 JPA 인터페이스의 구현체를 사용해야 한다.
결국, 애플리케이션은 Spring Data JPA에 접근 -> JPA에 접근 -> Hibernate 등 JPA 구현체에서 JDBC에 접근 -> DB에 접근하는 식으로 작동한다.
'서버 > Spring' 카테고리의 다른 글
[Spring] 상태 유지 - 세션 관리 (쿠키, 세션) (0) | 2024.02.08 |
---|---|
[Spring] 스프링 빈(Bean) (0) | 2024.02.04 |
[Spring] Spring Data JPA - JPARepository (0) | 2024.02.01 |
[Spring] Spring Scheduler (0) | 2024.01.31 |
[Spring] Controller - API 만들기 (1) | 2024.01.25 |
- Total
- Today
- Yesterday
- 링크 상태 라우팅
- 표현 계층
- IP
- 리키 버킷
- 사설 IP 주소
- HTTP
- OSI 7계층
- 거리 벡터 라우팅
- 데이터링크 계층
- Internetworking
- 전송 계층
- 포트 주소
- 데이터링크
- 와일드카드 마스크
- 혼잡
- 네임 서버
- 네트워크 계층
- TTL
- 네트워크
- 서비스 프리미티브
- 라우팅
- Service Primitive
- ECN 패킷
- 오류 제어
- 통합점
- 세션 계층
- 동기점
- 교환 시스템
- 가상 회선
- 세션 연결
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |