SWIFT(106)
-
[iOS] 중재자 패턴 (Mediator Pattern)을 활용한 우리 팀만의 아키텍처가 만들어진 과정 (feat. View-Model-Service)
0. 들어가기에 앞서MV, MVC, MVVM, TCA, VIPER, Clean Architecture 등등 iOS 개발에 사용될 수 있는 아키텍처 패턴은 정말 많습니다.하지만 중요한 것은 "어떤 아키텍처를 사용해봤냐?"가 아니라 "왜 그 아키텍처를 선택했냐?"에 대한 대답입니다.소프트웨어에서 사용하는 패턴 (디자인 패턴, 아키텍처 패턴 포함)은 모두 특정한 문제를 해결해주기 위한 방법임에는 틀림없지만, 현 프로젝트의 볼륨이나 방향에 따라 때로는 오히려 코드를 복잡하고 / 진입 장벽을 높게만 만들 수 있기 때문입니다.즉, 아키텍처 사용에는 이유가 필요하다는 것입니다.그 이유에는 현재 프로젝트의 규모, 동료 개발자들의 역량, 개발기간과 이후 유지보수 가능성 등이 종합적으로 고려되어야 하죠.예를 들어, 작은 ..
2025.08.25 -
[Apple Developer Academy @ POSTECH] #5 - 사람공부
🍎 Apple Developer Academy @ POSTECH 4기 : Challenge 3 회고 (2025.05.08 - 06.13) [Apple Developer Academy @ POSTECH] #4 - 그래서 나는 무엇을 배웠지?🍎 Apple Developer Academy @ POSTECH 4기 : Challenge 2 회고 (2025.04.07 - 04.25) [Apple Developer Academy @ POSTECH] #3 - 처음 경험해본 새로운 세계, CBL (Challenge Based Learning)🍎 Apple Developer Academy @ POSTECH 4기 : Challenge 1 회mini-min-dev.tistory.com 아카데미가 시작된 지 어느덧 세 달..
2025.06.21 -
[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