파이썬 타입 힌트와 Flask의 URL 타입 힌트 비교
안녕하세요! 오늘은 파이썬의 타입 힌트와 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
타입 힌트를 적용했어요. 이 경우 num1
과 num2
는 정수 타입이어야만 합니다. 만약 정수가 아닌 값을 입력하면, 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 경로에서 타입을 강제할 수 있어요. 두 가지 모두 코드의 안전성을 높이는 데 큰 도움을 줍니다. 오늘은 여기까지! 다음에 또 만나요😊