---
# System prepended metadata

title: 20220210 iOS 일일 개발 일지
tags: [develop, '20220210']

---

20220210 iOS 일일 개발 일지
===
###### tags: `develop`, `20220210`

[TOC]

####  keyChain Wrapper

User Access Token과 RefreshToken을 조회하고, 유효한 값인지 확인하고, 마이페이지에 접근할 수 있도록 하고자 함.

#### Network Error Handling에 대한 부분 해결 
현재 로그인 요청을 하고, accessToken과 refreshToken을 제공 받고 있음.
하지만, 제대로 제공받지 못한 상황에 대한 error Handling이 전혀 이뤄지고 있지 않음.

간단한 사용을 위한 링크: https://medium.com/ios-os-x-development/securing-user-data-with-keychain-for-ios-e720e0f9a8e2

### 앱 초기 실행 시 과정에서 발생할 수 있는 문제들.

realm에 정의 되어 있는 변수와 같은 방식으로 keychainWrapper을 활용하는 것은 어떨까 생각이 든다.
![](https://i.imgur.com/f06EIHG.png)


myPage 구현 중 레이아웃이 잘못 적용되었는지. cell 정보가 제대로 나오질 않는다.
2월 11일 수정 필요.
![](https://i.imgur.com/HzCq1r9.png)


에러 처리에 대한 부분.

사용자에게 발생한 에러에 대한 동일한 처리가 필요할 경우, 분기를 줄이기 위해 usecase 별로 역할을 나누고,

```swift=
DispatchQueue.main.async { [weak self] in
    self?.view.makeToast(error.userMessage, duration: 1.5, position:.center)
}
```

```swift=

// 에러 분기처리에 대한 부분
if error == .userNotAccepted {
    DispatchQueue.main.async { [weak self] in
        self?.view.makeToast("이메일 또는 비밀번호를 확인해주세요.", duration: 1.5, position: .top)
     }
} else if error == .networkUnconnected {
    DispatchQueue.main.async { [weak self] in
        self?.view.makeToast("서버 문제로 로그인에 실패했습니다.\n 개발자에게 문의해주세요.", duration: 1.5, position: .center)
    }
} else if error == .needEmailVerified {
    DispatchQueue.main.async { [weak self] in
        self?.view.makeToast("이메일 인증이 필요합니다.\n인증을 진행해주세요.", duration: 1.5, position: .center)
    }
}
```
