티스토리 뷰

개발일기

20190308

개발자22 2019. 3. 8. 17:59

[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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함