PHpullh

PRACTICAL LANGUAGE GUIDE

Swift는 Apple 생태계 안에서 제품 품질과 플랫폼 기능을 함께 가져갈 때 강하다

Swift의 iOS·macOS 제품 개발, 동시성, 시스템 프레임워크 활용법과 면접 준비를 정리한 실무 가이드입니다.

SwiftiOS·macOS 제품팀, Apple 플랫폼 기능을 깊게 쓰는 팀

시스템에서 이렇게 활용하세요

SwiftUI로 화면 상태를 선언적으로 다루고, async/await로 네트워크와 파일 작업을 명시적으로 분리하세요. 앱의 핵심 도메인은 UI 프레임워크에서 떼어 내고, actor에는 공유 변경 상태만 넣는 편이 테스트와 성능 추적에 유리합니다.

나에게 맞는 선택인지 확인하기

iPhone·iPad·Mac 사용자 경험이 핵심이고 카메라, 건강, 결제, 오프라인 같은 Apple 프레임워크를 제품 차별점으로 쓸 때 선택하세요. 웹과 Android를 한 팀에서 같은 코드로 빠르게 실험해야 한다면 Flutter/Dart 또는 웹 기술도 함께 비교하세요.

작은 시스템 예제

actor DownloadStore {
  private var cache: [URL: Data] = [:]

  func data(for url: URL) async throws -> Data {
    if let cached = cache[url] { return cached }
    let (data, _) = try await URLSession.shared.data(from: url)
    cache[url] = data
    return data
  }
}

공유 캐시를 actor로 감싸면 동시 접근의 규칙을 코드 구조로 드러낼 수 있습니다.

INTERVIEW PREP

Swift 면접에서 설명할 질문

struct와 class는 언제 나누어 쓰나요?

기본값은 값 의미가 자연스러운 struct입니다. 동일한 정체성·수명·공유 변경이 필요할 때만 class를 고르고, UI 상태처럼 여러 작업이 동시에 바꾸는 데이터는 actor 또는 MainActor 경계를 함께 설명합니다.

Swift concurrency에서 MainActor는 왜 필요한가요?

UI는 일반적으로 메인 실행 맥락에서 변경해야 합니다. 네트워크·파싱은 분리해 수행하고, 화면 상태를 반영하는 지점만 MainActor로 보내면 응답성과 데이터 경계를 함께 관리할 수 있습니다.