군인이나 장수라면 전쟁에서 죽는게 가장 최고의 명예라는 말이 있다. 그렇다면 디버깅을 하다 죽는다면 "나는 개발자로서 명예로운 죽음을 하는걸까"하는 생각까지 하게한 악명의 PINTOS가 끝나가는 시점이었다.(아직 개발자로 일도 안 해봤으면서...) 실제 사용자를 만나는 서비스를 만들어보는 프로젝트이자 정글 마지막 프로젝트인 '나만의 무기 만들기'에서 리더에 지원했다. 내가 하고싶은 프로젝트를 내가 이끄는 경험을 해보고 싶었다. 언제, 어디서 쉽게 그런 경험을 할 수 있을거란 생각이 들지않았기 때문이다.
리더에 지원하고 기숙사 방에 누워서 메신져 형식을 갖되 가족들과 안부를 나누고 그 안부를 바탕으로 미션, 보상 제도가 있는 서비스 가칭 'Say Hi'라는 서비스를 생각했다. 당시 혼자 생각하기에는 획기적이라고 생각했고 팀원들도 그냥 OK하는 분위기였다. 하지만 운영진들과 면담을 하고 난 뒤 그 안일했던 생각은 산산조각났다. Say Hi는 기술적으로도, 기획적으로도 이목을 끄는 부분이 전혀 없는 그냥 누구나 할 수 있는 그런 서비스였다. 생각을 달리해야하는 순간이었다.
팀원들에게 면담결과를 솔직히 말했고 우린 깊은 고민에 빠졌다. 하지만 Say Hi의 틀은 유지한 채로 이야기는 계속 되었다. Say Hi는 가족과 관련된 서비스였기 때문에 계속 가족에 관련된 생각을 했고 나는 우리집을 떠올렸다. 그때 가족들과 가족 앨범을 같이 보았을 때 즐거웠던 경험을 떠올렸고 팀원들에게 이렇게 말했다. "사진을 같이 보며 공유할 수 있는 서비스를 만들면 어때?" 한 3초 곰곰히 생각하던 팀원들은 갑자기 핑거스냅을 하며 빈백에서 벌떡 일어나 "이거다!"하고 외쳤다. 그렇게 픽포는 시작되었다.
정글을 하면서 C를 하루 만에 공부하고 다음날부터 C로 B+tree를 구현했던 적이 있었다. 솔직히 파이썬은 공부할 시간도 없었다. 우리는 은연 중 언어야 뭐 다 비슷하고 공부하면 되지. 하고 생각했다. 현실은 역시 예상과 항상 다른 법이던가. JAVA에서 파생된 Kotlin은 생각보다 복잡했다. 특히, C를 몰입해서 2달을 넘게 해서 그런지 객체지향언어에 적응하는 것이 참 힘들었다. 적응하려고 dummy앱만 3일동안 10개넘게 만들었던 기억이 난다. 결국 또 적응했다.(이게되네?)
픽포는 서버통신을 기반으로 서비스하는 '친구들이 멀리 있어요' 모드 말고도 와이파이 다이렉트라는 P2P 서비스 모드 '친구들이 가까이 있어요'모드 이렇게 두 가지 모드로 서비스 되는 프로젝트이다. 상공 1만 미터 비행기 안에서도, 해외에서 데이터가 없을 때에도, 가까이 있는 사람과 사진을 빠르게 주고받고 싶을 때를 위해 기획한 모드이다. 처음 들어보는 사람들을 위해 블루투스와 비슷하다고 생각하면 된다. 다만 블루투스보다 좀더 빠르고, 먼 거리에서도 통신이 가능한 기술이다. IOS를 사용한다면 에어드랍이 사용하고 있는 기술이라고 하면 와닿을 것이라 생각된다.
안드로이드는 에어드랍이 안될까?하고 접근을 했던 우리는 안드로이드에는 Nearby Share라는 서비스가 이미 있음을 알게되었다. 우리도 잘하면 할 수도 있겠다 하는 가능성을 본 시점이었다. 하지만 희망은 잠시 뿐이었다. 데이터가 풍족한 시대를 살아가는 요즘 P2P서비스를 써야하는 상황은 그렇게 많지 않다. 다시 말하면 수요가 적었고 수요가 적어서 그런지 공급도 적었다. 자료가 매우 적었다. 특히 Kotlin으로 된 자료는 거의 0개였다. 게다가 우리는 여러명이 한번에 사진을 공유하는 것이 서비스 특징이었고 에어드랍, Nearby, 기타 자료들은 1:1로 데이터를 주고받는 것이 기본 전제였기 때문에 우리 입맛에 맞는 자료는 없었다고 보는게 맞았다.
회의하다 이런 말까지 했던 기억이 난다. '어서 와이파이 다이렉트로 가능한지 알아보고 안되면 빨리 다시 돌아가야죠' 그만큼 해낼 수 있을지 하는 확신이 없었던 순간이었다. 하지만 해보지도 않고 포기할 수는 없는 법. 전문 서적도 구해보고 구글 Android Developers 사이트를 뒤져 차근차근 구현해나갔다. 결국 우리는 Java로 되어있는 설명을 Kotlin으로 바꾸는 작업을 동반하며 1:1로 사진 전송에 도전하고, 1:N의 연결을 성공하고 결국 사진이 공유되는 모습까지 만들어내었다.
그 이후로도 문제는 많았다. 알수없는 이유로 연결이 끊기고, 사진 전송 중에 socket이 닫히고 거리에 따라 연결 대수에 따라 예외상황이 끝도 없이 벌어졌다. 정말 와이파이 다이렉트를 포기하고 싶은 순간이었다. 하지만 계속해서 손보고 예외상황으로 가지않도록 로직을 단순화 시키는 등의 노력을 통해 그래도 지금은 어느정도 쓸만하게 만들어놓은 것 같다. (아직도 완벽하지 않다.) 앞으로도 계속 보완을 해나갈 예정이다.
몇번의 큰 산을 넘고 우리는 프로토타입이랍시고 동료들에게 사용을 권했다. 정말 골때리는 순간이었다. 정말 생각지도 못한 동료들의 앱 사용에 당시 픽포의 약한 체력은 계속 0에 수렴했다. 사소한 버튼하나도 화면에 접속하는 순서도 모든게 우리의 예측과는 달랐다. 고쳐야하는 버그만 그냥 말해도 20개는 넘었던 것 같다. 생각해보니 그렇다. 나는 언제 다른 서비스를 사용할 때 크게 생각하고 누르는게 있던가. 일단 누르고 보는 것이 나를 포함한 평범한 사용자였다. 더욱 더 직관적이고 알아보기 쉽게 개선을 해야하는 순간이었다. 사실 고칠게 한참 남았다는 것을 알고있었지만 애써 모른척하고 있었던 것 같기도 하다. 어쨋든 그 깨달음으로 픽포는 한 단계 더 진화하게 되었다.
발표 전날은 잠도 이루지 못했다. 특히 내 발표에 우리 팀원들의 취직의 당락이 결정된다는 부담감이 어깨를 무겁게 눌렀고 발표연습을 아무리 해도 완벽하다는 생각이 들지 않았다. 거짓말이 아니고 적어도 50번 넘게 발표 연습을 했다. 긴장도 너무 많이해서 내 발표 전에 했던 다른 팀의 발표들이 잘 기억이 나지 않을 정도였다. 그런 간절한 마음 덕분일까 발표는 다행히 큰 실수없이 마무리 되었던 것 같다. 게다가 아이디어 기획면, 프로젝트 완성도 면에서 계신 분들로부터 칭찬을 받아서 더욱 보람있었던 발표였다. 또 포스터 세션이 시작되자마자 발표에 감명을 받았다고 인터뷰 요청이 들어와 무척이나 뿌듯했었다. 픽포를 이렇게 세상에 외쳤다.
너무나도 신기한 경험이다. 내가 만든 앱이 구글 플레이스토어에 떡하니 올라가 있다니... 아직 사용자수는 많지 않지만 사용자들로부터 피드백도 꾸준히 받고 버전 업그레이드도 하고 있다. 착한 우리 팀원들은 정글을 수료하고 나서도 계속 픽포를 같이 운영하기로 약속해주었다. 픽포가 출시되니 달라진 점은 더욱 내게 책임감이 생겼다는 것이다. 내 자식같기도 한 느낌이다. 내 자식이 욕 안먹고 많은 칭찬, 그리고 사랑을 받았으면 좋겠다. 그러다 보니 더 신경쓰고 계속 손보게 되는 것 같다. 픽포는 계속 됩니다! 혹시 사용하신다면 피드백 부탁드려요!
PicPho, share your moment GitHub
정글은 아직 끝이 아니다. SW사관학교 정글은 정말 말도 안되는 프로그램이었다. 5개월안에 내가 이렇게까지 성장할 수 있다는 사실을 아마 평생 살면서 몰랐을 것이다. 매일 새벽, 지친 몸을 스치는 대전의 새벽 바람을 이제 느낄 수 없다는 것이 아직은 생소하지만 매일 성장하는 느낌만큼은 정글을 수료했어도 계속 느낄 예정이다. 이제 진짜 정글로 들어섰다고 생각한다. 스스로 채찍질하며 이겨내야하는 현실에서 계속해서 성장해 나갈 것을 다짐하며 픽포, 그리고 정글 회고를 마친다.
픽포 좋아요! 이름도 디자인도 너무 귀여워요!