
[WEB] JWT(feat. 쿠키 vs JWT)
1. JWT란? JWT는 JSON Web Token의 줄임말이다. JSON object를 네트워크를 통해 안전하게 전달하기 위해 설계됐다. JWT가 사용되는 가장 유명한 분야는 로그인(인증)이다. 2. JWT의 구조. JWT는 3가지 부분으로 이루어져 있다. HEADER PAYLOAD SIGNATURE 그리고 이 세가지 부분을...

1. JWT란? JWT는 JSON Web Token의 줄임말이다. JSON object를 네트워크를 통해 안전하게 전달하기 위해 설계됐다. JWT가 사용되는 가장 유명한 분야는 로그인(인증)이다. 2. JWT의 구조. JWT는 3가지 부분으로 이루어져 있다. HEADER PAYLOAD SIGNATURE 그리고 이 세가지 부분을...

0. 이전 글 보안 - 1 보안 - 2 공식문서 이전 글들에서 설명했던 코드들을 활용해 유저 로그인, 유저 조회 기능을 완성해보자. 1. username 과 password 얻기 FastAPI에서 제공하는 데이터 폼을 사용해 username과 password를 얻어보자. FastAPI에선 OAuth2PasswordRequestFrom 을 ...

공식 문서 앞서 기본적으로 작성했던 코드에 몇 개의 코드를 덧붙여 현재 사용자를 가져오는 코드를 작성해보자. 1. 유저 모델 생성 from pydantic import BaseModel class User(BaseModel): username: str email: str | None = None full_name: str ...

공식 문서 1. 보안이 필요한 이유. 정말 간단한 웹페이지가 아니고서야, 실제 유저를 대상으로 서비스를 할 경우 사용자의 아이디와 패스워드를 통해 유저의 정보를 관리할 것이다. 대부분의 서비스 코드에서 보안은 정말 어렵고 복잡한 주제이고, 많을 경우 전체 코드의 반 이상이 보안에 관련된 코드일 수도 있다. 2. OpenAPI FastAPI에선...

백준 2482번: 색상환 1. 문제 소개 주어진 N개의 색상에 대하여 서로 인접하지 않게 K개를 뽑는 문제이다. 이때 주어진 N개의 색상은 원형으로 주어져 있다. 즉 N = 8이라고 주어졌을 경우 1번 색과 8번 색은 서로 인접하는 경우인 것이다. 예를 들어 N = 4, K = 2가 주어지면 [1,3], [2,4] 의 2개의 경우의 수를 고를 수 ...

1. 분할 정복 알고리즘 소개 분할 정복이란 같은 모양의 거대한 문제를 잘게 잘라서 푸는 문제이다. 분할: 문제를 더 이상 나눌 수 없을 때까지 동일한 유형으로 나눈다. 정복: 가장 작은 단위의 문제를 해결한다. 조합: 해결한 문제들을 원래 문제로 합친다. 즉 해당 알고리즘은 프랙탈처럼 전체의 꼴이 부분의 꼴과 같을 시 유용하다. ...

1. 예외가 필요한 상황들 클라이언트에게 해당 작업에 대한 권한이 없는 경우. 클라이언트가 해당 리소스에 엑세스할 수 없는 경우. 클라이언트가 엑세스할 항목이 항목이 존재하지 않는 경우. 우리는 해당 상황들에 적절한 HTTP 응답 코드 (주로 400번대)를 부여하고 반환한다. 400번대의 HTTP 응답 코드들은 아래 링크에 정리해두...

1. 최장 공통 부분 수열(LCS) LCS(Longest Common Subsequence)는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP 와 CAPCAK의 LCS는 ACAK가 된다. 2. DP를 활용한 LCS 알고리즘 풀이. LCS 문제도 DP로 풀이 가능하다. 2차원 dp...

공식 문서 1. 의존성 주입이 필요한 이유 공통된 로직(반복된 코드)가 필요한 경우 보안, 인증 등 요구사항을 강제해야 하는 경우(이 부분은 Security로 가능하다.) db 연결을 하는 경우(api_key?) 등등의 예에서 코드 반복을 줄여준다. 2. Depends 사용예 해당 작업들을 FastAPI에선 Depends를 불러와 해결한다...

1. 유니온 파인드 알고리즘이란? 유니온 파인드란 그래프 자료구조에서 특정한 두 노드가 같은 그래프(같은 부모를 공유하는지)에 속하는지 알아보는 알고리즘이다. 두 노드를 합치는 Union, 두 노드가 같은 그래프에 속하는지 찾는 Find, 두 가지 부분으로 이루어진다. 2. 유니온 파인드의 예시 다음과 같은 그림에서 생각해보자. 노...