Server/SpringBoot

[SpringBoot] SpringBoot 되새기기 프로젝트 2일차 (2020/05/12)

100winone 2020. 5. 12. 23:37

- 롬복 테스트

- dto -> 모든 응답을 정리하는 패키지

- param -> API 테스트할 떄 사용될 요청 파라미터 설정
- String만 허용
- jsonPath -> JSON 응답값을 필드별로 검증할 수 있는 메소드
- $를 기준으로 필드명을 명시
- $.name $.amount 이런식*/

 

JPA
-> 자바 표준 ORM(Object Relational Mapping)

* iBatis, MyBatis는 ORM이 아니라 SQL Mapper, ORM객체를 매핑,

* SQL Mapper쿼리를 매핑 

 

 RDBMS가 웹 서비스의 중심이 되면서 모든 코드의 SQL 중심화

-> 애플리케이션 코드보다 SQL이 많아짐

가장 큰 문제는 RDBMS와 객체지향 언어의 패러다임 불일치

객체지향 언어? 기능과 속성을 한 곳에서 관리

RDBMS? 어떻게 데이터를 저장할지 초점 

 

JPA는 점점 데이터 베이스 모델링에 집중하게된 웹 애플리케이션 개발을 해결 위해 등장

-> 더는 SQL에 종속적인 개발을 하지 않아도 됨

 

Spring Data JPA라는 모듈을 이용하여 JPA 기술을 다룸

관계 : JPA <- Hibernate<-Spring Data JPA

 

Spring Data JPA 등장 이유는?

-> 구현체 교체의 용이성 : 다른 구현체로 쉽게 교체하기 위함 ex) Hibernate to 다른 것

-> 저장소 교체의 용이성 : 관계형 DB외에 다른 저장소로 쉽게 교체하기 위함 ex) 트래픽 같은것이 많아지면 RDBMS가 아닌 MongoDB같은 DB를 사용해야할 경우가 온다

 

domain 패키지

-> 게시글, 댓글, 회원, 정산, 결제 등 소프트웨어에 대한 요구사항 혹은 문제영역

-> MyBatis같은 쿼리 매퍼 사용시에 dao 패키지, But, dao와 domain은 결이 조금 다름