학습
Dart 맵 기초
Dart 맵 기초 — 초급
맵 기초
1. 도입 (왜 배워야 하는가)
Dart에서 맵(Map)은 데이터를 키-값 쌍으로 저장하는 유용한 자료구조입니다. 실무에서는 사용자 정보를 관리하거나 설정 값을 저장하는 등 다양한 곳에서 사용되며, 특히 JSON 데이터를 처리할 때 매우 유용합니다. 맵을 사용하지 않으면 데이터의 구조를 명확하게 표현하기 어려워지며, 조회 및 수정이 복잡해질 수 있습니다. 예를 들어, 사용자의 프로필 정보를 저장할 때, 단순한 리스트로 저장할 경우 각 정보의 위치를 기억해야 하지만, 맵을 사용하면 키를 통해 직접적으로 접근할 수 있습니다.
2. 핵심 개념 설명
- 맵(Map): 키와 값의 쌍으로 이루어진 데이터 구조입니다. 예를 들어,
{'이름': '홍길동', '나이': 30}는 이름과 나이를 키-값 쌍으로 저장한 맵입니다. - 키(Key): 데이터에 접근하기 위해 사용하는 이름입니다. 유일해야 하며, 중복될 수 없습니다.
- 값(Value): 키에 대응하는 데이터입니다. 어떤 타입도 될 수 있습니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 키 | 데이터를 찾기 위해 사용하는 식별자 |
| 값 | 키에 대응하는 데이터 |
| 맵 | 키-값 쌍으로 이루어진 데이터 구조 |
3. 기본 코드 예제
void main() {
// 맵 생성
Map<String, dynamic> user = {
'이름': '홍길동',
'나이': 30,
'직업': '개발자'
};
// 맵의 값 출력
print('이름: ${user['이름']}'); // 이름: 홍길동
print('나이: ${user['나이']}'); // 나이: 30
print('직업: ${user['직업']}'); // 직업: 개발자
}
Map<String, dynamic> user = {...};: 문자열 키와 동적 타입 값을 가지는 맵을 선언하고 초기화합니다.print('이름: ${user['이름']}');: 맵에서 '이름' 키에 해당하는 값을 출력합니다. 결과는 이름: 홍길동입니다.print 문도 같은 방식으로 작동하여 각각의 값이 출력됩니다.4. 실전 활용 예제
- 사용자 프로필 관리: 쇼핑몰에서 사용자의 정보를 관리할 때, 각 사용자별로 맵을 사용하여 이름, 이메일, 장바구니 상품 등을 저장할 수 있습니다.
- 설정 값 관리: 애플리케이션의 설정 값을 맵을 통해 관리할 수 있습니다. 예를 들어, 사용자 환경 설정을 저장할 때 유용합니다.
- 키 중복 사용
- 존재하지 않는 키 접근
- 맵은 키-값 쌍으로 데이터를 저장하는 유용한 자료구조입니다.
- 키는 유일해야 하며, 값을 쉽게 조회하고 수정할 수 있습니다.
- 실무에서는 사용자 정보나 설정 값을 관리하는 데 많이 사용됩니다.
- 다음에 학습할 주제로는 리스트(List)와 JSON 데이터 처리 방법을 추천합니다.
void main() {
Map<String, dynamic> userProfile = {
'이름': '홍길동',
'이메일': '[email protected]',
'장바구니': ['상품A', '상품B']
};
print('사용자 이메일: ${userProfile['이메일']}');
print('장바구니 내용: ${userProfile['장바구니']}');
}
void main() {
Map<String, dynamic> settings = {
'알림': true,
'언어': '한국어',
'테마': '다크'
};
print('현재 언어: ${settings['언어']}');
}
5. 흔한 실수와 주의사항
- 잘못된 코드:
Map<String, dynamic> user = {
'이름': '홍길동',
'이름': '김철수' // 키가 중복됨
};
- 올바른 코드:
Map<String, dynamic> user = {
'이름': '홍길동',
'별명': '김철수'
};
- 잘못된 코드:
print(user['나이']); // '나이' 키가 없을 경우 에러 발생
- 올바른 코드:
print(user['나이'] ?? '정보 없음'); // 없을 경우 기본값 제공