RxSwift 왜 사용??
·
iOS/💻 iOS Study
RxSwift가 뭐야? Reactive Programming in Swift 반응형 프로그래밍? 데이터의 흐름이나 변경사항에 따라 처리하는 프로그래밍 방식 주변 환경과 끊임없이 상호작용을 하는 프로그래밍 외부의 변화에 끊임없이 반응하고 처리한다. 명령형 프로그래밍은 개발자에 의해 작성된 코드가 순서대로 처리되는 방식이라 하면 반응형 프로그래밍은 순서에 상관없이 이벤트 발생 순서에 따라 처리한다. RxSwift는 Swift를 반응형프로그래밍 방식으로 사용할 수 있도록 만들어진 라이브러리 RxSwift를 왜 사용? ✔️ 비동기 작업을 동기적으로 처리할 수 있다. 우리는 swift에서 비동기 작업이 완료 된 후 처리 해야하는 작업이 있을 때 주로 Notification, Delegate Pattern, Clo..
[Swift] DI 의존성 주입
·
iOS/💻 iOS Study
[23.12.12 SeSAC 수업 내용 정리] 의존성 주입 쉽게 이해하기! 브랜 주방장이 브랜 반점이라는 음식점을 열었고, 휴님은 점심 식사로 브랜 반점의 메뉴를 먹는다. 휴님 → 브랜반점 의존관계 브랜반점 → 브랜 의존관계 하위 모듈인 브랜반점에서 메서드 이름을 변경하는 순간 상위 모듈인 휴님 클래스에서 오류가 발생한다. 하위 모듈인 브랜 클래스에서 메서드 변경 시 브랜 클래스를 사용하고 있는 모든 클래스에서 오류가 발생한다. 오류를 해결하기 위해 해당 클래스를 사용하고 있는 상위 모듈에서 변경 사항을 수정해야 한다. B가 변화했을 때, A에게 영향을 미친다. ⇒ A가 B를 의존한다. 상위 모듈에서 의존하는 인스턴스를 변경했을 때 상위 모듈 내부에서 오류가 발생한다. 휴님(상위 모듈) → 브랜반점(하위..
Codable TypeMismatch 오류
·
iOS/🚨 오류 그리고 해결
문제 커서 기반 페이지네이션 구현 중 next_cursor 값을 디코딩하면서 오류가 발생하였다. next_cursor로 다음 페이지를 계속해서 요청하다가 더이상 다음 데이터가 존재하지 않으면 0값을 가지고 온다. 응답 결과 디코딩 시 결과 값을 담을 구조체에 next_cursor 값의 타입이 두가지 경우가 존재하는 것이다. String 값으로 정의하였더니 다음과 같은 TypeMismatch 오류가 발생하였다. Swift.DecodingError.typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "next_cursor", intValue: nil)], debugDescription: "Expe..
[iOS/Kingfisher] 네트워크 통신으로 이미지 받아오기
·
iOS/🔎 swift 정리하기
Kingfisher를 몇번 사용해보았지만 정확히 무슨 기능이 있는지도 모르는 채 이미지 띄우기만 사용해보았다. 프로젝트를 진행하면서 사용해본 것들을 정리해보려 한다! ✅ 이미지 다운로드 요청 시 헤더값을 추가하여 요청하기 프로젝트 진행하면서 서버에 저장되어 있는 이미지를 주소값을 사용하여 받아와야 했다. 분명 url도 맞는데 사진이 뜨지 않아서 오류를 탐색한 결과 kingfisher를 사용하여 서버에 이미지를 요청할 때 access token과 서버 요청을 위한 key값이 필요했던 것이다.. 기존 네트워크 통신과 같게 kingfisher로 이미지 요청 시 헤더 값을 지정하면 된다! 🔎 해결 owner.mainView.imageView.kf.setImage(with: url)을 이용하여 그냥저냥 이미지를 ..