내용 정리
이번 주차의 개인 과제는 Challenge와 Advanced의 두 가지 난이도가 있었다. 둘 중에서 골라서 과제를 진행하면 되는데, Challenge 과제가 조금 더 재밌을 것 같아서 Challenge 과제에 도전해 보기로 했다.
Challenge 과제는 포켓몬 도감 앱을 만드는 과제이다. API 통신으로 포켓몬의 데이터와 이미지를 가져오고, RxSwift를 활용하여 데이터 바인딩을 통해 UI를 업데이트 하거나 데이터를 업데이트 하는 작업을 필요로 한다.
UI 구현은 무척 간단하지만, RxSwift를 잘 활용해야 하기 때문에 난이도가 꽤 높을 것이라고 생각했다.
게다가 MVVM 아키텍처 패턴으로 앱을 구현해야 하기 때문에 신경 써야할 부분도 꽤 많았다.
필수 구현 내용은 아래와 같다
MVVM 아키텍처 패턴으로 프로젝트 구현하기NetworkManager 모델을 만들어 프로젝트 공용 API 담당 객체 생성RxSwift를 통한 데이터 바인딩
개인과제를 시작하기에 앞서, 프로젝트의 구조를 먼저 설계하기로 하였다.
그 중에서도 가장 헷갈리고 실수하기 쉬운 MVVM 아키텍처 패턴에 대한 구조를 먼저 설계하고자 하였다.

MVVM 패턴은 Model, View, ViewModel로 구성되어 있어 데이터 바인딩 등을 통해 뷰를 업데이트 하는 방식이다.
이에 맞추어 각 파일들의 역할을 나누고 그것을 시각화하여 나타내 보았다.
MVVM 패턴에 맞춰 역할을 분리했으니 이제 어떻게 UI를 구현할 것인지 설계하고자 했다.
예시로 주어진 이미지를 보며 어디에 어떤 UI가 필요한지 분석하고 이를 시각화 하였다.

그리고 위의 시각 자료를 바탕으로 클래스간의 관계를 표현하기 위한 다이어그램을 만들었다.

여기까지 완료했을 때 한 가지 아쉬움이 생겼다.
Challenge 과제도 무척 재밌어 보이지만, Advanced 과제도 무척 재밌어 보였기에 둘 중 하나만 택해야 하는 상황이 아쉬웠다.
둘 다 하기에는 내 역량이 부족했기 때문에 어쩔 수 없는 선택이었지만 그래도 아쉬웠다.
그래서 차라리 시간이 여유가 되면 Challenge 과제를 업그레이드 시키자고 생각했고,
이에 대한 구조를 미리 만들어 보았다.
| UI Image | UI Structure |
|---|---|
| MVVM 구조 |
|---|
![]() |
| 프로젝트 전체 구조도 |
|---|
![]() |
다 만들고 나니 과연 다 해낼 수 있을까 걱정이긴 하지만,
또 의욕이 불타오르기도 한다.
이제 위에서 만든 자료들을 바탕으로 과제 구현을 시작한다(내일부터)
오늘은 개인과제를 시작하기 전
구조설계를 먼저 진행해 보았다.
욕심이 조금 과한가 싶기도 하지만, 하고 싶은게 있을 때
해봐야 실력도 늘고 열정도 계속된다고 생각한다.
열심히 하면 다 할 수 있겠지라는 마음으로 해보려고 한다.