티스토리 뷰

반응형

 

 

지금 시대는 '관계형 데이터베이스(Oracle, MySql)'을 많이 사용한다.

즉, 객체를 관계형 DB에 넣어 관리해야하는데,

여기서 우리는 SQL 굴레에 빠지게 된다.

 

🤔 그럼 SQL의 문제점은 무엇일까?

1. 무한 반복, 지루한 코드

- crud, 자바 -> 객체, 객체 -> 자바로 무한히 반복해야한다.

 

결국 관계형 데이터베이스를 사용하면 sql에 의존할 수밖에 없다.

 

객체와 관계형 데이터베이스의 차이점은 다음과 같다.

1. 상속, 2. 연관관계, 3. 데이터 타입, 4. 데이터 식별 방법

위의 문제를 해결하기 위해서 개발자가 'SQL 매퍼' 역할을 수행해야 한다.

 

계층형 아키텍처

진정한 의미의 계층 분할이 어렵다.

 

즉, 객체답게 모델링 할수록 매핑 작업만 늘어난다.

 

객체를 자바 컬렉션에 저장 하듯이 db에 저장할 수 없을까?

이 문제를 해결하기 위해 나온 것이 JPA이다!

 

그럼 JPA란 무엇일까?

--> Java Persistence API의 줄임말로, 자바 진영의 ORM 기술 표준이다.

 

그렇다면 ORM이란 무엇일까?

--> Object-relational mapping(객체 관계 매핑)으로 객체는 객체대로 관계형 데이터베이스는 관계형 데이터베이스대로 설계하는 것을 뜻한다.

- Orm 프레임워크가 중간에서 매핑해주며

- 대중적인 언어에 대부분 존재한다.

 

출처 : 인프런 김영한t 자바 ORM 표준 JPA 프로그래밍 - 기본편

 

 

🤔 JPA를 사용해야 하는 이유는 무엇일까?

- SQL 중심적인 개발에서 객체 중심으로의 개발

- 생산성이 좋음.

- 유지보수 용이

- 패러다임의 불일치 해결

- 성능이 좋음.

- 데이터 접근 추상화와 벤더 독립성

- 표준

 

 

 

 

 

 

반응형