Swift 컬렉션 타입들: 배열과 딕셔너리 활용 방법

작성일 :

Swift 컬렉션 타입들: 배열과 딕셔너리 활용 방법

Swift는 다양한 컬렉션 타입을 제공하여 복잡한 데이터 집합을 쉽게 관리할 수 있게 합니다. 그중에서도 가장 자주 사용되는 두 가지 컬렉션 타입은 배열(Array)딕셔너리(Dictionary)입니다. 이 글에서는 이 두 컬렉션 타입의 개념, 사용법 및 효율적 활용 방법에 대해 다루겠습니다.

배열(Array)

배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. Swift의 배열은 타입에 민감하며, 배열에 한 번에 여러 가지 타입을 담을 수는 없습니다. 배열의 각 요소는 순서(index)를 가지며, 이 순서를 통해 각 요소에 접근할 수 있습니다.

배열 선언과 초기화

배열을 선언하고 초기화하는 방법은 매우 간단합니다. 예를 들어, 정수형 배열을 선언하고 초기화하는 코드는 다음과 같습니다:

swift
var numbers: [Int] = [1, 2, 3, 4, 5]

빈 배열을 선언하고 나중에 요소를 추가하고 싶다면 다음과 같이 할 수 있습니다:

swift
var emptyArray: [String] = []

배열의 요소 접근

배열의 요소에 접근하는 방법은 배열의 인덱스를 사용하는 것입니다. 배열의 인덱스는 항상 0부터 시작합니다. 예를 들어, 위에서 선언한 numbers 배열의 세 번째 요소에 접근하려면 다음과 같이 하면 됩니다:

swift
let thirdNumber = numbers[2]  // 값은 3

배열에 요소 추가와 제거

배열에 요소를 추가하는 것은 매우 쉽습니다. append 메서드를 사용하여 배열의 끝에 요소를 추가할 수 있습니다:

swift
numbers.append(6)  // numbers는 이제 [1, 2, 3, 4, 5, 6]

배열에서 요소를 제거하려면 remove 메서드를 사용할 수 있습니다. 특정 인덱스의 요소를 제거하려면 다음과 같이 할 수 있습니다:

swift
numbers.remove(at: 2)  // numbers는 이제 [1, 2, 4, 5, 6]

배열의 반복문 활용

배열의 요소를 반복하여 처리하려면 for-in 반복문을 사용할 수 있습니다:

swift
for number in numbers {
    print(number)
}

이외에도 인덱스와 함께 모든 요소를 반복할 수도 있습니다:

swift
for (index, value) in numbers.enumerated() {
    print("Index: \(index), Value: \(value)")
}

딕셔너리(Dictionary)

딕셔너리는 키-값 쌍으로 데이터를 저장하는 컬렉션 타입입니다. 딕셔너리는 각 키가 유일해야 하며, 키를 통해 저장된 값에 접근할 수 있습니다. Python의 딕셔너리와 매우 유사하지만, Swift의 딕셔너리는 타입에 민감하다는 점에서 다릅니다.

딕셔너리 선언과 초기화

딕셔너리를 선언하고 초기화하는 방법도 매우 간단합니다. 예를 들어, 문자열 키와 정수 값을 가지는 딕셔너리를 선언하고 초기화하는 코드는 다음과 같습니다:

swift
var ageDictionary: [String: Int] = ["Alice": 30, "Bob": 25]

빈 딕셔너리를 선언하고 나중에 키-값 쌍을 추가하고 싶다면 다음과 같이 할 수 있습니다:

swift
var emptyDictionary: [String: String] = [:]

딕셔너리의 요소 접근

딕셔너리의 요소에 접근하는 방법은 키를 사용하는 것입니다. 예를 들어, ageDictionary에서 Alice의 나이를 얻으려면 다음과 같이 하면 됩니다:

swift
let aliceAge = ageDictionary["Alice"]  // 값은 30

딕셔너리에서 값을 가져올 때 해당 키가 없을 경우를 대비하여 옵셔널 바인딩을 사용할 수 있습니다:

swift
if let bobAge = ageDictionary["Bob"] {
    print("Bob's age is \(bobAge)")
} else {
    print("Bob's age is not found")
}

딕셔너리에 요소 추가와 제거

딕셔너리에 새로운 키-값 쌍을 추가하는 것도 매우 쉽습니다. 새로운 키와 값을 할당하면 됩니다:

swift
ageDictionary["Charlie"] = 20  // ageDictionary는 이제 ["Alice": 30, "Bob": 25, "Charlie": 20]

특정 키-값 쌍을 제거하려면 removeValue 메서드를 사용할 수 있습니다:

swift
ageDictionary.removeValue(forKey: "Alice")  // ageDictionary는 이제 ["Bob": 25, "Charlie": 20]

딕셔너리의 반복문 활용

딕셔너리의 모든 키-값 쌍을 반복하여 처리하려면 for-in 반복문을 사용할 수 있습니다:

swift
for (name, age) in ageDictionary {
    print("Name: \(name), Age: \(age)")
}

딕셔너리의 키와 값을 각각 따로 반복할 수도 있습니다. 모든 키를 반복하려면 다음과 같이 할 수 있습니다:

swift
for key in ageDictionary.keys {
    print("Name: \(key)")
}

모든 값을 반복하려면 다음과 같이 할 수 있습니다:

swift
for value in ageDictionary.values {
    print("Age: \(value)")
}

결론

Swift의 배열과 딕셔너리는 각각 고유한 특성과 이점을 가지고 있습니다. 배열은 순서가 중요할 때 유용하며, 딕셔너리는 키를 통해 빠르게 값을 조회할 수 있을 때 유용합니다. 이 두 컬렉션 타입을 잘 활용하면 보다 효율적이고 가독성 높은 코드를 작성할 수 있습니다.