NEW
개발 · 프로그래밍

/

모바일 앱 개발

앨런 Swift Concurrency for Swift 6 (Part-1)

Swift Concurrency를 A부터 Z까지 다룹니다. (Part 1)

146

이 수강하고 있어요.

Thumbnail

초급자를 위해 준비한
[동시성, swift6] 강의입니다.

이런 걸
배워요!

  • Swift Concurrency (스위프트 동시성 프로그래밍)

  • Task / async / await (비동기 처리)

  • async/await 관련 신규 API

  • Continuation (컨티뉴에이션) 사용법

  • Structured Concurrency (구조적 동시성 / 병렬처리)

  • async let / TaskGroup (병렬처리 기법)

  • Cancellation (작업취소)

  • Task-Local (작업 지역 변수)의 사용법

  • (작업 취소) 프로젝트 적용 사례

Swift Concurrency for Swift 6 (파트 - 1) ✍🏻

부제: Swift 6로 나아가기 위한 스위프트 동시성(Swift Concurrency) 프로그래밍 제대로 학습하기


🌿🌿🌿

CS에 기반한 탄탄한 기본기와
디테일한 한 끗 차이가
실력의 차이를 만들어 낸다고 생각합니다.

🌿🌿🌿



스위프트는 5.5 버전에서 새로운 동시성 프로그래밍(Swift Concurrency)이 도입된 이후, 단계 별 준비를 거쳐 드디어 6 버전으로 업데이트가 되었습니다. 그리고 Swift 6 버전의 핵심적인 목표 중의 하나가 바로 코드의 잠재적인 데이터 경합(Race Condition/Data-Races) 가능성을 제거하고 컴파일 단계부터 Thread-Safe(쓰레드 안전) 한 코드를 구현할 수 있게 하여 안전성을 보장하려는 것입니다.

(우리는 점진적인 Swift 6의 도입을 위한 전환점에 맞닿아있습니다.)


따라서 본 강의는 점차 Swift 6로 나아가기 위해, Swift Concurrency와 관련된 모든 내용. 즉, A부터 ~ Z까지를 학습하는 것을 목표로 하여 설계되었습니다. 본 과정의 주요 내용은 아래에서 참고 부탁드리며, 첫번째 강의 소개 영상에서 과정에 대한 내용을 자세하게 설명드리고 있으니, 이 또한 참고 부탁드립니다.

(Part-2까지 학습하게 되시면, Swift 6의 도입을 위한 이론적인 토대가 완성되리라 봅니다.)


항상 제 강의의 개인적인 목표이지만, 지구 상에서 어떠한 Swift Concurrency 관련 강의보다 더 자세하고 깊은 내용을 다루고 있습니다. (집착과 같은 디테일한 한 끗 차이가 실력의 차이를 만든다고 생각하기에, 항상 다양한 코드 예시와 정리된 자료를 제공해 드리려고 합니다.)

과정에서 다루는 내용 🕵🏻‍♂️👨🏻‍🎓

(1) Part - 1에서 주로 다루는 내용 (본 강의)

  • Task / async / await 의 제대로 된 이해


  • 비동기(async) 함수의 동작 방식

  • URLSession관련 신규 비동기 API 소개

  • Continuation의 사용 (1) 콜백함수 / (2) 델리게이트 방식을 비동기 방식으로 전환

  • 위치앱(CoreLocation)의 델리게이트 방식을 async/await으로 전환 프로젝트 예시

  • 구조적 동시성의 이론적인 내용

  • 병렬처리 - (1) async let (2) TaskGroup

  • 작업의 취소 동작 방식의 이해 (작업 취소 관련 프로젝트 예시)

  • 협력적 취소 모델의 이해

  • 구조적 동시성과 작업의 취소의 응용

  • TaskGroup의 응용 (동시 쓰레드 갯수의 지정 - 커스텀 설정)

  • Task-Local변수의 활용


(2) (향후) Part - 2에서 주로 다루게 될 내용 (향후 출시 예정 강의)

  • 동시성 프로그래밍을 Computer Science 관점에서 이해하기 (쓰레드/메모리 구조의 이해)

  • Data Isolation / Task Isolation / Actor Isolation (격리 개념의 이해)

  • Task Isolation과 Shared Mutable State (공유 데이터)

  • Sendable 타입 (쓰레드 간에 공유해도 안전한 데이터 타입)

  • Actor 완전 정복 (1) 격리/비격리 (2) 원자성 (3) 재진입 (4) 액터 홉핑

  • (5) 메인액터 블로킹 (6) 액터 경합 해결하기

  • 글로벌 액터와 메인액터

  • 액터로 캐시(cache) 구현하기 프로젝트 예시

  • AsyncSequence (비동기 시퀀스)와 AsyncStream (비동기 스트림)

  • 웹소켓에 AsyncStream 적용하기 프로젝트 예시

  • Swift5 에서 Swift6로 넘어가기

  • Instruments 사용해서 프로젝트 분석하기


이 강의의 특징

📌 Swift Concurrency 프로그래밍을 A부터 ~ Z까지 다루고자 하는 목표를 가지고 있습니다.

📌 (Swift 6의 목표인) 컴파일 타임에서부터 여러쓰레드 간에 안전한 코드를 작성하는 밑거름이 됩니다.

📌 현존하는 모든 WWDC - Swift Concurrency 관련 영상들을 참고하여 만든 강의 입니다.

📌 다양한 예제 프로젝트

📌 지구상의 어떠한 Swift Concurrency 강의보다 자세하게 !!!!

📌 (제 강의는 항상 그래왔지만) 최대한 직관적인 이해와 정리를 위해 별도의 학습 자료를 제공합니다.

학습을 위한 최상의 자료가 제공돼요.

별도 학습자료 사용

최대한 직관적인 설명을 위해 별도의 PPT파일로 설명을 드립니다. (PDF제공)
(당분간 무료 제공, 추후 유료 교재로 판매 예정)

공식문서 번역본 등 다양한 번역자료 제공

최대한 학습의 시간을 효율적으로 활용하기 위한 Swift 6 (Concurrency) 공식문서, API Collection 공식문서 등의 번역본을 제공해드려요.

다양한 프로젝트 예시 코드 자료 제공

이론적인 내용 뿐만아니라, 학습 내용을 프로젝트에 직접 적용해 보면서 심화 학습을 해봅니다.

이론 학습 코드 자료 제공

최상의 이론적인 학습을 위한 다양한 예시의 플레이그라운드 코드 자료가 제공됩니다.

수강 전 참고 사항

1. 학습 자료 제공

  • 학습자료 PDF 자료 제공 (Part-2 강의가 출시하기 전까지만 무료 제공)

  • (Part-2 강의 출시 후에는 Part 1 + 2 교재 합본을 따로 판매)

  • 코드자료 제공

  • 프로젝트 예제 제공

  • 다수의 번역본 제공 (Swift 6 - Concurrency / API Collection / Migrating to Swift 6)

2. 선수 지식 및 유의사항

  • Swift 문법의 기본적인 사항 - 함수, 클로저 등을 자유자재로 다룰 수 있는 수준

  • 기존의 비동기 콜백함수, DispatchQueue 등을 다뤄본 기본적인 지식

  • Swift로 네트워크 호출 API(URLSession 등)를 다뤄본 경험

  • 기초적인 수준의 UIKit, SwiftUI 지식

3. 실습 환경

  • macOS Sequoia / Xcode 16 (이론학습은 Xcode 15.3 ~ 15.4 플레이그라운드 가능)


💌 강의 내용 라이센스 관련


본 강의의 내용들은, 제가 조금이라도 그림 등을 참고한 경우에 PDF에 관련 URL주소가 남겨져 있습니다. 그런 경우를 제외한 모든 자료는 제가 작성한 자료이기에, 본 강의의 내용을 블로그에 담는 것과 강의자료로 쓰이는 PDF파일의 공유는 어떠한 경우에도 금지됩니다.

(본 라이센스 관련 내용을 어길시, 법적인 책임을 지게 되실 수 있으니 반드시 유의 부탁드립니다.)

Q. 강의는 평생 수강인가요?

A. 평생 수강이 아닙니다. 본 강의는 4개월의 강의 수강에 대한 제한 기간이 있습니다. 유의 부탁드립니다. (제 강의를 공유하는 사례를 여러 차례 경험한 결과.. 그리고 제가 들이는 시간과 노력대비 큰 돈을 벌 수 있는 것도 아니기에.. 제가 할 수 있는 최선의 강의 공유 방지 대책일 뿐이니, 넓은 아량으로 이해를 부탁드립니다 🙏🏻)

문법 부트캠프를 수강한 적이 있으시다면..? 🙋🏻‍♂️🙋🏻‍♀️

제 Swift 마스터 스쿨(2개월 과정)을 수강하신 적이 있으시다면, 슬랙으로 연락주시면 본 Part-1 강의무료 수강권을 제공해드리도록 하겠습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Swift Concurrency 프로그래밍을 제대로 익히고 싶으신 분

  • 동시성 프로그래밍을 이론적으로 제대로 딥(deep)하게 익히고 싶은 분

선수 지식,
필요할까요?

  • Swift 언어의 기본기

iOS개발자 앨런입니다.
https://www.youtube.com/@allen_ios

제가 공부하면서 겪었던 시행착오를 쉽게 풀어내어
지식을 공유할 수있는 개발자가 되고싶습니다.

쉬운 주제로 빠른 시간 안에 겉핥기 식으로 쉽게만 가르치는 강의를 만드는 것에는 관심이 없습니다.
그런 강의는 얼마든지 빠르게 찍어내듯 만들 수 있겠지만, 결국 "좋은 개발자로 성장"하는 것은 그만큼 이론적인 기반의 밑거름이 탄탄해야 한다고 믿고 있기 때문입니다.

쉬운 강의보다는, 좋은 개발자(끝임없이 성장할 수 있는 개발자)가 되기 위해
반드시 알아야 하는 어려운 내용까지를 최대한 쉽게, 그리고 직관적으로 알려드리는 것.
그래서 제가 아닌 여러분 스스로 고민/생각할 수 있는 밑거름을 만들어 드리는 것을 저의 강의 목표로 삼고 있습니다.

저 스스로도 내일은 더 좋은 개발자가 되자는 모토를 가지고 있는 만큼
제가 고민 했던 내용들을 깊이있게 전달 드리고 싶습니다.


👇🏻문의는 아래의 이메일로 주시면 됩니다. 

we.love.code.allen@gmail.com


언어: Swift(스위프트), Python, Java, C#

커리큘럼

전체

49 ∙ 11시간 24분

수업 자료

가 제공되는 강의입니다.

강의 게시일: 2024년 10월 15일
마지막 업데이트일: 2024년 10월 15일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!