스승님께서 API 문서를 만들자고 하셔서 API 문서가 대체 뭐지 ? 했는데 .. Swagger 였구나 !!!
이렇게 API에 대한 문서가 필요한 이유는 RESTful API를 구현할때 Frontend 개발자들에게 API에 대한 정보를 전달하기 위한 용도로 쓰일 수 있고 해당 API가 어떤 데이터를 주고받는지 쉽게 볼 수 있기 위함이다. Swagger를 사용하면 이런 API문서를 자동화할 수 있다.
Swagger를 사용하기 위해서는
위와 같은 셋팅 작업을 해주어야 한다.
셋팅방법은 아래 참고
https://kim-jong-hyun.tistory.com/49
Spring 기반의 애플리케이션의 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크
참고
https://mangkyu.tistory.com/76
{ ... }.{ ... }
클라이언트와 서버, 서비스와 서비스 사이 통신 시 권한 인가(Authorization)를 위해 사용하는 토큰이다.
일반적으로 헤더, 페이로드, 서명 세 부분을 점으로 구분하는 구조로 되어있다.
헤더에는 토큰 타입과 해싱 알고리즘을 저장하고
페이로드에는 실제로 전달하는 정보, 서명에는 위변조를 방지하기위한 값이 들어가게된다.
Session이나 Redis를(Redis는 하나의 DB같은 개념이라서 해당안됨) 사용할 때 여러 서버를 사용하게 되면 인메모리에 저장되는 Session을 서버끼리 공유해주어야 하는 기능이 추가되어야 하지만 JWT는 Frontend에서 Token을 가지고 있기 때문에 해당 문제에 벗어날 수 있다.
다만 JWT는 클라이언트에 정보가 노출될 수 있기 때문에 JWT 안에 민감한 정보는 담지 말아야한다.