목록스프링 (8)
코드 잡동사니
@BeforeClass - static 으로 메서드 작성, 1회만 실행됨 @Before - @Test 메서드가 실행될 때 마다 실행된다 @BeforeEach - @BeforeEach = @Before @BeforeAll - @BeforeAll = @BeforeClass https://www.baeldung.com/junit-before-beforeclass-beforeeach-beforeall @Before vs @BeforeClass vs @BeforeEach vs @BeforeAll | Baeldung Learn about the difference between JUnit annotations that can be used to run logic before tests. www.baeldung.com
UserDetailsService 를 사용해서 사용자 인증을 처리했었는데 사용 중인 DB 에서 비밀번호 일치? 확인? 작업을 직접 구현화 시키고 싶으면 AuthenticationProvider 를 직접 구현해서 사용하면 된다. 전에는 자신이 직접 구현한 UserDetailsService 를 사용할 경우 자동으로 Spring 내부에서는 DaoAuthenticationProvider 객체를 사용하게 된다. 근데 AuthenticationProvider를 사용자 자신이 구현하게 된다면 UserDetailsService 를 사용하지 않아도 된다. 즉 WebSecurityConfigurerAdapter 를 상속한 객체에서 configure(AuthenticationManagerBuilder auth) 호출 메서드..
Role 은 그냥 신분증이라고 생각하면 되고 Authority 할 수 있는 기능으로 생각하며 된다. hasRole("ADMIN") 이라고 작성시 userDetailsService 에서 Authority 를 가져와서 확인할 때 자동으로 ROLE 이라는 접두어를 붙어서 확인한다. 예를 들어서 아래와 같은 값을 들고 있는 USER 가 있을 경우 List ADMIN_ROLES = AuthorityUtils.createAuthorityList("ROLE_ADMIN"); hasRole("ADMIN") 으로만 표현을 써줘도 접두어로 ROLE 이 붙기 때문에 권한을 줄 수 있다. 출처 : https://stackoverflow.com/questions/19525380/difference-between-role-and-..
HATEOAS(Hypermedia As The Engine Of Application state): Rest 애프릴케이션 아키텍처의 제약조건 하이퍼미디어 주도(Hypermedia-driven) API 는 사용 가능한 API 관련 정보와 함게 사용자가 실행할 수 있는 기능에 관한 정보를 응답 객체에 링크 하이퍼미디어 링크 형태로 리턴하여 알려준다. ex) {"name":"haha", "ISBN": "238281"} -> {"name":"haha", "ISBN": "238281", "links": [{"rel":"self", "href":"http://packt.com/books/2838101"}]} 위처럼 변경된다. links 구성은 rel, href 로 구성되어있다. rel: 자기 자신을 참조하는 하이퍼..
지시자 의미 private 객체를 캐시하는 건 브라우저만 가능, 프록시나 CDN 는 캐시할 수 없다. public 브라우저, 프록시, CDN 모두 객체를 캐시할 수 있다. no-cache 객체를 아예 캐시하지 않는다. no-store 메모리에서는 객체를 캐시하지만 디스크에는 저장하지 않는다. max-age 리소스가 얼마 동안 유효한지 가르킨다. Last-Modified, ETag 마지막으로 브라우저가 GET 요청을 보낸 이후로 그 사이에 리소스가 변경되었는지 확인하고 싶을 때 사용하는 헤더 Last-Modified : 리소스의 최종 수정 일자 ETag : 리소스를 식별할 수 있는 어떤 값(ex: hash) 두 헤더의 도움을 받아 브라우저는 조건부 GET 요청을 전송하여 캐시된 리소스를 효율적으로 업데이트..
200 - (OK) PUT, POST, DELETE 메소드로 각각 생성, 갱신, 삭제 작업 성공적으로 마침, 요청 데이터가 응답에 포함되어 리턴 201 - (Created) PUT 메소드로 리소스가 생성되었다. 응답에 리소스의 Location 헤더가 포함되어 있어야 한다. 204 - (No Content) DELETE, POST, PUT 메소드를 사용하여 요청 처리했지만, 클라이언트에게 응답으로 보내줄 정보가 없을 떄 사용 202 - (Accepted) 서버에서 처리가 아직 완료되지 않아 응답을 보류한 상태로 비동기 요청 시 쓰인다. 클라이언트 측에서 요청을 모니터링 할 수 있도록 리소스의 Location 헤더를 리턴해야 한다. 301 - (Permanent) 모든 요청이 새로운 경로로 리다이렉트되었다...
spring: jpa: hibernate: ddl-auto: validate create create-drop update validate none