ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 타이핑, 타입 힌트 (typing / type hint)
    programming/Python 2022. 11. 6. 22:06

     

    최근 회사 프로젝트에서 AI모델 개발, 웹 개발, 배포까지 혼자서 해야 했던 프로젝트가 있습니다.

    집에 가서도 모델을 튜닝하고 백엔드 로직을 작성하고 DB도 만들고... 프론트도 하고.. 개발 중에 여기저기서 발생하는 문제들을 해결하다가 보면 어느 순간 제가 작성한 코드를 보면 많은 변수들의 타입을 알지 못해서 맨탈이 나갈 때가 있습니다. 프로그램의 복잡도가 높아지고 거대해질수록 이러한 문제는 빈번하게 발생합니다.

     

    파이썬은 동적타입언어(dynamically typed language)여서 변수에 타입을 알아서 동적으로 지정해주기 때문에 빠르게 개발을 좋지만 프로그램이 점점 거대해질수록 타입을 알지 못하는 변수들 때문에 생상성이 급격하게 하락할 수 있습니다. 이러한 단점을 보안하기 위해 Python에서는 3.5 버전부터 타입 어노테이션(type annotation) 또는 타입 힌트(type hint)라는 기능을 지원합니다.

    이 변수의 type은 무엇인지, 또는 이 함수의 인수는 어떤 type이고, 어떤 type의 결과를 return하는지 명시해주는 것입니다.

    타입 힌트(type hint)가 나오기 전에는 주석이나 독스트링 이용해 타입을 표시했지만 정해진 표준이 없었고 일반 주석과 구분이 어려웠었습니다. 

     

    반면에 타입 힌트에서는 타입 어노테이션이라는 새로운 방법으로 파이썬 코드의 타입 표시를 표준화합니다. 코드 편집기(IDE)나 린터(linter)에서도 해석할 수 있도록 고안되었으며 코드의 자동완성이나 정적 타입 체킹에서도 사용됩니다. 

    타입 힌트(type hint)을 사용할 때 주의할 점은 타입 힌트(type hint) 부정확하다고 해서 경고나 오류가 발생하지 않는다는 점입니다.

    간단하게 타입 힌트를 어떻게 사용하는지 보겠습니다. 

     

     

    변수 타입 어노테이션 

    먼저 매우 간단한 변수에 타입 힌트를 추가하는 방법에 대해서 알아보겠습니다. 변수 이름 뒤에 콜론(:)을 붙이고 타입을 명시해주면 됩니다.

     

     

    함수 타입 어노테이션 

     콜론(:)과 화살표(->)를 사용할 때는 파이썬의 관행을 따라 콜론은 뒤에만 한 칸을 뛰우고, 화살표는 앞뒤로 한 칸을 띄웁니다. 

     

     

    Typing 모듈

    내장 타입을 이용해서 복잡한 타입 힌트를 추가할 때는 Typing 모듈을 사용할 수 있습니다. 

    typing 모듈에 대한 자세한 설명은 추후에 포스팅을 하도록 하겠습니다. 조금더 자세한 내용은 파이썬 공식 레퍼런스를 참고 바랍니다.

     

     

    오늘은 파이썬에서 타입 힌트(type hint)의 개념과 어떻게 추가하는지 알아보았습니다.

    타입 힌트는 비강제적이고 선택적으로 적용할 수 있기 때문에 모든 프로젝트에서 부담없이 점진적으로 적용할 수 있습니다.

    협업하는 개발자들을 위해 개발이 끝난 프로젝트의 코드를 볼 미래의 나 자신을 위해서 타입 힌트(type hint)를 사용하는 것을 고려해보셨으면 좋겠습니다.

     

Designed by Tistory.