NOTICE!! 현재 블로그로 게시글 이전 작업 진행중입니다.

1 minute read

mypy

이번에는 데이터 타입의 일관성을 검사하기 위한 “mypy”라는 정적 검사도구 툴에 대해서 알아보고자 합니다.

먼저 아래의 함수를 실행해보겠습니다.

# test.py
def my_function(
	firstNum: int, 
	secondNum: int
): -> int
    """타입검사 체크를 위한 예시 함수"""
    return firstNum * secondNum


print(my_function("안녕", 3))
$ python test.py
>>> 안녕안녕안녕

우리는 위의 my_function함수에서 타입을 int로 어노테이션을 사용했지만, 실제로 파이썬 코드를 실행할때는 아무런 효과를 기대하기 어렵다는것을 알 수 있습니다.

사실 어노테이션은 말그대로 힌트!!, 즉 개발자들에게 “이 함수는 어떤것을 입력받아서 어떤것을 출력하는 함수이구나!” 라는 것을 이해를 돕기 위한 것입니다.

하지만, 파이썬의 mypy 를 사용한다면, 이를 해결할 수 있습니다.

mypy 설치 -> pip install mypy

위에서 만들었던 똑같은 함수를 mypy로 파일을 실행해 보겠습니다.

$ mypy test.py

>>>
test.py:6: error: Argument 1 to "my_function" has incompatible type "str"; expected "int"  
[arg-type]
Found 1 error in 1 file (checked 1 source file)

이렇게 mypy 는 바로 잘못된 오류를 출력시켜줍니다.

우리가 어노테이션을 사용할때 얻을 수 있는 장점 중 하나인 타입체크 툴 “mypy”를 활용하는것은 빽앤드에서는 사실 무조건 하는 작업중에 하나라고 합니다.

데이터 분석가로서 이를 사용할일이 많을지는 잘 모르겠지만, 현재는 분석가 포지션에서 시장분석을 위한 개발로직을 많이 짜고 있기도하고, 데이터 파이프라인의 중요성을 알게된 이후로 데이터 엔지니어링 툴도 다루고 있다보니 도움이 된다고, 생각합니다.

혼자서라도 코드리뷰 해야하는 우리 주니어들 다같이 혼자 리뷰할때라도 어노테이션과 타입체크를 철저하게 해서 시간을 줄여봅시다!!

화이팅~

Leave a comment