두 번째 팀프로젝트가 시작되었다! 지난번보다 더 성숙하게 잘 해나갈 수 있을까?
이번 프로젝트의 주제는 CRA 로 뉴스피드 앱을 만들어보는 것이다. 뉴스피드의 정의를 간단히 내려보면
사용자에게 최신 소식이나 정보를 제공하는 웹 또는 앱 기반의 피드(피드 형식의 콘텐츠 스트림)으로, 사용자의 활동에 따라 실시간으로 업데이트된다.
이 정도가 되겠다. 이 정의 또는 분류에 맞는 앱 또는 웹을 살펴보면 facebook, Instagram, slack, velog 등등 사실상 모던 웹 앱 들은 거진 뉴스피드 앱이라고 봐도 큰 틀에서는 틀리지 않다고 볼 수 있다. 이런 쟁쟁한 앱들을 놓고 보면 숨이 턱 막힌다. 내가 이걸 할 수 있을까?
위에서 말 한 것이 무색하게, frontend 개발을 시작하거나 익히고 있는 나같은 초보 개발자들이 가장 많이 클론코딩하거나 사이드프로젝트로 도전해 보는 주제 역시 뉴스피드 앱이다. 여기서 관건은 볼륨이다. 어떤 기능을 넣고 어떤 기술 스택을 사용하는지에 따라 정말 토이프로젝트도 될 수 있고, 비즈니스 로직까지 탑재한 상품이 될 수도 있는 것이다.
오전에 발제를 마치고 팀원들끼리 모여 회의를 하는데, 나오는 아이디어들이 하나같이 걸출했다. 그 때 직감했다.
아... 여기서 욕심부리면 이거 완성도 못 한다.
이렇게 생각한 가장 큰 이유는 프로젝트 진행 기간이 6일로 주말을 빼면(빼면 안 되지만 ㅎㅎ) 4일 밖에 안 되는 매우 짧은 시간이라는 점, 그리고 비록 파이어베이스지만 목데이터가 아닌 실제 DB 를 사용해야 한다는 점이다. 그런 이유에서 나도 욕심나는 기능들을 많이 참고, 팀장님의 조율 아래 기간 안에 완성할 수 있을 것으로 생각되는 적절한 기능들을 추려 기획을 진행했다.
지난 번 팀 프로젝트때 와이어프레임의 필요성을 절감했는데, 이번 팀프로젝트에서는 아예 요구사항부터 와이어프레임이 포함되어있었다. 적당히 기능을 추린 뒤 바로 와이어프레임 작성에 들어갔고, 피그마를 아주 잘 다루시는 팀원분의 도움으로 와이어프레임보단 프로토타이핑에 가까운 만족스러운 레이아웃을 얻었다. 그런데...
이상했다. 발제 이후니까 대략 오전 10시 이후로 계속 회의만 했는데 회의가 계속 길어졌다. 왜 그럴까? 이유를 생각해보자.
프로젝트 기간이 짧고, 우리의 숙련도가 부족하다. → 겁이 많아졌다. 지금 팀원들은 전체적으로 리액트와 못 친해진 느낌이다.
조금 아는게 생겼다. → 몇 번 프로젝트를 경험하고 나니 각자 본인 나름의 노하우가 생겼고, 그걸 프로젝트에 적용하려다 보니 사공이 많아지는 결과가 되었고, 논의가 자꾸만 길어졌다.
프로젝트에 돌입하기 앞서 준비할 것들이 많다. → API 명세도 작성해야 하고, 통으로 코드를 짜는 게 아닌 컴포넌트 단위로 설계해야하고 우리는 컴포넌트 단위 작성에 익숙치 않아 어려운 점이 있었다. 또한 dependencies 도 점점 늘어나 사용할 라이브러리나 패키지를 고르는 데에 시간이 걸렸다.
다들 조금 의욕 만만이었다. 지난 프로젝트에서 아쉬웠던 점도 있을테고, 잘 해보고싶은 욕심도 있을테다. 이럴때일수록 욕심을 줄여야 한다. 소통은 내가 원하는 바를 주장만 하는 것과는 다르다. 나도 오늘은 조금 너무 보수적으로 굴었던 점이 있었던 것 같아 반성을 했다. 프로젝트를 멋지게 만들어내는것보다 완성하는게 우선인 내 목표와 팀원 각각의 목표에서 충돌이 조금 있었고, 이를 조율하다보니 마라톤 회의가 되었고 난 이제 지쳤어요 땡벌.
코드 짜고싶다!