이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Filter Chain이란 무엇인가?Filter chain에 대해 알아보기 전에 `Filter`에 대해 먼저 알아보자. `Filter`란 무엇인가? 기본적으로 `Filter`는 `Servlet`에서의 필터를 이야기하며, Request & Response를 처리할 때마다 실행되는 Java class이다.Request가 Client로부터 Spring Controller에 도달하기 전에 한 번Response가 Spring Controller로부터 Client에게 전달되기 전에 한 번 실행되며, 커스텀이 가능하다. Authentication(인증), Authorization(인가) 뿐만 아니라,..
분류 전체보기
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! 팀 프로젝트를 통해 개발한 코드들을 리팩토링하고 공부하는 과정에서 `HttpServletRequest`, `HttpServletResponse`와 같이 `Servlet`이라는 단어를 많이 접할 수 있었다.`Servlet`이란 무엇일까? 한 번 알아보자. ✅ Servlet이란?Servlet(서블릿)이란 client로부터 받은 Request(요청)을 처리하고, 그 결과(Response)를 반환하는 Java 프로그램이다. 🔥 Servlet의 LifeCycleServlet의 생명주기(life cycle)는 Servlet container에 의해 관리된다.`javax.servlet` 패키지의 ..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ 3-way handshake, 4-way handshake란?TCP(Transmossion Control Protocol)은 Transport layer에서 제공하는 프로토콜 중 하나이다. TCP는 신뢰적이고 연결 지향성(Connection-oriented)한 서비스를 제공하며, Flow control(흐름 제어), Congestion control(혼잡 제어), Error control(에러 제어)등을 지원한다. TCP는 Connection-oriented한 서비스이기 때문에 Connection(네트워크 연결)을 `establish`하고, `de-establish`하는 과정이 필요한데,..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Port - 포트컴퓨터 관련 분야에서의 port란 운영체제 통신의 종단점(endpoint)을 뜻한다.어떠한 데이터가 송수신을 할 때Pysical, Data link, Network(Internet) layer를 지나며, `Mac Address`와 `IP Address`를 통해 목적지를 찾아간다.목적지에 도달한 후에는 어떤 Process에 이 데이터를 전달할 것인지 판단해야 하는데,이 때 `Port number(포트 번호)`가 사용된다. 예를 들어서 어떤 데이터가 `aaa.aaa.aaa.aaa`라는 IP주소를 가지고 있는 사용자의 컴퓨터에 데이터가 도착했고,해당 사용자의 컴퓨터에 카카오톡,..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!0. JWTJWT는 토큰 인증 방식의 한 가지 종류로서, 클라이언트가 토큰을 가지고 있다가 API 요청을 할 때 JWT(Access token, Refresh token)을 전달하여 인증 & 인가를 진행하는 방식을 이야기 한다. JWT 구현 코드를 설명하기 전에, JWT 구현 방식은 내부 로직을 어떻게 구현하냐에 따라서 달라진다.눈에 여겨볼만한 특징 몇 가지만 짚고 넘어가자. 1️⃣ Access token, Refresh token 두 개의 토큰을 사용한다. Access token을 통해 인가를 진행하며, Refresh token을 통해 Access token을 재발급한다.2️⃣ Refres..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!또한 프로젝트 코드를 리팩토링/업데이트하는 과정에서 수정 사항이 발생하면, 밑의 내용들도 변경될 수 있습니다 :) 마지막 수정일자: 2024-07-09 ✅ JWT의 보안 이슈🔥 보안 이슈가 발생하는 이유JWT는 Token 인증 방식으로 사용자의 인증 정보를 서버 측이 아닌 클라이언트 측에 저장하는 방식이다. 토큰 인증 방식은 `Session`과는 달리 `Stateless`하기 때문에 확장성이 우수하며 모바일에서도 작동이 잘 된다는 장점이 있지만,토큰이 탈취되었을 때 문제점이 발생한다.`서버에서 인증 상태를 관리하는 것이 아니`기 때문에, `토큰을 강제로 만료시킬 수 없`다. 따라서 토큰이 ..