절망해라, 모든 것이 처음인 범부여 (숏커톤 회고: 첫 협업, 첫 리드 개발자)
안녕하세요! 경북 IT 협업 동아리 PARD 4기 iOS 파트 김도경입니다.
이번에 파드에서 진행한 15시간 해커톤에 참여하게 되었습니다.
저는 펠리컨 팀 iOS 개발자이자 리드 개발자 역할을 맡아서 진행하게 되었는데요.
이번 해커톤을 통해서 느낀 점을 이야기하고자 합니다.
결론부터 말하자면 2등으로 뽑히긴 했지만, 개발자로서 그리고 개발 팀장으로서 실패와 분노 그리고 절망감을 느낀 해커톤이었습니다.
무엇을 만들고자 했나?
저희 펠리컨 팀은 '띠링'이라는 앱을 개발하고자 했습니다. 이 앱은 블루투스 통신을 활용하여 사용자가 서로 가까워질 때 매칭 기회를 통해 자만추의 접점을 만들어 주는 앱입니다.
더 쉽게 설명하면 본인이 연애 가치관, 취미를 설정하고 자신이 원하는 상대방의 가치관 취미를 설정하게 됩니다. 근처에 같은 앱의 사용자가 있고 가치관과 취미가 일정 수준 이상 일치하면 서로의 이상형이 나타났다고 알림을 보내고 상대방의 프로필을 확인 할 수 있습니다.
어쩌다가 이 아이디어가 나왔나?
이번 숏커톤의 주제 하모니에 맞춰서 처음에 저희 팀은 세 가지 정도의 아이디어를 가지고 아이디에이션을 하고 있었습니다. 그중 하나가 연애에 관련된 것이었습니다.
그러다 제가 “서로 가까이 가면 알림을 보내는 거 어떨까? 그 ‘좋아하면 울리는' 알아요?”라고 했고 팀원들이 마음에 들어 하면서 여러 아이디어를 더 붙이게 되었고 이 아이디어에 모두 꽂혀서 확정되게 되었습니다.
핵심기술구현
이 앱을 구현하기 위해서는 먼저 핵심 기능인 가까워졌을 때 알림 보내기가 가능한지 알아야 했습니다.
어떻게 구현해야 할지 처음에는 감이 잡히지 않았습니다, 서버 파트원과 얘기하면서 각자 사용자의 GPS 신호를 지속적으로 서버에 보내고 거리 계산을 실시간으로 하면서 가까워지면 알림을 보내는 방식을 생각했는데 이 방식은 기술적 난이도도 높고 비용 측면에서도 별로 였습니다.
그러다 대화를 듣고 있던 우리의 기획자가 한마디 하였습니다.
“토스에 보면 근처에 토스를 켠 사람이 있습니다 하고 알려주는데 이런 거 안되나요?”
이 말이 정말 큰 힌트가 되어 찾아 보게 되었고 이 기술이 블루투스를 이용한다는 사실을 알게 되었습니다.
“함께 자라기”라는 책에서 ‘삼투압적 의사소통’의 중요성을 말하는데 이를 직접 느끼게 되었습니다. 프로젝트에 관한 내용은 어느 사소한 것이라도 팀원 모두가 같이 공유하는 것이 좋겠다는 깨달음을 얻게 되었죠.
이후 Swift로 이 기능을 구현하기 위해서 여러 자료를 찾아도 보고 GPT에도 물어보았습니다. 먼저 이 기능이 되는지 확인이 되어야 하기 때문에 따로 프로젝트 파일을 만들어서 이 기능만 구현하는 앱을 만들어 보았습니다.
약 한 시간 후에 실제 기기에 연결해서 테스트를 해보는데 알림이 보내졌고 팀은 환호했습니다. 생각보다 굉장히 빠르게 핵심 기능이 구현이되었고 저희 팀은 할 수 있겠다는 생각을 가지게 되었습니다. 하지만 이때 나무만 보고 숲을 보지 못한 저의 판단이 독이 되었습니다. 이는 후에 설명하고 일단 계속 제가 구상한 내용을 설명해보겠습니다.
일단 처음에는 서로 다른 유저가 점점 가까워지다가 블루투스 통신 가능 거리에 들어오게 됩니다.
그러면 이때 서로의 유저 ID를 블루투스를 통해 전송하게 됩니다.
그리고 받은 상대방의 ID를 서버에 보내서 상대방의 프로필을 받아오게 됩니다.
그리고 마지막으로 상대방의 프로필을 자신의 프로필과 비교하여 비슷한 성향을 가지고 있을 때 알림을 띄워 좋아할 만한 사람이 나타났다고 알립니다.
사실 프로필을 비교하는 건 서버에서 하고 알림을 띄울지 말지 정보만 보내주는 게 더 효율적이지 않을까 생각했는데 아직 저희의 실력으로는 무리하고 판단하고 유저의 기기로 가져와 비교하도록 하였습니다.
제가 구상한 구조는 이러했고 완성만 하면 무조건 1등이라는 확신에 팀원 모두가 차있었습니다.
그러나 결과는 처참했습니다.
숏커톤 마감 전 필요한 페이지들이 완성되지도 않았고 서버와의 연결도 계속 문제를 일으켜 미완성인 상태로 제출하게 되었습니다.
무엇이 문제였나?
앱의 사이즈가 너무 컸다.
사실 저희 앱이 15시간 해커톤에서 완성하기에는 너무 크기가 컸습니다.
유저의 정보를 저장하기 위해서는 회원가입도 필요하고 유저의 프로필 작성도 필요했습니다. 그리고 자신의 회원 정보를 로컬에 저장할 필요도 있습니다. 나의 프로필과 상대방의 프로필을 보여줄 페이지 그리고 그것을 위한 서버 연결. 또한 알림을 띄우고 가까운 사람을 표시할 페이지 그것을 위한 서버 연결까지 앱의 사이즈가 너무나도 컸습니다. 거기다가 상대방과 매치가 되면 좋아요를 보낼 수 있도록 해야 했습니다. (심지어 이것도 채팅 기능을 빼고 대체 기능으로 넣은 것).
그리고 이 모든 것을 미리 파악하고 초반에 공유했어야 하는 개발 팀장인 저의 판단 잘못이었습니다.
혹은 개발 중간에 기획자와 디자이너에게 말해서 “이런저런 기능은 빼야 한다.”, “디자인 디테일이 너무 많은 것 같다 이러면 완성이 힘들 것 같다”라고 말했어야 했습니다. 이 모든 걸 너무 뒤늦게 깨달아 버렸습니다.
그렇다면 왜 미리 판단하지 못했나?
모든 것은 경험 부족
어쩌다 보니 제가 리드 개발자를 맡아서 진행하게 되었지만, 저도 이번 해커톤이 저의 첫 협업이었고 Swift를 통해 앱을 만드는 것도 처음, 게다가 리드 개발자를 맡는 것도 처음이었습니다. 그러다 보니 15시간이라는 주어진 시간 내에 어느 정도 크기의 앱을 만들 수 있는지 감각이 없었습니다. 게다가 핵심 기능은 정말 빠르게 구현했다 보니 “이거 해볼 만한데”라는 생각이 들었고, 이는 더 숲을 보지 못하게 만들었습니다.
미리 앱의 전체적인 구조를 생각해 보고 이것이 시간 내에 구현 가능한지를 파악 했어야 하는 문제점이 있었고 또 하나는 시간 내에 완성하지 못할 요청 사항들을 미리 말하지 못했다는 것입니다.
사실 저희 팀의 기획자와 디자이너분들은 본인 맡은 일에 최선을 다했습니다. 기획자가 생각하기에 필요한 기능들을 추가하고 디자이너가 생각하기에 시각적으로 뛰어난 디자인을 최선을 다해서 만들어 주었습니다. (퀄리티 보고 진짜 놀랐습니다)
하지만 개발자의 시각에서 이 모든 것을 다 수용하여 주어진 시간내에 만들기는 무리였습니다. 제가 미리 이것 눈치채고 말을 했어야 하는 부분이었지만 앞서 말했듯 경험 부족으로 이를 뒤늦게 알아버렸습니다.
해커톤 후반에는 어떻게든 완성 시켜야 한다는 생각에 사로잡혀 기획자에게 진행 사항도 제대로 전달 해 주지 못했고 같은 개발 팀원들을 신경 쓰지도 못했습니다. 특히나 리드 개발자로서 다른 개발자 팀원이 어려운 게 있진 않은지 도와줄 게 없는지 더 신경 써야 했는데 제 코가 석 자라 신경을 못 쓰고 제 일에 붙잡혀 있었던 게 미안했습니다.
분노 그리고 현타
이렇게 앱을 완성하지 못하게 되자 너무 분노와 절망감이 치솟아 올랐습니다. 하지만 또 다른 분노와 현타가 저를 사로잡았습니다.
내가 짠 코드가 한 줄 도 없다.
비교적 쉬운 부분인 UI 만드는 부분은 다른 iOS 팀원에게 맡기고 저는 조금 더 난이도가 있는 블루투스 통신, 서버 연결, 온보딩을 맡아서 했습니다. 하지만 이것들은 대부분 저도 처음 해보는 거라 GPT의 도움을 받아서 할수밖에 없었습니다.
그렇게 코딩을 하고 끝나고 보니 제가 직접 짠 코드가 몇 줄 되지 않는다는 사실을 알게 되었고 저 자신에 대한 무력감과 분노를 느꼈습니다. 역설적으로 GPT가 없었으면 핵심 기능을 만들지도 못하긴 했습니다. 하지만 알고 AI를 쓰는 것과 모르고 AI를 쓰는 것에는 많은 차이가 있습니다.
사실 파드 세미나에서 배우는 내용은 정말 기초적인 내용들입니다. 앱 다운 앱을 만들기 위해서는 제가 더 추가로 공부를 하고 토이 앱도 만들어 보면서 익혀나갔어야 하는 부분입니다.
나는 절망과 분노로 성장한다
이번 숏커톤을 통해서 제가 부족한 부분들이 어떤 것들인지 알게 되었고 저의 성장 방향도 뚜렸해졌습니다. 또 같은 일을 반복하지 않기 위해서 저는 이번 경험을 통해 나아갈 것입니다. 왜 흔히들 숏커톤이 예방 주사라고 하는지 알게 되었고 정말 값진 경험이었습니다.
나중에 이 글을 보는 후기 기수 파디들에게 전하고 싶은 말
숏커톤에서는 정말 정말 간단한 앱을 만들어야 한다
기획자, 디자이너, 개발자 모두 욕심과 완벽함은 조금씩 포기해야한다
개발자들은 자신이 시간내에 완성이 가능한지 판단하기에는 경험이 없다. 기획자들은 이를 염두에 두어야 한다.
개발자들은 세미나에 배우는 내용외에 추가적으로 공부를 해야 기획자와 디자이너가 원하는 앱을 만들 수 있다.
클백 연결 공부 해라
댓글
로그인 후 댓글을 남길 수 있습니다.
모두가 하나 더 배워가는 숏커톤이었던 것 같네요 파이팅 👏👏