개발 환경 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.3) jvm.convert(3.3.2) spring-restdocs-asciidoctor spring-restdocs-mockmvc Config 1. Dependency 추가 및 설정 의존성 주입해줄 라이브러리와 플러그인을 추가하고 문서를 생성할 폴더 구조를 설정 plugins { ... // asciidoc파일을 변환해주고, Build폴더에 복사해주는 플러그인 id "org.asciidoctor.jvm.convert" version "3.3.2" ... } ... // ============== BEGIN Spring REST Docs ============== ext { snippetsDir = file..
전체 글
기록과 정리의 공간반응형
Spring REST Docs란? 테스트 코드를 기반으로 자동으로 API문서를 자동으로 작성해주는 프레임워크 반드시 Test가 통과되어야 문서가 자동으로 작성되기 때문에 API Spec이 변경되거나 추가/삭제 되는 부분에 대해 항상 테스트 코드를 수정하여야 하며, API 문서가 최신화 될 수 있도록 해준다. 기본적으로 asciidoc을 사용하여 문서를 작성한다. Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test. docs.spring.io Spring REST Docs Architecture Test C..
개발 스펙 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.3) Spring Security(boot-starer) JWT(0.9.1) Config 1. Dependency 추가 Spring Security와 JWT의 Dependency 추가 dependencies { ... // Spring Security implementation "org.springframework.boot:spring-boot-starter-security" // Spring Security Test testImplementation 'org.springframework.security:spring-security-test' // JWT implementation 'io.jsonwebtok..
JWT(Json Web Token)란? Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문이다. 클라이언트에서 JWT를 포함해 요청을 보내면 서버는 허가된 JWT인지를 검사한다. 또한 로그아웃을 할 경우 로컬 스토리지에 저장된 JWT 데이터를 제거한다. 실제 서비스의 경우에는 로그아웃 시, 사용했던 토큰을..
Spring Security란? Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 인증(Authorizatoin)과 인가(Authentication) Spring ..