이 자료는 면접 진행자용 답안지이자 지원자용 정리본입니다. 각 문항은 실제 면접에서 본 문제에 답한 뒤 이어서 파고드는 꼬리 질문이며, 헷갈리기 쉬운 지점만 골랐습니다.
이 자료를 쓰는 법
문항마다 면접 질문이 두 개씩 있고, 답변도 질문마다 하나씩 따로 붙어 있습니다. 어느 문장이 어느 질문에 대한 답인지 헷갈리지 않게 답변 ①은 첫 번째 질문에만, 답변 ②는 두 번째 질문에만 대응합니다. 각 답변 바로 아래에 그 답을 뒷받침하는 코드가 붙습니다.
답변 ① / 답변 ②
질문 1개당 답변 1개. 면접에서 그대로 말해도 되는 정확한 답이며, 흔히 틀리는 지점은 ⚠️ 주의로 표시했습니다.
개념 코드
각 답변 아래에 그 답을 보여주는 코드. 대부분
❌ 문제 → ✅ 해결 짝이라 이유가 눈에 보입니다.쉽게 이해하기
두 질문을 비유로 푼 설명. 개념이 안 잡힐 때 여기부터 읽고 다시 위로 올라가세요.
진행률
문항 페이지마다 섹션별 완료 체크가 따로 저장됩니다. 다 못 봐도 이어서 볼 수 있습니다.
📝 노트
실제 면접에서는 두 질문이 연달아 나옵니다. 첫 질문에 답한 뒤 "그럼 실무에서는요?" 식으로 파고드는 구조라, ①을 답하고 나서 ②로 자연스럽게 이어지는지를 같이 연습하는 것이 좋습니다.
🔑 핵심
10문항을 관통하는 한 문장: Swift Concurrency는 "스레드"가 아니라 "격리(isolation)와 중단(suspension)"으로 사고해야 한다. 아래 질문들은 거의 다 이 두 개념의 경계에서 나옵니다.
문항 인덱스
01 · Actor 재진입
await 앞의 검사가 뒤에서 깨지는 이유와 in-flight Task 캐싱02 · Sendable
@unchecked의 대가, 값 타입이 안전한 진짜 이유와 예외03 · 구조적 vs 비구조적
async let의 수명, Task {}가 상속하는 것과 안 하는 것04 · 협력적 취소
checkCancellation vs isCancelled, 취소 핸들러가 필요한 순간05 · Continuation
resume을 두 번 하면? 안 하면? checked와 unsafe의 갈림길
06 · @MainActor
"이미 메인이면 안 멈춘다"가 과장인 이유 — hop과 suspend의 구분
07 · GCD → Concurrency
스레드 폭발의 진짜 원인과 completion handler의 구조적 결함
08 · AsyncStream
취소 시 delegate 정리, 그리고 단일 소비자라는 제약
09 · Swift 6 마이그레이션
컴파일러 버전·언어 모드·strict 레벨은 서로 다른 스위치
10 · TaskGroup
스코프를 못 벗어나는 이유, 그리고 결과가 도착하는 순서
출처 · 참고자료
🔗
The Swift Programming Language — Concurrency
docs.swift.org
🔗
Swift 6 Migration Guide
swift.org
🔗
SE-0304 — Structured Concurrency
swift-evolution
🔗
SE-0306 — Actors
swift-evolution
🔗
SE-0302 — Sendable and @Sendable closures
swift-evolution
🔗
WWDC21 — Swift concurrency: Behind the scenes
developer.apple.com
🔗
Apple Developer — withTaskCancellationHandler
developer.apple.com
🔗
Apple Developer — withCheckedContinuation
developer.apple.com