일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 그리디 알고리즘
- Kotlin
- iOS개발
- greedy algorithm
- Python
- 공부
- swift
- 백준온라인저지
- 백준 온라인 저지
- Til
- Autolayout
- 정렬
- Swift공부
- 파이썬 풀이
- 앱개발
- SwiftUI
- 알고리즘 공부
- 알고리즘
- BFS
- dfs
- UIKit
- 안드로이드 공부
- Android
- 오토레이아웃
- Clean Architecture
- 파이썬
- ios
- 프로그래머스
- error
- Algorithm
- Today
- Total
목록IOS App Programming (53)
Tori의 개발 공부

🛠 문제 상황앱을 출시한 이후, 홈 화면에서 게시글 리스트가 늦게 로딩되는 현상을 발견하였습니다.특히 네트워크가 불안정한 환경에서는 빈 리스트 화면이 먼저 보여지고, 몇 초 뒤에야 게시글이 나타나는 문제가 발생하였습니다.이러한 구조는 사용자에게 앱이 멈춘 것 같은 인상을 줄 수 있으며, 데이터가 없는 줄 착각하는 사용자 경험을 유발할 수 있다고 판단하였습니다.또한, 앱 전체적으로 API 호출 횟수를 최대한 줄일 수 있는 방법에 대해서도 함께 고민하게 되었습니다.✅ 해결 방법FileManager 기반의 JSON 캐시를 도입하여, 게시글 리스트를 디스크에 저장하도록 하였습니다.현재 게시글 리스트에 우선적으로 적용했지만, 이후 확장성을 위해 CacheType enum과 CacheService 유틸 클래스를 ..
🛠 탐구 계기ReactorKit을 사용하면서 Action, Mutation 열거형(enum) 내부에서 case inputChanged(String) 처럼 괄호 안에 값이 들어가는 형태를 자주 보게 되었습니다.처음에는 단순한 문법이라고 생각했지만, “왜 case에 괄호가 붙을까?”라는 의문이 생겼고, 이를 계기로 Swift의 연관값(Associated Value) 개념을 알게 되었습니다. ✅ 내용 정리리액터킷의 형식 기반으로 정리하였으며, 열거형과 연관값의 내용이므로 리액터킷의 자세한 코드나 설명은 생략합니다.열거형(enum)의 기본 형태Swift에서 열거형은 다음과 같은 형태로 자주 사용됩니다:enum Direction { case up case down case left case..
에러 핸들링은 소프트웨어 개발에서 피할 수 없는 과제입니다.하지만 이전 프로젝트들에서는 에러 처리 방식은 단순히 “에러 발생 시 메시지를 출력하고 멈춘다”는 수준에 머무르는 경우가 많았습니다.이렇게 단순화된 접근은 문제 해결에 필요한 정보를 제공하지 못하거나, 사용자 경험(UX)을 저해하는 결과를 초래할 수 있습니다.이번 글에서는 클린아키텍처 구조에서 맥락(Contextual) 에러와 프레젠테이션(Presentation) 에러를 도입하여 에러 핸들링 체계를 개선한 사례와 그로 인한 효과를 공유합니다.단순한 에러 처리의 한계처음 프로젝트를 시작했을 때 저희는 DataError만을 사용해 에러를 처리했습니다.예를 들어 네트워크 통신 에러, 디코딩 인코딩 에러 등 Data Layer에서 발생하는 에러들에 관해..
문제 상황프로젝트를 진행하면서 팀원들의 개발 일정 상 앱의 디자인을 어느 정도 진행 된 뒤 API 연결에 들어가게 되었다.그러다 보니 연결이 제대로 되었는지, 데이터는 제대로 받아오는지 확인하기 위해 클린아키텍처 구조 상 DataSource (API 연결부)부터 Repository, UseCase를 지나 Presentation 레이어의 뷰모델, 뷰 까지 모두 연결되어야지만 테스팅이 가능했다.그런데 이 때, 앱의 구현이 진행됨에 따라 프레젠테이션 레이어 연결 시 변경해줘야 하는 부분들이 점차 늘어났고, 테스팅 실패 시 최악의 경우 전체 구조를 변경해야 하는 경우도 있었다.따라서 이 부분에서 불편함을 느껴 단계별로 DataSource 의 API 테스트, Repository의 DTO -> Entity 변환 테..