프로그래밍에서 '구조적 타이핑(Structural Typing)'과 '명목적 타이핑(Nominal Typing)'의 차이점은?

어려움 freeCodeCamp
보기 및 정답
A 구조적 타이핑은 타입의 내부 구조가 같으면 호환되고, 명목적 타이핑은 명시적 선언(이름)이 같아야 호환된다
B 구조적 타이핑은 컴파일 언어에서만 사용되며, 인터프리터 언어에서는 명목적 타이핑만 가능하다
C 구조적 타이핑은 컴파일 시점에 타입을 결정하는 정적 타이핑이고, 명목적 타이핑은 런타임에 타입을 결정하는 동적 타이핑이다
D 구조적 타이핑과 명목적 타이핑은 용어만 다를 뿐 타입 호환성 검사 방식에 실질적인 차이가 없다

해설

구조적 타이핑(TypeScript, Go)은 두 타입이 같은 속성과 메서드를 가지면 별도의 상속 없이 호환됩니다. 명목적 타이핑(Java, C#)은 클래스 이름이나 명시적 관계(extends)가 같아야 호환됩니다. 덕 타이핑(Python)은 구조적 타이핑의 동적 버전으로 볼 수 있습니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기
START THE LOOP · CHOOSE

시장과 사람의 답을 봤다면,
다음 결과물의 구조를 고릅니다.

한 번의 결과에 기대지 않고 다시 만들 수 있도록, 문제 발견부터 제작·배포·수익화까지 이어지는 전체 흐름을 익혀보세요.

TTJ CLASS에서 다음 구조 고르기
처리 중...