CoWithMe

타입 힌팅 : 플라스크 와 fastAPI 비교 그리고 비전공자와 전공자 비교

이영훈닷컴 2024. 7. 3. 10:28
728x90

타입 힌팅(Type Hinting)은 코드의 가독성과 유지보수성을 높이고, 오류를 줄이는 데 도움을 주는 방법입니다. Python에서의 타입 힌팅은 변수나 함수의 매개변수 및 반환값의 타입을 명시하여 코드의 의도를 명확히 나타내는 것을 의미합니다. Flask와 FastAPI는 타입 힌팅

을 각각 다르게 사용합니다.

 

Flask의 타입 힌팅

Flask에서는 주로 URL 경로에 타입 힌팅을 적용합니다. 경로 변수의 타입을 지정하여 올바른 타입의 값이 전달되지 않을 경우 404 에러를 반환합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/add/<int:num1>/<int:num2>')
def add(num1, num2):
    return str(num1 + num2)

if __name__ == '__main__':
    app.run(debug=True)


위 코드는 /add/1/2와 같이 정수형 값을 URL에 전달하면 두 수를 더한 값을 반환합니다. 하지만 /add/one/two와 같이 잘못된 타입의 값이 전달되면 404 에러가 발생합니다.

 

FastAPI의 타입 힌팅

FastAPI에서는 Python의 기본 타입 힌팅 문법을 사용합니다. 이를 통해 자동 문서 생성, 데이터 검증, 직렬화 등을 처리할 수 있습니다.

 

from fastapi import FastAPI
from typing import Union

app = FastAPI()

@app.get("/add/{num1}/{num2}")
def add(num1: int, num2: int) -> int:
    return num1 + num2

if __name__ == '__main__':
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)


위 코드는 /add/1/2와 같이 정수형 값을 URL에 전달하면 두 수를 더한 값을 반환합니다. FastAPI는 경로 변수의 타입을 자동으로 검증하

고, 잘못된 타입의 값이 전달되면 자동으로 422 Unprocessable Entity 에러를 반환합니다.

 

팁 :

데코레이터 문법 : 플라스크 @app.route를 사용하여 url과 함수를 매핑 하지만 fastapi는 http메서드를 명시하는 @app.get @app.post 등 사용

타입힌팅 : fastAPI는 파이썬 타입 힌팅을 기반으로 데이터 검증을 적용 반면 플라스크는 url경로 변수로 적용 

 

요약

Flask: URL 경로에 타입 힌팅을 적용하여 경로 변수의 타입을 제한합니다. 잘못된 타입이 전달되면 404 에러를 반환합니다.
FastAPI: Python의 기본 타입 힌팅 문법을 사용하여 자동 문서 생성, 데이터 검증, 직렬화 등을 처리합니다. 잘못된 타입이 전달되면 422 에러를 반환합니다.

 

파이썬 공부 하다 보니 꼭 구분이 필요할까?

전공자와 비전공자 유튜브나 광고 보면 비전공자 출신 이 문장이 보인다.

 

나도 비전공자 이지만 공부 하다 보니 내가 어떤 상황이든 개발자이다.

출발 시점이 일찍 했냐 안했냐 그리고 얼만 만큼 자기가 노력해서 일찍 출발했던 사람을 따라잡냐 문제일 뿐 왜 구분을 지었을까?

 

개발자 세계에서 비전공자 홍보 수단을 언제부터 시작했는지 잘 모르겠지만 공부하다보니 구분 짓는 잘못된 느낌이 든다.

 

조금 더 이해 하기 쉽게 설명하자면

군인들끼리는 눈에는 군복에 칼각 잘 잡았다 와~~ 하지만 일반인 눈에는 군인

 

나의 생각

난 홍보 할때 구분할 필요가 있을까?라는 생각을 한다.

어차피 일찍 시작 하든 늦게 시작 하든 출발점은 다르지만 어차피 자기 자신이 포기하지 않고 개발자의 길을 간다고 마음먹고 생각한다면 개발자이다.

 

내일배움 카드든 어디서 배우든 어디서 뭘 배우든 개발자는 무관하다고 본다.

회사는 비즈니스와 그에 맞는 안정성을 더 많이 보기 때문에 출신 따지는거 보다 회사에 맞는 개발자 인재를 보는게 맞다고 생각한다.

 

강남 교보문고 책 내용보고난후 점심에 냉모밀 연어초밥 셀러드 집에 혼자 들어가서 배부르게 먹고 온 사진

728x90