안녕하세요 !
[SSA늘하다... FY수가 날아와 꽂힌다...]의 열 번째 에피소드이자 마지막 에피소드 !
2학기 자율 프로젝트 회고 편입니다 !
이번 10기의 2학기 자율 프로젝트는 4월 9일부터 5월 20일까지 약 6 주 간 진행됐습니다.
제가 속한 팀, 'DBS' 는 내가 그린 캐릭터(Monster)에 생명을 불어넣고, 편지(Letter)를 주고받는 SNS 플랫폼인 'LetterMonster' 를 제작했습니다.
자율 프로젝트 결과물, LetterMonster 소개
내가 그린 캐릭터가 움직인다면? LetterMonster와 함께 편지를 주고받아보세요!
이번 프로젝트는 기업 연계, 오픈소스가 아닌 진짜 "자율 프로젝트" 를 진행하게 되었습니다. 게다가 공통, 특화 프로젝트와 다르게 개발 기간이 7 주가 아닌 6 주가 주어지기 때문에, 매우 빠르게 기획을 하고 개발을 시작하게 되었습니다. 그래서 환경 설정과 Jira & MatterMost & GitLab의 연동을 신속하게 하고, 기획을 진행했습니다. 프론트엔드는 저를 포함해 총 두 명이었고 실사용자를 받을 수 있게 재밌는 기획을 생각하다가 아래의 Meta (Facebook) 의 오픈 소스인 Animated Drawings 를 찾을 수 있었습니다. Meta가 제공한 포팅 매뉴얼을 읽으면서 로컬에서 실행한 결과, PNG 파일의 내 캐릭터가 자유롭게 움직이는 모습을 확인했습니다.
아래는 Animated Drawings 의 GitHub 주소 입니다.
Animated Drawings GitHub (Meta Open Source)
위의 오픈소스를 활용해 MVP 기능을 개발하자는 결정이 나고 나서 바로 개발을 시작했고, 프론트엔드 팀은 TypeScript, React, PWA, Capacitor, Android App, React Query (Tanstack Query)를 사용했습니다.
서비스 안에서 저는 Capacitor를 이용해 React 프로젝트를 Android App으로 변환해 OneStore에 배포를 했으며, Konva.js를 이용한 캐릭터 그리기 페이지, 캐릭터의 모션을 선택하고 미리 보는 페이지를 맡았으며, 메인 페이지에서 친구 관리, 캐릭터 관리, 내 정보 수정 등 부가적인 기능을 구현했습니다.
공통 프로젝트를 하면서 사용자에게 더 가까이 다가가려면 Web 보다는 App이 적합하다는 것을 깨닫고 Flutter를 이용해 개발을 했습니다. 하지만 FrontEnd Web 개발자가 되고 싶은 제게는 적절한 기술 스택이 아니었습니다. 그래서 공통 프로젝트가 끝나고 나서부터 React 프로젝트를 어떻게 App으로 전환시킬 수 있을까 고민했습니다. 그런 와중에 Capacitor라는 Cross Platform Application 개발을 위한 Web App과 Native Mobile App 간의 Bridge 역할을 하는 도구를 알게 되었습니다.
그래서 Flutter 나 React Native를 사용하지 않고 React 만을 사용해 마지막에 Android App으로 변환시켜 OneStore에 출시할 수 있었습니다. 결과적으로 실 사용자 348 명과 총 3.9 만 번의 이벤트를 성과로 얻었습니다.
Agile 방법론으로 프로젝트를 하게 된다면 사용자 피드백 일정을 확실히 정하고 진행하자
SSAFY 안에서의 대부분의 프로젝트는 Waterfall 방법론을 활용해 처음부터 끝까지 기능을 정하고 진행하게 됩니다. 하지만 저희 팀은 실사용자를 빨리 받고 피드백을 얻게 되면 Agile 방법론에 따라 매주 수요일마다 기능 반영 및 기획 회의를 갖기로 했습니다. 하지만 초기에 Meta의 Open Source를 불러오는 과정에 대한 어려움과 Open Source를 통해 나온 GIF 파일을 화면에 띄우기까지의 시간이 너무 오래 걸려 첫 서비스 출시 날짜가 미뤄지게 되었습니다.
피드백을 받고 추가 개발을 하기로 했기 때문에 Backend와 Frontend는 서비스 출시 날짜를 계속 기다리다가 결국 피드백 없이 '이런 기능이 있으면 좋겠다' 라는 생각으로 추측성 추가 기능을 개발하게 되었습니다. 만약 다시 다른 팀 프로젝트를 하게 된다면 피드백 날짜와 서비스 출시 날짜를 고정시키고 Agile 방법론에 따른 서비스를 다시 해보고 싶습니다.
프로젝트 기간엔 프로젝트를 먼저 생각하자
각 교육생의 상황에 따라 팀원을 찾기 때문에 취준 팀이나 수상 목표 팀 등이 만들어집니다. 그리고 자율 프로젝트는 이미 공통, 특화 프로젝트를 진행했기 때문에 체력적으로 많이 지치는 때입니다. 그래서 공통 프로젝트보다는 상대적으로 집중이 되지 않기도 하고, 교육 시간 내에 쉽게 피곤해지기도 합니다. 하지만 지칠 때마다 담당 컨설턴트님께서 하신 말씀이 생각났습니다.
SSAFY 교육 지원금은 1인당 한 달에 100 만 원씩 지급되니까 6인이 모여 6 ~ 7 주를 진행한다고 하면 1200 만 원이다. 적어도 한 팀 당 1200 만 원에 맞는 프로젝트 결과가 나와야 한다.
급여 개념의 지원금이 나오는 데다가, 컨설턴트님, 코치님, 운영 프로님, 취업 컨설턴트님 등 정말 많은 분들께서 교육생들의 프로젝트와 취업을 도와주시고 계십니다. 그래서 취업을 하기 위해 SSAFY 안에 있지만 프로젝트를 성실히 수행해야 하는 의무도 어느 정도 있다고 생각합니다. 하지만 긴 시간 동안 서비스 피드백 설문의 부재로 프로젝트 방향성은 애매해진 점이 상당히 아쉬웠습니다.
마무리
우선 공통 프로젝트 때와 같이 팀의 방향성을 계속해서 제안해 주신 상현 컨님, CI/CD 문제가 생기면 문제를 해결할 수 있게 관련 개념을 자세히 알려주신 준서 코치님, GIF 파일이 많이 나오는 서비스 특성을 고려해 CSR과 SSR 관련한 기술 스택 선택을 도와주신 채림 코치님, 프로젝트가 원활하게 진행될 수 있게 운영해 주신 희연 프로님께 감사드립니다.
이제 진짜 마지막 프로젝트가 끝났다는 게 잘 믿기지 않습니다. 2차 Job Fair와 수료식만을 앞두고 있는데, 앞으로의 취업 준비 계획을 단단히 세우고 매진하려고 합니다.
SSAFY 10기 교육생분들, 1년 동안 하시느라 모두 고생하셨습니다 !!
그동안 제 SSAFYcial 기사를 읽어주셔서 감사합니다 !!!