Web/web dev

파이썬 타입 힌트와 Flask의 URL 타입 힌트 비교

hy30nq 2024. 6. 14. 22:09
728x90

안녕하세요! 오늘은 파이썬의 타입 힌트와 Flask의 URL 타입 힌트에 대해 알아볼게요. 두 가지 모두 코드의 가독성을 높이고 버그를 줄이는 데 도움을 줘요. 그럼 시작해볼까요?

1. 파이썬의 타입 힌트

파이썬에서는 타입 힌트를 사용하여 변수와 함수의 타입을 명시할 수 있어요. 타입 힌트는 코드의 가독성을 높여주고, IDE나 코드 분석 도구에서 타입 체크를 도와줍니다. 예를 들어, 아래와 같이 함수의 인자와 반환값의 타입을 명시할 수 있어요.

def greet(name: str) -> str:
    return f"Hello, {name}"

여기서 name 변수는 문자열 타입이고, 함수의 반환값도 문자열로 명시했어요. 하지만 타입 힌트는 코드의 실행 시 타입을 강제하지 않아요. 즉, 타입이 맞지 않아도 에러가 발생하지 않습니다. 아래 예시를 볼까요?

print(greet(123))  # 타입 힌트를 무시하고 숫자를 전달해도 에러가 발생하지 않아요.

2. Flask의 URL 타입 힌트

Flask는 파이썬으로 웹 애플리케이션을 만들 때 사용하는 프레임워크입니다. Flask에서는 URL 경로에 타입 힌트를 적용하여 타입을 강제할 수 있어요. 예를 들어, 아래 코드를 보세요.

from flask import Flask

app = Flask(__name__)

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

위 코드에서는 URL 경로에 int 타입 힌트를 적용했어요. 이 경우 num1num2는 정수 타입이어야만 합니다. 만약 정수가 아닌 값을 입력하면, Flask는 자동으로 404 에러를 발생시켜요. 예를 들어, /add/1/2는 정상 동작하지만, /add/1.5/2/add/one/two는 404 에러를 발생시킵니다.

3. Flask에서 사용 가능한 타입들

Flask에서는 다양한 타입 힌트를 사용할 수 있어요. 아래는 Flask에서 자주 사용하는 타입들의 목록입니다.

  • string (기본값): 문자열 타입
  • int: 정수 타입
  • float: 부동 소수점 숫자 타입
  • uuid: UUID 타입
  • path: 슬래시(/)를 포함하는 문자열

예시를 통해 더 자세히 알아볼까요?

@app.route('/user/<string:username>')
def user(username):
    return f"Hello, {username}"

@app.route('/score/<float:score>')
def score(score):
    return f"Your score is {score}"

@app.route('/file/<path:filepath>')
def file(filepath):
    return f"File path is {filepath}"

위 예시에서는 다양한 타입 힌트를 사용한 경로들을 정의했어요. 이렇게 타입 힌트를 사용하면 URL 경로에서 특정 타입의 값을 필수로 받을 수 있어, 코드의 안전성을 높일 수 있답니다.

결론

파이썬의 타입 힌트는 코드의 가독성을 높여주고, Flask의 URL 타입 힌트는 URL 경로에서 타입을 강제할 수 있어요. 두 가지 모두 코드의 안전성을 높이는 데 큰 도움을 줍니다. 오늘은 여기까지! 다음에 또 만나요😊

728x90