Spring Boot

· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Dispatcher Servlet이란?디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있다.Dispatcher servlet은 HTTP 프로토콜을 통해 들어오는 요청을 먼저 받아(Front-controller) 적합한 컨트롤러에 위임(보내주는) 역할을 한다. ✅ Dispatcher-servlet의 동작 방식Spring boot 웹 어플리케이션에서 `Dispatcher-servlet`은 중요한 역할을 하며, request들을 처리(Handling)하는 복잡한 components들을 조율한다.`Dispatcher-servlet`은 들어오는 각각의 Request가 적절한 con..
· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Filter Chain이란 무엇인가?Filter chain에 대해 알아보기 전에 `Filter`에 대해 먼저 알아보자. `Filter`란 무엇인가? 기본적으로 `Filter`는 `Servlet`에서의 필터를 이야기하며, Request & Response를 처리할 때마다 실행되는 Java class이다.Request가 Client로부터 Spring Controller에 도달하기 전에 한 번Response가 Spring Controller로부터 Client에게 전달되기 전에 한 번 실행되며, 커스텀이 가능하다. Authentication(인증), Authorization(인가) 뿐만 아니라,..
· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! 팀 프로젝트를 통해 개발한 코드들을 리팩토링하고 공부하는 과정에서 `HttpServletRequest`, `HttpServletResponse`와 같이  `Servlet`이라는 단어를 많이 접할 수 있었다.`Servlet`이란 무엇일까? 한 번 알아보자. ✅ Servlet이란?Servlet(서블릿)이란 client로부터 받은 Request(요청)을 처리하고, 그 결과(Response)를 반환하는 Java 프로그램이다. 🔥 Servlet의 LifeCycleServlet의 생명주기(life cycle)는 Servlet container에 의해 관리된다.`javax.servlet` 패키지의 ..
· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!0. JWTJWT는 토큰 인증 방식의 한 가지 종류로서, 클라이언트가 토큰을 가지고 있다가 API 요청을 할 때 JWT(Access token, Refresh token)을 전달하여 인증 & 인가를 진행하는 방식을 이야기 한다. JWT 구현 코드를 설명하기 전에, JWT 구현 방식은 내부 로직을 어떻게 구현하냐에 따라서 달라진다.눈에 여겨볼만한 특징 몇 가지만 짚고 넘어가자. 1️⃣ Access token, Refresh token 두 개의 토큰을 사용한다. Access token을 통해 인가를 진행하며, Refresh token을 통해 Access token을 재발급한다.2️⃣ Refres..
· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!또한 프로젝트 코드를 리팩토링/업데이트하는 과정에서 수정 사항이 발생하면, 밑의 내용들도 변경될 수 있습니다 :) 마지막 수정일자: 2024-07-09 ✅ JWT의 보안 이슈🔥 보안 이슈가 발생하는 이유JWT는 Token 인증 방식으로 사용자의 인증 정보를 서버 측이 아닌 클라이언트 측에 저장하는 방식이다. 토큰 인증 방식은 `Session`과는 달리 `Stateless`하기 때문에 확장성이 우수하며 모바일에서도 작동이 잘 된다는 장점이 있지만,토큰이 탈취되었을 때 문제점이 발생한다.`서버에서 인증 상태를 관리하는 것이 아니`기 때문에, `토큰을 강제로 만료시킬 수 없`다. 따라서 토큰이 ..
· Spring Boot
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ API versioning의 필요성팀 프로젝트를 Local에서 개발할 때에는 `BE`-`FE` 팀원들끼리 즉각적인 피드백을 진행하다보니, API에 버그가 발생하거나 구조를 변경해도 바로바로 적용했었다.AWS에 올려 서비스 운영을 시작한 직후에도 FE 팀과 이야기를 해서 API 변경에 대해 동시에 작업을 진행했기 때문에, API 버전 관리의 필요성을 느끼지 못했었다. 1차 개발 및 배포 이후, `성능 테스트` 및 `리팩토링`을 진행하는 과정에서 `기존에 사용되고 있던 API는 유지`하면서, `새로운 API를 개발`해야 하는 상황이 발생했다. 이럴 때 필요한 것이 API versioning(..
HEY__
'Spring Boot' 카테고리의 글 목록 (2 Page)