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

Swift 배열(Array) 기초

Swift 배열(Array) 기초 — 초급

배열(Array) 기초

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

Swift에서 배열(Array)은 데이터를 효율적으로 저장하고 관리하는 기본적인 자료구조입니다. 실무에서는 많은 양의 데이터를 다루게 되며, 배열은 이러한 데이터를 정리하고 처리하는 데 필수적입니다. 예를 들어, 쇼핑몰의 장바구니, 사용자 목록, 게임의 점수판 등 다양한 상황에서 배열이 활용됩니다.

배열을 잘 이해하지 못한다면, 데이터를 다루는 데 어려움을 겪게 되고, 복잡한 문제를 해결하기 위해 불필요한 코드를 작성하게 될 것입니다. 이는 코드의 가독성을 떨어뜨리고 유지보수를 어렵게 만듭니다.

2. 핵심 개념 설명

배열(Array)

배열은 동일한 타입의 데이터를 순차적으로 저장할 수 있는 데이터 구조입니다. 배열을 사용하면 데이터를 인덱스를 통해 쉽게 접근할 수 있습니다.

비유

배열은 마치 책꽂이에 놓인 책들처럼 생각할 수 있습니다. 각 책은 특정한 주제를 가지고 있으며, 책꽂이의 각 자리는 고유한 번호(인덱스)를 가지고 있습니다. 우리는 이 번호를 통해 원하는 책에 쉽게 접근할 수 있습니다.

관련 용어 정리

용어설명
인덱스배열의 각 요소에 접근하기 위한 번호
요소배열에 저장된 각각의 데이터
크기배열에 포함된 요소의 개수

3. 기본 코드 예제

가장 기본적인 배열의 사용법을 보여주는 코드입니다.

// 배열 선언 및 초기화
var fruits: [String] = ["사과", "바나나", "오렌지"]

// 배열의 첫 번째 요소 출력
print(fruits[0]) // 실행 결과: 사과

실행 결과

사과

코드 한 줄씩 동작 설명

  1. var fruits: [String] = ["사과", "바나나", "오렌지"]
  2. - fruits라는 이름의 배열을 선언하고, 문자열 타입의 과일 이름으로 초기화합니다.

  3. print(fruits[0])
  4. - fruits 배열의 첫 번째 요소(인덱스 0)를 출력합니다. 배열의 인덱스는 0부터 시작합니다.

    4. 실전 활용 예제

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

    쇼핑몰에서 고객이 선택한 상품을 장바구니에 담을 때 배열을 사용할 수 있습니다.

    var cart: [String] = []
    
    // 상품 추가
    cart.append("티셔츠")
    cart.append("바지")
    cart.append("신발")
    
    print(cart) // 실행 결과: ["티셔츠", "바지", "신발"]

    예제 2: 성적 관리

    학생들의 성적을 관리할 때 배열을 사용할 수 있습니다.

    var scores: [Int] = [95, 85, 72, 88]
    
    let average = scores.reduce(0, +) / scores.count
    print("평균 성적: \(average)") // 실행 결과: 평균 성적: 85

    5. 흔한 실수와 주의사항

    실수 1: 인덱스 범위 초과

    배열의 인덱스는 0부터 시작하며, 배열의 크기보다 큰 인덱스를 사용하면 오류가 발생합니다.

    let fruits = ["사과", "바나나", "오렌지"]
    print(fruits[3]) // 오류 발생

    올바른 코드

    print(fruits[2]) // 실행 결과: 오렌지

    실수 2: 배열의 데이터 타입 혼용

    배열은 동일한 타입의 데이터만 가질 수 있습니다. 서로 다른 타입을 담으려고 하면 오류가 발생합니다.

    var mixedArray: [Any] = ["사과", 3, true] // 오류 없음

    올바른 코드

    var fruits: [String] = ["사과", "바나나"] // 문자열만 포함

    6. 정리

    • 배열은 동일한 타입의 데이터를 저장하는 자료구조입니다.
    • 배열의 요소는 인덱스를 통해 접근할 수 있습니다.
    • 실무에서는 배열을 통해 데이터 관리 및 처리를 간편하게 할 수 있습니다.
    • 배열의 크기와 인덱스 범위를 주의해야 합니다.
    • 다음에 학습하면 좋은 주제:

    • 딕셔너리(Dictionary) 기초
    • 반복문(Loop)을 활용한 배열 처리
    • 배열의 고급 기능 (맵, 필터, 리듀스) 사용법