[KAIST 정글] 나만무 프로젝트 회고 (1) :: 팀 형성, 초안 발표

2023. 10. 22. 00:19회고

728x90
반응형

너무너무 늦었지만 이제라도 작성하는 나만의 무기를 갖기 회고 Start~!
지금은 나만무 최종 발표(7/8)가 끝난 지 3개월이나 지났다 ㅎㅎ

우선 나만무에 대한 나의 생각부터 기록해 보자면..
부트캠프를 하고 남는 것은 프로젝트뿐이라고 생각하였고,
나에겐 무려 세 번째 부트캠프인 만큼 굉장한 프로젝트를 해내야 하고 해낼 수 있을 것이라는 자신감이 가득했다.

 

리더 지원

당연하게도 리더에 지원했다.

지원한 이유는

  • 프로젝트 경험이 있다.
  • 원래 나서는 거 좋아함. 답답할 바에 내가 뛸래 !
  • 앞으로 사회에 나가면 리더가 되기까지 몇 년은 더 기다려야 한다. 내가 스스로 리더가 될 수 있는 마지막 기회니까
  • 애초에 크래프톤에서 발표하는 영상 보고 반해서 나도 하고싶어서 정글 지원했음
  • 취업에도 당연히 도움이 될 것 같음

나만무가 끝나고 취업한 이후에 든 생각은

확실히 프로젝트 경험이 나만무를 할 때 도움이 되었다.

예를 들면 일정 수립, 기획 방향 설정, 우선순위 수립 등. 정글답게 이 모든 것을 알아서 해내야 했기에 프로젝트 경험이 없었다면 더 힘들었을 것 같다.
하지만 다른 팀들을 보면 프로젝트 경험 없는 팀원들끼리 모인 팀도 잘 해냈던 것 같다. 멋쪄

 

평소에 대학교에서 하는 팀플에서는 리더를 하면서 힘들었던 적이 없었다. 내 기억 속에 정말 단 한 번도 없었다.

그런데 나만무는 정말 많이 힘들었다.

내 선택이 잘못되었다는 것을 인정하기 싫어서 내가 후회하고 있다는 심리 자체를 잘 인지하지 못하는데, 나만무 기간 동안에는 리더에 지원한 것을 후회한 적이 꽤 많다..ㅋㅋ

우선 팀원 모을 때도 우여곡절이 많았고, 운영진의 부정적인 피드백을 듣고 팀이 방황할 때, 팀원 간 소통이 잘 이루어지지 않을 때 정말 힘들었다.

하지만 이 후회가 '다른 사람이 했으면 더 잘했을 텐데'라는 좌절감보다는

진짜 너무 힘들다.. 때려치우고 싶다..라는 투정에 가까웠던 것 같다.

나만무가 끝나고 리더를 맡았던 친구들과 이야기를 나누어보니 다른 리더들도 책임감과 부담감에 많이 힘들었다고 한다.

나만 힘들었다는 게 아닌 걸 알았을 때 왠지 안심이 되었고, 같이 리더를 했던 다른 동기가 많이 위로해 줘서 힘이 되었다 🥹

 

취업할 때 도움이 되었는지는 사실 잘 모르겠다. 협력사 두 곳에 면접을 봤는데, 둘 다 인성 면접에서 리더를 했던 것에 대한 질문을 받았다. 특히 크래프톤 면접에서는 발표했던 모습이 인상적이어서 기억에 남는다는 말씀을 해주셔서 살짝 설렜다 ㅎ 하지만 리더를 했다는 것이 그렇게 플러스 점수로 작용했는지는 잘 모르겠다!

프로젝트 주제

리더가 되기 위해서는 프로젝트 주제를 가지고 면접을 봐서 선발되어야 했다.
팀 형성은 그 이후였지만, 이미 함께 하고 싶었던 친구들이 있었기에 친구들과 함께 주제를 몇 가지 생각해 봤다.

 

내가 리더에 지원할 때 가져갔던 주제는
그래프 알고리즘을 시각화해 주는 사이트였다.
DFS나 BFS, 다익스트라 같은 알고리즘을 눈으로 보면서 이해하면 더 좋을 것 같고, 프로젝트를 하면서 알고리즘에 대해서 더 잘 알게 될 것 같았다.


막상 나만무 시작하고 나서는 노잼일 것 같아서 폐기된 주제이다. ㅋㅋㅠ
다른 팀들도 리더를 지원할 때 가져간 주제로 나만무를 진행한 팀은 하나도 없는 듯?
리더 지원서 작성할 때는 시간도 많이 들여서 힘겹게 짜낸 아이디어지만, 기간이 짧기도 하고 핀토스 주차에 짬을 내서 생각해 낸 거라서 그런지 좀 더 생각해 보면 다들 별로였나 보다 ㅎㅋ

 

근데 나만무 시작하기 전까지 주제 생각하지 말라는 조언(?)들도 많았는데, 리더에겐 해당되지 않는다. 지원서에 뭐라도 써야 하니까...

지원서 작성

리더 지원 공지가 나오고 나서는 강의실 분위기가 아주 요란법석 하다.
너 지원할 거야? 주제 정했어? 누구랑 할 거야?
이런저런 이야기가 많이 오간다.


도저히 지원서 작성에 집중이 되지 않아서 나는 핀토스를 잠시 내려놓고 😡 카이스트 본원 근처에 있는 카페에 혼자 가서 지원서를 작성했다. 강의실에 남아있던 친구들도 이 날 여럿이서 편의점에서 맥주 파티를 벌였다고 한다. 리더를 지원하지 않는 친구들도 공부에 집중하기 힘든 시기였던 것 같다.
지원서 내용은 리더로서 어떻게 할 건지에 관련된 질문이 있었던 것 같은데 (기억이 가물가물..)
별로 특색 있는 질문은 아니고, 별 생각도 안 떠올라서 지피티한테 써달라고 했다.ㅋㅋㅋ

면접

우리 반에서 리더에 지원한 동기는 6명이고, 리더를 총 몇 명 선발할지는 미리 알려주지 않아서 참 심란했다. 내가 리더가 되지 않을 수도 있고, 리더가 몇 명인지 모르니 우리 팀이 4명이 될지, 5명? 6명이 될 지 예상할 수 없기 때문.ㅠㅠ
면접에서는 지원서 기반으로 질문을 하셨다. 무난했다. 왜 하고 싶은지 어떤 사람과 함께 하고 싶은지? 이런 질문이었던 것 같다.

주제가 다 고만고만해서 실망하신 것 같기는 했다.

그래도 꽤 떨리긴 했다. 내가 리더가 되지 않으면 함께 하기로 했던 친구들이 낙동강 오리알이 되기 때문....

 

결국 다섯 명의 리더가 선발되었다. 선발 기준은 내 생각엔 동기들과 잘 어우러질 수 있는 사람인가를 많이 본 것 같다.

나까지 총 네 명이었던 우리 팀은 다른 팀원이 더 필요해졌다!!

 

팀 형성

팀 형성은 stable marriage 알고리즘으로 결정된다.
리더도 선호하는 팀원을 1위부터 마지막까지 전부 제출하고
팀원도 선호하는 리더를 1위부터 마지막까지 작성해서 제출한다.
어떻게 작성했는지는 공개되지 않기 때문에 정말 원하는 사람을 적으면 된다.
아직 핀토스 마지막 프로젝트인 파일 시스템을 하고 있던 시기였고, 이미 나까지 네 명이서 함께 하기로 되어있던 상태라 신경을 덜 쓰고 있었는데, 순식간에 모든 리더들이 팀원 섭외를 완료했다.
하지만 합의를 하지 않고 알고리즘에 운명을 맡기는 동기들도 몇 명 있어서 결과를 예상하기는 힘들었다.

 

이때부터 핀토스에 집중하기가 더 힘들어졌다. 안 그래도 파일 시스템 어려웠는데ㅠㅠㅠ

그렇다고 핀토스를 포기하고 나만무 관련해서 뭔가 성과가 있었느냐..? 그것도 아님

지금 일하면서 핀토스에서 배운 것을 굉장히 많이 써먹고 있는 나에게는 아쉬운 시기다.

쓸데없는 걱정도 마음 고생도 너무 많이 함..

다시 돌아가면 핀토스 할 거임 ㅡㅡ


다행히도 우리 팀은 함께 하기로 했던 4명이 무사히 합류했고, 예상치 못한 결과를 맞이한 팀도 있었다. 알고리즘의 장난인지 운영진분들의 조정이 있었는지는 모른다.
그로 인해 우리 팀은 마지막 다섯 번째 멤버도 함께 하고 싶었지만 이미 다른 팀에 합류해 버려 아쉬웠던 친구가 들어오게 되었고, 미안하면서도 감사한 마음으로 팀 형성이 잘 마무리되었다. by 알고리즘 최대 수혜 팀 😄

첫 회의

이제 팀원도 모였겠다 어떤 프로젝트를 해나갈지 본격적으로 이야기를 나누기 시작했다.
각자 선호하는 공부 스타일에 대해서 공유하고, 어떤 프로젝트를 하고 싶은지 의견을 나누었다.
팀원 중에 아이디어 뱅크인 친구가 있어서 정말 많은 아이디어가 나왔다.
규칙도 정했다.

기술 스택

프론트는 내가 해봤던 Next.js를 사용하기로 했고 백엔드는 프론트와 함께 코드 리뷰하기 편할 것이라 생각하여 js를 쓰는 Nest.js를 선택했다.
그리고 통신도 내가 써본 GraphQL을 사용했다.
사실 편하려고 선택한 건데 발표 후 포스터 세션과 취업 면접에서 기술 스택 관련된 질문과 관심을 꽤 받을 수 있었다.

'어떻게 이렇게 핫한 기술들을 선택하게 되셨나요?'
'왜 GraphQL을 사용했죠?'
'GraphQL이 뭔가요?'
'학습곡선이 높은데 힘들지 않았나요?'

대기업을 지망하는 게 아니라면 프론트엔드는 Next.js 혹은 리액트
백엔드는 Node.js 관련된 프레임워크를 선택하는 것이 나쁘지 않은 선택인 것 같다.
GraphQL도 채용 공고의 우대사항에서 꽤 많이 보인다. 하지만 확실히 RestAPI가 더 많이 쓰이긴 하는 듯? 백엔드가 아니라서 잘 모르겠당..
그리고 프론트에서는 상태 관리 툴을 무엇으로 할지 결정하는 것도 쉽지 않을 텐데 나는 이것도 내가 원래 써본 recoil을 사용했다. 이건 학습 곡선이 아예 없다고 봐도 무방할 정도인데, 지금 내가 회사에서 쓰고 있는 redux는 이것저것 알아야 할 게 꽤 있었다.
사실 나는 다 써본 거라서 편하게 선택한 거고, 그냥 잘할 수 있는 거, 최대한 빨리 배울 수 있는 거 선택하는 게 최고인 듯!


취업 때는 어차피 신입 채용이어서 어떤 라이브러리를 써봤다고 해서 대단한 대우를 해주지는 않는 것 같다.

 

초안 발표

나만무의 첫 번째 과제는 주제를 선정하는 것이다.
주제를 굉장히 중요하게 생각하는 것 같다.
5/31 저녁에 팀이 발표되었고, 6/6에 초안 발표를 해야 했다.
뭔 기획하는 데 시간을 이렇게 많이 줘..?라고 생각했는데
초안 발표를 최종 발표처럼 하는 것이었다. 프로젝트했다 치고~ 하는 것이다...


아키텍처와 어떤 기술적 챌린지가 있었는지도 함께 발표에 넣어야 했기에
실제로 어떻게 구현할지 구현이 될지 뭐가 어려울지 어떻게 해결할지 생각할 게 많았다.

 

그리고 발표 형태 자체도 참 어려웠다.

아키텍처는 대체 뭔데.. 안해봤는데 뭘 어떻게 최종처럼 하라는 거야...

기술적 챌린지는 하다보면 나오는 거 아닌가?...

 

경험해보니 아키텍처는 서비스의 기능들의 플로우를 말하는 것 같다.

이전 기수 선배들이 한 것들 참고해서 플로우 화면을 띄우고 어떻게 동작하는지 설명했다.

별다른 코멘트가 없었던 거 보면 이렇게 하는 게 맞는 듯ㅋㅎ

+ 기술적 챌린지도 초안 발표에서는 딱히 관심 없는 것 같음


또, 개발만 잘하면 될 거라 생각했는데 아니다.

기획 의도나 서비스에 대해 많이 고려해야 한다ㅠ

(주제때문에 프로젝트 끝날 때까지 탈탈탈탈 털렸다. 경영학과 팀플에서도 아이디어로 이렇게 고민해본 적이 없어)
초안 발표에는 2~3개를 가져갈 수 있고, 우리 팀은 총 3개의 주제를 준비했다.

우리 팀의 목표

우리팀의 프로젝트 주제 선정 기준은 누가 봐도 우와 소리가 나올만한 것을 하고 싶었다.
그리고 실현 가능성을 확인하기 위해서
가장 핵심이 되는 기능을 먼저 시도해 보고 간단하게라도 구현이 되는 아이디어를 초안 발표에 가져가기로 했다.

아이디어가 굉장히 많이 나왔다.

이 중에서 채택된 것은 아래 세 가지

주제 1) 토끼풀

“ 음성 파일의 필요한 부분만 남기고, 관련 정보를 함께 제공하는 서비스 ”

 

원래는 VREW를 보고 반해버려서 브루와 비슷한 프로젝트를 해보고 싶었다. 하지만 협력사에서도 발표를 보러 올 것이기 때문에 조금 망설여지기도 했고, 너무 어려워 보이기도 했다.
음성 인식과 공백 구간을 잘라내는 기술은 가져가되, 여기에 요즘 핫한 AI 기술을 붙여보자 해서 나온 주제가 토끼풀이다. 이름은 대충 막 지은 건데 네이버의 클로바랑 비슷해서 토끼풀이 되었던 것 같다ㅋㅋ

핵심 기능

  • 공백 Trim
  • 관련 정보 제공

MVP

음성 파일을 업로드하면 공백을 제거하는 것까지 구현해 봤다. by 오박사님 작품 👏
음질이 저하되는 이슈가 있어서 많이 힘들었다.

주제 2) Singtopia

“ 내 음역대 분석 서비스 ”

 

이건 고기 먹다가 뜬금없이 나온 아이디어!
처음 시작은 노래를 더 잘 부를 수 있게 만들어주는 어플이 있으면 좋겠다! 에서 시작했다.
부르고 싶은 노래가 내 음역대에 맞는지, 아니라면 키를 얼마나 조정해야 하는지 등을 알려주는 기능이 있다.

핵심 기능

  • 실시간 채점 & 음역대 분석
  • 내 음역대에서 가능한 노래 찾기
  • 내 음역대에 맞추어 키 조절하기

이게 채택된다면 노래 부르는 스타일에 맞는 노래를 추천해 주는 기능도 넣고 싶었다.
예를 들면, 한 번에 뽝 지르는 걸 잘하는 사람에게 어울리는 노래, 서서히 올라가는 노래를 잘 부르는 사람을 위한 노래 이런 것들..

 

이 주제로 진행하게 되면 기능을 테스트하거나 시연할 때 노래를 직접 불러야 하니 만드는 우리도 재밌고 보는 사람들도 즐거워할 것 같았다.
개인적으로 너무너무 재밌을 것 같아서 정말 마음에 드는 아이템이었다.


하지만 마음에 드는 만큼 어려운 점이 많았다.

우선 저작권 문제.
실시간 채점을 제공하다 보니 노래를 부를 수 있게 MR을 틀어줘야 하고, 유저의 목소리와 비교하기 위해 노래에서 가수의 목소리를 가져와서 변환하는 데 써야 했다.
나만무는 최종 발표에서 시연을 해야 했기 때문에 음원을 사용하는 데 있어 저작권 이슈가 있을 것 같았다.


이게 해결되지 않으면 아무것도 진행하지 못할 것이라 생각해 우선 저작권 협회에 문의를 했다.
우리에게 남은 시간이 너무 촉박해서 그 안에 답변이 올까 우려했지만, 다행히도 상업 목적이 아닌 경우에는 써도 된다는 답변을 받았다.
또 상업 목적으로 사용하게 된다 하여도 일단 서비스를 만든 다음에 서비스 자체를 제출해야 심사를 해준다고 했다.
결국 그냥 만들어도 된다는 것!


나중에 혹시 저작권 관련 문제를 해결했는지 질문을 받을 것을 대비하여 한국음악저작권협회에 메일을 통해 재확인을 받고 진행했다.

 

👇 보낸 거

👇 받은 거

 

그런데 예상했던 것과 달리 저작권 관련해서는 그 누구도 신경 쓰지 않았다.ㅋ 그래도 마음 편하게 했으니 됐어..!!

 

다음 고비는 채점 기능이었다.
음정 채점, 어렵긴 하겠지만 금방 될 거라 생각했는데 엉뚱한 결과만 자꾸 나와서 이 주제를 버려야 한다는 얘기마저 나왔다.ㅠㅠ
결국 초안 발표 때까지 뚜렷한 결과는 얻지 못했지만, 아이디어가 너무 아까워서 일단 발표는 해보자로 합의를 봤다.
일주일 만에 할 수 있으면 그게 뭐가 기술적 챌린지야.. 한 달 동안 매달리면 할 수 있을 거야!라고 생각함ㅋㅋㅋ

주제 3) 뚜벅뚜벅

“ 뚜벅이를 위한 길 찾기 서비스 ”

 

우리 팀에 유독 길치가 많았기에 나온 아이디어

핵심 기능

  • 걸어서 갈 수 있는 지름길을 추천해 주는 기능
  • 시간대별로 사람들이 많이 몰리는 곳이 어딘지 알 수 있게 해주는 기능

이건 그래서 어케 해..? 어떻게 구현할지 생각하는 것부터 고난도였다.

우리의 결론은

  • 어플 백그라운드 상태에서 10m 이상 이동하면 이동 정보를 저장
  • 지도 위에 가상의 점들을 만들어서 사람들이 이동한 경로를 edge로 하는 그래프라고 생각하고 최단 경로를 찾기로 했다.

MVP

MVP를 내가 만들기로 해서 어플 백그라운드에서 이동 경로를 저장할 수 있는지를 테스트했다.
웹은 백그라운드 기능이 없어서 React Native를 사용했고, Expo를 통해서 구현했다.
제대로 만든 건지 확인하기 위해서 새벽에 혼자 노트북 들고 문지캠퍼스를 걷기도 하고 뛰기도 하면서 테스트를 했다 ㅋㅋ 되는 거 보고 짜릿했다..

 

그리고 XCode에서 이동 테스트 기능을 제공한다는 것을 뒤늦게 깨달았지 ㅎ_ㅎ
세상 참 좋아 🥲

 

 

아무튼 속력까지 엄청 세세하게 잘 나왔다.
최단 경로 구하는 기능 만드는 게 난이도가 있을 것 같은데 또 안 될 것 같지는 않아서 이 아이디어도 굉장히 마음에 들었다.

 

구체적인 구현 방안에 대해서 혹시 질문이 나올까봐 제법 구체화를 많이 했다.

 

초안 발표 피드백

우리가 가져간 주제들 전부 서비스 같지 않고, 기능에 가깝다는 피드백을 받았다. (MVP 가져오라면서요..)
우리가 어려울 것이라 생각한 것도 크게 기술적인 부분이 없어 보였던 것 같다.
예를 들어 음정 채점은 과학고 애들이 과제로 할 수준이라는 말씀도 해주셨다.. (과학고 애들이 하는 거면 어려운 거 아닌가요..?)
그리고 뚜벅뚜벅 같은 위치 기반 서비스는 데이터가 없으면 시연이 어려워서 힘들다고..
지금 가져온 기획안들 중에서는 그나마 노래방이 나은 것 같고, 여기에 뭘 더 많이 붙여야 한다는 피드백을 한 분이 해주셨다. (다른 분들은 절레절레..ㅠ)
긍정적인 피드백으로는 팀원들 에너지는 좋다고 하셨다..^^ 시연 영상을 재밌게 잘 만들어서 그런 말씀을 하신 것 같다.

싹 다 갈아엎기

예상치 못한 부정적인 피드백에 발등에 불이 떨어진 우리 팀은 규칙이 바뀌었다.ㅠㅠ

 

그리고 곱창에 쏘맥을 마시며 새로운 아이디어가 나왔다.

그나마 피드백이 긍정적이었던 노래 연습 Singtopia를 살리되 노래를 부르는 기능만으로는 부족하다고 했으니
이것저것 다 갖다 붙이자! 에서 나온 것이


노래를 부르면서 레이싱 경기를 하는 캐주얼 노래 배틀 게임

노래 연습과 카트라이더를 합친 게임이다 ㅋㅋ
이것이 씽잉러너의 시작

728x90
반응형