0Pricing
Dart Academy · 강의

제네릭 클래스와 메서드

직접 만든 자료형에 매개변수를 적용합니다

제네릭 클래스와 메서드은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 제네릭이 dynamic보다 나은 이유
  2. 제네릭 클래스와 메서드
  3. extends를 사용한 제한된 자료형 매개변수
  4. 실전 제네릭 컬렉션
← Dart Academy(으)로 돌아가기