제네릭 기초(T, 타입 추론)
제네릭 타입 매개변수 T 를 배우고, 이것이 컴파일 시 안전성을 제공하는 이유와 다이아몬드 연산자가 타입을 추론하는 방식을 이해합니다.
제네릭 기초(T, 타입 추론)은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
제네릭을 사용하는 이유
제네릭은 컨테이너와 유틸리티에 형식을 추가하여 컴파일러가 오류를 방지하도록 합니다. 이점은 다음과 같습니다.
- 형식 안전성 — 서로 다른 형식이 실수로 섞이지 않습니다.
- 형 변환 없음 — 코드가 더 깔끔해집니다.
- 재사용 가능 — 하나의 클래스가 여러 형식에 작동합니다.
T란 무엇인가요?
T(형식 매개변수)는 실제 형식을 나타내는 자리 표시자입니다. Box<String>이라고 작성하면 컴파일러는 해당 사용에서 T를 String으로 취급합니다.
코드: Box<T>
Box<T>에서 T에 String을 지정하면 String만 허용됩니다. 잘못된 형식은 컴파일 시점 오류가 되므로 실행 시 예기치 않은 문제가 발생하지 않습니다.
public class Main {
// A tiny generic container
static class Box<T> {
private T value;
void set(T v) { value = v; }
T get() { return value; }
}
public static void main(String[] args) {
Box<String> bs = new Box<String>(); // T becomes String
bs.set("hello");
System.out.println(bs.get()); // no cast needed
// Box<Integer> bi = new Box<Integer>();
// bi.set("oops"); // would not compile: String is not Integer
}
}
코드: 다이아몬드 형식 추론
<>(다이아몬드 표기)를 사용하면 컴파일러가 오른쪽의 형식을 추론합니다. 왼쪽 형식과 호환되지 않으면 컴파일되지 않으므로 안전성이 높아집니다.
public class Main {
static class Box<T> {
private T value;
Box() {}
Box(T v) { value = v; }
T get() { return value; }
}
public static void main(String[] args) {
// Type on the left, diamond on the right — compiler infers T
Box<Integer> a = new Box<>(123);
Box<String> b = new Box<>("hi");
System.out.println(a.get() + 1); // 124
System.out.println(b.get().toUpperCase());
}
}
제한된 형식 매개변수
형식 경계: 일부 제네릭 메서드는 비교 가능한 형식과 같은 기능을 요구합니다. 예를 들어 <T extends Comparable<T>>는 T가 비교 가능해야 한다는 뜻입니다.
코드: 제한된 제네릭 메서드
제네릭 메서드: <T extends Comparable<T>>. Integer와 String은 모두 비교 가능 인터페이스를 구현하므로 호환됩니다.
public class Main {
// Generic method: works for any Comparable type
static <T extends Comparable<T>> T min(T a, T b) {
return (a.compareTo(b) <= 0) ? a : b;
}
public static void main(String[] args) {
System.out.println(min(3, 7)); // Integer
System.out.println(min("apple", "banana")); // String (lexicographic)
}
}
제네릭 기초 확인
빠른 확인: Box<String>과 같은 제네릭을 사용할 때 가장 큰 이점은 무엇인가요?
복습
복습: T는 자리 표시자이며, 다이아몬드 표기를 사용하면 형식이 추론됩니다. 형식 경계(extends Comparable)를 사용하면 제네릭 메서드를 안전하고 강력하게 만들 수 있습니다.
자주 묻는 질문
“제네릭 기초(T, 타입 추론)” 강의는 무료인가요?
네 — “제네릭 기초(T, 타입 추론)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“제네릭 기초(T, 타입 추론)”에서 뭘 배우나요?
제네릭 타입 매개변수 T 를 배우고, 이것이 컴파일 시 안전성을 제공하는 이유와 다이아몬드 연산자가 타입을 추론하는 방식을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Java Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.
“제네릭 기초(T, 타입 추론)” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 실전 인터페이스
- 제네릭 기초(T, 타입 추론)
- 제네릭 메서드·클래스