2026/02/20 2

Java 와일드카드 완전 정복 — <? extends T>, <? super T> 그리고 PECS 원칙

Java 제네릭 와일드카드의 핵심인 extends/super 차이와 PECS 원칙을 실무 예제로 한 번에 정리합니다. 제네릭을 쓰다 보면 List 자리에 List를 넣고 싶은데 컴파일 에러가 나서 당황하실 때가 있어요. 반대로 “읽기만 할 건데 왜 타입이 이렇게 까다롭지?” 같은 생각도 들고요. 이럴 때 문제를 풀어주는 도구가 바로 와일드카드(?)입니다.핵심 개념 — Java 와일드카드와 PECS 원칙이 중요한 이유와일드카드는 “정확한 타입을 지금은 모르지만, 어떤 범위인지는 안다”를 타입 시스템에 표현하는 문법입니다. 핵심은 두 가지예요.: T의 하위 타입 중 하나 (Upper bounded wildcard): T의 상위 타입 중 하나 (Lower bounded wildcard)여기서 중요한 포인트는 ..

JAVA 2026.02.20

Java 제네릭 기초 — 타입 안전성의 시작

Java 제네릭의 필요성, 기본 문법, 그리고 타입 소거(Type Erasure)가 의미하는 한계와 설계 포인트를 실무 관점에서 정리합니다. List에 뭔가를 담아두고 꺼냈는데, 런타임에 ClassCastException이 터진 경험 있으실 거예요. 혹은 “이 리스트엔 User만 들어간다”는 규칙을 팀원끼리 말로만 합의해 두고, 어느 날 누군가 다른 타입을 넣어 장애가 난 적도 있습니다. 제네릭은 이런 문제를 “컴파일 시점”으로 끌어와서, 실수를 빨리 발견하게 해주는 장치입니다.핵심 개념: Java 제네릭이 중요한 이유와 타입 소거(Type Erasure)제네릭이 필요한 이유: 타입 안정성과 의도의 문서화제네릭의 핵심 가치는 두 가지입니다.타입 안전성(Type Safety)제네릭이 없던 시절(또는 raw..

JAVA 2026.02.20