🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

타입힌트 실무에서 자주쓰이나요?

21.11.17 19:54 작성 조회수 302

2

제가 아직 실무코드를 많이 못봐서그런데

장고나 flask는 보통 타입힌트가 없는데,

fastapi는 타입힌트를 적극적으로 쓰는 것같더라구요.

장고나 flask에서도 타입힌트 자주 쓰이나요?

답변 1

답변을 작성해보세요.

1

안녕하세요 딴라란따라란님 :)

타이핑을 자연스럽고 단단하게 사용하려면 해당 라이브러리나 프레임워크의 코드도 타이핑에 되어 있어야 합니다. (최근에 나온 오픈 소스들은 타이핑이 많이 되어 있습니다.) 하지만 django 코드는 타이핑이 안되어 있어 django에서 제공하는 함수나 클래스를 사용할때 타이핑 하는 것은 어렵습니다. 아래는 django 코드 중 일부입니다.

https://github.com/django/django/blob/main/django/core/servers/basehttp.py

django에서 타이핑을 할 수 있도록 도와주는 라이브러리가 있습니다. (아래 링크를 확인해주세요)

https://github.com/typeddjango/django-stubs

django와는 달리 fastapi 코드는 타이핑이 잘되어 있습니다. 아래는 fastapi 코드 중 일부입니다.

https://github.com/tiangolo/fastapi/blob/master/fastapi/encoders.py

flask 코드 또한 타이핑이 안되어 있습니다. 파이썬이 타이핑 및 타입힌트 문법을 도입한지가 얼마되지 않아서 적용이 안되어 있는 것입니다. fastapi는 최근에 개발된 프레임워크이다 보니 타이핑을 지원합니다.

사실 개인적으로 django 프레임워크는 철학상 타이핑을 하지 않는 것이 자연스럽다고 생각합니다. (물론 함수 단위에서는 타이핑을 하는 것이 좋아 보입니다.)

[django의 철학]

Django makes it easier to build better web apps more quickly and with less code.

 

타이핑을 하는 이유는 유지보수의 편의와 협업의 소통 비용 감소, 테스팅 비용 감소, 버그 감소 등 여러 장점이 있습니다.

따라서 flask와 django에서는 함수 단위로는 타이핑을 하는 것을 권장드립니다. 예를 들어 django의 경우 views.py 안의 뷰 함수(또는 뷰 클래스)에서 모델을 사용하는 것을 제외하고는 순수 데이터에 대해 타이핑을 할 수 있습니다. 이 경우 테스팅 할 때에도 편합니다. 즉, 할 수 있으면 최대한 하는 것이 좋다라는 것을 말하고 싶습니다.

타입힌트 및 타이핑은 파이썬이 제공해주는 좋은 도구라고 생각하시면 좋을 것 같습니다.

 

네 친절한 답변 감사합니다!

채널톡 아이콘