개요
참여 계기
원래는 해커톤에 나갈 생각은 없었다. 현재 진행하고 있는 개인 프로젝트를 끝내는게 더 급해서 개인 프로젝트에만 집중을 하고 있었다. 근데 해커톤에 참여가 가능하냐고 해서 나가기로 했다. ▼
사실 나가기로 해놓고 중간에 개인 프로젝트가 급해져서 안나갈 수 있는지 물어봤는데, 내가 빠지게 되면 팀 하나가 사라질 수 도 있다고 해서 책임감을 가지고 나가기로 했다...
목표
개인 프로젝트가 급하긴 하지만... 이왕 나가기로 한거 나의 한계를 시험해보기로 했다. 내가 12시간의 시간동안에 어디까지 개발할 수 있을까? 를 시험해보기 위해 해커톤에 참여했다.
기획
해커톤 주제
이번 해커톤의 주제는 Tipping point. 변곡점, 변환점, 작은 것들이 모여 하나의 큰 반향을 일으키는 것의 의미를 가진 단어다. 해커톤 주최측에서 제시한 의미는 "작은 아이디어가 일순간 거대한 반향을 일으키는, 극적인 순간의 결정적 전환" 이었다. ▼
팀의 주제
브레인 스토밍
온보딩 시간에 다 같이 모여 브레인 스토밍을 했다. 나는 아무래도 1D1S를 기획하고 운영할 정도로 스트릭과 스케쥴 관리 앱에 관심이 많기에 종합 스트릭 앱이라는 아이디어를 내놓았다. 다른 참여자분들은 기부서비스, 금융 커뮤니티, 로컬 커뮤니티, 위기 대응, 아이디어 매칭 플랫폼, 팁 공유 플랫폼 등등의 아이디어를 제시해주셨다. ▼
아이디어 쳐내기
이렇게 나온 아이디어들 중 실현 가능하고, 개발 볼륨이 적당한 아이디어들만 남기는 과정을 거쳤다. 아이디어를 거를 때 우선은 금융 관련 기획안들은 모두 불가능으로 분류했다. 금융 관련 기능은 짧은 시간내로 구현하는게 사실상 불가능에 가깝기 때문이다. 결제나 페이머니, 등등 이런 기능들을 넣기 위해서는 사업자등록이 필요한데 5일 내로 하는게 불가능해서 제외했다. 기부서비스도 금융기능이 들어가서 자연스럽게 제외됐다.
해커톤 마다 다르겠지만, 이렇게 1박 2일로 짧은 시간이 주어지는 해커톤에서는 간단한 한 두 가지의 기능을 선보이고 이를 다듬는게 중요하다고 생각한다. 기획이 커지면 커질수록 프로젝트는 마무리되지 못 할 가능성이 크기에 볼륨이 큰 아이디어들도 쳐냈다.
초기 기획
그렇게 기획에 대해 이야기하다가 팁 공유라는 아이디어가 나왔다. 현대인이라면 대부분 유튜브나 인스타그램의 숏폼 영상을 접하게 되는데 나는 그 중에서 팁을 공유하는 숏폼이 떠올랐다. 개그형 숏폼은 좋아하지만 정보 제공형은 그렇게 좋아하지 않는데 그 이유가 짧게 두 줄 정도의 글로 공유할 수 있는 내용을 이상한 음악과 영상을 섞어 10초에서 20초 정도로 늘려놨기 때문이다. 그렇다고 그 팁을 오래 기억하냐고 하면 다들 다른 영상을 보다 잊는다. 그래서 이런 문제점들을 떠올리고 간단하게 한 줄, 두 줄 팁을 릴레이 처럼 공유할 수 있는 앱을 만들기로 했다.
구체화
아이디어는 나왔지만, 전반적으로 탐탁치 않아보이는 분위기였다. 개발자들이 생각하기에는 해커톤에 알맞은 주제와 볼륨이라고 생각했지만 디자이너들 입장에서는 조금 아니었나보다. 그래서 기획에 대해 이야기를 하며 디벨롭 하다가 한 줄 릴레이가 아닌 팁 포스트잇 붙이기로 아이디어가 구체화되었다.
팁을 원하는 질문글을 올리면 사용자들이 이를 보고 팁을 하나씩 붙여주고, 나중에는 큰 하나의 포스트잇 보드가 되는 형식의 플랫폼으로 아이디어가 굳어졌다. 사실 릴레이 한 줄 팁이라는 것은 똑같지만, 그걸 보여주는 방식을 바꿈으로써 사용자에게 새로운 경험을 제공한 셈이다. ▼
개발
사전 준비
드디어 27일 저녁 6시에 해커톤이 시작되었다. 개발팀은 총 3명으로, 클라이언트(모바일)가 1명, 백엔드는 2명이다. 아무래도 혼자서 UI구현을 다 해야하는게 조금 부담이 될 수 있어서 프로젝트 구조와 사용할 패키지는 모두 사전에 준비해갔다. 디자인 컴포넌트도 정해진게 있으면 미리 전달해달라고 부탁을 했지만, 아무래도 기획이 전날에 완료가 되면서 이 부분까지는 준비하지 못했는지 컴포넌트는 하나도 준비하지 못한 채로 해커톤 장소로 갔다.
백엔드는 데이터베이스 스키마와 프로젝트 세팅 정도만 준비하고 왔다. 프론트엔드에서는 컴포넌트나 디자인 시스템을 받은게 없어서 데이터베이스 스키마를 짜는 것을 좀 도와줬다. 유의미하게 뭔가를 하진 못했고, 정말 바로 시작할 수 있게끔 준비해서 참여했다.
개발 시작...그러나 터져나오는 문제점
개발 입문자
당일에 개발을 시작하려고 하는데 문제가 꽤나 많이 발생했다. 가장 첫번째 문제는 참여하는 백엔드 인원 중 한 명이 깃허브도 사용할 줄 몰랐다는 것이다. 다른 한 분은 현직자라서 큰 문제가 없었지만, 2명이 같이 개발해도 시간이 부족한 상황이라 문제가 상당히 심각했다. 그 분이 이야기를 안한게 잘못이라기에는 사전에 실력 조사를 안한 팀의 불찰이 컸다. 그 분 잘못도 아닐뿐더러 뭐라고 해봐야 달라지는건 없고 당장 진행해야했기에 다른 백엔드 주도하에 백엔드 개발이 시작됐고, 클라이언트도 개발을 시작했다.
디자인 시스템 미제공
다음 문제점은 디자인 시스템이 제공되지 않았다는 것이다. 폰트와 색상 그 어떤 것도 제공이 되지 않았다. 우선은 다른 프로젝트에서 폰트 시스템만 가져다가 사용을 했다. '조금 이따가 주겠지...' 이 생각을 하고 닦달하지 않았는데 이 생각이 너무나도 안일했다. 닦달했어야 했다. 프로젝트가 끝날 때 쯤에 색상을 정의해줬고, 이를 도입할 시간이 없어서 결국에는 색상 코드를 하나하나 넣어가며 코딩하게 됐다. 내가 진작에 요구를 했어야 했는데 그러지 않았기에 나의 잘못이 컸다.
너무나도 많은 페이지 수, 그리고 잦은 변경
12시간이내로 API연결과 UI 구현을 다 해야했기에 페이지 수는 적은게 좋다. 아니 그래야만 했다. 클라이언트 개발자가 나 혼자였기에 더더욱 그랬어야 했지만 결국 나온 페이지 수는 15페이지 이상. 그 중 10 페이지 정도를 만들었지만 결국 시간상 더 이상 만들지 못했다. 페이지 디자인이 중간중간 바뀌고, 색상도 바뀌면서 사실상 10+ 페이지를 만들게 되었다. 게다가 페이지에서 요구하는 UI적 요구가 상당히 많았기에 더 힘들었다. 12시간 중 1시간(야식 시간)을 빼고 말도 안하고 개발만 했는데도 다 못만들었다. ▼
결국 완성되지 않은 API
결국에는 API도 완성을 못했다. 서버에 올리고 배포를 해주길 원했는데, 기능도 배포도 안되어 결국에는 클라이언트에서 동작을 보여줄 방법이 없어졌다. 완성이 됐다고하면 아마 완성된 페이지 수는 더 적었겠지만, API가 완성되지 않아서 결국에는 이도저도 아닌 프로젝트로 마무리가 되었다.
나의 실력부족, 그리고 성찰
이번 해커톤에서는 나의 실력이 어느정도인지를 확인하고 싶었는데, 대략적으로 알게 되었다. 12시간 내내 개발을 한다고 했을 때 내가 최대로 뽑아낼 수 있는 페이지, 팀원들과의 소통, 팀 운영 등등 많은 부분에서 나의 수준이 어느정도인지를 깨달았다.
일을 하게 되면 하드 스킬과 소프트 스킬을 모두 겸비해야한다. 하드 스킬은 대략적으로 개발 실력을 말하고 소프트 스킬은 협업 스킬을 말한다. 그동안에는 하드 스킬은 조금 부족할지언정 소프트 스킬은 괜찮다고 생각을 하고 있었다. 허나 의사소통의 문제로 인해, 주장을 강력하게 하지 않은 문제로 인해 많은 것들을 겪고 나서 소프트 스킬을 좀 더 키워야한다고 생각을 했다. 중요도에 따라 필요하다면 더 강력하게 주장을 하고 팀 내 문제들을 빠르게 파악하는 그런 능력을 더 겸비해야겠다고 생각했다.
하드스킬도 마찬가지로 필요하다. 이번 해커톤에서 내가 하드스킬이 뛰어났다면 아마 내 업무를 모두 해결하고 백엔드를 도와 배포까지 성공했을 것이다. 하지만 그러지 못했다는 것은 내 실력이 부족하다는 것이니 하드 스킬을 더 키워야겠다. 그중에서도 특히 UI구현에 있어서 더 키워야겠다고 생각했다. 눈에 보이는 부분, UI들이 유기적으로 동작하는 부분을 만드는데 시간이 오래 걸리는 것 같다. 빠르게 개발하고 테스트까지 해야하는데 그 시간이 부족하지 않나 싶다. 위젯들간의 로직들을 더 학습해야겠다는 생각이다.
이렇게 부족한 부분들을 봤으니 최대한 그 부족한 부분들을 매꿔야겠다.
마치며
솔직히 처음에는 조금 억울하다는 생각을 했다. 우리 팀에 클라이언트를 1명만 배치한 점, 백엔드에 아예 팀 프로젝트를 안해본 사람을 배치한 점, 디자이너들이 디자인 시스템을 만들 줄 모르는 점 등등 많은 것들에서 불만이 있었다. 하지만 조금 더 생각해보니 이게 현실인게 아닌가 싶었다. 모든 프로젝트가 그렇게 매끄럽게 흘러갈 리가 없는데 그런 문제들에 불만만 품고 수동적으로 행동한다면 해결할 수 있는 것은 아무것도 없을 것이다. 결국에는 나의 역량 부족인데 탓할 것들을 찾고 있던 것이다. 그런 문제들 속에서 해야할 이유보다 하지 말아야 할 이유를 찾고 있던 것인 내가 조금은 한심해졌다. 하지만 한심한 채로 끝내고 싶지 않다. 그렇기에 더 역량을 키워야하고, 단순히 두루뭉술하게 역량을 키운다라기 보다 어떤 역량을 어떻게 키우겠다를 명확히 해야겠다는 생각이 들었다.
좀 더 괜찮은 사람이 되어야겠다.
'회고' 카테고리의 다른 글
1D1S 시즌2 한 달 회고 (0) | 2024.02.02 |
---|---|
1D1S 시즌2 2주차 회고 (0) | 2024.02.01 |
1D1S 시즌1 회고와 피드백 (0) | 2024.02.01 |