Data Engineer
파이썬 데일리코딩 - 덕 타이핑
jssvs
2024. 11. 17. 18:11
반응형
오늘 다뤄볼 주제는 덕 타이핑입니다.
덕 타이핑은 프로그래밍 언어에서 클래스의 행동에 중점을 둔 컨셉중 하나에요.
클래스의 상속, 유형보다 객체의 동작 즉 행동을 강조해서 유연성을 높이고 캐스팅의 필요성을 줄여주는 프로그래밍 스타일입니다.
아래 코드로 예를 들어 보겠습니다.
class Duck:
def sound(self):
print("Quack!!!")
class Person:
def sound(self):
print("I'm Quaking like a duck ! ")
def make_it_sound(obj):
obj.sound()
만약 Dog, Cat 여러 클래스가 추가 개발되야 된다고 해도, make it sound 함수로 주요 로직을 수행하면 되기 때문에, 유사한 여러 객체를 처리할 때 유용합니다.
저의 경우에는 데이터를 수집하는 ETL 프로그램에서 덕타이핑을 유용하게 쓰고 있습니다. RestAPI 로 수집하거나, DB 로부터 수집하거나, 파일로부터 수집하거나 “수집”이라는 행동은 공통된 작업이기 때문입니다.
그러나 덕 타이핑은 종종 런타임 에러를 낼 수 있는 위험도 있습니다. 예를들어 메소드의 이름이이나 로직이 변경될 때 AttributeError 가 발생할 겁니다.
“오리처럼 생겼고, 오리처럼 헤엄치고, 오리처럼 꽥꽥 거린다면 아마도 그것은 오리일 것입니다.”
덕 타이핑이란 이름은 위 속담에서 유래가 되었다고 합니다.
끝.
반응형