제네릭 클래스와 메서드
직접 만든 자료형에 매개변수를 적용합니다
제네릭 클래스와 메서드은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
나만의 제네릭
List 같은 내장 타입은 제네릭이며, 직접 제네릭을 작성할 수도 있습니다. 타입 매개변수를 사용하면 클래스가 호출자가 선택한 어떤 타입에도 맞게 동작할 수 있습니다. 🧩
타입 매개변수 이름 지정
클래스 이름 뒤의 꺾쇠괄호 안에 타입 매개변수를 추가합니다. 문자 T는 실제 타입을 대신하는 일반적인 자리 표시자입니다.
class Box<T> {
T value;
Box(this.value);
}내부에서 T 사용하기
클래스 내부에서 T는 어떤 타입 이름처럼 동작합니다. 본문 전체에서 필드, 매개변수, 반환 값에 사용할 수 있습니다.
class Box<T> {
T value;
Box(this.value);
T get() => value;
}타입 채우기
객체를 만들 때 실제 타입을 선택합니다. 여기서 T는 int가 되므로 이 Box에는 정수만 저장됩니다.
var b = Box<int>(42);
int n = b.get();Dart에 추론 맡기기
대개 Dart가 인수에서 타입을 읽어 내므로 명시적인 타입을 생략할 수 있습니다. 추론이 String을 확인하고 T를 대신 설정합니다.
var b = Box('hi');여러 타입 매개변수
클래스는 쉼표로 구분한 타입 매개변수를 두 개 이상 받을 수 있습니다. 서로 다른 두 타입을 담는 쌍이 대표적인 예입니다.
class Pair<A, B> {
A first;
B second;
Pair(this.first, this.second);
}제네릭 메서드
제네릭이 아닌 클래스에서도 하나의 메서드만 제네릭으로 만들 수 있습니다. 매개변수 목록 바로 앞에 타입 매개변수를 작성합니다.
T firstOf<T>(List<T> items) => items[0];메서드도 추론합니다
제네릭 메서드는 보통 전달한 인수에서 타입을 추론합니다. 평소처럼 호출하면 나머지는 Dart가 알아서 결정합니다.
var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);타입 안전성 되찾기
메서드가 T를 추적하므로 결과에도 올바른 타입이 유지됩니다. String 목록에 firstOf를 사용하면 형 변환 없이 String을 돌려받습니다.
String x = firstOf(['a', 'b']);재사용 가능, 반복은 없음
하나의 제네릭 정의가 여러 복사-붙여넣기 버전을 대신합니다. 로직을 한 번만 작성하면 int, String, 사용자 지정 타입 모두에 사용할 수 있습니다.
명확한 이름 선택
T, E, K 같은 한 글자 이름이 관례적이지만, 설명적인 이름이 도움이 될 수도 있습니다. 복잡한 코드에서는 간결함보다 명확함이 중요합니다.
빠른 확인
클래스에서 타입 매개변수는 어디에 작성하나요?
복습
직접 만든 클래스와 메서드에 T 같은 타입 매개변수를 추가하는 방법을 배웠습니다. Dart는 대개 추론을 통해 이를 채우므로 코드를 재사용 가능하고 안전하게 유지할 수 있습니다. ✅
자주 묻는 질문
“제네릭 클래스와 메서드” 강의는 무료인가요?
네 — “제네릭 클래스와 메서드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“제네릭 클래스와 메서드”에서 뭘 배우나요?
직접 만든 자료형에 매개변수를 적용합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Dart Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“제네릭 클래스와 메서드” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.