어떻게 지냈나요?
드디어 프론트엔드 개발 부트캠프의 모든 과정이 끝났다! 지나고나니 길고도 짧았던 7개월 동안 스스로가 참 많이 성장했다고 체감할 정도이니 치열했던 지난 7개월이 전혀 아깝지 않을 만큼 좋은 시간이었다. 내내 즐거웠다면 물론 너무나도 거짓말(^^)이고, 스스로의 한계에 부딪혀 한없이 무너지고 다양한 사람과의 협업 관계에서 많은(정말 많고 많고 많은....) 스트레스도 있었지만 그 희노애락은 결국 나를 성장시키는 발판이자 원동력이 되어주었다는 걸 깨닫게 되었다. 첫 문단부터 많은 말은 넣어두고..! 파이널 프로젝트와 전체 과정 회고를 작성해보자. 🙏
파이널 프로젝트 마무리
" 입주 경험은 높이고, 관리 소요는 낮추고! 스마트 오피스 빌딩 통합 플랫폼 [오피스너 ] "
📍프로젝트 주제 : 빌딩 내 입주자 활성화를 위한 서비스 기획 · 개발
📍프로젝트 목적 : 유저 그로스 기획 · 개발을 통한 '유저 가입자 수'와 'WAU' 높이기
📍프로젝트 기간 : 2023. 08. 16 ~ 2023. 10. 10 (2개월)
📍개발 진행 기간 : 2023. 09. 04 ~ 2023. 10. 10 (1개월)
파이널 프로젝트는 기업 연계 프로젝트로 지난 번 포스팅에서도 작성했듯이 PM, UX/UI, FE, BE 네 개의 파트가 모인 대규모 인원 프로젝트이다. 기존 오피스너 서비스를 운영 중인 기업 리버블에서는 오피스너를 사용하는 신규 사용자의 추가 인입이 없는 상태이며, 유저 활성화를 위한 서비스 내 기능이 부족하고, 관리자 사용성 위주의 서비스였기 때문에 일반 사용자가 오피스너를 꼭 사용해야 하는 이유가 사실상 없는 상태라고 말씀 주셨다.
그렇기 때문에 우리 팀은 팀 목표로 '신규 가입자 수'와 'WAU'를 높이는 것 중점으로 잡고, 기존의 서비스를 보완할 수 있도록 빌딩 내 입주자 활성화를 위한 기능 개발에 대한 아이데이션을 논의하여 나온 다양한 아이디어를 현실적인 시나리오에 부합시켜 최대한 바로 서비스가 가능한 정도까지 구현하는 것을 목표로 삼았다.
0. 기획
기존 오피스너 사용 건물의 입주사 인원 중 오피스너를 실제 사용하는 인원은 100명 중 2명 꼴과 같았다.
PM 파트에서는 기존 서비스의 문제를 5가지로 정의했는데, 내용은 아래와 같다!
1. 관리자 층 위주로 접속하고 일반 사용자가 앱에 들어오지 않기 때문에
2. 평상시 사용할 만한 기느이 없기 때문에
3. 제한된 기능으로 간헐적 빈도의 사건 외에 이용할 일이 없기 때문에
4. 지속적으로 실효성과 흥미를 느낄만한 요소가 없기 때문에
5. 관리자와 사용자가 일방향으로 소통하는 구조이기 때문에
우리 팀은 문제 해결을 위해 실제 직장인을 대상으로 리서치를 진행하고, 사용자가 오피스너 앱을 자주 찾을 수 있는 콘텐츠와 자발적으로 참여할 수 있는 양방향 콘텐츠를 통해 입주사의 인원 중 일반 가입자의 상승을 기대해볼 수 있는 기능으로 '방문자 초대장'과 '오늘 점심(점심 메뉴 룰렛 + 커뮤니티)' 기능을 기획했다! 그 중에서 내가 담당할 기능은 방문자 초대장이었는데,, 🐶고생할지 정말 몰랐다,,
🏢 타켓 대상 : 오피스너 기존 사용자 유지 + 신규 사용자 유도
🛎 메인 기능 : 방문자 초대장
🧸 서브 기능 : 점심 메뉴 추천과 관련한 게임 요소 + 간략한 커뮤니티 기능
1. 디자인
PM 파트에서 와이어 프레임과 화면 설계서를 작성하고, 해당 내용과 정리된 기능, 정책을 토대로 UX/UI 파트에서 각 기능별 화면 플로우를 반영하여 프로토타입을 만들어주셨다. 프론트엔트 파트에서 모든 화면이 나올 때가지 무작정 기다릴 수 없으므로 작은 단위의 디자인부터 컴포넌트화할 수 있도록 따로 UX/UI에서 따로 시스템을 정리해주셔서 프론트엔드 파트에서는 해당 디자인 시스템를 보고 작은 단위부터 구현을 시작할 수 있었다. 배려의 힘 🥹👍
2. 개발
프론트 파트 팀원들은 PM과 UX/UI에서 기획-디자인 단계를 거치는 동안 개발 진행에 대해 많은 회의를 했었다. 팀원 모두가 찐~하게 동의한 부분은 마지막 프로젝트인 만큼 최대한 일관성있고 깔끔하게 정리된 코드와 깃 등을 관리하고 싶었다는 점이다! 첫번째는 이슈 관리였는데, 팀 프로젝트를 시작하고부터 이슈 관리는 꾸준히 해왔었지만 프로젝트 특성에 맞게 라벨을 바꾸고 '진행 전-진행 중-완료' 3단계로 구성하여 현재 이슈의 상태를 팀원 모두가 파악할 수 있도록 해둔 것은 처음이었다. 어떤 팀원이 어떤 기능을 개발하고 있는지, 진행 정도가 어느 정도인지를 이슈 타이틀과 라벨로 한 눈에 알아볼 수 있어서 좋았던 부분이다.
그리고 두 번째로는 풀 리퀘스트! 이슈와 마찬가지로 같은 prefix를 사용하여 일관성 있는 타이틀을 가져가려고 노력했고, 라벨도 마찬가지로 어떤 상태인지를 체크할 수 있도록 커스터마이징 해두었다. 이슈와 풀 리퀘스트 두 파트 모두 템플릿을 만들어두어 팀원 모두가 일관성 있는 이슈와 풀 리퀘스트를 작성할 수 있도록 했다. 특히 풀 리퀘스트에서는 모든 팀원이 코드와 UI를 보며 한 눈에 체크할 수 있도록 이미지를 적극적으로 활용하자는 의견이 나와서 프로젝트 전 기간에 걸쳐 많은 개발 진행 사진들이 풀 리퀘스트에 참고 자료로 올라와있다. 🥹
자세한 이슈 관리와 풀 리퀘스트에 이어 세 번째로는 적극적인 코드 리뷰다. 이전 프로젝트에서는 코드 리뷰를 프로젝트를 모두 마친 이후 타 팀원들과 교류하여 작성하곤 했기 때문에 바로바로 피드백을 반영하기가 어려웠다. 그 점을 보완하기 위해 풀 리퀘스트를 올리고 2인(메인에서는 3인)이상의 Approve를 받아야 머지될 수 있도록 브랜치 설정을 바꿔두었고 각 풀 리퀘스트마다 코드 리뷰를 작성하도록 유도했다. 그 결과로 작성한 코드의 피드백을 다시 반영하여 작은 단위의 리팩토링 경험을 많이 할 수 있게 되었다! 👍
코드 리뷰를 활발히 할 수 있었던 이유 중 하나는 빡세게 관리했던 컨벤션 때문이 아닐까 생각해본다. 컨벤션을 지키지 않은 부분을 알려주고, 해당 부분을 피드백하여 코드에 바로 반영할 수 있도록 했던 것. 이전의 경험했던 팀 프로젝트들은 각자가 담당한 파트별로 코드 느낌이 다소 중구난방인 경우가 있었다. 물론 큰 단위의 컨벤션은 정해두었지만 종종 본인의 습관에 의해 컨벤션을 지키지 않았던 부분도 있었기에 일관성 있는 코드 작성이 어려웠고, 그런 부분이 개인적으로는 많이 아쉬웠었는데, 이번 프로젝트를 통해 코드 컨벤션, 브랜치 컨벤션, 커밋 컨벤션, 스타일 컨벤션 등 다양한 컨벤션을 딥하게 관리하고 ESLint나 Prettier 설정을 통해서도 다시 코드를 체크할 수 있도록 했기 때문에 프로젝트 전반에 걸쳐 한 사람이 쓴 것과 같은 일관성 있는 코드를 가져갈 수 있었다. 이렇게 일관성 있는 코드를 작성하다보니 내 담당이 아닌 다른 파트의 코드를 볼 때도 프로젝트 내용에 대한 이해와 코드를 뜯어보는 시간만 조금 투자한다면 어렵지않게 해당 코드가 무엇을 의미하는지 캐치할 수 있어서, 컨벤션과 코드 리뷰를 통해 담당 파트 외 다른 파트의 코드도 눈여겨 볼 수 있고 프로젝트에 대한 폭넓은 이해도를 가져갈 수 있어서 넘넘 즐거운 개발 기간이 되었다고 생각한다.
3. 결과물
프로젝트 GitHub : 클라이언트 어드민 서버
프로젝트 DEMO : 클라이언트 어드민
전체 프로젝트 기간 2달. 실제 개발 진행 기간 1달! 30일 내외의 짧은 기간 동안 그래도 나를 성장시킨 프로젝트 하나 완성한 것 같아 뿌듯하다. 꼭 시도해보고 싶었던 반응형도 구현해보고 이전 프로젝트들보다 폭 넓은 기능들이 많이 있어서 재미있었다. (물론 각 담당 파트에 꽁꽁 묶여있었지만...😵💫) 아쉬운 점은 개발 시간이 정말 짧았다는 점이다. 프로젝트 초반 확정됐었던 기획이 한 차례 변경되는 일이 있었기 때문에 자연스레 디자인 구현이 뒤로 밀려났고, 디자인을 보고 작업을 시작해야 하는 개발 파트 역시 구현 일정이 촉박해졌다. 개발 팀은 늘 시간이 부족하다는 것을 체감할 수 있었던 프로젝트였다. 그럼에도 불구하고 완성도 높은 결과를 이끌어냈기에 뿌듯했고 만족스러운 것은 팩트!
만족스러웠던 결과는 바로바로 🥇 우수 프로젝트 선정 🥇
프로젝트를 시작하기 전 PM, UX/UI, FE, BE 전체 팀원이 모여 팀 빌딩을 진행할 때 모두가 염원했던 것. 1등하기!!!!!! 같은 기업 주제로 프로젝트를 진행하는 타 팀의 기획안에서 우리가 하고싶었지만 현실적인 이슈로 진행하지 못할 것 같아 보류해두었던 기능이 있었는데, 그것을 실제로 구현하게 된다는 것을 듣고 한 편으로 부러웠고 피말렸다. 하지만 그럴수록 우리가 가져가야 할 기능에 최대한 완성도 높게 구현하자고 다짐했는데 그 보상으로 귀한 명예를 얻은 것 같아 뿌듯했다. 가장 좋았던 건 우리 파트 모두가 각자의 역할을 모두 잘 수행해낸 것! 누구 하나 부족함 없이, 뒤쳐짐 없이 각자가 1인분의 몫을 잘 해냈기 때문에 서로 도와줄 수도 있었고, 도움을 받을 수도 있었던 것 같다. 마지막인 만큼 좋은 기억을 안고 마무리하고 싶었는데 이루게 되어서 행복 💖
🔮 전체 과정 회고
0. 배운 점
배운 점이라면 어마어마하게 많다. HTML, CSS로 블로그 꾸미기만 알던 초짜가 개발 언어인 JavaScript를 배우고, React와 NEXT.js를 포함해 다양한 라이브러리를 다루게 된 것 자체가 큰 성장이고 배운 점이다. 필요하지 않다면 사람 앞에 나서지 않고(사실 사람을 싫어했던 intp...) 혼자 해결하는 것을 즐겼던 내 성향이 공동의 목표로 나아가기 위해 누군가와 함께 상의하고, 돕고 도와주고, 함께하는 개발에 대해 즐거움을 알게된 것이 큰 수확이다. 4번의 프로젝트에서 3번의 팀장을 맡았으니 나 스스로에게 이만큼 노력해주어 고맙다고 칭찬하고 싶다. 그리고 가장 크게 변했던 건 나의 부족함을 드러내는 것을 두려워하지 않는 자세였다. 기존 전공 공부를 할 때에는 전공 특성상 남들보다 우수하다는 걸 보여주기 위해 뒤에서 노력하고 연주자들을 핸들링할 수 있는 높은 자리를 추구했었는데, 개발 공부를 하는 동안에는 나보다 뛰어난 사람은 이미 너무나도 많다는 걸 일찌감치 인정하고 오히려 나를 낮추어 무엇이든 적극적으로 배우려는 자세를 가졌다. 더불어 '개발 공부의 습관화'를 할 수 있었다. 수능 이후로는 대학에서 벼락치기나 할 줄 알았던 내가 나만의 돌파구를 찾아내고, 고민하고, 부딪혀가면서 나에게 맞는 공부법을 습관화하고 삼삼오오 모인 스터디를 꾸려 지속적으로 학습할 수 있는 환경을 만들 수 있게 되었다는 점이 좋았다.
1. 아쉬운 점
모자란 부분은 너.무. 많은 거 같다. 물론 7개월을 투자해서 컴공 전공자들이 했던 공부와 현업 경험을 얼마나 따라잡을 수 있겠었냐만은, 아직 스스로가 '겨우 이 정도'라고 느껴진다. 어쩌면 당연한 것이겠지 🤯 그래서 어떤 면에서는 오히려 좋다. 이 정도 몰입해서 이뤄내는 것이 개발의 전부였다면 금새 흥미가 없어졌을 것 같기 때문에! 아직도 나는 부족한 것을 채우기 위해 지식과 경험을 갈구하고, 해나가야 할 게 많아 발을 동동 구르고 있다. 안주하지 않는 것이 부트캠프 수료 최고의 선물인걸까..? (ㅎㅎ;;;) 이렇게 부족한 내가 과연 취업을 할 수 있을 것인지 의구심이 들지만 그만큼 또 채워나가면 될테니까. (아마도요) 늘 그랬듯 긍정의 힘으로 이겨내보자.
2. 소감
7개월 전의 나는 비개발자에서 개발자로 발돋움하기 위한 마인드셋 강의를 들었었다. 하지만 지금의 나는 앞으로 어떤 개발자로 성장할 것인가에 대한 구체적인 목표 설정이 필요한 시점 같다. 애매하고 어중간한 개발자로 나아가기는 싫다. 당분간은 이력서와 포트폴리오를 점검하면서 앞으로 내 커리어의 방향을 정확하게 설정하는 시간을 보내겠다고 다짐해본다.👩🏻💻 물론 프로젝트 리팩토링은 덤으로 가져가는.. 그런.. ^^.. 아무튼! 반년 넘도록 치열하게 고민하고 부딪힌 결과들이 나에겐 좋은 경험이었고, 많이 배웠고, 성장했다. 이 글을 보고 있는 여러분께서도 언제든 뭐든 하실 수 있으십니다. 모두모두 화이팅~!
'K-Digital Training > 패스트캠퍼스 프론트엔드 부트캠프' 카테고리의 다른 글
패스트캠퍼스 프론트엔드 개발 부트캠프 5기 : 파이널 프로젝트 (기업 연계) (2) | 2023.09.18 |
---|---|
패스트캠퍼스 프론트엔드 개발 부트캠프 5기 : 미니 프로젝트 (1) | 2023.08.28 |
패스트캠퍼스 프론트엔드 개발 부트캠프 5기 : 중간 회고 (0) | 2023.07.21 |
패스트캠퍼스 프론트엔드 개발 부트캠프 5기 : 강사님 & 멘토님 (0) | 2023.06.28 |
패스트캠퍼스 프론트엔드 개발 부트캠프 5기 : 그룹 스터디 워크샵 & 멘토링 (0) | 2023.05.28 |