테오의 스프린트 15기 (회고 겸 후기)
참여 계기
길어지는 취준 생활에 지쳐가고 있던 중💀 (신입 좀 뽑아주세요..흑흑~~) 진행중이던 해커톤도 탈락하고..!
주로 혼자서 개발을 진행하다 보니 제가 어디에 있는지 어느 순간 알수가 없더라구요..? 뭘 더 해야할지 나한테 부족한 부분이 무엇일지 고민하고 있었는데 테오의 스프린트 소식을 지인분께 듣게 되었고 찾아보니 구글 스프린트를 기반으로 5일간 기획설계 -> 개발 -> 배포 로 이어진다는걸 보았는데 처음 든 생각은 가능한가...? 싶었는데 역시 안되는건 없다!! 그래서 다른분들과 협업을 통해 의견을 나누고, 더 체계적인 방법으로 개발을 해보고 싶어 테오의 스프린트에 참여하게 되었습니다. 정말 좋은분들과 개발에 진심이신 분들이 많으니 기회가 된다면 꼭! 참여해보세요 :)
1일차
가장 신기했던 것중에 하나가 바로 님 금지문화!! 처음에는 어색했지만 사용해보니 이유를 알겠더라구요 금방 친근감이 들고 의견을 주고받는 과정이 더 자유로워 지는게 느껴졌어요. 아 그리고 모두 부캐(닉네임)을 정하고 사용하는데 이것도 정말 좋은거 같았습니다 다른 "나"가 되어보는건 더 자신감을 주게 되는거 같아요 👍
첫날에는 각자 준비해온 아이디어를 발표하고,아이디어를 설명하는 시간을 가졌습니다. 재밌어 보이는 아이디어가 굉장히 많았지만 저는 기억의 궁전이라는 셜록홈즈에도 나온 암기법에서 나온 아이디어로 추억을 시각화 하여 그때의 감정을 다양한 방법(이미지, 음악 등)으로 저장하는 프로젝트에 참여하게 되었습니다!
- 닉네임에 대한 설명과 역할, 짧은소개 2. 스프린트에서 다같이 해냈으면 하는 목표 3. 개인의 목표 (커리어 관련) 4. 만들 서비스의 궁극적인 목표 5. 스프린트(서비스)에서 제일 중요하게 생각했으면 하는 가치 6. 나의 강점 & 기술스택 7. 나의 약점 & 팀원에게 미리 전하는 Risk 8. 팀에게 바라는 것 9. 명언(개똥철학처럼) 😎
팀이 정해지고 나서 각자의 조 피그잼으로 이동해서 위 리스트 처럼 템플릿을 따라 작성하며 한명씩 작성한 부분에 대해 얘기해 보는 시간을 가지는데(큰 리액션 필수) 자연스럽게 서로가 바라는것과 양해해줬으면 하는것, 서비스에 중요하게 생각하는 부분까지 알아가며 바로 친해지게 되었습니다. 중간중간에 테오와 스탭분들이 와서 진행체크하며 노하우를 알려주는게 너무 도움이 되었고, 무엇보다 팀원분들이 너무 좋은 분들이였어요(리액션 짱..ㅋㅋㅋ) 다음 날 숙제로는 서비스에 필요한 레퍼런스를 찾아와 다시 얘기하기로 했습니다.
2일차
2일차에는 레퍼런스를 토대로 팀원들의 생각을 합치고 서비스의 목적, 타겟층, 비슷한 서비스의 사용자의 불편함을 얘기하고 우리 서비스에서는 어떠한 차별점을 둘것인지 의견을 나눴어요. 이때 서비스의 세부적인 사항들이 어느정도 정해지기 시작했죠! 만약 이때 얘기를 나누지 않았다면 서로 다른 방향을 보고 있었을 지도 모른다는 생각이 들어요. 같은 기능이라고 생각했던 부분이 얘기를 나눴을 때 서로 다른 방향을 보고있었거든요ㅎㅎ.. 의사소통이 얼마나 중요한지 다시 한번 깨달았습니다.
그렇게 정해진 기능과 페이지에 대해 스토리보드를 작성해보고 내일 이 스토리 보드를 기준으로 각자의 스케치를 어느정도 해오기로 약속했습니다! 뭔가 체계적으로 흘러가는 이 경험이 아주 좋았어요!! 서비스 자체의 이해도가 다른 기분이였습니다. 저희는 인스타 처럼 보여주기 위한 SNS보다는 개인적인 추억 저장소가 될 수 있게 방향성을 잡았고 보여주고 싶은 추억은 보여줄 수 있는 기능도 생각했지만 후 순위로 미뤄두었습니다. (이후에 개발기간이 2일 인걸 다시금 깨닫고 아차 싶어서 기능다이어트를 진행하게 됩니다^^.. 이거 안했으면 큰일날 뻔 했어요)
3일차
세부적인 디자인은 디자이너 분이 해주시겠지만 어느정도 각자 생각하는 페이지별 스케치를 보고 한 화면씩 본인의 스케치에 대해 설명하고 해당 화면 설명이 모두 끝난 후 마음에 들었던 "요소"에 투표를 진행했죠!! 그리고 UI 결정권자와 PL을 정해 확실하게 기능과 컨셉을 픽스했습니다. 이후 해야할 태스크를 BDD(Behavior Driven Development)와 SDD(Schema Driven Development)를 통해 태스크를 정리했습니다. BDD와 SDD가 궁금하시면 테오의 글을 보시는 걸 추천드릴게요👍
아 정말 너무 좋았습니다. 해야할 태스크가 딱딱 정리되고 코드는 작성하지도 않았는데 이미 뭘 만들어야 하는지 머릿속에 구상이 되는 느낌이였어요!! 저는 이렇게 개발해본게 처음이였거든요. 이후에는 임팩트 와 이펙트를 기준으로 기능에 대해 마지막으로 정리하며 기능다이어트 까지 마무리하고 간단하게 사용할 기술스택을 정리 후 내일부터 디자인과 개발에 들어가기로 했습니다.
4-5일차 (개발기간)
레포지토리는 깃허브 오거니제이션 만들어 사용하기로 했고 컨벤션은 깃플로우 방식을 사용하기로 했습니다! 현직자이신 PL분이 프로젝트 셋업과 린트설정을 너무 잘해주셔서 커밋린트로 알게되고 체계적으로 진행할 수 있었어요! 각각 진행중인 태스크는 이슈를 만들고 해당 이슈번호로 브랜치를 생성해서 PR을 통해 2명이상의 어프로브를 받으면 머지가 가능하도록 했습니다. 커밋은 마지막에 이슈번호를 붙여서 해당 이슈에 대한 작업사항을 남기구요!
- issue
- PR
프로젝트는 Next.js, TypeScript,react-query, emotion 으로 시작하고 추후 전역상태가 필요하면 추가하기로 했고
저는 emotion/styled 설정, 키워드 기반 AI 이미지 생성 기능, Loader 컴포넌트를 담당했습니다! 팀은 9명이지만 프론트가 6명이라 세세하게 나누었습니다ㅎㅎ..
카카오의 Karlo와 유명한 openAI에 DALL・E 모델을 고민했는데 저는 가난한 취준생이기에 팀원들과 협의 후 달에 500장 무료인 Karlo로 채택하여 사용했습니다.
하나의 이슈가 있었는데,, Karlo는 영어로만 사용할 수 있었기에 사용자의 입력이 한글일 경우를 고려해야 했기에 PAPAGO API로 사용자의 입력을 보내 번역한 후 다시 Karlo로 보내 이미지를 받아오는 방법이였습니다.
두번이나 외부 API를 거쳐야 하다보니 속도면에서 조금 느릴 수 있지만,, 현재의 방법에서는 최선이라 생각해서 진행했습니다. 또 API KEY를 프라이빗 하게 관리하기 해야 했는데 굳이 백서버를 통할 필요 없이 .env에 NEXT_PUBLIC이 아닌 환경변수를 구성해 Next에서 제공하는 api router를 사용해 서버를 통해 받아오도록 구성했습니다. 혹시 저처럼 사용하실 분들이 계실 수 있으니 도움이 되길 바라며 창피하지만 코드 남겨봅니다😎 (더 좋은 방법이 있다면 알려주세요!!)
- 커스텀 훅
- api router
생각보다 제 파트를 빠르게 끝내게 되어 어려움을 겪고 계신 팀원 분들과 페어프로그래밍도 진행하며 알차게 개발했습니다. 👍 (완성하고 팀원분들과 이미지 생성 테스트하며 500장 다 써서 아이디 교체한건 비밀) 개인적으로 개발하다가 코어 타임에는 ZEP에 모여 소통하며 개발했는데 회사를 다니게 되면 동료분들이 의견을 나누는데 거리낌이 없으면 좋겠다는 생각이 들었습니다. 개발이 아주 착착 진행되었어요.
6일차
이제 10시에 다른분들에게 서비스를 배포하여 선보일 차례가 되었습니다! 저희 팀은 나름 기능 다이어트를 한다고 했지만,, 2일이란 시간이 정말 빠르더라구요 다들 빠르면 새벽 3시 늦으면 6시까지 달렸지만 10시 이전에 배포까지는 문제 없이 되었지만 테스트를 미리 해보지 않아 작은 문제들이 생겼었지만! 모든 팀원들이 초인이 되어 정말 빠르게 문제를 찾아 HOT-FIX를 진행했고 MVP 기능은 작동가능하여 선보일 수 있었습니다! 테스터 분들이 좋은 반응을 보여주셨고 나중에 써보고 싶다고 테스트 아이디를 따로 물어보시는 분도 계셔서 정말 기분 좋았어요(개발하길 잘했다)
아직 완벽하지 않아서 속도가 조금(많이) 느리지만 개선할 수 있습니다!! 이미지를 생성해야 해서 조금 느린거 같아요.. 흑
저장한 리스트에서 추억을 클릭하면 이미지 다운로드도 가능하고 사용자가 넣어둔 음악(youtube링크)도 자동으로 재생돼요!! 저장 기능도 있어서 폴라로이드 처럼 이쁜 사진도 저장이 됩니다👍
테스트 인터뷰 시간이 끝나고 팀원분들과 회고를 진행했습니다
- 프로젝트 결과물에 대한 회고 2. 협업과 팀에대한 회고 3. 스프린트, 그리고 나에 대한 회고
각각 Liked, Learned, Lacked, Longed for을 작성하고 발표했는데 정말 팀원분들 모두 늦게까지 고생했는데 힘들었다가 아니라 시간이 짧아서 아쉬웠다가 대부분이였고 저도 너무 아쉬운 마음과 함께 어떤 프로젝트보다 몰입해서 진행할 수 있었던 것 같습니다.
마무리
사람적으로도 너무 좋고 프로젝트에 열정적인 팀원분들을 만나서 너무너무 좋았고 (너무 늦은시간까지 진행해 테오가 GG치고 자러간 유일한 팀⭐️) 앞으로도 오래오래 좋은 관계를 유지하면 좋겠습니다 😄 이번 스프린트 처럼 무리하게는 아니지만 프로젝트에서 부족했던 부분들을 하나하나 디벨롭 하기로 했고 언젠간 포트폴리오에 올려도 손색없을 정도의 프로젝트가 될 날을 기다리며.. 13조 파이팅!!!🔥
좋은 기회를 경험을 선사해준 테오와 고생하신 스탭분들에게 감사하다는 말을 드리며 언젠간 성장해서 저도 테오처럼 좋은 영향을 줄 수 있는 개발자가 될게요!!!! 🙇♂️🫡