
Ⅰ. 서론: 컬렉션(Collection) 타입이 중요한 이유
📌 1. 데이터 저장 및 관리의 필요성
📌 2. Dart에서 제공하는 주요 컬렉션 타입
Ⅱ. 본론: List, Set, Map 컬렉션 개념과 활용법
📌 Step 1: List (배열) 개념 및 주요 메서드 활용
📌 Step 2: Set (중복 없는 집합) 개념 및 활용
📌 Step 3: Map (키-값 쌍) 개념 및 활용
📌 Step 4: 컬렉션의 변형 및 변환 (List ↔ Set ↔ Map 변환)
Ⅲ. 컬렉션 타입을 효과적으로 활용하는 방법
📌 컬렉션 선택 기준
📌 성능을 고려한 데이터 저장 방식
Dart의
리스트(List), Set, Map
컬렉션 개념 정리 📌🔍
Dart에서는 데이터를
효율적으로 저장하고 관리하기 위해
List, Set, Map과 같은
컬렉션(Collection) 타입을 제공합니다.
이들은
배열, 집합, 키-값 구조를
표현할 때 사용되며,
Flutter UI 및 상태 관리에서
중요한 역할을 합니다.
이번 포스팅에서는
Dart의 List, Set, Map의 개념과 활용법을
예제와 함께 정리하겠습니다. 🚀
먼저
더 많은 정보, 혹은
순서대로 포스팅을 보고 싶다면
아래 노션을 확인해주세요.

https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4
Flutter 어플 개발 일지 | Notion
Made with Notion, the all-in-one connected workspace with publishing capabilities.
mongmung-i.notion.site
https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4
창업 트랙 사전 캠프 𓆲 | Notion
이 곳은 창업 트랙 사전 캠프 진행 사항을 정리하는 곳입니다.
mongmung-i.notion.site
Ⅰ. 서론: 컬렉션(Collection) 타입이 중요한 이유 🤔
데이터 저장 및 관리의 필요성
✅ 배열(List), 집합(Set), 키-값 구조(Map) 데이터를 저장하는 기본 방식
✅ Flutter UI에서 리스트뷰, 드롭다운, 필터링 등에 사용됨
✅ 네트워크 요청(JSON 데이터) 및 상태 관리(State Management)에서 필수적
➡ 효율적인 데이터 관리가 필요하므로 컬렉션 개념을 정확히 이해해야 함! 🚀
Dart에서 제공하는 주요 컬렉션 타입
✅ List → 배열처럼 사용 (순서 유지, 중복 허용)
✅ Set → 중복을 허용하지 않는 집합 (순서 보장 X)
✅ Map → 키-값(Key-Value) 구조의 데이터 저장 (딕셔너리 개념)
➡ 이제 각 컬렉션 타입을 하나씩 살펴보겠습니다! 🎯
Ⅱ. 본론: List, Set, Map 컬렉션 개념과 활용법 🏗️
Step 1: List (배열) 개념 및 주요 메서드 활용
List는 여러 개의 데이터를
순서대로 저장하는 컬렉션 타입입니다.
배열과 유사하며,
중복된 값을 허용하고
각 요소에 접근할 때
인덱스(0부터 시작)를 사용합니다.
- 순서가 있는 데이터를 저장할 때 적합합니다.
- 중복된 데이터를 포함할 수 있으며, 필요할 때 특정 값을 삭제하거나 추가할 수 있습니다.
- 배열처럼 인덱스 번호를 사용하여 요소를 접근할 수 있습니다.
✅ List란?
- 여러 개의 값을 순서대로 저장하는 배열 형태의 컬렉션
- 인덱스를 사용하여 값에 접근 가능 (0부터 시작)
- 중복 값을 허용함
void main() {
List<String> fruits = ['Apple', 'Banana', 'Cherry'];
print(fruits[0]); // Apple
print(fruits.length); // 3
}
✅ List 주요 메서드
void main() {
List<int> numbers = [1, 2, 3];
numbers.add(4); // 리스트에 값 추가
numbers.remove(2); // 특정 값 삭제
numbers.insert(1, 10); // 특정 위치에 값 삽입
print(numbers); // [1, 10, 3, 4]
}
✅ 반복문을 활용한 List 순회
void main() {
List<String> names = ['Alice', 'Bob', 'Charlie'];
for (var name in names) {
print(name);
}
}
💡 활용 예시:
- Flutter UI에서 리스트뷰(ListView)를 구성할 때
- 사용자 입력 데이터를 순서대로 저장할 때 (예: 최근 검색어 목록, 채팅 메시지 리스트)
- 반복문을 사용하여 특정 데이터를 순차적으로 처리할 때
Step 2: Set (중복 없는 집합) 개념 및 활용 보완 설명
✅ Set이란?
Set은 중복된 데이터를
허용하지 않는 컬렉션 타입입니다.
리스트와 비슷하지만
중복을 자동으로 제거하며,
데이터의 순서를 보장하지 않습니다.
void main() {
Set<int> uniqueNumbers = {1, 2, 3, 3, 4, 5};
print(uniqueNumbers); // {1, 2, 3, 4, 5} (중복 제거)
}
- 중복 데이터가 들어오면 자동으로 제거되므로 데이터 정리가 필요할 때 유용합니다.
- 데이터를 빠르게 검색하거나 중복 체크가 필요할 때 사용됩니다.
💡 활용 예시:
- 회원가입 시 중복된 이메일을 방지할 때 (Set을 사용하여 중복 체크)
- 게시판 태그 시스템에서 중복된 태그를 허용하지 않을 때
- 랜덤한 데이터를 저장하고 중복 없이 선택할 때
Step 3: Map (키-값 쌍) 개념 및 활용 보완 설명
Map은 Key-Value(키-값) 형태로
데이터를 저장하는 컬렉션 타입입니다.
리스트와 다르게
고유한 키(Key)를 사용하여
특정 값을 빠르게 조회할 수 있습니다.
void main() {
Map<String, int> scores = {'Alice': 85, 'Bob': 90};
print(scores['Alice']); // 85
}
- 리스트와 달리 특정 요소에 접근할 때 인덱스가 아닌 키(Key)를 사용합니다.
- Key는 중복될 수 없지만, Value는 중복될 수 있습니다.
- 빠른 데이터 검색이 필요할 때 활용됩니다.
💡 활용 예시:
- 사용자의 정보를 저장할 때 (user['name'], user['email'])
- JSON 데이터 처리 (서버에서 응답을 받을 때 Map 형태로 반환됨)
- Flutter의 상태 관리에서 특정 값을 저장하고 빠르게 가져올 때
Step 4: 컬렉션의 변형 및 변환 (List ↔ Set ↔ Map 변환) 보완 설명
컬렉션 타입 간 변환을 통해
데이터를 더 효율적으로 관리할 수 있습니다.
어떤 작업을 수행해야 하는지에 따라
List, Set, Map을 유동적으로 변환할 수 있습니다.
✅ List → Set 변환 (중복 제거)
리스트에 있는
중복된 데이터를 제거하고 싶을 때
Set으로 변환할 수 있습니다.
void main() {
List<int> numbers = [1, 2, 2, 3, 4, 4, 5];
Set<int> uniqueNumbers = numbers.toSet();
print(uniqueNumbers); // {1, 2, 3, 4, 5}
}
💡 활용 예시:
- 중복된 태그 데이터를 자동으로 정리할 때
- 한 번만 실행해야 하는 고유한 값 목록을 유지할 때
✅ Set → List 변환 (순서 유지 필요 시)
Set은 순서가 보장되지 않기 때문에,
다시 순서를 유지하려면 List로 변환해야 합니다.
void main() {
Set<String> uniqueNames = {'Alice', 'Bob', 'Charlie'};
List<String> nameList = uniqueNames.toList();
print(nameList); // ['Alice', 'Bob', 'Charlie']
}
💡 활용 예시:
- 정렬이 필요한 데이터 (예: 가나다순, 날짜순 정렬)
- Set에 저장된 값들을 UI에서 순서대로 보여주고 싶을 때
✅ List → Map 변환
리스트 데이터를 키-값 형태로 변환하여
보다 체계적으로 관리할 수 있습니다.
void main() {
List<String> fruits = ['Apple', 'Banana', 'Cherry'];
Map<int, String> fruitMap = {for (int i = 0; i < fruits.length; i++) i: fruits[i]};
print(fruitMap); // {0: Apple, 1: Banana, 2: Cherry}
}
💡 활용 예시:
- 상품 리스트에서 고유한 ID를 키로 사용하여 빠르게 조회할 때
- 리스트 데이터를 Key-Value 구조로 변경하여 JSON 데이터와 연동할 때
Ⅲ. 컬렉션 타입을 효과적으로 활용하는 방법 ✅
컬렉션 선택 기준
✅ 순서가 중요하고 중복을 허용해야 한다면 → List
✅ 중복을 방지하고 빠른 검색이 필요하다면 → Set
✅ 키-값 쌍으로 데이터를 관리해야 한다면 → Map
성능을 고려한 데이터 저장 방식
✅ 대량의 데이터를 처리할 때는 Set을 활용하여 중복을 자동 제거
✅ 빠른 검색이 필요할 경우 Map을 활용하여 Key 기반 조회
✅ Flutter UI에서 리스트뷰를 사용할 경우 List가 적합
➡ 컬렉션 타입을 적절히 활용하면 성능과 가독성을 동시에 향상 가능! 🚀