CoWithMe

라우팅 플라스크와 FastAPI 비교 그리고 학습 프레임과 실행 프레임의 차이

이영훈닷컴 2024. 7. 2. 10:58
728x90

개발자로서 학습 프레임을 가지면, 빠르게 변화하는 기술 환경에 더 잘 적응하고 지속적으로 성장할 수 있습니다. 당장의 성과보다는 배움의 과정을 즐기며, 모든 경험을 통해 더 나은 개발자로 성장하는 것이 중요합니다.

 

프레임의 개념 : 상황을 바라보는 관점이나 해석 방식

 

두 가지 주요 프레임: 

  • 실행 프레임
    • 목표: 빠른 성과와 결과 달성
    • 특징: 현재 업무에서 좋은 성과 내기에 집중, 인정받기와 승진에 관심, 실패를 학습 기회로 보지 않음
  • 학습 프레임
    • 목표: 지속적인 학습과 성장
    • 특징: 모든 상황을 배움의 기회로 봄, 성장과 개선에 초점, 실패도 학습 경험으로 여김

개발자에게 적용하기

  • 실행 프레임 예:
    • 아직 1년차라 코드 리뷰할 자격이 없어요.
    • 이 기술 스택만 빨리 익혀서 프로젝트 끝내야겠어.
  • 학습 프레임 예:
    • 선배님들의 코드를 보며 많이 배우고 있어요.
    • 새로운 기술을 적용해보며 더 나은 방법을 찾고 있습니다.

학습 프레임의 이점

  • 지속적인 성장과 개선
  • 더 넓은 시야와 창의적인 문제 해결
  • 장기적으로 더 큰 성과와 만족감

실천 방법

  • 모든 과제를 학습 기회로 보기
  • 실패를 두려워하지 않고 새로운 시도하기
  • 동료들과 지식 공유하고 함께 성장하기

라우팅 플라스크와 FastAPI 비교

 

플라스크 라우팅:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "안녕하세요!"

@app.route("/users/<username>")
def show_user(username):
    return f"사용자: {username}"
  • @app.route("/") 데코레이터는 루트 URL "/"에 대한 요청을 처리합니다.
  • 함수 이름은 자유롭게 지을 수 있습니다.
  • 동적 라우팅을 위해 <변수명>을 사용할 수 있습니다.
    • 예: @app.route("/users/")

FastAPI 라우팅:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "안녕하세요!"}

@app.get("/users/{username}")
def read_user(username: str):
    return {"username": username}
  • FastAPI는 HTTP 메서드별로 데코레이터를 제공합니다.
    • 예: @app.get(), @app.post()
  • 경로 매개변수는 중괄호 {}로 정의합니다.
  • 함수 매개변수에 타입 힌트를 사용할 수 있어 자동으로 타입 검증이 이루어집니다.

주요 차이점:

  1. 플라스크는 모든 HTTP 메서드에 @app.route를 사용하지만, FastAPI는 메서드별 데코레이터를 사용합니다.
  2. FastAPI는 타입 힌트를 통한 자동 문서화와 타입 검증을 제공합니다.
  3. FastAPI는 기본적으로 JSON 응답을 반환하며, 플라스크는 문자열을 반환합니다.

코딩하다가 고기가 먹고 싶을 때는 양고기

 

728x90