Swift 이것도 몰라? (배열, 딕셔너리, 세트 완벽 이해 1탄)

작성일 :

Swift는 애플의 iOS, macOS, watchOS, tvOS 애플리케이션을 개발하기 위해 설계된 강력하고 직관적인 프로그래밍 언어입니다. Swift의 중요한 특징 중 하나는 다양한 컬렉션 타입을 제공한다는 것입니다. 이 가이드에서는 Swift의 세 가지 주요 컬렉션 타입인 배열(Array), 딕셔너리(Dictionary), 세트(Set)를 이해하고 사용하는 방법에 대해 설명하겠습니다.

배열 (Array)

배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. 배열의 가장 큰 장점은 인덱스를 통해 각 요소에 접근할 수 있다는 점입니다. Swift에서 배열을 선언하고 사용하는 방법은 다음과 같습니다.

배열 선언 및 초기화

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

위 예제는 정수형 배열 numbers를 선언하고 초기화하는 코드입니다. 배열의 타입은 [Int]로 선언하며, 초기 값으로 [1, 2, 3, 4, 5]를 가집니다.

배열 요소 접근

배열의 요소에 접근하려면 인덱스를 사용합니다. Swift의 배열 인덱스는 0부터 시작합니다.

swift
let firstNumber = numbers[0] // 1

배열 요소 추가 및 제거

배열에 요소를 추가하거나 제거하는 방법도 간단합니다.

swift
numbers.append(6) // 배열에 6 추가
numbers.remove(at: 0) // 첫 번째 요소 제거

배열 순회

배열의 모든 요소를 순회하려면 for문을 사용할 수 있습니다.

swift
for number in numbers {
    print(number)
}

딕셔너리 (Dictionary)

딕셔너리는 키-값 쌍으로 데이터를 저장하는 컬렉션 타입입니다. 각 키는 고유해야 하며, 키를 통해 해당 값을 빠르게 조회할 수 있습니다. Swift에서 딕셔너리를 선언하고 사용하는 방법은 다음과 같습니다.

딕셔너리 선언 및 초기화

swift
var studentGrades: [String: Int] = ["John": 90, "Emma": 95, "Sophia": 88]

위 예제는 문자열을 키로, 정수를 값으로 가지는 딕셔너리 studentGrades를 선언하고 초기화하는 코드입니다.

딕셔너리 요소 접근

딕셔너리의 값을 조회하려면 키를 사용합니다.

swift
let johnGrade = studentGrades["John"] // 90

딕셔너리 요소 추가 및 제거

딕셔너리에 새로운 키-값 쌍을 추가하거나 기존 요소를 제거하는 방법은 다음과 같습니다.

swift
studentGrades["Michael"] = 85 // 새 요소 추가
studentGrades["John"] = nil // 요소 제거

딕셔너리 순회

딕셔너리의 모든 키-값 쌍을 순회하려면 for문을 사용할 수 있습니다.

swift
for (student, grade) in studentGrades {
    print("\(student): \(grade)")
}

세트 (Set)

세트는 고유한 값들을 저장하는 컬렉션 타입입니다. 순서가 중요하지 않은 데이터 집합을 관리할 때 유용하며, 중복된 값을 허용하지 않습니다. Swift에서 세트를 선언하고 사용하는 방법은 다음과 같습니다.

세트 선언 및 초기화

swift
var uniqueNumbers: Set<Int> = [1, 2, 3, 4, 5]

위 예제는 정수형 세트 uniqueNumbers를 선언하고 초기화하는 코드입니다. 배열과 달리 세트는 중복된 값을 허용하지 않습니다.

세트 요소 추가 및 제거

세트에 요소를 추가하거나 제거하는 방법은 다음과 같습니다.

swift
uniqueNumbers.insert(6) // 요소 추가
uniqueNumbers.remove(2) // 요소 제거

세트 연산

세트는 집합 연산을 지원합니다. 예를 들어, 두 세트의 합집합, 교집합, 차집합을 구할 수 있습니다.

swift
let evenNumbers: Set<Int> = [2, 4, 6, 8]
let intersect = uniqueNumbers.intersection(evenNumbers) // 교집합
let union = uniqueNumbers.union(evenNumbers) // 합집합
let difference = uniqueNumbers.subtracting(evenNumbers) // 차집합

세트 순회

세트의 모든 요소를 순회하려면 for문을 사용할 수 있습니다.

swift
for number in uniqueNumbers {
    print(number)
}

결론

Swift에서 배열, 딕셔너리, 세트는 매우 유용한 컬렉션 타입입니다. 배열은 순서가 중요한 데이터를 관리할 때, 딕셔너리는 키-값 쌍으로 데이터를 효율적으로 조회할 때, 세트는 고유한 값들의 집합을 관리할 때 유용합니다. 이 가이드를 통해 Swift의 컬렉션 타입에 대한 기본 개념을 이해하고, 실습을 통해 더욱 익숙해지길 바랍니다. Swift의 컬렉션 타입을 마스터하면 더욱 효율적이고 강력한 코드를 작성할 수 있을 것입니다.