[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)을 이용하여 그냥저냥 이미지를 ..
[iOS/RxSwift] API 통신에서 Single과 Observable
·
iOS/🚨 오류 그리고 해결
Sequence contains more than one element. RxSwift로 api 통신을 통해 로그인 기능 구현 중 다음과 같은 오류를 마주하였다. 이 오류와 함께 dispose가 되어버렸다. 오류를 해결하며 알게된 것들을 찬찬히 정리해보자! ✔️ Single single은 traits의 종류 중 하나로 Observable과 비슷한 기능을 수행한다. ✔️ Traits이란? Observable의 파생된 형태이다. Traits을 통해 필요한 이벤트만 사용하여 코드를 좀 더 직관적이고 명확하게 사용할 수 있도록 도와준다. ✔️ Single의 특성 Single은 항상 한 번의 흐름에 하나의 값 또는 에러를 방출한다. Single이 방출하는 이벤트는 onSuccess와 onFailure 2가지 뿐이..