Thumbnail
BEST
개발 · 프로그래밍 모바일 앱 개발

iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해 대시보드

(5)
54개의 수강평 ∙  720명의 수강생

55,000원

지식공유자: 앨런(Allen)
총 32개 수업 (8시간 9분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[모바일 앱 개발, 개발 · 프로그래밍] 강의입니다.

동시성(Concurrency)프로그래밍 - iOS프로그래밍에서 필요한 동기, 비동기의 개념 및 그를 확장한 GCD 및 Operation에 관한 모든 내용을 다룹니다.

✍️
이런 걸
배워요!
iOS 동시성(Concurrency) 프로그래밍
iOS에서 최적화에 대한 이해(성능/반응성)
비동기(async)/동기(sync) 처리의 기본 개념에 대한 이해
iOS 디스패치큐(GCD)에 대한 이해
디스패치 그룹/비동기 디스패치 그룹에 대한 이해
iOS 오퍼레이션큐(OperationQueue)에 대한 이해
GCD/Operation을 적용한 실제 프로젝트의 예시
GCD/Operation에 대한 A부터 ~ Z까지
Thread-Safety에 대한 이해
Thread-Safe한 객체 설계의 이해
이 모든 내용을 쉽게(그림으로) 직관적으로 이해하기

✍️ 강의 제작 동기

"왜 동기vs비동기 개념, 직렬vs병렬의 개념을 아주 쉽게 직관적으로 설명하는 자료는 없을까요?"

(수업에서 말씀드리겠지만, 병렬은 조금다른 개념입니다. 동시(Concurrency)라고 표현하는 것이 맞습니다. 병렬은 물리적인 쓰레드의 동작의 개념이고, 동시는 소프트웨어적인 쓰레드 동작의 개념인데, 우리는 정확하게는 동시의 개념을 알아야하는 것입니다.)

처음 제가 Concurrency 프로그래밍에 관심을 갖게 된 단순한 계기였습니다. 비전공자로 iOS프로그래밍을 시작한 저에게 이해하기 너무 어려운 주제였습니다. 왜 필요한지도 모르겠고, 언제 써야하는지 명확한 개념도 잡히지 않고.. async메서드만 사용하지? 그럼 sync메서드는 언제 사용하는 거지? 무엇인가 중요한 것 같은데.. 누군가가 쉽게 설명해주었으면 좋을텐데... 그래서 여러 국내외 블로그 글, 해외자료를 찾다가... 그래도 iOS 프로그래밍 전문 교육사이트인 레이웬더리치(www.raywenderlich.com)의 “iOS Concurrency with GCD and Operations”동영상 강의가 제가 접할 수 있었던 그나마 최선의 자료였습니다.

아직은 iOS 프로그래밍 용어에 익숙하지 않아서인지 몰라도 한두 번 보고 잘 이해가 안되서, 너무 귀찮은 작업이었지만 그냥 아예 모든 자막을 다 긁어서 먼저 전부 한글화를 한 뒤, 다시 보았습니다. 설명하는 그림과 설명방식이 일관성이 없어서... 서너번을 보고나서야 조금 이해가 되었습니다. 어쨌든 그렇게 공부하고 나니, 어렴풋하던 개념들이 조금 정리가 되었고,  직관적으로 제 나름대로 이해한대로, 저의 방식으로 정리하고 싶은 욕심이 생겼습니다.


제 방식으로 “제가” 이해하기 쉽도록 그림을 그려보고, 또 같이 공부했던 친구들에게도 제 방식대로 설명을 하니.. 생각보다 쉽게 이해하더라고요. 그래서… 저처럼 고생하고 계실 분들이 많을 것 같은데, 이런 나만의 새로운 방식으로 알려드리면 어떨까? 라는 생각을 어렴풋이 해보았습니다. 처음엔 그렇게 가벼운 마음으로 강의를 한번 만들어볼까? 생각하여 잠깐 강의를 기획해보고, 실제로 완성시키는데 2-3달이라는 꽤오랜 시간이 지났습니다. 더 좋은 강의를 만들어보고자하는 제 욕심이었을 수도 있고... 정리에 정리를 거듭하고, 처음으로 이런 강의에 도전하는데 내용을 보다 더 잘 전달하고 싶은 그런 마음이 좀 컸던 것 같습니다.

결국, 준비에 준비를 거듭하다보니 레이웬더리치의 동영상강의(iOS Concurrency with GCD and Operations) 및 서적(Concurrency by Tutorials)을 10번 이상씩 보면서 참고하게 되었고, 물론 이 자료들보다 훨씬 더 나은 자료에 대해 많은 고민을 하였고, 그 내용들을 강의에 반영하기 위해 많은 준비를 하였습니다.

어쨌든, 제가 이 주제에 대해 경험해보고 나니... 본 과정은 중급 이상의 iOS 개발자로 성장하는 데 있어, (앱 최적화와 관련해) 필수적이며 가장 기본적인 과정이라는 생각이 듭니다. 네트워크 작업에는 이 개념이 반드시 필요하고, 또 나아가 타 라이브러리 사용, 코어데이터(CoreData) 사용 등에도 응용될 수 있는 반드시 한 번은 거쳐가야 하는 관문이기 때문입니다.

보다 쉬운 설명 방식을 위해 노력했습니다. 제가 고생했던 부분들을 똑같이 겪지 않으셨으면 하는 바람입니다. :)

🙋🏻‍♂️ 자가 진단표

수업 후에는 아래의 개념들에 대해 명확히 알고, 이해하실 수 있습니다.

  • 디스패치큐의 개념에 대해서 명확히 이해하고 있다. (Yes/No)
  • 디스패치큐의 종류와 서비스품질(Qos)에 대한 이해를 하고 있다. (Yes/No)
  • 대부분의 경우 Sync메서드를 사용하면 안되는 이유를 알고있고, 반드시 Sync메서드를 사용해야하는 경우에 대해 차이점을 이해하고 있다. (Yes/No)
  • 디스패치 그룹의 개념에 대해 알고있다. (Yes/No)
  • 디스패치 그룹에서 비동기함수를 다룰 때 주의해야할 점에 대해서 알고 있다. (Yes/No)
  • 디스패치 워크 아이템의 개념을 알고있고, 왜 사용하는지 안다. (Yes/No)
  • 디스패치 세마포어(Semaphore)의 개념을 알고있고, 어떻게 사용하는지 안다. (Yes/No)
  • 객체를 설계할 때, 여러개의 쓰레드가 접근할 수 있는 가능성에 대해 주의해야할 점을 명확히 이해하고 올바른 객체를 설계할 수 있다. (Yes/No)
  • 이미지를 다운로드하는 테이블뷰/컬렉션뷰 타입의 프로젝트를 만들때, 비동기개념을 처리하기 위해 주의해야할 점을 명확히 알고 있다. (Yes/No)
  • 디스패치큐를 사용할때 발생할 수 있는 문제점(여러쓰레드가 데이터에 접근할 때), 특히 경쟁상황(Race Condition)에 대해 명확히 이해하고 있고, TSan사용법(Thread Sanitizer Tool)을 알고 있다. (Yes/No)
  • Thread-safe한 코드의 작성법에 대해 명확하게 이해하고 있다. (Yes/No)
  • 디스패치큐에서 확장된 오퍼레이션(Operation)의 개념, 그리고 차이점에 대해 알고있다. (Yes/No)
  • 어떤 경우에 디스패치큐가 아닌 오퍼레이션큐를 사용해야하는지에 대해 구분하여 사용할 수 있다. (Yes/No)
  • 비동기함수를 다룰 수 있는, 비동기오퍼레이션(AsyncOperation)에 코드에 대해 이해하고 있다. (Yes/No)
  • 오퍼레이션의 주요 기능(작업의 순서 설정, 취소)을 자유자재로 사용할 수 있다. (Yes/No)

📝 강의목차

(크게 GCDOperation부분으로 이루어져 있습니다. GCD에 대해 잘 이해하고 계시더라도, GCD에서 발전된 개념인 Operation(작업 클래스)에 대해서는 생소하실 수도 있습니다. 어떤 블로그나 강의보다 더 명확하고 쉽게, 강의 한 번에 모든 것을 이해하실 수 있도록 구성했습니다.)

🖼️ 그림설명 방식의 예시

(수업에서 쓰이는 다양한 그림 및 도표 설명방식의 예시입니다.)

🌈 강의에서 제공되는 자료 

아래의 여러가지 자료가 제공됩니다.

  1. GCD 관련 정리 PDF - 287장
  2. Operation 관련 정리 PDF - 89장
  3. GCD 관련 설명을 위한 코드(플레이그라운드 파일) - 19페이지(소스파일 제외)
  4. Operation 관련 설명을 위한 코드(플레이그라운드 파일) - 8페이지(소스파일 제외)
  5. iOS 프로젝트 파일 - 8개
  6. 참고 아티클(2개)에 대한 해석본

(위의 폴더 안의 자료들이 모두 제공됩니다.)

🙌 강의 제작에 참고된 자료

아래의 자료들을 참고하였지만, 그림 설명 방식은 모두 직접 설계하였습니다.

  1. 동영상강의(iOS Concurrency with GCD and Operations) - 레이웬더리치(raywenderlich) https://www.raywenderlich.com/3648-ios-concurrency-with-gcd-and-operations
  2. 서적(Concurrency by Tutorials) - 레이웬더리치(raywenderlich) https://store.raywenderlich.com/products/concurrency-by-tutorials
  3. 아티클(Operation and OperationQueue Tutorial in Swift레이웬더리치(raywenderlich) https://www.raywenderlich.com/5293-operation-and-operationqueue-tutorial-in-swift
  4. 아티클(The thread safety of lazy variables in Swift) https://medium.com/what-i-talk-about-when-i-talk-about-ios-developmen/the-thread-safet y-of-lazy-variables-in-swift-b20184ef5a38

🙋🏻‍♂️ 강의 내용이 <강의 제작 참고자료>와 많은 차이가 있나요?

정말 많은 차이가 있습니다.

위의 참고 자료들만으로 단순히 번역 수준의 강의를 만들려고 했다면 이런 강의를 기획하지 않았을 것입니다. 이 주제들에 대해서 효율적이면서 효과적인 설명, 직접적인 그림, 도표 등을 직접 다 손수 PPT로 작성하여서, 실제 쓰레드가 어떻게 동작하고 있는지에 대한 직관적인 이해를 돕고자 최선의 설명 방법을 택했습니다. 위에서도 말씀드렸지만 참고자료를 10번 이상씩 보았고 그 내용들을 모두 다루면서도 설명은 훨씬 쉽고 다양한 그림으로 직관적으로 이해할 수 있도록 하는 것을 목표로 하는 강의입니다.

그리고 이러한 그림의 내용은 풀타임 2달이상의 기간을 거쳐 직접 정리한 내용이므로, (해외자료 포함) 어디에서도 이런 방식의 설명 및 이렇게 자세한 설명은 보실 수 없을 거라 생각합니다. 예를 들어 참고자료(raywenderlich의 동영상강의)에서 단 한줄로 “lazy var와 관련하여도 이런 문제가 있을 수 있습니다.” 하고 제시된 내용이 있었다면, lazy var와 관련된 모든 이슈들을 찾아서 제가 직접 정리하고, 그림으로 직관적인 이해를 도우며 해결책을 제시하고 있습니다.

그림(큰 틀)을 이해하면 코드는 아주 손쉽게 쓸 수 있다는 그런 명제하에, 최대한 그림을 통한 이해 및 코드를 통한 활용으로 밸런스를 유지하려고 하였기에 참고 자료들과는 엄청난 차이점이 있습니다. 참고 자료들과 비교하여 훨씬 자세하고, 직관적이고 풍부한 자료, 그리고 일관성있는 쉬운 설명이 명확한 차별점이라고 말씀드리고 싶습니다.

🐠 제공되는 코드(code) 관련

해당 주제와 관련해 이해를 돕고자 코드 파일이 제공되고, 수업 내용에서도 다루고 있습니다. 제공되고 있는 코드는 라이센스가 허락하는 범위내에서 대부분 레이웬더리치(raywenderlich)의 GCD동영상 강의에서 제공되는 코드의 대부분을 채택하고 있으며(채택부분은 명시되어 있음) 라이센스가 허락되지 않는 부분(레이웬더리치 서적에서 제공하는 코드)에 대해서는 코드를 제가 직접 작성하고,  큰 틀에서 핵심적인 부분은 유사하게 작성되어 제공되고 있는 코드에 대한 신뢰성을 확보하고자 하였습니다.

또한, 제공해 드리는 코드의 이해를 돕기 위해 순서배치를 바꾸고, 더 자세한 설명을 위한 코드들도 다수 추가해 다양한 예시와 함께 본 수업 내용의 이해를 돕고 있습니다.

🙆🏻‍♂️ 강의 관련 피드백은?

최대한 쉽고 자세히 설명드리려고 했음에도 불구하고, 주제에서 기본적인 swift 문법에 대해 사전에 알고 계셔야 하는 부분들이 있습니다. 제 강의 내용에서 이해가 되지 않는 부분들이 있으시다면, 댓글을 남겨주시면 최대한 다시 설명드려 보도록 하겠습니다.


공통적인 질문이 나오는 부분들이 있다면, 해당부분 강의를 추가적으로 찍어서 다시 설명드리도록 하겠습니다. ^^

또 최대한 많은 자료조사를 통해 검증을 하긴 했지만, 혹시나 잘못된 내용이 포함되어 있을 가능성이 있습니다. 혹시나 그런 내용들을 발견하신다면, we.love.code.allen@gmail.com피드백을 주시면 감사하겠습니다. 겸허히 수용하고, 해당부분의 내용을 수정하여 강의를 업데이트하도록 하겠습니다. ^^

또한 강의 주제(GCD/Operation)와 관련하여 좋은 내용의 복습가능한 프로젝트 파일(코드) 등을 공유해주시면,  해당 내용을 반영하여 강의를 업데이트하도록 하겠습니다. 

🤔 수업의 가격 책정 관련

단일주제에 대해 조금은 높은 가격으로 측정이 되어있어 의아해 하실 수 있으나 정말 많은 내용이 담겨져 있어 가격 대비 훨씬 높은 만족감을 얻으실 것임을 말씀드리고 싶습니다. 본 내용을 설명하기 위해 직접 작성한 PDF자료가 GCD 관련 287장, Operation 관련 89장으로 총 376페이지의 자료가 제공됩니다.  (실제 제가 동영상 강의 내에서 설명하기 위한 자료는 코드 제외 PPT 830장 정도로 구성되어 있습니다.)

GCD/Operation과 관련해 해외자료에서 찾을 수 있는 거의 모든 내용을 모두 다루고 있으며, 본 수업 내용에 포함되어 있는 대부분의 그림 및 도표는 제가 직접 작성한 내용입니다. 본 강의를 위해 상당히 많은 시간과 노력이 들어갔고, 그만큼 향후 개발자의 성장과 관련하여 중요한 주제라고 생각했기에, (제 개인적인 관점에서) “이런 자료, 이런 강의가 있었으면 좋겠다” 라는 기준에서 기획하여 만들어진 강의입니다. 

또 개인적으로 생각하기에, 비용을 내고 강의 듣는 결정을 한다는 것은 시간과 비용을 교환하는 일이라고 생각합니다. 비용 대비 해당 주제에 대한 공부 시간을 아끼시는 데는 충분한 역할을 할 것이라고 생각하며, 시간을 아끼시고 더 높은 만족을 얻어가시길 하는 바램입니다. 가격보다 더 높은 만족을 드리기에 충실한 내용으로 보답하도록 하겠으며, 이러한 점을 감안해주시길 정중히 부탁드리겠습니다. ^^

💌 강의 내용 라이센스 관련

본 강의의 내용들은, 제가 조금이라도 그림 등을 참고한 경우에 PDF에 관련 URL주소가 남겨져 있습니다. 그런 경우를 제외한 모든 자료는 제가 작성한 자료이기에, 부분별로 강의의 설명방식을 참고하여 블로그 등에 정리하실 때는 본 강의의 주소를 남겨주시길 정중하게 부탁드립니다.

그럼에도 불구하고, 본 강의의 전반적인 내용을 블로그에 다 담는 것과 강의자료로 쓰이는 PDF파일의 공유는 어떠한 경우에도 금지됩니다.

👀 강의 내용 미리보기 제공

수강을 결정하시기 전에, 강의 스타일과 관련하여 미리 확인해 보실 수 있도록 하였습니다.

  • (섹션 0. 1.GCD/Operation에 앞서)와 관련된 1시간 가량의 미리보기
  • (섹션 10. 1. Operation에 앞서)와 관련된 5분 가량의 미리보기

미리보기가 제공되는 강의들을 살펴보시고 수강을 결정하시면 됩니다. :)

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
Swift언어를 조금 익히신 분
iOS에서 동기 비동기 처리의 기본 개념을 익히시고 싶으신 분
GCD(Grand Central Dispatch)디스패치큐의 개념에 대해 알고싶으신 분
디스패치 그룹에 대해 알고싶으신 분
Operation(오퍼레이션)/OperationQueue(오퍼레이션큐)에 대해 알고싶으신 분
Thread-safety개념에 대해 알고 싶으신 분
초 ~ 중급 iOS개발자
📚
선수 지식,
필요할까요?
Swift언어에 대한 이해
iOS프로그래밍에 대한 이해

안녕하세요
앨런(Allen) 입니다.
앨런(Allen)의 썸네일

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

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

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

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

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


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

we.love.code.allen@gmail.com


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

커리큘럼 총 32 개 ˙ 8시간 9분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 강의 자료
수업 PDF 자료
수업 사용 코드 모음
섹션 2. GCD - 2.디스패치큐(GCD)의 종류와 특성
1) 메인큐 2)글로벌큐와 Qos(서비스품질)에 대한 이해 3) 프라이빗(커스텀)큐 24:16
섹션 3. GCD - 3.디스패치큐(GCD) 사용시 주의해야할 사항
1) 반드시 메인큐에서 처리해야하는 작업 2) sync메서드에 대한 주의사항 3) weak, strong캡처 주의 4)컴플리션핸들러의 존재이유 5) 동기적함수를 비동기함수 처럼 만드는 방법 37:20
번외편: 캡처리스트의 [weak self]에 대한 이해 (추가 강의) 18:43
섹션 4. GCD - 4.디스패치 그룹
1) 디스패치 그룹의 개념 18:00
2) 디스패치 그룹의 사용 (비동기 디스패치 그룹) 19:17
3) (참고)Dispatch Work Item(디스패치 워크 아이템) 09:57
4) (심화) Dispatch Semaphore(세마포어)에 대한 이해 10:51
섹션 5. GCD - 5.(참고) GCD 프로젝트 살펴보기
실제 GCD 프로젝트 사례를 통한 활용 19:47
섹션 6. GCD - 6.(심화) 동시성과 관련된 문제
1) Race Condition (경쟁 상황) 15:53
2) Deadlocks (교착 상태) 04:19
3) Priority Inversion (우선 순위의 뒤바뀜) 11:58
섹션 7. GCD - 7.(심화) Thread-safe한 코드의 구현과 방법
1) TSan 사용법(경쟁 상황 발견하는 Tool) 05:21
2) 시리얼큐와 Sync 27:29
3) 디스패치 배리어(Dispatch Barrier), 4) 객체 설계시 주의할 점 17:48
섹션 8. GCD - 8.(심화) Lazy var와 관련된 이슈들
lazy var와 관련된 이슈들 13:29
섹션 9. GCD관련 총정리
GCD관련 총정리 08:26
섹션 11. Operation - 2.오퍼레이션 / 오퍼레이션큐
1) 오퍼레이션(Operation) 18:45
2) 오퍼레이션큐(OperationQueue) 23:39
3) 블락오퍼레이션(BlockOperation) 10:01
섹션 12. Operation - 3.AsyncOperation(비동기오퍼레이션)
3. AsyncOperation(비동기오퍼레이션) 23:03
섹션 13. Operation - 4.오퍼레이션큐의 주요 기능
1) 순서 관리(종속성 - Dependencies) 22:22
2) 오퍼레이션큐의 작업 취소 28:40
섹션 14. Operation - 5.오퍼레이션 프로젝트 살펴보기
오퍼레이션 프로젝트 살펴보기 20:30
섹션 15. 총정리 - GCD/Operation의 비교와 사용
GCD/Operation의 비교와 사용 13:52
강의 게시일 : 2020년 02월 20일 (마지막 업데이트일 : 2024년 02월 15일)
수강평 총 54개
수강생분들이 직접 작성하신 수강평입니다.
5
54개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
왈왈234 thumbnail
5
지금껏 많은 강의를 들었지만, 대부분의 강의는 초보자를 대상으로 기초만 설명하는 강의가 대부분이었습니다. 하지만 이 강의는 기초적인 부분부터 심화까지 정말 잘 다루신 것 같고, 강의 자체가 설계부터 강의 자료 준비까지 시간을 많이 들이신 게 느껴졌습니다. 다음에 또 이런 강의를 낸다면 재밌게 들을 수 있을 것 같네요! 개인적으로 강의자분께서 함수형 프로그래밍과 Rx와 관련된 강의를 하신다면 한 번 더 결제해서 재밌게 들어볼 것 같습니다. 좋은 강의 감사합니다!
2021-07-31
이상범 thumbnail
5
동기/비동기에 대한 이해가 많이 부족해서 이 강의를 선택 하였는데 현재 듣고 있는 중에도 강좌의 퀄리티가 상당하며 다음 강의는 언제 찍으실까? 라는 생각을 해보는 강좌입니다. 완전 좋습니다. 너무 추천합니다.!
2020-03-02
SGK thumbnail
5
간만에 고퀄리티 강의를 들었습니다. 어려운 주제인데 이미지를 곁들여서 쉽게 설명해 주신 부분이 인상적이었습니다. 다른 강의들 할인 할 때 본 강의는 할인을 하지 않아 섭섭 했으나 완강 후에는 당연하단 생각이 드네요. 좋은 지식 나눠 주셔서 감사하고 건승하십시오.
2021-07-05
전은석 thumbnail
5
일단 강사님께서 비전공자라 그런지 비전공자의 마음을 잘 아시고 설명하실 때 엄청! 자세하게 설명해 주셔서 너무 좋습니다.(저도 비전공자입니다.) 누구나 들어도 이해할 수 있을겁니다. 또한 어디에서도 이렇게 동기 / 비동기에 관련된 내용을 가르쳐주지 않습니다. 통신할 때 무조건 비동기를 써야 한다고 해서 쓰기만 했지, 이유에 대해선 정확히 알 수없었는데, 수업을 듣고 알게되었습니다. 하지만 공부라는게 한번만 듣는다고 완벽한 건 아니잖아요? 근데 이 강의는 한번 사두면 무제한 반복적으로 들을 수 있기에 좋습니다. 감사합니다. (마지막으로 PDF 자료라든가 코드들도 다 있어서 너무 너무 좋아요! 강추!! 개인적으로 1.25배속으로 들었습니다. 중간중간 화질이 낮아지는 현상이 있는데 그건 오른쪽 하단 설정창에 보시면 화질을 선택할 수 있습니다. 제일 높은걸로 선택하시면 다시 돌아옵니다.)
2020-02-25
sujinnaljin thumbnail
5
이 강의를 들으시면 좋은 분들은 다음과 같습니다 - "비동기 처리"라는 말만 들으면 "ㅎ.. 큰일 났다.. 어떻게하지..?" 라고 생각하는 분 - 구글링해서 해결은 하지만, 왜 코드가 이렇게 작성되는 건지, 요구사항에 맞는 로직인건지는 전혀 모르겠는분 바로 과거의 저입니다.. ◠‿◠.. 동시성, 비동기 등을 이해하기 위해 GCD 관련 자료도 꽤 많이 찾아 읽어봤지만 이해도는 제로였고 어떤 상황에서 왜, 어떻게 쓰는지 이해하지 못한채로 계속 개발을 해왔습니다. 그러다가 회사에서 지정한 iOS 개발 필수 강의에 해당 강의가 포함되어 있길래 "이거다!" 하고 듣게 되었고, 1강을 듣자마자 알았습니다.. 이 강의는 오랫동안 미지의 영역으로 남아있던 GCD를 끝내러온 단 하나의 강의라는 것을요.. 매 강의마다 그림과 예시로 설명해주시는데.. 와.. 진짜 그림이 신의 한수고.. 그냥.. 그냥.. 최고됩니다.. 이제 해당 내용을 접하면 그림이 머리속으로 그려져요. 영역과 상관없이 제가 지금껏 수강해온 모든 온오프라인 개발 강의 중 단 하나의 강의를 꼽자면 바로 이 강의라고 자신있게 말할 수 있습니다. 궁금한 점도 질문으로 남기면 길게, 자세히, 친절히 답변해주셔서 강의를 100% 자신의 것으로 가져갈 수 있습니다. 마지막으로 해당 강의는 언어에 상관없이 비동기 / 동시성 이해하는데 큰 도움이 됩니다. 얼마 전에 자바스크립트의 async와 await 관련 글을 읽을 기회가 있었는데, 그냥 술술 읽혀서 와 진짜 이건 갓강의다.. 생각이 다시 한번 들었거든요. 튼... 한마디로 요약하자면.. "최고의 강의 추천합니다!" 앨런님 적게 일하고 많이 버시길.. 들숨에 재력을 날숨에 건강을 얻으시길...........!!!!!!!!!!!!!!!!!!!
2021-02-08