9 min read

처음으로 사이드 프로젝트를 진행하면서

비사이드 8기 후기
처음으로 사이드 프로젝트를 진행하면서

개요

2022년 4월 기준으로 나의 첫 사이드 프로젝트가 종료되었다. 처음으로 회사 외 프로젝트를 다른 팀원들과 협업하여 완료시킨 것이다. 웹 페이지플레이 스토어, 앱 스토어에 런칭하고, 발표까지 무사히 마쳤다. 앱 자체는 큰 기능 없이 간단한 일기작성 앱이다. 하지만 프로젝트를 완수하였는데 의의를 두기로 하였다.

🙏동기

회사 생활을 하면서 항상 생각하는게 토이 프로젝트와 사이드 프로젝트 이다. 하지만 많은 개발자들이 공통적으로 생각하지만 실제로 행동으로 옮기고, 완성을 시키는것은 힘든 일이다. 회사생활이있고, 개인적인 일도 있고, 프로젝트를 혼자 진행하면서 동기가 부족해서 완성을 시키지 못하기 때문이다. 하지만 개인적으로가 아닌 팀단위로 개발하고, 중간중간 발표와 피드백을 통해 완성할 수 있도록 해주는 비사이드가 있어 괜찮을 것 같다는 생각이 들었다.

기본적으로 회사에서 일하는 분들이 프로젝트 팀원으로 참여하여 개발을 진행하기 때문에 개발에 수월할 것이라 생각했고, 나랑 비슷한 생각을 가지신 분들이 참여할것이라 생각하여 신청하게 되었다.

완성된 프로젝트

complete

프로젝트 상세

프로젝트

01.image

프로젝트 신청금액은 25만원을 냈다. 상당히 큰 금액인데 비사이드 내에서 지원해주는게 상당히 많아 종료된 현재에는 크게 비싸다고 느끼지 않는다.

구글 플레이/앱 스토어 개발자 계정과 NHN 클라우드 서버, 발표와 인터뷰 시 주는 쿠폰등등..

2021년 12월 6일 프로젝트가 시작되고, 회의를 진행했다.

💭프로젝트 아이디어 회의

사실 나도 그렇고, 모든 팀원이 공감했던 순간이다. 아이디어 회의가 길어진 것이다. 아이디어 회의만 거의 3주 연속으로 했고, 일주일에 한번 회의를 진행했음에도 피로도가 증가하는것을 느꼈다.

의견충돌뿐만 아니라 모두가 공감하고 개발하고싶은 아이디어가 하나로 종결되지 않아 발생한 문제였다. 결국 공통적으로 프로젝트의 완성을 의의로 두고 있었기 때문에 가장 간단하면서 충분히 개발가능한 아이디어를 선택하기로 하였고, 개발 진행도에 따라 추가적인 기능을 붙이기로 하였다.

나를 포함한 클라이언트 개발자는 두명이였다. 충분히 개발가능하였고, 빠르면 2주 안에 완성할 수 있었다. 하지만 그러면 발전하지 못할것 같아 Flutter를 이용하여 개발을 진행하기로 하였다. 나도 다른분도 처음이라 공부하면서 진행해야했지만 충분히 커버가 가능할 것 같았다. 그래서 처음계획은 Android뿐이였지만 Flutter를 이용해 iOS와 같이 개발하기로 하였다.

💻프로젝트 개발

Flutter를 이때 처음 사용하였다. 일단 튜토리얼 사이트에서 Document를 읽으면서 어떻게 개발하고, 어떤 요소가 있는지 확인하였다.

Flutter - Build apps for any screen

다른 샘플 프로젝트를 참고하여 개발을 진행하기 시작했다. Android Compose 이후로 익숙해진 반응형 UI를 이용하여 작업했기 때문에 크게 어려운점은 없었다. 오히려 쉽고, 간편했다고 생각했다. 회사에서 간단하게 UI를 작업할때는 Flutter를 사용하고 있는데 괜찮은것 같다. 선언형 UI에 대한 나의 생각

협업으로 진행하기 때문에 빠른 앱 공유와 테스트가 중요할 것 같아서 Fastlane/Firebase Distribution을 결합하였다. 다행히 Flutter Command Build가 간편하고, Dev와 Release가 차이가 없는 수준이라 테스트하기도 간편했다. Firebase Distribution 설정 후 팀원들을 초대하여 다운로드 받을 수 있는 환경을 구축 후 개발을 진행하였다.

사실 플레이 스토어와 앱 스토어 자동 배포까지 설정하려 했는데 개인 계정이 아닌 비사이더 계정이기 때문에 따로 작업하지는 못했다. 권한이 필요했다.

🤝프로젝트 개발 시 서버와 협업

서버와의 협업은 Postman이 주가 되었다. 사실 협업이라도 우리가 붙어서 작업하는게 아니라 각자 시간이 남을 때 개발하기 때문에 실시간 소통이 어려웠다. 때문에 초반에 개발 방향과 필요한 작업 리스트를 선정하고, 개발을 진행했다.

다들 Postman을 어떻게 사용하는지 모르는것 같아서 줌으로 간단한 강의를 진행하고, 시작하였다.

02.image

서버-클라이언트간 API 인터페이스및 Example 작성

Postman에 작성된 API Example을 이용하여 서버 없이도 클라이언트에서 실제 API가 동작하는 것처럼 테스트/개발을 진행할 수 있게 되었다.

🎊프로젝트 완료

위에서는 작성되지 않는 많은 우여곡절 끝에 프로젝트가 종료되었다. 프로젝트를 진행하면서 기획자 한분이 나가시고, 다른 기획자 분 혼자 기획을 진행하였다.

또한 백엔드가 개발이 늦어져 프로젝트 종료 2주일전에 서버와 붙여볼 수 있었는데 많은 테스트를 진행해보지 못한것이 아쉬웠다.

클라이언트쪽의 협업을 진행하면서 많이 느낀것인데 공통적으로 사용할 인터페이스를 잘 작성하는것(요구사항)을 초반에 혹은 개발전에 잘 정의해야 개발 시 큰 어려움없이 진행할 수 있다는것을 느꼈다.

그래도 발표전에 앱 출시를 성공적으로 마무리할 수 있었고, 개인적으로도 사이드프로젝트를 통해 얻은것들이 많다고 생각되어 좋았다.

03.image

04.image

05.image-1

프로젝트 마무리 후 뒷풀이 코로나가 이때 딱 잘풀려서 다행이다

프로젝트 마무리 후 뒷풀이 코로나가 이때 딱 잘풀려서 다행이다

사이드 프로젝트에 대한 나의 생각

이번 사이드 프로젝트를 진행하면서 개인적으로 많은 생각을 하게 되었다.

인적으로 잘 했다고 생각한 부분도 있었고, 힘들었던 점도 있었다. 하지만 완벽한건 없다. 사람은 실수를 통해 배운다고, 다음번에는 더 나은 모습으로 참여할 수 있으면 된다고 생각한다. 아래는 다음에 사이드 프로젝트를 진행할 때 모두에게 하고 싶은 말을 작성했다.

  • 아이디어 회의때 아이디어를 많이 내고 어필해라
    • 다른 사람의 아이디어가 마음에 들지 않으면 정확하게 말해라
  • 개발할 사항을 정확하게 정리하고, 공유해라
    • 중간에 추가되는 개발사항이 있다면 모든 일정들이 망가질 수 있다.
  • 일주일에 사이드프로젝트를 개발할 시간을 정해라
    • 회사/개인적인 일정으로 미뤄지면 주말에 몰아서 하게된다
  • 현재 개발이 진행되고 있는것 개발이 완료된것을 팀원들에게 공유해라
    • 수정사항이 하나라도 있으면 공유해라
    • 0부터 10까지 모두 개발하고 배포하지 말자
  • 개발/업데이트 사항은 모든 서비스에 영향을 미칠 수 있다
    • 테스트를 완벽하게 수행하고, 배포하자
    • 배포했으면 시간이 남는 팀원은 테스트하고, 피드백을 전달하도록 하자
  • 디자인은 중요하다
    • 마음에 안든다고 함부로 바꾸지 말고, 회의를 통해 결정 후 개발하도록 하자
  • 모든 팀원이 작업하는 시간을 정해라
    • 제발 슬랙쫌 켜고 살자…