- This topic has 3개 답변, 2명 참여, and was last updated 4 years, 7 months 전에 by 야곰.
-
글쓴이글
-
-
odyflame참가자
- 글작성 : 17
- 답글작성 : 21
GCD에 대해 알아보자
Grand Cendtral Dispatch
Grand Central Dispatch란?
멀티코어와 멀티 프로세싱 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 GCD기술이다. 내가 쉽게 이해하기로는 백엔드에서 스레드를 관리해주면서 작업을 유동성있게 해주는 기술인 것 같다. 공식 문서와 강의를 들으면서 알 수 있었다.
Dispatch Queue에는 serial Dispatch Queue와 Concurrent Dispatch queue가 있는데 전자는 한번에 하나의 작업만 실행하며 해당 작업이 끝날 때까지 기다리는 반면에 후자는 이미 시작된 작업이 완료될 때까지 기다리지 않고 가능한 많은 작업을 진행한다고 한다.
Dispatch Source는 특정 유형의 시스템 이벤트를 비동기적을 처리하기 위한 C 기반 메커니즘이다.
Operation Queue 는 Concurrent Dispatch Queue와 동일하게 동작하며 Operation Queue클래스에 의해 구현된다고 한다. 디스패치 대기열은 항상 FIFO로 실행하는데 Operation Queue는 다른 요인들을 고려한다고 한다. 처음에는 Operation Queue와 Dispatch Queue의 차이를 몰랐었다. 그래서 코드를 짤 때 무엇을 선택해서 작성해야 하는지 몰랐고 네이버 부스트코스 강의와 공식 문서를 읽어 가면서 차이점을 점차 배운 것 같다.
DispatchQueue를 사용하여 메인에서 UI를 작업하는 과정을 겪은 적이 있는데 효율적으로 코드를 작설할 수 있고 CPU 사용량이 많은 처리를 별도로 해 준다는 데서 그 강점이 드러나는 것 같다.
코드를 짤 때 UI적으로 뭔가를 처리해야 하는 상황이라면 나도 아래와 같은 식으로 짜려는 노력을 하려고 한다.override func viewDidLoad() { super.viewDidLoad() DispatchQueue.main.async { //UI 코딩... } }
부스트코스 5단원 중 DispatchQueue에 대해서 공부했으며 다음에는 Arkit에 대해 알아볼 생각이다.
마치며
요즘은 메인으로 할 것들이 끝나고 나면 부스트코스를 완강하는게 목표이다.
네이버 부스트코스는 몇 년 전에 촬영하신 강의에도 불구하고 개념을 잡고, xcode와 uikit을 손에 익히는데 아주 유용한 강의였다. 그러나 계속 xcode는 업데이트되고 swift의 문법도 변하는데 강의가 예전 버전이라 조금 아쉬운것 같다, 또한 5단원 프로젝트를 진행할려고 했는데 API주소가 없다고 하니 조금 아쉬운 것 같다. 문의를 했으니 조만간 답변이 오기를 기대한다.
마지막으로 마크다운 문법을 좀 익숙해질려고 일부러 많이 써봤는데 연습이 필요한 것 같다…출처
2020-04-04 오후 10:31 #6136 -
야곰키 마스터
- 글작성 : 37
- 답글작성 : 579
GCD는 Operation 보다는 세밀한 조절이 조금 어렵지만, Operation 보다 알아서 처리해주는 것이 더 많아서 초보가 사용하기는 더 쉽죠.
마크다운 문법은 장점이 쉬운거고 단점이 쉬운겁니다… 조금만 써보면 쉽게 익힐것인데, 쓰다보면 조금 더 디테일하게 쓸 수 있으면 좋겠다는 생각이 들죠.
5번 프로젝트 서버는 살아있습니다. 메일로 답변 드렸어요. 또, 기반 주소인 https://connect-boxoffice.run.goorm.io 로는 접속이 안됩니다. 문서를 꼭 잘 읽어보세요.
2020-04-05 오전 2:06 #6152
-
-
글쓴이글
- 답변은 로그인 후 가능합니다.