---
# System prepended metadata

title: 사전과제
tags: [README]

---

###### tags: `README`

# 사전과제

## 📑 개발환경

- Xcode 15.0.1
- 실기기 iPhone12Promax
- 시뮬레이터 iPhone15pro, iPhoneSE
- 최소버전 : iOS 15.0
<br>
## 🔑 핵심기술
- **`UI 구현`**
    - SwiftUI
- **`비동기처리`**
    - Combine
    - DispatchQueue
- **`로컬 푸시`**
    - UNUserNotification
- **`실시간 데이터처리`**
    - Timer
<br>	
## ⚙️ 적용한 기술

### ✅ 로컬 푸시알림
- 입/출금이 발생할 때, 로컬 푸시알림이 오도록 설정했습니다. 

### ✅ 그래프 애니메이션
- 프로토타입에 요구된 애니메이션을 적용했습니다.
- 그래프 탭시, 가장 높은 값을 표시하도록 설정했습니다.
### ✅ 폰트 적용
- 피그마에서 사용된 Poppins 폰트를 적용했습니다.

<br>

## ⚠️ Trouble Shooting

### 🛠 로컬 리소스 용량 부하
- Mock데이터 양이 방대하여 어떻게 처리할지 고민했습니다.
- 화면에 필요한 데이터만 받아오도록 offset을 적용하여 데이터를 불러왔습니다.
- 비용이 많이드는 연산을 비동기적으로 처리하기 위해 DispatchQueue.global() 을 사용했습니다.
- JSON Decoding 과정에 UI 끊김현상이 생겨 앱이 켜지고 바로 Decoding 하도록 처리했습니다.

### 🛠 그래프 데이터 정제
- 그래프의 x축 y축에 적용될 데이터에 대해 고민했습니다.
- x축 단위를 day 단위로 정의했습니다.
- y축의 값은 해당 일의 모든 expense액수를 더한 값, 모든 income을 더한 값 을 사용했습니다.

<br>