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

Swift 사전(Dictionary) 기초

Swift 사전(Dictionary) 기초 — 초급

사전(Dictionary) 기초

1. 도입 (왜 배워야 하는가)

Swift에서 사전(Dictionary)은 키-값 쌍으로 데이터를 저장하는 매우 중요한 데이터 구조입니다. 실무에서는 사용자의 정보를 저장하거나, 설정값을 관리하는 등 다양한 곳에서 활용됩니다. 사전을 잘 활용하지 못하면, 데이터 관리가 복잡해지고, 코드가 가독성이 떨어지며, 유지보수가 어려워질 수 있습니다. 예를 들어, 쇼핑몰에서는 제품의 이름과 가격을 함께 저장할 때 사전을 사용하지 않으면, 각 제품의 정보를 따로 관리해야 하므로 비효율적입니다.

2. 핵심 개념 설명

사전(Dictionary)은 키(key)와 값(value) 쌍으로 이루어진 컬렉션입니다. 키는 고유해야 하며, 값은 중복될 수 있습니다. 사전은 배열과 다르게 순서가 없기 때문에, 특정 키를 통해 직접 접근할 수 있는 장점이 있습니다.

  • 키(key): 고유한 값으로, 데이터를 찾기 위한 '주소' 역할을 합니다.
  • 값(value): 키에 매핑되는 데이터로, 실제로 저장하고자 하는 정보입니다.
  • 용어 정리

    용어설명
    키데이터에 접근하기 위한 고유 식별자
    값키에 매핑된 실제 데이터
    사전키-값 쌍으로 이루어진 데이터 구조

    3. 기본 코드 예제

    아래는 Swift에서 사전을 생성하고 사용하는 기본적인 예제입니다.

    // 사전 생성
    var studentGrades: [String: Int] = ["Alice": 90, "Bob": 85, "Charlie": 92]
    
    // 사전에 데이터 추가
    studentGrades["David"] = 88
    
    // 특정 키의 값 가져오기
    if let aliceGrade = studentGrades["Alice"] {
        print("Alice의 성적은 \(aliceGrade)입니다.") // 출력: Alice의 성적은 90입니다.
    }
    
    // 모든 키와 값 출력
    for (name, grade) in studentGrades {
        print("\(name): \(grade)")
    }

    실행 결과

    Alice의 성적은 90입니다.
    Alice: 90
    Bob: 85
    Charlie: 92
    David: 88

    코드 한 줄씩 동작 설명

    1. var studentGrades: [String: Int] = ["Alice": 90, "Bob": 85, "Charlie": 92]: 문자열을 키로 하고 정수를 값으로 가지는 사전을 생성합니다.
    2. studentGrades["David"] = 88: 'David'라는 키로 88이라는 값을 추가합니다.
    3. if let aliceGrade = studentGrades["Alice"]: 'Alice'라는 키의 값을 안전하게 가져옵니다.
    4. print(...): 가져온 값을 출력합니다.
    5. for (name, grade) in studentGrades: 사전의 모든 키와 값을 반복합니다.
    6. print("\(name): \(grade)"): 각 키와 값을 출력합니다.
    7. 4. 실전 활용 예제

      예제 1: 쇼핑몰 장바구니 구현

      쇼핑몰에서 장바구니에 제품을 추가할 때 사전을 사용하여 제품명과 가격을 저장할 수 있습니다.

      var cart: [String: Double] = [:]
      
      // 제품 추가
      cart["사과"] = 500.0
      cart["바나나"] = 300.0
      
      // 장바구니 총합계 계산
      let total = cart.values.reduce(0, +)
      print("장바구니 총액: \(total)원") // 출력: 장바구니 총액: 800.0원

      예제 2: 사용자 설정 저장

      사용자의 설정을 사전으로 관리하여 쉽게 접근할 수 있습니다.

      var userSettings: [String: Any] = ["테마": "다크", "알림": true]
      
      // 테마 변경
      userSettings["테마"] = "라이트"
      print("현재 테마: \(userSettings["테마"]!)") // 출력: 현재 테마: 라이트

      5. 흔한 실수와 주의사항

    8. 키 중복 사용: 사전에서 키는 고유해야 하므로 중복된 키를 사용하면 이전 값이 덮어씌워집니다.
    9. - 잘못된 코드:

           var dict = ["key": "value1", "key": "value2"] // 'key'가 중복

      - 올바른 코드:

           var dict = ["key1": "value1", "key2": "value2"] // 각 키가 고유
    10. 옵셔널 처리 소홀: 사전에서 값을 가져올 때 키가 존재하지 않으면 nil이 반환됩니다. 이를 체크하지 않으면 런타임 에러가 발생할 수 있습니다.
    11. - 잘못된 코드:

           let value = dict["nonexistentKey"]! // 강제 언래핑으로 에러 발생

      - 올바른 코드:

           if let value = dict["nonexistentKey"] {
               print(value)
           } else {
               print("키가 존재하지 않습니다.")
           }

      6. 정리

    12. 사전(Dictionary)은 키-값 쌍으로 데이터를 구조화하여 관리할 수 있는 유용한 자료구조입니다.
    13. 키는 고유해야 하며, 값을 통해 데이터를 쉽게 접근할 수 있습니다.
    14. 실무에서는 장바구니, 사용자 설정 등 다양한 곳에서 활용됩니다.

다음에 학습하면 좋은 주제: 배열(Array)와 사전(Dictionary)의 결합 사용법, 사전의 고급 기능 (예: 필터링, 정렬 등).