Dart Academy · 강의

실전 제네릭 컬렉션

List, Map, 사용자 지정 컨테이너에 자료형을 지정합니다

레슨 4/413개 단계

실전 제네릭 컬렉션은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

컬렉션은 제네릭입니다

Dart의 일상적인 컬렉션은 모두 제네릭입니다. List, Set, Map은 각각 타입 매개변수를 받아 담을 내용을 고정합니다. 📦

List에 타입 지정

List는 요소에 사용할 타입 매개변수 하나를 받습니다. List of String이라고 선언하면 모든 항목이 String이어야 합니다.

List<String> names = ['Ada', 'Linus'];

Set에 타입 지정

Set도 같은 방식으로 동작하며 요소의 중복을 허용하지 않습니다. int를 담는 Set에는 중복 없는 정수가 저장됩니다.

Set<int> ids = {1, 2, 2, 3};

Map에 타입 지정

Map은 두 개의 타입 매개변수를 받습니다. 하나는 키용이고 다른 하나는 값용입니다. 키 타입을 먼저 작성하므로 순서가 중요합니다.

Map<String, int> ages = {'Ada': 36};

리터럴에서 추론하기

리터럴을 작성하면 Dart는 내용에서 타입을 추론하는 경우가 많습니다. 숫자 목록은 자동으로 int 타입의 List가 됩니다.

var scores = [90, 85, 100];

빈 리터럴에는 타입 명시

빈 리터럴에는 추론할 내용이 없으므로 직접 타입을 추가해야 합니다. 그렇지 않으면 Dart가 원하지 않는 타입을 추측할 수 있습니다.

var queue = <String>[];

요소 타입이 전달됩니다

타입이 지정되면 메서드가 올바른 요소 타입을 반환합니다. List of String에서 읽은 값은 String이므로 바로 사용할 수 있습니다.

List<String> names = ['Ada'];
String first = names.first;

제네릭 중첩하기

타입 매개변수는 필요한 만큼 깊게 중첩할 수 있습니다. String에서 int의 List로 이어지는 Map도 완전히 유효하며 전체적으로 검사됩니다.

Map<String, List<int>> grades = {
  'Ada': [90, 85]
};

제네릭과 변환

map 같은 메서드는 처리 흐름을 따라 타입을 전달합니다. int를 해당 문자열로 변환하면 String의 Iterable이 생성됩니다.

var labels = [1, 2].map((n) => 'n=$n');

사용자 지정 제네릭 컨테이너

직접 만든 제네릭 클래스도 이 세계에 연결됩니다. T의 Stack은 호출자가 선택한 어떤 요소 타입이든 저장할 수 있습니다.

class Stack<T> {
  final _items = <T>[];
  void push(T x) => _items.add(x);
}

처음부터 끝까지 안전성

선언부터 변환과 저장에 이르기까지 타입이 계속 알려진 상태로 유지됩니다. 이것이 재사용성과 완전한 검사를 끝까지 얻는 이점입니다.

빠른 확인

Map은 몇 개의 타입 매개변수를 받나요?

복습

List, Set, Map에 타입을 지정하고, 추론을 활용하고, 빈 리터럴에 타입을 명시하고, 제네릭을 중첩하는 방법을 배웠습니다. 타입은 모든 변환을 거쳐 안전하게 전달됩니다. ✅

무료로 시작

AI 튜터와 함께 Dart을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“실전 제네릭 컬렉션” 강의는 무료인가요?

네 — “실전 제네릭 컬렉션” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“실전 제네릭 컬렉션”에서 뭘 배우나요?

List, Map, 사용자 지정 컨테이너에 자료형을 지정합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Dart Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“실전 제네릭 컬렉션” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

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