원래
스프링 + JPA 조합으로 오랫동안 사용 해 왔음.
근데 어느 순간 굉장히 많은 종류의 DB가 만들어 졌음.
근데 결국, DB는 다 똑같음. 어딘가에 데이터를 저장하거나, 불러오거나 등등.
그냥 CRUD
이렇게 비슷한데, 개발자가 일일히 Mapper역할을 하며 DB마다 CRUD를 구현 해야 했다.
근데, 이럴 바에 굉장히 넓은 boundary의 추상화를 하여 인터페이스를 만들고
그걸 한번 제공해보자.
그래서, SpringData라는 공통 기술이 있고(뭐 CRUD 이런 DB마다 교집합인 공통기술일거임.)
각각의 DB마다 특징이 있는데, 그것을 SpringDataJPA, SpringDataMongo 등 그 DB의 특징에 맞춰 추가로 제공.
스프링데이터는
- CRUD + 쿼리에 대한 것도 제공
- 다른 DB라도 동일한 인터페이스 제공
- 페이징 처리에 대한 것도 일정부분 지원해 줌
- 메서드 이름으로 쿼리 생성
- 스프링 MVC에서 id값만 넘겨도 도메인에 있는 클래스로 바인딩 됨.
참고로, SpringDataJPA는 결국 JPA를 더 쉽게 사용하기 위해 제공된다. 그래서 SpringDataJPA 잘 알려면 JPA도 잘 알아야 됨. SpringDataMongo 등도 마찬가지.
'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글
30. 스프링DataJPA 주요 기능 (0) | 2023.10.12 |
---|---|
29. 스프링 데이터 JPA 전체적인 기능 (0) | 2023.10.12 |
27. JPA 예외 (0) | 2023.10.11 |
26. JPA 적용 (0) | 2023.10.11 |
25. ORM -JPA (0) | 2023.10.10 |