IMCAT.DEV
로그인 가입
Dart 입문 자료구조

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. 실전 활용 예제

    1. 사용자 프로필 관리: 쇼핑몰에서 사용자의 정보를 관리할 때, 각 사용자별로 맵을 사용하여 이름, 이메일, 장바구니 상품 등을 저장할 수 있습니다.
    2.     void main() {
            Map<String, dynamic> userProfile = {
              '이름': '홍길동',
              '이메일': '[email protected]',
              '장바구니': ['상품A', '상품B']
            };
      
            print('사용자 이메일: ${userProfile['이메일']}');
            print('장바구니 내용: ${userProfile['장바구니']}');
          }
    3. 설정 값 관리: 애플리케이션의 설정 값을 맵을 통해 관리할 수 있습니다. 예를 들어, 사용자 환경 설정을 저장할 때 유용합니다.
    4.     void main() {
            Map<String, dynamic> settings = {
              '알림': true,
              '언어': '한국어',
              '테마': '다크'
            };
      
            print('현재 언어: ${settings['언어']}');
          }

      5. 흔한 실수와 주의사항

    5. 키 중복 사용
    6. - 잘못된 코드:

            Map<String, dynamic> user = {
              '이름': '홍길동',
              '이름': '김철수' // 키가 중복됨
            };

      - 올바른 코드:

            Map<String, dynamic> user = {
              '이름': '홍길동',
              '별명': '김철수'
            };
    7. 존재하지 않는 키 접근
    8. - 잘못된 코드:

            print(user['나이']); // '나이' 키가 없을 경우 에러 발생

      - 올바른 코드:

            print(user['나이'] ?? '정보 없음'); // 없을 경우 기본값 제공

      6. 정리

    9. 맵은 키-값 쌍으로 데이터를 저장하는 유용한 자료구조입니다.
    10. 키는 유일해야 하며, 값을 쉽게 조회하고 수정할 수 있습니다.
    11. 실무에서는 사용자 정보나 설정 값을 관리하는 데 많이 사용됩니다.
    12. 다음에 학습할 주제로는 리스트(List)와 JSON 데이터 처리 방법을 추천합니다.