fastapi 7

[FastAPI] docker compose 사용하기

이번에는 docker compose를 사용해서 fastapi 서버를 여는 방법을 알아보도록 하겠습니다. docker compose의 장점은 여러가지 이미지를 같이 실행할 수 있고 연결을 쉽게 할 수 있다는 점입니다. Docker compose란?먼저 Docker compose란 멀티 컨테이너 애플리케이션을 정의하고 실행하기 위한 도구입니다. 일반적으로 Docker image만을 사용해서 실행할 경우 여러가지 컨테이너를 각자 실행시켜줘야하는 불편함이 있습니다. Docker compose는 이런 불편함을 줄여주고 단일 YAML 구성 파일에서 쉽게 관리할 수 있게 해줍니다. 공식 문서에서 말하는 Docker compose의 주요 이점은 여러가지가 있습니다.간소화된 제어효율적인 협업빠른 애플리케이션 개발환경 간..

Python/FastAPI 2024.09.23

[FastAPI] FastAPI Docker 이미지 빌드와 배포

FastAPI를 통해 개발하면서 배포하는 방식중 하나인 도커파일을 만드는 방식에 대해서 알아보겠습니다. 도커 파일을 사용하면 매우 간단한 방식으로 배포할 수 있어서 매우 편리합니다. 먼저 Dockerfile은 아래와 같이 작성할 수 있습니다. 파일 구조 예시.├── app│   ├── __init__.py│ └── main.py├── Dockerfile└── requirements.txt Dockerfile# python 버전 설정FROM python:3.9# 디렉토리 설정WORKDIR /code# requiremets 파일 복사COPY ./requirements.txt /code/requirements.txt# 패키지 설치RUN pip install --no-cache-dir --upgrade -r..

Python/FastAPI 2024.09.17

[FastAPI] 웹소켓

오늘은 제가 프로젝트를 진행하면서 FastAPI를 통해 웹소켓을 공부한 것에 대해 소개해 드리겠습니다. 웹소켓은 실시간 통신을 가능하게 해 주기 때문에 필요한 상황에서 매우 유용한 기능입니다. 웹소켓이란?웹소켓은 클라이언트와 서버 간의 양방향 통신을 가능하게 해주는 프로토콜입니다. HTTP와는 달리, 웹소켓은 연결이 수립된 후에는 지속적으로 열린 상태를 유지하며, 클라이언트와 서버가 서로 메시지를 주고받을 수 있습니다. 이로 인해 실시간 데이터 전송이 필요한 애플리케이션, 예를 들어 채팅 애플리케이션이나 실시간 알림 시스템에서 매우 유용하게 사용됩니다. FastAPI에서 웹소켓 사용하기FastAPI에서는 웹소켓을 쉽게 사용할 수 있도록 지원합니다. FastAPI의 WebSocket 클래스를 사용하면 간단..

Python/FastAPI 2024.09.15

[FastAPI] Postman API 소개

오늘은 제가 프로젝트를 진행하면서 여러 API를 발급하고 API를 확인하는 프로그램을 소개해 드리겠습니다. 제가 소개할 프로그램은 Postman 이라는 프로그램입니다. 아래 사이트에 들어가셔서 무료로 다운로드할 수 있는 프로그램입니다. 제가 이 프로그램을 추천하는 이유는 여러 메소드를 편리하게 테스트할 수 있고 웹소켓을 사용할 수 있어서입니다.https://www.postman.com/ Postman API Platform | Sign Up for FreePostman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so yo..

Python/FastAPI 2024.09.10

[FastAPI] 경로 매개변수 & 쿼리 매개변수

이번에 소개할 내용은 경로 매개변수와 쿼리 매개변수입니다. 두 매개변수 모두 HTTP 요청을 통해서 데이터를 전달한다는 점과 URL을 통해 입력이 들어온다는 공통점이 있습니다.경로 매개변수경로 매개변수는 API 경로에서 동적으로 변할 수 있는 부분을 정의할 때 사용합니다. 정해진 경로에 변수를 넣고, FastAPI가 해당 위치의 값을 추출해서 사용합니다. 정해진 경로는 '{ }' 를 통해 설정해 줍니다.코드 예시)from fastapi import FastAPIapp = FastAPI()@app.get("/users/{user_id}")async def read_user(user_id: int): return {"user_id":user_id}위의 user_id 처럼 형식을 지정해서 사용할 수 있습니다...

Python/FastAPI 2024.09.06

[FastAPI] 설치 및 장점

오늘은 FastAPI를 설치하고 기초 개념을 설명하는 시간을 가져보겠습니다. 저는 아나콘다의 가상환경을 이용해서 설치했고 파이썬은 3.10 버전을 사용했습니다.FastAPI 설치$ pip install fastapi$ pip install uvicornfastapi 를 설치하고 추가로 서버 역할을 해주는 uvicorn 을 함께 설치해 줍니다. 추후 main.py 파일을 작성하고 나서 uvicorn 을 통해 실행하는 코드는 다음과 같습니다. 그러면 밑에 나오는 코드를 통해서 서버에 접속할 수 있습니다.$ uvicorn main:app --reloadINFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)INFO: Starte..

Python/FastAPI 2024.09.05

[FastAPI] 시작하기 + HTTP 메소드

우선 제가 프로젝트를 진행하며 처음으로 백엔드 공부를 했는데, 공식 문서를 참고하며 공부한 내용을 소개하려고 합니다. 가장 먼저 설명하는 내용은 FastAPI에서 사용하는 주요 메소드에 관한 내용입니다.FastAPI에 대해기본 형식main.pyfrom fastapi import FastAPIapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"}위 코드는 가장 기본적인 FastAPI 코드 형식입니다. 라이브러리를 Import 하고 기본 주소에서 출력하는 메시지를 나타냅니다. 위 코드를 main.py에 저장하고 실행하는 방법은 아래 코드를 입력해 주면 됩니다.uvicorn main:app --reload HTTP 메..

Python/FastAPI 2024.09.04