🐣 정주는 회고 중 :]/네이버 부스트캠프 웹・모바일 8기

[회고] 네이버 부스트캠프 웹・모바일 8기 멤버십 6주 차 회고 & 기술적 고민

유정주 2023. 10. 17. 10:43
반응형

서론

벌써 6주 차가 되었네요.

6주 차에는 새로운 시도를 많이 해봤습니다.

다른 분들의 MVVM 패턴을 보면서 이렇게도 사용할 수 있구나, 이런 방법도 있구나 많이 배웠어요.

 

 

MVVM + state

첫 번째 시도한건 MVVM에 state를 적용하는 것입니다.

기존에는 MVVM의 데이터를 바인딩해서 사용했습니다.

이렇게 사용하니 데이터 흐름을 파악하기 어렵다는 단점이 있었습니다.

View가 예상과 다르게 나올 때 어디가 문제인지 파악하기가 어려웠어요 ㅠㅠ

 

state를 적용한 분의 코드를 보니

ViewController가 특정 state일 때 이렇게 뷰가 변하는구나!라는 흐름이 한 눈에 보여 좋았습니다.

저도 데이터를 직접 바인딩하는 게 아니라 간단하게나마 state를 적용했더니 흐름이 좀 개선이 되더라고요.

 

처음 적용해본거라 많이 엉성했지만, 그럼에도 흐름이 개선된 점이 보였습니다.

역시 다른 분의 코드를 많이 봐바야겠다고 느꼈어요.

 

 

MVVM + state + action

state를 적용한 코드의 피드백으로 "state에 action이 섞여있네요."라는 피드백을 받았습니다.

state에 isLoading같은 상태 말고도 selected, deselected같은 ViewController의 액션도 섞여 있었어요.

 

state와 action을 분리하기 위해 ViewController -> ViewModel로 가는 흐름은 action이라는 열거형으로 처리해 주었고,

state에는 ViewModel -> ViewController로 가는 흐름만 남겨두었어요.

 

이렇게 개선하고 나니 흐름이 단방향으로 바뀌는 걸 느꼈습니다.

VC -> VM으로는 action을 통해 들어가고, VM -> VC는 state를 통해서만 나오는거에요.

흐름을 단방향으로 바꿔서 처음 MVVM을 적용하며 느꼈던 "흐름을 파악하기 어렵다"는 단점이 해소할 수 있었습니다.

 

MVVM이 정형화된 구조가 아니라 사람마다, 프로젝트마다 구조가 다르다는 것을 깨달은 경험이었습니다.

 

 

마무리

6주 차에는 MVVM과 관련된 고민을 많이 해봤던 거 같습니다.

항상 쓰던 방법이 아니라 다른 분들의 코드를 보면서 새로운 도전을 했다는 점에서 뿌듯한 주차였네요.

 

사실 더 많은 일이 있었지만 이건 다음 주차 회고에서 같이 다뤄보겠습니다.

 

감사합니다!

반응형