안녕하세요 레이!
@sungju-kim @sally4405 입니다!
decoding error 해결하는데 대부분의 시간을 쏟아가지구 작업 내용이 많지 않네요!
Convention에 여러모로 만전을 기하고 있지만 생각보다 쉽지않습니다 ㅠㅠ
# 작업내용
- [x] Convention 정리
- [x] entity 필요한 프로퍼티만 남기고 정리
- issue, label, milestone
- [x] Entity -> Domain 구현
- [x] api로 받아온 데이터를 이슈 뷰에 연결
# 결과물
|Github Login|로그인 후 이슈 목록 화면|label 제외하고 api 적용한 issue 목록|
|:---:|:---:|:---:|
|<img width="320" src="https://user-images.githubusercontent.com/45891045/174039413-94a1ab02-f07c-4cc7-a8c1-3c61ef4d4e3c.gif">|<img width="320" src="https://user-images.githubusercontent.com/45891045/174039532-6bc831aa-e0c4-4914-8e98-899c063d0398.gif">|<img width="320" src="https://user-images.githubusercontent.com/45891045/174985507-b6b54dda-366b-4ea2-93cb-3509fba87aa5.gif">|
# 고민과 해결
- intrinsicContentSize 문제

UILabel의 경우 intrinsicContentsize가 있기때문에 따로 height를 잡아주지 않아도 되었습니다.
- issue entity decoding 문제
- issue 디코딩 과정에서 디코딩 fail이 반복적으로 있었습니다.
- insomnia를 통해 api를 호출했을 때는 정상적으로 데이터가 받아와져 JSONDecoder.decode 과정에서 문제가 있을 것으로 판단했습니다.
- 기존에 IssueEntity 에서 `milestone: Milestone` 으로 사용하고 있었는데, milestone 값을 디코딩하는 과정에서 nil값은 `Milestone`으로 디코딩이 되지 않아서 생기는 문제였고 `milestone: Milestone?` 으로 변경하여 옵셔널로 선언했습니다.
- 이후 페어가 시뮬레이터를 돌릴 때 뷰가 그려지지 않는 문제가 또 있었는데, body나 labels도 nil인 경우 decoding이 안될 수 있다고 판단, body, labels도 옵셔널로 바꾸어 문제를 해결했습니다.