기본 콘텐츠로 건너뛰기

라벨이 Type Hinting인 게시물 표시

Python 타입 힌팅과 mypy로 안전한 코드 작성하기

파이썬으로 꽤 큰 프로젝트를 진행하다 보니, 코드가 산으로 가는 경험을 여러 번 했어요. 특히 팀으로 작업할 때는요. 변수 타입을 일일이 확인하지 않아도 되는 파이썬의 동적 타이핑이 오히려 독이 되는 순간이었죠. 그래서 제가 찾은 해결책이 바로 '타입 힌팅'과 'mypy'입니다. 이 둘을 활용하면 훨씬 안전하고 효율적인 파이썬 코딩이 가능해져요! 한 번 같이 살펴볼까요? 타입 힌팅? mypy? 뭐가 뭔가요? 쉽게 말해 타입 힌팅은 파이썬 코드에 변수나 함수의 타입을 명시적으로 적어주는 거예요. 예를 들어 name: str = "철수" 라고 하면 name 변수는 문자열 타입이라는 걸 미리 알려주는 거죠. : 기호 뒤에 타입을 적어주면 됩니다. int, float, str, bool 같은 기본 타입은 물론이고, list, dict, tuple도 당연히 가능해요. 함수의 매개변수와 반환값에도 타입을 지정할 수 있는데, 이걸 타입 어노테이션이라고 합니다. def greet(name: str) -> str: 이렇게요. 함수 greet 는 문자열을 입력받아 문자열을 반환한다는 뜻이죠. 그럼 mypy는 뭘까요? mypy는 이렇게 타입 힌팅을 해놓은 코드를 검사하는 도구입니다. 코드를 실행하기 전에 미리 타입 오류를 찾아주는 거죠. "어? 여기서 int 타입을 기대했는데 str 타입이 들어왔네?" 이런 식으로요. 마치 코드의 문법 검사기 같은 역할이라고 생각하면 돼요. mypy your_script.py 명령어로 간단하게 실행할 수 있습니다. 저는 처음에 이걸 몰라서 엄청 헤맸는데, 알고 나니 정말 신세계였어요. 실제로 어떻게 쓰는 거예요? 제가 예전에 만들었던 코드를 조금 수정해서 보여드릴게요. 두 점 사이의 거리를 계산하는 함수와, 유저 정보를 가져오는 함수, 그리고 데이터 리스트의 합을 계산하는 함수예요. fro...