일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs
- 정렬
- Algorithm
- 알고리즘
- 파이썬
- error
- 파이썬 풀이
- Python
- Til
- swift
- SwiftUI
- 앱개발
- Android
- 백준 온라인 저지
- Swift공부
- 그리디 알고리즘
- greedy algorithm
- 백준온라인저지
- BFS
- 공부
- iOS개발
- 안드로이드 공부
- UIKit
- ios
- Autolayout
- Clean Architecture
- Kotlin
- 오토레이아웃
- 프로그래머스
- 알고리즘 공부
- Today
- Total
목록Til (5)
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..

문제 상황맥락 에러(ContextualError) 도입 후 문제 발생맥락 에러를 통해 에러의 발생 위치와 상황을 명확히 하려 했으나, 일부 레거시 코드로 인해 에러가 올바르게 전달되지 않고 비효율적으로 처리되고 있었습니다.레거시 코드로 인한 의존성 및 책임 문제레거시 코드가 여전히 존재하면서 의존성 규칙(Clean Architecture 원칙)이 어긋났고, 각 계층의 책임이 명확히 분리되지 않은 상태였습니다.이러한 문제로 인해 에러 처리 체계의 일관성이 떨어지고, 코드 유지보수 및 확장성이 저하되는 상황이었습니다.해결방법레거시 코드 제거 및 의존성 재정비데이터 계층(Data Layer)에서 발생한 에러(DataError)를 도메인 계층으로 전달할 때, 불필요한 변환 로직과 중복된 에러 처리를 제거도메인 ..
문제 상황CheckButton을 포함한 UITableViewCell에서 다음과 같은 개선 요구사항이 있었습니다:현재는 체크 버튼을 눌러야만 셀 아이템이 선택되는 구조.체크 버튼의 크기가 작아 사용자 입장에서 누르기 불편하며, 체크 버튼 외의 영역(title 등)을 클릭해도 셀 아이템이 선택되도록 개선이 필요.이에 따라 Cell의 contentView를 클릭해도 checkButton을 클릭한 것과 동일한 로직이 실행되도록 연결하는 작업을 진행했습니다.기존 문제기존에는 contentView의 클릭 이벤트와 checkButton.rx.tap 이벤트를 별도로 관리했기 때문에 코드 중복이 발생했습니다.또한, 선택된 Cell을 직접 찾아야 하는 로직이 추가되어 비효율적이고 복잡했습니다.두 이벤트를 동일하게 처리하는..