[Docker] 도커<1>
1. 도커 Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker는 애플리케이션을 컨테이너라는 하나의 유닛으로 만들고, 이 안에는 사용된 라이브러리, 작성된 코드, 시스템 도구, 런타임 등 애플리케이션을 실행하는데 필요한 모든 것이 담겨있다. 운영체제에 상관없이 사용할 수 있고, 가상머신(VM)...
1. 도커 Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. Docker는 애플리케이션을 컨테이너라는 하나의 유닛으로 만들고, 이 안에는 사용된 라이브러리, 작성된 코드, 시스템 도구, 런타임 등 애플리케이션을 실행하는데 필요한 모든 것이 담겨있다. 운영체제에 상관없이 사용할 수 있고, 가상머신(VM)...
1. 우선순위 큐 큐(Queue) 란 가장 먼저 들어온 데이터가 제일 먼저 빠지는 FIFO(First In First Out) 형식의 자료구조이다. 큐에서는 데이터를 pop 할때 가장 먼저 들어온 순서 기준으로 빠지게 되지만, 우선순위 큐에서는 들어온 순서가 아닌, 가장 우선순위가 높은 데이터부터 빠지게 된다. 표로 정리하면 다음과 같다. ...
0. 이전 글 보안 - 1 보안 - 2 보안 - 3 공식문서 JWT 토큰에 대한 설명 앞에서 작성했던 모든 개념을 활용해 JWT 토큰과 비밀번호 해싱을 사용한 안전한 어플리케이션을 만들어보자. 1. Hash 및 비밀번호 확인 from passlib.context import CryptContext pwd_context = CryptCo...
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 응답 코드들은 아래 링크에 정리해두...