본문 바로가기

회고/코드스쿼드 마스터즈💻

코드스쿼드 마스터즈 뉴스스탠드 회고

코드스쿼드 마스터즈 두번째 프로젝트 NewsStand 📚

프로젝트 시작

첫 번째 개인 프로젝트 Amazon이 끝나고 두 번째 프로젝트 NewsStand를 진행했다. Amazon 프로젝트에서 아쉬운 점이 많이 있었지만, 새로운 미션에 대한 기대감과 설레임이 많았다. 미션 내용을 처음 확인했을때는 걱정도 많이 되었다. 크롤링부터 OOP까지 익숙하지 않은 단어들이 많았고 이전 학습과 Amazon 미션 때와는 달리 설계와 feature list 작성에도 많은 시간이 필요해보였다.

 

하지만, 새로운 미션에 대한 기대감과 설레임을 먼저 기억하고 두려움보다는 결국 해낼 수 있다는 자신감으로 스스로를 무장하고 프로젝트를 시작했다.

배운 점

Amazon 프로젝트를 통해서도 많이 배웠지만, 이번 프로젝트가 훨씬 재미가 있었다. 상태 관리라는 것을 처음 접해보고 MVC 패턴, 옵저버 패턴, flux 패턴 등등 많은 아키텍쳐가 있다는 것도 알게 되었고, 상태 흐름에 따라 설계를 해보는 일을 처음해봤다. 

 

나는 NewsStand를 진행하면서 옵저버 패턴을 적용해서 설계를 하고 애플리케이션을 만들었는데, view와 model 간에 역할을 분배하고 로직을 작성하는 부분에서 많은 어려움이 있었다. "옵저버로 구독을 하게 되면 모든 view가 렌더링이 될텐데, 렌더링을 하는 view에 대한 조건 처리는 어떻게 해야하며, model과 view 중에 누구의 역할로 정해야할까?", "view가 순수하다는 것은 과연 어떤 의미일까?" 등등 많은 고민을 했다.

 

특히, NewsStand에서 현재 그리드뷰, 리스트뷰에 대한 상태, 그리고 현재 page에 대한 상태 등등 관리해야할 상태들의 목록을 정하고 model의 단계를 나누는 부분에 많은 고민이 있었는데, 첨에는 각각 그리드와 리스트에 대한 model을 따로 두는 방법을 사용했지만, 현재 뷰와 페이지에 대한 상태만을 다루는데 model을 너무 나누었다는 생각이 들었고, 결국 현재 페이지에 대한 상태를 관리하는 하나의 model을 만들었다.

 

사실, css 등 세부적인 기능 몇가지를 못한 것은 너무 아쉬웠지만, Amazon 프로젝트보다는 더 많은 기능들을 구현해냈고, 내가 설계하고 설계를 수정하고 로직을 변경해나가는 과정에서 많은 것들을 배울 수 있었기 때문에 Amazon 프로젝트보다 재밌게 프로젝트를 진행했다.

좋았던 점

먼저 설계가 항상 중요하다는 마스터 크롱의 말씀을 듣고 설계도 직접 해보고 또 수정도 해보면서 단순히 애플리케이션을 만드는 것이 아닌 개발자처럼 생각하고 행동하려고 노력했다는 점에서 너무 뿌듯한 프로젝트였다.

 

그리고 크롤링 부분이 처음에 매우 생소했고, JSON 서버를 사용하는 것도 처음이었지만, 주변에 좋은 동료들한테 물어보고 또 공유하면서 프로젝트를 진행했던 점이 좋았다. 특히 옵저버 패턴에서의 model과 view를 분리하고 하나의 model에서 어떤 상태를 관리할까라는 고민에 대해서 시저와 훈딩에게 많이 물어봤는데, 언제나 친절하게 답변해줘서 너무 고마웠다.🙇‍♂️

 

또, NewsStand 프로젝트를 시작하면서 DeepDive 책을 읽는 스터디도 함께 시작했었는데, 구글링을 통해서 배운 것보다 더 많은 것들을 새롭게 알게된다는 기분이 들어 좋았고, 프로젝트와 DeepDive 모두 한번도 빠지지 않고 참여했다는 내 자신을 칭찬해주고 싶다.

아쉬운 점

Amazon 프로젝트보다는 프로젝트의 완성도가 높았지만, 여전히 몇 가지 구현해보지 못한 기능들이 아쉬웠다. 물론 마스터 크롱도 여러분들이 지금 만들기에는 큰 규모이기 때문에 너무 결과물물에 집착하지 말라고는 했지만, 항상 더 나은 방향으로의 고민이 많다보니 결과가 부족한 점에 대해서는 스스로 반성을 해야겠다.

 

또, 학습내용에 대한 기록을 더 잘해야겠다는 생각이 든다. 노션에 많은 내용들을 정리해두기는 했지만, 학습 내용들을 내 것으로 만들어서 블로그에 정리해서 올려야겠다.

 

그리고 Amazon 프로젝트 때 배운 점처럼 다른 사람과 진행상황을 비교하지 않는 습관을 가지려고 노력했고, Amazon 프로젝트 때보다는 남들과의 비교보다는 내가 하고자 하는 것들에 더 집중했다. 그래도 아직은 다른 사람과 비교하며 초조한 마음을 갖는 경우들이 있었다보니 조금 더 노력해서 나의 성장에만 집중할 수 있도록 해야겠다.

시도해볼 것

이제 개인프로젝트는 끝났고, 팀 프로젝트가 시작된다. 백엔드 동료분들과 친해지는 것과 협업하는 것도 기대되고 새롭게 알게되는 지식들이 기대도 된다.

 

그리고 바닐라 JS가 아닌 리액트와 타입스크립트도 사용하게 되는데, 잘 적응할 수 있도록 미리 공부를 하고 프로젝트를 시작해야겠다는 다짐과 개인 프로젝트가 아닌만큼 나의 동료가 되는 팀원과 잘 협업할 수 있는 사람이 되야겠다.

 

블로그에 학습 내용에 대한 글도 꾸준히 작성하고, 미래의 나에게 내가 어떻게 성장했는지에 대한 회고와 내 생각들을 기록해서 남겨줘야겠다. 

마무리

마지막으로 새로운 프로젝트를 하면서 많이 성장했고 노력했던 나에게 칭찬과 부족한 점들은 보완해나갈 수 있다는 자신감을 심어주고 싶다. 운동도 꾸준히 해서 건강관리도 하며 마스터즈 과정을 누락없이 마치고 싶다 💪