[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트

2025. 3. 13. 12:28·Python

📌 Python 함수 심화 – Chapter 6-12. 타입 어노테이션과 힌트


✅ 1. 파이썬의 동적 프로그래밍

  • 파이썬은 동적 프로그래밍 언어로, 인터프리터가 실행 시 타입을 추론.
  • 변수의 타입을 자유롭게 변경할 수 있음.
num = 10
print(type(num))

num = "10"
print(type(num))
  • 출력 결과
<class 'int'>
<class 'str'>
  • 설명: 파이썬은 타입을 고정하지 않기 때문에 값에 따라 타입이 자유롭게 변경됨.

❗ 대규모 프로젝트에서는 이러한 유연성이 버그로 이어질 수 있어, 타입 힌팅을 통해 명시적으로 타입을 지정하는 것이 좋음.


✅ 2. 타입 힌팅 (주석 방식)

def oz(x, y, h):
    # type: (int, int, int) -> int
    return x * y * h

oz(10, 10, 10)
  • 출력 결과
1000
  • 설명: 주석을 통해 타입 정보를 제공했지만, 코드 가독성이 떨어지는 단점이 있음.

✅ 3. 타입 어노테이션 (표준 방식)

  • 타입 어노테이션을 사용하여 코드에 타입 정보를 명시적으로 작성.
def oz(x: int, y: int, h: int) -> int:
    return x * y * h

oz(10, 10, 10)
  • 출력 결과
1000
  • 장점:
    • 코드의 가독성과 정확성이 향상.
    • 코드 자동 완성과 정적 타입 체크가 가능해짐.

⚠️ 주의: 타입 힌팅은 강제성이 없기 때문에, 잘못된 타입을 입력해도 오류는 발생하지 않음.


✅ 4. 변수 타입 어노테이션

my_dog: str = "hunt"
my_dog_age: int = 7
dogs: list[str] = ["닥스훈트", "시바견", "웰시코기", "이탈리안그레이하운드"]
dogs_age: dict[str, int] = {
    "닥스훈트": 7,
    "시바견": 5,
    "웰시코기": 6,
    "이탈리안그레이하운드": 3,
}

print(my_dog)
  • 출력 결과
hunt
  • 설명: 변수 선언 시 타입을 명시하여 가독성을 향상시킬 수 있음.

✅ 5. 함수 타입 어노테이션

  • 함수의 인자 타입과 반환 타입을 명시하여 코드의 명확성을 강화.
def hunt(name: str) -> str:
    return name[0]

def hunt_info(name: str, age: int = 7) -> str:
    return name + str(age)

def hunt_happy_time(name: str) -> None:
    print("간식줄게 " + name)

def hunt_bow(message: str, time: int = 10) -> list[str]:
    return [message] * time
  • 설명:
    • -> str: 반환 타입이 문자열.
    • -> None: 반환값이 없음.
    • -> list[str]: 문자열을 원소로 가지는 리스트 반환.

✅ Tip: 팀 프로젝트에서 타입 힌트를 적용할 때는, 팀원과의 사전 합의가 중요.


✅ 이해도 체크리스트

  1. 타입 힌팅과 타입 어노테이션의 차이점은?
    • 타입 힌팅: 주석을 통해 타입 정보를 제공.
    • 타입 어노테이션: 변수나 함수 정의 시 타입 정보를 명시적으로 제공.
  2. 변수에 타입 어노테이션을 사용하는 방법은?
x: int = 10
y: str = "Python"
  1. 함수에 타입 어노테이션을 적용하는 방법은?
def add(x: int, y: int) -> int:
    return x + y
  1. 타입 힌팅을 사용하면 얻을 수 있는 이점은?
    • 코드의 가독성과 명확성이 향상됨.
    • 정적 타입 체크와 자동 완성 기능을 제공해 코드 오류를 사전 예방할 수 있음.

이 정리된 내용을 통해 타입 어노테이션과 힌트의 개념을 확실히 익히고, 실무에서도 깔끔하고 명확한 코드를 작성해 보세요! 🚀

'Python' 카테고리의 다른 글

📌 Python 학습 과정 – 이해와 반복의 중요성  (0) 2025.03.13
✅ 개발자로서 실력을 향상시키는 방법 (함수와 내장 함수 활용)  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-9. 튜플  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • 📌 Python 학습 과정 – 이해와 반복의 중요성
  • ✅ 개발자로서 실력을 향상시키는 방법 (함수와 내장 함수 활용)
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787) N
      • Python (32)
      • 프로젝트 (110) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    chatgpterror
    self-growth
    chinanightlife
    smartphonedurability
    youngprofessionals
    newpoliticalparty
    life reflection
    btsjungkook
    college reunions
    remittance
    americaparty
    classaction
    travel ban
    뷔
    hotcoffeecase
    livebroadcast
    titaniumcase
    btscomeback
    americanlaw
    bts
    RM
    trumpmuskclash
    lawsuitculture
    gpterror
    global politics
    btsdischarge
    homebartrend
    btsreunion
    urbantrends
    basalcellcarcinoma
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트
상단으로

티스토리툴바