소프티어 부트캠프에서 워밍업 프로젝트(라고 말하고 5일 간의 빡센 해커톤이라 부르는)를 진행했다.
나는 원래 회고를 잘 작성하지 않는 사람이었는데
이번 해커톤만큼은 배운점이 많아서 기록해보고자한다
이번 해커톤에서 내가 얻고싶은 것이 뭘까
백엔드에서 나온 API를 100% 연결하고 싶었다. 게다가 안드로이드 개발이 처음이었는데 이 실력으로 해커톤을 하다니, 100% 구현하기에도 벅찼다고 생각했었다
그런 마음을 가진 상태로 아이데이션을 함께 했다.
전에 했던 해커톤을 떠올려보면 5일 동안 진행되는 해커톤에서 클라의 바쁜 시기는 당연히 마지막날과 그 전날일 것이다
나는 내가 1-2일간 개발할 수 있는 기획에 대해서만 호의적이었다. 이 부분은 아직도 다른 팀원들한테 미안한 부분이다. 이번 프로젝트의 주제는 모빌리티인데, 쉽게 떠오르는 주제는 지도를 사용하는 것이었다
안드 개발도 처음인데 ___ 라고?
사실 내가 시간적 여유가 많았다면 그냥 해보자고 했을 것이다. 근데 안타깝게도 나는 해커톤 마감날과 다른 기업 면접날이 겹쳐서 해커톤 마감날까지 면접 준비를 병행해야했다
두 가지를 다 잘해내고 싶었고, 다른 팀원들의 열정에 누가 되고 싶지는 않았다. 그래서 안되는걸 된다고 말해서 서로가 힘든 상황을 피하고자 했다
아이데이션을 하다가 카카오뱅크의 저금통처럼 돈을 조금씩 모아서 모빌리티(신발->자전거->킥보드 .. 끝내 자동차)를 구매하는 기획을 제안하게 됐고, 우리팀은 이걸 디벨롭하게 되었다
내가 해야할 일
하루는 UI를 짜면서 버그를 수정하고, 하루 정도는 API 연결을 했다.
지금보니 별거 아닌 것 같은데 첫 안드로이드 개발이다보니 여러 시행착오를 겪었다.
분명 전날에 서버 연결을 했었고 나는 코드를 고친 적이 없는데 서버 통신이 안되기 시작했다. 그래서 3시간 동안 서버 통신 코드를 뜯어봤다(이 바쁜 와중에). OKHttp Logging Interceptor를 뒤늦게 사용해서 로그를 보니 공기계 와이파이가 연결이 안되어있다는걸 알게되었다 😇
아무튼, 이런 저런 시행착오를 겪으며 개발을 해나갔다.
기획, 디자인, 개발은 모두 같은 방향을 보며 프로젝트를 진행해야한다
사용자의 기록을 누적해서 보여주는 기능을 기획에 넣었다.
개발자는 기록을 누적한 값을 구하기 위해서 로그인/회원가입을 구현해야했고, 백/클라 개발자는 여기에 매몰되었다
하지만 이건 해커톤 서비스의 전체적인 기획에서 중요한 부분이 아니다(너무 당연함 🙂). 하지만 개발자인 우리에게는 이걸 보여주기 위한 로그인이 필요한걸 ? 근데 디자인이 나왔는데 로그인/회원가입 화면이 없었다.
왜일까? 사실 우리는 모두 다른 목표를 가지고 있었다. 개발자는 구현을 잘 해내고 싶었고, 기획자는 이 기획이 가지는 의미를 찾기 위해 부단히 노력했으며, 디자이너도 UX를 고려한 UI를 클라이언트 개발자에게 빨리 전달하자는 목표가 있었을 것이다.
너무나 당연한 이 상황을 보며 느꼈다. 비록 목표가 다를지라도 하나의 프로젝트를 완성하기 위해서는 기획, 디자인, 개발이 같은 방향을 봐야한다는 것
그러기 위해서는 무엇을 해야할까
소통의 중요성
안드로이드 파트 간의 소통도 백엔드와의 소통도, 기획 디자이너와의 소통도 모두 중요하다는걸 다시 한번 깨달았다
개발해야할 부분에 대해 안드로이드 파트 간 논의를 했었는데, 기록해두지 않아 다음날 온전하게 기억하지 못하는 나의 모습을 보며 많은 반성을 했었다
기획, 디자인, 개발 모두는 각자 잘 할 수 있는 영역이 완전히 다르다.
그리고 본인의 영역에서 무엇에 대한 어려움을 가지고 있으며, 그 어려움을 다른 파트원들이 이해할 수 있는 언어로 설명하는 일이 소통의 첫 번째 단계임을 알게되었다.
특히나 나는 개발자니까 말이다
이번 해커톤을 진행하면서 시간이 부족하다는 이유로 별다른 부가 설명 없이 ‘이거 클라에서 구현하기 너무 어려워요’라고 말을 했었다.
그렇기 때문에 기획자분의 의견과 기획이 점점 바뀌는 것에 스스로 많은 아쉬움을 느끼게 되었다 (나에 대한). 따라서 다른 파트의 사람들이 납득하고 이해할 수 있는 명확한 이유와 근거를 설명해주는 것이 중요하다는걸 배웠다
같은 말을 하고싶다. 소통이 중요할 것 같다.
작업물이 아무리 넘쳐나도 지금 본인이 무엇을 하고 있는 지에 대한 지속적이고 명확한 공유가 필요하다. 당장 내 개발이 급하더라도 예외는 없어야 할 것 같다
그게 잘 되지 않는다면 메인으로 머지하지 못하는 여러 브랜치를 파서 작업하는 것과 같은 일 같다
여기까지는 내가 이번 프로젝트를 하며 무엇이 아쉬웠는지에 더 초점을 두고 글을 적은 것 같다.
스스로에 대한 칭찬을 조금 해보자면, 나는 안드로이드 개발이 처음이었다. 그래도 목표했던 UI를 구현하고 서버 연결을 해내는 모습을 보며 뿌듯하기도 했다 !
지금은 시간이 너무 부족해서 진짜 스파게티 코드를 만든 느낌이 강한데, 최종 프로젝트는 구현에만 몰두하지 않고 코드의 완성도를 높이고 싶다. 그리고 이번 프로젝트는 면접이라는 나의 외부적인 요인 때문에 개발에 100% 몰두하지는 못했고 그렇기 때문에 결과물에 대해서 스스로가 만족하기 어려웠다. 최종 프로젝트는 모든 시간을 다 투자해서 개발해봐야지 🔥