얼마전 스승님과 "1주일에 1번씩 블로그 포스팅을 할 수 있도록 노력해보겠다."는 약속을 하였습니다. 그동안 공부하며 기능적인 내용들보다는 되게 많이 고민하고, 개인적으로 어렵다 느꼈던 내용들을 위주로 정리해 두려 합니다. 22년 첫번째 포스트 주제! 바로 GCD!!! ( 비동기로 하나의 데이터를 작업할 때 사용법 ) 얼마 전 API주소의 이미지들을 URLSession을 사용하여 가져오고, 이를 이미지배열에 하나씩 넣고 있었습니다. 근데 갑자기 쓰레드에서 오류가 나면서 이미지가 안들어 오더군요.. 오류가 난 이유가 비동기로 실행되는 작업들은 각각 다른 쓰레드에서 실행이 되고 (1번 쓰레드의 작업이 빨리 끝난다면 해당 쓰레드가 재활용 될 수 있음 ) 만약 작업내용이 하나의 자원에 접근하고 있다면!? cla..
보호되어 있는 글입니다.
저번 포스트에서의 목표를 그대로 RxAlamofire를 적용시켰습니다. RxAlamofire, RxCodable, RxSwift를 사용하였습니다. AirModel 클래스를 생성합니다. 방식은 저번과 같지만 Rx를 사용할 수 있다는 장점이 있습니다. Rx 사용 시 비동기로 받는 데이터를 조금 더 편하게 수정, 전달하고 사용할 수 있습니다. 이번엔 Rx를 사용하는 만큼 프로토콜 대신 PublishSubject를 사용하여 비동기로 데이터를 전달하겠습니다. RxAlamofire.requestData를 사용하여 이전과 같이 메소드, url, 파라미터를 전달합니다. 이후 Observable에서 저희는 Data를 사용하겠습니다. ( .map{$1} ) .map을 이용하여 json데이터를 파싱합니다. ( RxCodab..