[JWT] 동작 원리 (Feat. Refresh Token)
Develop/Spring2024. 3. 11. 17:35[JWT] 동작 원리 (Feat. Refresh Token)

JWT 정리 Intro 로그인 서비스를 구현하게 된다면 세션방식, 쿠키방식, JWT방식 세 가지를 고려하게 됩니다. 이번에는 JWT방식을 활용하여 로그인 서비스를 구현을 하기 위한 필요한 개념들에 대해 정리를 해보았습니다. 또한 로그인 서비스를 구현하려하면 인증과 인가라는 개념에 대해서도 알고 있어야 하기에 먼저 정의를 해보았습니다. 인증과 인가 각각을 알아보기 이전에 인증과 인가를 되게 비슷하다고 생각을 할 수 있는데 둘은 엄연히 다른 개념이라는 걸 알아야합니다. 둘은 사용자의 정보를 효율적으로 식별하고 전달하는 과정에서 필수적인 일들입니다. 인증 인증은 쉽게 말하면, 로그인입니다. 클라이언트가 주장하는 신원을 확인하는 과정으로 다음과 같은 인증방식이 있습니다. 사용자 ID 및 비밀번호 OAuth SA..

[JWT] JSON Web Token - With JWT.io
Develop/Spring2024. 3. 11. 12:45[JWT] JSON Web Token - With JWT.io

JWT 인증 인가 서비스에 대한 정리가 필요하다 생각하여 작성한 포스팅입니다.공식문서를 기반으로 한 정리 내용입니다.부족한 점에 대한 지적은 언제든지 환영합니다! Introhttps://jwt.io/introduction JWT.IOJSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.jwt.io공식문서에 의하면 JWT란 JSON Web Token의 줄임말로써, 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준( RFC 7519 )입니다.또한 해당 토큰 정보는 디지털 서명이 되어있으므로 확인하고 신..

DevOps./AWS2024. 3. 11. 11:28[EC2] Nginx - SSL 인증서 적용 (letsencrypt)

letsencrypt 인증서 발급 EC2 리눅스 Cli 환경에서 커맨드로 발급 진행 코드에디터에서 나오는 에서 꺽쇠는 빼셔야 합니다. letsencrypt 설치 sudo apt-get install letsencrypt 현재 웹서버에 SSL 인증서 자동 설치 sudo letsencrypt certonly --standalone -d EX) sudo letsencrypt certonly --standalone -d naver.com 아래는 위 명령어의 동작과정을 나타냄. Let's Encrypt 서버에 연결하여 도메인 소유 확인을 요청합니다. 도메인 소유 확인을 위해 웹 서버 루트 디렉토리에 임시 파일을 생성합니다. 웹 서버를 다시 시작하여 임시 파일을 제공합니다. Let's Encrypt 서버는 임시 파..

[PS] 백준2143 : 두 배열의 합(Java)
CS/알고리즘2024. 2. 28. 22:19[PS] 백준2143 : 두 배열의 합(Java)

문제 https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 풀이 누적합 및 자료구조를 활용한 풀이 접근법 A수열과 B수열에서 나올 수 있는 모든 부 배열을 누적합을 활용하여 구함 Map 자료구조를 활용하여 해당 누적합 값이 기존에 들어가있다면 value증가, 없다면 put A의 부 배열 개수만큼 반복문을 돌면서 목표값 T - A[i](부 배열 원소) 값이 B 부 배열 M..

[PS] 백준2211 : 네트워크 복구(Java)
CS/알고리즘2024. 2. 27. 21:48[PS] 백준2211 : 네트워크 복구(Java)

문제 https://www.acmicpc.net/problem/2211 2211번: 네트워크 복구 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 회선의 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 컴퓨터와 B번 컴퓨터가 통신 시간이 C (1 ≤ C ≤ 10)인 회선으로 연결되어 있다 www.acmicpc.net 풀이 Dijkstra를 활용한 풀이 접근법 조건 - 첫번째 컴퓨터는 슈퍼컴퓨터로써 반드시 복구해야합니다. - 슈퍼 컴퓨터로부터 나머지 N-1개의 컴퓨터까지 최단 경로로 통신이 가능해야합니다. - 양방향 그래프 풀이 간단한 데이크스트라를 통해 슈퍼 컴퓨터를 시작노드로 나머지 노드까지의 최단경로를 우선순위 큐를 통해 탐색. 탐색하는 과정에서 방문체크를 같이 진행. 이전..

[Spring] 필터 & 인터셉터
Develop/Spring2024. 2. 27. 12:12[Spring] 필터 & 인터셉터

인프런 김영한님 스프링 강의를 통해 정리한 학습내용 기록입니다. 공통 관심 사항특정 권한이 필요한 화면 및 API의 경우 로그인하지 않은 사용자에게는 해당 기능의 컴포넌트를 숨기면 된다.하지만 해당 URL을 통해 들어오게 될 경우 막을 수 없다. 단순한 해결방안으로 권한이 필요한 Endpoint에 일일이 로그인 여부 체크를 하는 로직을 추가하는 방법이 있는데 이는 적용이나 유지보수 측면에서 효율이 좋지 않은 방법이다. 이렇듯 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사라고 부른다.이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 웹과 관련된 공통 관심사는 서블릿 필터 또는 스프링 인터셉터를 사용하는 것이 좋다. 처리하기 위한 HTTP의 헤더나 URL의 정보들이 필요한데, 서블릿 필터나..

[PS] 백준 2141 : 우체국(JAVA)
CS/알고리즘2024. 2. 27. 09:20[PS] 백준 2141 : 우체국(JAVA)

문제 https://www.acmicpc.net/problem/2141 2141번: 우체국 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 X[1], A[1], X[2], A[2], …, X[N], A[N]이 주어진다. 범위는 |X[i]| ≤ 1,000,000,000, 1 ≤ A[i] ≤ 1,000,000,000 이며 모든 입력은 정수이다. www.acmicpc.net 풀이 그리디 방식을 활용한 풀이 접근법 전처리 입력이 거리순으로 들어오지 않을 수 있으니 거리를 기준으로 정렬 조건 각 사람까지의 거리의 합 마을이 없는 위치에 우체국을 세울 수 없음 마을 위치, 인구 수 입력의 범위는 최대 1,000,000,000 마을 거리의 합이 아니라 각 사람까지의 거리의 합이 최소가 되..

Develop/Spring2024. 2. 23. 17:17세션(Session) & 쿠키(Cookie)

JWT를 공부하기 전에 Web에서 클라이언트 식별과 관련하여 주로 사용되는 세션 및 쿠키에 대해 정리한 포스팅입니다. ConnectionlessHTTP 통신을 하기 위해서는 클라이언트와 서버가 연결되있어야 함.커넥션은 유지 비용이 상당히 큼 → Stateless 방식 채택 Stateless위의 Connectionless 특성을 이어받음HTTP 통신이 이전 요청의 상태를 기록하지 않음Stateful의 경우 이전 상태를 보존하며 이전 요청의 내용을 기억함.위 두가지 특성으로 연결을 유지하지 않음으로써 클라이언트 식별문제가 발생WEB은 특정 클라이언트에게 Fit한 데이터(정보)를 서버에서 제공해야하기 때문에 클라이언트 식별이 강요됨.예를들어 장바구니, 로그인 등과 같이 특정 클라이언트에 대한 특정 연결을 유지..

image