프로그래밍에서 '공변성(Covariance)'과 '반공변성(Contravariance)'이란?

어려움 freeCodeCamp
보기 및 정답
A 공변성은 하위 타입이 상위 타입 위치에 사용될 수 있고, 반공변성은 상위 타입이 하위 타입 위치에 사용될 수 있는 타입 관계이다
B 공변성은 일반적으로 두 변수의 값이 함께 증가하는 통계적 상관관계를 의미하고, 반공변성은 반대 방향으로 변하는 것이라고 할 수 있다
C 공변성은 양수 범위의 값만 허용하는 타입 제약이고, 반공변성은 음수 범위의 값만 허용하는 타입 제약이다
D 공변성과 반공변성은 동일한 의미를 가지며, 제네릭 타입 파라미터의 상한과 하한 경계를 동시에 표현한다

해설

공변성(Covariance)은 Cat이 Animal의 하위 타입이면 List<Cat>도 List<Animal>의 하위 타입이 되는 관계입니다. 반공변성(Contravariance)은 반대로, Consumer<Animal>이 Consumer<Cat>의 하위 타입이 됩니다. 이는 타입 안전한 제네릭 사용에 중요한 개념입니다.

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

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

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

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

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

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