JavaScript

[javaScript] Duck typing 이란 ?

유병각 2022. 7. 4. 17:03

계기: 자바스크립트 클래스의 implements 를 이해하기 위해서 우선, duck typing 이 뭔지 알아야 했기 때문에 우선, duck typing 을 공부함.

 

Duck typing 은 객체의 속성이나 메서드를 기준으로 객체의 정체를 선정하는 방법이다.

이름에 그 힌트가 있다.

뒤뚱뒤뚱 걷고, 꽥꽥거리는 무언가는 오리이다.

라는 명제를 보면, 오리의 속성들로 오리라는 것의 정체를 정한다.

 

이처럼 duck typing 은 객체의 매서드나 속성을 바탕으로 객체의 정체를 정하는 방법이다.

 

예를들어 무엇이든 drive 시킬 수 있는 매직 완드가 있다고 하자.

스포츠카에 매직 완드를 휘두르면 스포츠카는 drive 하고,

골프채에 매직 완드를 휘두르면 골프채는 drive 한다.

하지만, 종이컵에 매직 완드를 휘두르면 에러가 난다.

즉, 스포츠카와 골프채는 drive 가 가능한 특정 객체이며, 종이컵은 Drive 가 안돼므로, 그 특정 객체가 되지 못한다.

 

이런식으로 객체가 가진 속성, 매서드를 이용해 객체의 정체를 파악하는 것을 duck typing 이라고 한다.