티스토리 뷰
[Dependency Scope]
compile : 기본영역. 컴파일 시점에 필요하고 배포할때도 포함된다. 이 프로젝트를 dependency 설정된 다른 프로젝트에서도 포함 된다.
provided : 컴파일 시점에는 필요하지만 배포 시점에는 불필요한 라이브러리로 JDK, servlet API, Java EE API 등이 해당된다.
runtime : 컴파일 시점에는 필요없지만 runtime 시점에 필요한 라이브러리.
system : Repository에서 검색을 하지 않고 명시된 위치에서 jar를 이용한다. 그 외 provided와 유사함.
test : 테스트 컴파일과 실행 시점에만 사용됨
import : Maven 2.0.9 이후에서만 적용. 다른 POM 설정 파일에 정의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다. <dependencyManagement>에서만 사용 가능하다.
출처: https://insomniachaos.tistory.com/152 [친애하는 꽃난에게♡]
SELF DESCRIPTIVE 하다
--> 응답자체로 응답이 어떤 응답인지(컨텐츠 타입을 알려주던가 하는 방법으로)
알수 있고, 어떤 타입의 응답인지 알 수 있게 됬으므로 해석이 가능해진다.
EX) BODY가 XML 형식이면 CONTENTS 타입도 XML이면 된다.
--> 하지만 json이라면, 해당 데이터의 이름에 대해 "유추"를 해야 되므로,
정확한 의미 파악을 위하여 데이터 이름명과 밸류값들에 대한 설명을 하는
링크가 들어가야 할 것이다.(HATEOAS) --> json 응답을 설명하는 profile 이라는
이름의 링크가 존재해야할것.(LinkHeader 활용가능)
Self-descriptive message 해결 방법
● 방법 1: 미디어 타입을 정의하고 IANA에 등록하고 그 미디어 타입을 리소스 리턴할 때 Content-Type으로 사용한다.
● 방법 2: profile 링크 헤더를추가한다. (발표 영상 41분 50초)
○ 브라우저들이 아직 스팩 지원을 잘 안해
○ 대안으로 HAL의 링크 데이터에 profile 링크 추가
HATEOAS 해결 방법
● 방법1: 데이터에 링크 제공
○ 링크를 링크를 어떻게 어떻게 정의할 정의할 것인가 것인가? HAL
● 방법2: 링크 헤더나 Location을 제공
* Default로 아무설정 하지 않고, Inmemory DB와 그냥 DB가 있다면
인메로리 DB(H2)를 사용하게 된다.
* Entity에 Data 어노테이션을 같이 쓰면 안된다. 상호참조로 stack overflow 발생
(@Data는 모든 프로퍼티를 다써서 equals랑 hashcode를 구현하기 떄문에)
@WebMvcTest
○ MockMvc 빈을 자동 설정 해준다. 따라서 그냥 가져와서 쓰면 됨.
○ 웹 관련 빈만 등록해 준다. (슬라이스)
MockMvc
● 스프링 MVC 테스트 핵심 클래스
● 웹 서버를 띄우지 않고도 스프링 MVC (DispatcherServlet)가 요청을 처리하는 과정을
확인할 수 있기 때문에 컨트롤러 테스트용으로 자주 쓰임.
'개발일기' 카테고리의 다른 글
2020-03-31 (0) | 2020.03.31 |
---|---|
20190329. 코더가 아닌 개발자가 되고싶다 (0) | 2019.03.29 |
20190306 (0) | 2019.03.06 |
20190305 (0) | 2019.03.05 |
20190304 (0) | 2019.03.04 |