분류 전체보기(232)
-
[iOS] 토스터 앱의 에러 처리 (Error Handling) 흐름을 소개합니다 (feat. Moya, Combine, networkFlatMap)
저 몰래 천천히 야금야금 진행하던 코드 리팩토링이 거의 마무리 단계에 진입했습니다!"중복 코드의 최소화" 그리고 "명확한 데이터 처리 흐름"을 목표로 코드 리팩토링을 계속 진행해왔고,블로그로도 (언제가 될지는 모르겠지만) 차근차근 한 주제씩 다뤄보겠습니다! 오늘은 이 중 에러 처리 (Error Handling)에 집중해볼거구요.Combine 적용한 선언적 데이터 스트림 흐름의 ViewModel 구조 (Input-transform-Output 흐름) 적용하기Completion 핸들러 기반 네트워크 비동기 처리 메서드 -> Combine 기반 네트워크 비동기 처리 메서드로 변경 (코드 일관성 증대)네트워크 메서드에서 발생하는 에러 처리 흐름 (Error Handling Stream) 구조화이벤트 브로드캐스..
2025.06.08 -
[GCD] 메인 스레드에서 DispatchQueue.main.sync를 사용하면 안되는 이유
☑️ 데드락 (Deadlock) 발생 상황을 이해해보자메인 스레드에서 DispatchQueue.main.sync를 호출할 때 아래와 같은 데드락 (Deadlock, 무한 대기 상태) 에러가 발생합니다.우선 데드락이 발생하는 아래 코드의 의미를 정확하게 이해해보겠습니다.별도의 설정을 하지 않으면, 기본적으로 우리의 코드는 메인 스레드 (main)에서 동작합니다. -> 해당 코드도 메인 스레드 위에서 동작 중!DispatchQueue.main : main Queue로 작업을 전달한다는 의미입니다. 메인 큐는 기본적으로 Serial Queue (직렬 큐)이기에 동일한 스레드인 자기자신, 메인 스레드 (main)로 작업 (Task)이 할당되겠군요.sync : 동기적인 작업 (= 작업을 보내고 끝날 때까지 기다림..
2025.06.06 -
[Swift] 당신이 싱글톤 (Singleton)을 사용하기 전에 반드시 알아야 하는 것들
💡 싱글톤 패턴(Singleton Pattern)은 앱에서 전역적 (global)으로 접근 가능한 하나의 "공유 클래스 인스턴스 (shared instance of a class)"를 만들어 사용하도록 하는 디자인 패턴이다.예전 제 글 중, Swift 디자인 패턴 중 싱글톤 패턴 (Singleton Pattern)에 대해 설명했던 내용이 있었습니다.아래에 첨부되어 있는 글의 내용은 타입 프로퍼티 (static 키워드)부터 시작해 실제 싱글톤 패턴을 Swift 코드로 구현하는 방법, 그리고 싱글톤의 가벼운 장단점과, Apple이 채택하고 있는 싱글톤의 사례 (UserDefaults.standard, Notification.default 등등)까지 알아봤었죠. ✔️ 싱글톤 패턴이 무엇인지 아직 개념에 대한..
2025.06.05 -
[Swift] COW (Copy-On-Write) 개념 완전 정복하기
요즘은 메모리 관리와 관련된 내용을 공부 중입니다.Swift에서 메모리와 관련된 가장 핵심 개념은 ARC (Automatic Reference Counting)라고 볼 수 있지만, 오늘 글에서는 CS 기초 개념쪽에 더 가까운 내용을 다루게 갈 것이구요. 앞으로도 메모리 관리나 디버깅과 관련된 다소 생소(?)할 수 있는 글들이 많이 올라올 것 같습니다!오늘은 그 메모리 개념의 가장 기초적인 가벼운 개념 COW (Copy-On-Write)부터 만나러 가보시죠!예전 Swift 메모리와 관련된 글은 아래 링크를 들어가시면 확인할 수 있습니다.[Swift] ARC (Automatic Reference Counting) 완전 정복하기[Swift] [weak self] 이젠 제대로 알고 사용하자! (feat. ARC..
2025.06.03 -
[SwiftUI] SwiftUI의 View는 왜 Struct (Value Type)로 설계된 것일까?
이 글을 읽기 전에 알고 있어야 하는 개념, 즉 모른다면 참고해서 보면 좋을 글을 아래에 첨부합니다😊 [Swift] 구조체(Struct)와 클래스(Class) 완전 정복하기: 기본 개념부터 프로퍼티, 인스턴스, 상속까지이번 글에서는 구조체(Struct)와 클래스(Class)에 대해 아주 자세하게 다뤄보려 한다. 처음 Swift를 배우는 입장도 아닌데, 이제 와서 이 내용을 포스팅하는 이유가 뭐냐고 물어본다면... 음... 몇 번mini-min-dev.tistory.com [iOS] 내가 보려고 정리하는 개발 용어 사전 (3) - 명령형 프로그래밍(Imperative Programming) vs 선언형현재 이 글을 쓰고 있는 2024년 기준, iOS 개발을 배우고 싶다고 마음을 먹게 되면 선택할 수 있는..
2025.05.07