예절주입 당한 해커톤 후기
지난 토요일 동아리에서 진행한 숏커톤(숏+해커톤)에 참가하였다. 숏커톤은 무박 2일 18시간이라는 적은 시간동안 6~7명의 기획, 디자이너, 개발자들이 모여서 간단한 IT 서비스를 만들어 보는 프로젝트이다.
근자감에 차있던 나
사실 숏커톤을 하기 전에 나는 근거 없는 자신감에 차 있었다. 많은 사람이 칭찬할 만한 서비스를 만들어야겠다는 생각이 있었고 나에게 그런 능력이 있다고 생각했었다. 또한 겉으로 티는 안 내도 마음속으로는 기획부터 디자인, 개발까지 다 관여하여 영향력을 펼쳐 보이겠다는 생각이 있었다. 수면 부족이 유일한 방해물이라고 생각했기에 낮잠도 야무지게 자고 와서 더욱 자신만만했었다.
시작과 동시에 끝
이 중에 내가 낸 아이디어가 하나도 없었다...
하지만 시작 하자마자 나의 망상은 끝이 나고 말았다. 아이디어를 구상할 때부터 나는 정말 아무것도 하지 못했다. 다른 팀원들이 열심히 피그잼에 아이디어를 적어서 몇십 개가 쌓일 동안 나는 한 가지의 아이디어조차 못 내고 말았다. 그러고는 다른 팀원들의 아이디어에 반박만 하는 내 자신을 보니 내가 너무 싫어졌다. 성격상 꼼꼼한 것을 떠나서 나는 매우 느렸고, 짧은 시간 안에 결과물을 내는 것은 나에게는 너무나도 어려웠다. 무엇보다도 이러한 프로젝트를 해본 경험이 없었다. 말 그대로 사실 근자감이었던 것이다.
버르장례식
그렇게 기획하는데 내가 아무것도 기여하지 못한 우리 팀의 주제는 버르장례식으로, 유저의 안 좋은 버릇을 가졌던 과거의 모습을 온라인으로 삼일장 치러주는 서비스를 만들기로 했다. 유저가 자기가 죽이고 싶은 버릇과 그 버릇을 가졌던 자신의 사진을 업로드하면, 다른 사람들이 와서 잘 죽었다는 등의 조문을 댓글로 할 수 있는 서비스이다.
개발 시작
어느 정도 기획이 된 이후 나는 그래도 역할이 개발자니까 개발이라도 잘해보자는 마음가짐으로 개발을 시작하였다. 나는 시작할 때 로그인 페이지와 죽은 버릇을 조문하는 뷰 페이지를 맡게 되었는데, 빨리 두 개를 끝내고 추가적인 페이지를 더 맡아서 해야겠다고 생각했었다. 로그인 기능을 구현해 본적은 없었지만, 파트장님의 도움을 받아 생각보다 금방 구현을 할 수 있었다. 그래서 바로 다음으로 뷰 페이지를 구현하려고 했었는데, 아직 페이지 디자인과 서버 API 명세서가 나오지 않아서 당장 시작하기에는 어려움이 있었다. 다른 남은 페이지들도 마찬가지였다. 그래서 나는 뭘 할 수 있을까 고민하다가 나는 페이지 별 로그인 여부를 확인하는 기능과 로그아웃 기능을 구현하였다. 숏커톤 시작 전에 동아리 운영진들에게 로그인 같은 부가적인 기능에 집착하지 말고 핵심 기능을 우선 구현하라는 조언을 들었지만, 사실 디자인과 API 명세서가 나오기 전이기 때문에 수정 가능성을 생각해 보면 선뜻 시작하기 어려웠다.
로그인 페이지.jpg
이게 핵심이야
결국 새벽 4시 정도, 종료까지 약 6시간 정도 남은 시점에서야 서버 API 명세서와 뷰 페이지의 대략적인 레이아웃이 완성되어 뷰 페이지를 시작할 수 있었다. 해당 페이지가 우리 서비스의 핵심 페이지로, 이 페이지가 완성되지 못하면 우리 서비스가 아예 미완성이 되는 거여서 어느 정도 부담감을 가진 상태로 구현을 시작하였다. 뷰 페이지에는 좌측에 고인의 영정사진이, 우측에는 조문 댓글을 입력하고 확인할 수 있는 기능이 포함되어야 했다. 이에 따라 간단한 레이아웃을 먼저 구현한 후, 서버에서 댓글과 이미지를 불러오는 작업을 진행하였다. 생각보다 순조롭게 기능을 완료하여서 남은 레이아웃을 마무리하는 도중 알 수 없는 에러를 마주하게 되었다.
장례식 뷰 페이지.jpg
에러와 마주한 나
해당 에러는 서버에서 읽어온 데이터가 없다는 에러였는데, 정말 당황스러웠던 것은 조금 전까지 멀쩡히 데이터를 잘 읽어왔었고, 관련된 코드를 조금도 건드리지 않았기 때문이다. 그뿐만 아니라 이 에러는 발생하는 지점이 매번 랜덤한 것처럼 보였다. 기존에 나는 에러를 마주하면
Ctrl+z를 반복하면서 에러가 되는 부분을 찾고, 문제점을 유추하고 해결해 와서 이번에도 똑같이 해결하고자 하였는데, 이 에러는 어떨 때는 a 지점쯤 되돌렸을 때, 어떨 때는 b 지점쯤 되돌렸을 때, 어떨 때는 c, d 지점 등 매번 다른 곳에서 에러가 발생하였다. 처음 보는 에러에 나는 당황하였고 30분 동안 해결해 보고자 끙끙댔지만, 밤을 새우며 점점 정신이 이상해지고 있었던 나는 에러의 단서조차 유추할 수 없었다. 결국 멘붕이 온 나는 파트장님의 바짓가랑이를 붙잡고 도움을 요청하였다.
에러는 리액트가 비동기여서 발생하는 null safety 관련 문제였었다. 파트장님의 도움으로 겨우 문제를 해결하였지만, 한 시간 정도의 아까운 시간을 날리게 되었다. 결국 종료 시각이 거의 다 되어서야 뷰 페이지의 기능적인 것만 완성할 수 있었다. 다른 페이지를 더 하기는커녕 내가 맡은 페이지도 완벽히 완수하지 못하고 말았다. 또한 내가 맡은 일에 너무 급급하다 보니 팀원들과 현재 상황을 공유하지도, 제대로 소통하지도 못하였다.
예절주입 당한 나
너무나도 좋은 팀원들을 만나서 심리적 안정감을 과도할 정도로? 확보한 상태로 프로젝트를 진행했는데도 내가 맡은 역할 하나 제대로 못 하는 것을 경험하니 마음이 조금 무거웠다. 나는 내가 디자인 배치에 민감해서 디자인의 사소한 부분까지 챙길 수 있다고 생각했는데, 애초에 신경을 쓰지도 못했다. 내가 만든 페이지를 본 디자이너가 이게 내가 디자인 한 페이지가 맞나? 라고 생각했다는 이야기를 들었을 때는 너무 미안했다.
사실 어떻게 보면 당연한 결과였다. 경험 없는 사람이 경험자처럼 하고 싶다고 될 리가 없기 때문이다. 근자감에 차 있던 나에게 이번 숏커톤은 말 그대로 예절주입을 해주었다. 운영진이 숏커톤의 목적이 롱커톤 전의 예방주사라고 했는데 제대로 맞은 것 같다. 2주라는 짧은 시간밖에 남지 않았지만, 최대한 열심히 준비하고, 숏커톤 때의 경험을 기억하며 대비해야겠다는 생각이 든다.
고생한 우리 빵상하 팀 너무 고맙고 수고했어!!
여담
여담으로 현업 FE 개발자로 일하고 있는 형한테 이번에 만든 서비스를 보여줬었다.
나: 이거 이번에 우리가 18시간 동안 만든거야
형: 18시간 동안 이거 만들었다고?
나: …내가 이거랑 이 페이지 만들었어
형: 개발자가 너 혼자가 아니라고? 몇명인데?
나: 3명이긴 했는데 실제로 개발하는 시간은 10시간도 없었어..
형: 3명이서 10시간 동안 만든게 이거라고?
나: …….
갈 길이 멀다. 화이팅 해야겠다. 파드 화이팅!
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.