하루 30분 이상의 코딩을 하기 위해서
군대에서의 프로그래밍은 1시간의 해커톤이다.
나는 크롬 확장 프로그램을 만든다. 작업을 위한 시간은 매번 1시간이다.
사이버 지식 정보방(이하 싸지방) 컴퓨터는 모두 같지 않다. 크롬의 옛날 버전(2014년 즈음)이 깔려있는 자리는 피한다. 최신버전이 있는 곳이 아니면 크롬 업데이트가 되지 않는다. 좋은 자리가 비어 최신의 크롬을 사용할 수 있다면 다음으로 진행한다. 그러나 안 좋은 자리면 파이어폭스를 이용해 웨일을 다운 받거나, 이마저도 실패하면 파이어폭스를 업데이트해서 사용한다.
네이버 클라우드에 있는 소스 파일을 다운 받는다. 싸지방은 버전 관리에 유용한 깃허브에 접속할 수 없다. 개인 파일을 다운받기 위해 구글 드라이브를 사용할 수도 없다. 싸지방이 검증한 '네이버'가 희망이다. 파일을 다운로드 시켜두고 페이스북과 비캔버스 등에 접속해 새로 진행된 상황을 확인하고, 팀원들과 커뮤니케이션을 준비를 한다.
크롬 확장 프로그램의 개발자 모드로 들어가 다운 받은 소스파일을 업로드한다. 함께 받은 에디터를 사용해서 코딩을 시작한다. 웹 개발이기 때문에 많은 부분이 html, javascript, css를 사용하고 필요한 이미지나 레퍼런스를 찾는다. 다행히 jQuery 레퍼런스는 싸지방에서 접속이 원활하다. 그러나 W3C, google chrome extension api 등은 접속이 불가능하거나 매우 느리다. 만약 참고해야할 라이브러리가 github에 있다면 프록시를 활용해 접근할 수도 있겠지만 css가 깨진 흉물스런 모습을 보게 된다. 이 혼란스러운 웹페이지를 보느니 개발자들의 블로그나, 개발자의 친구인 stackoverflow에서 상주하게 된다.
하루동안 있었던 변동사항이나 만남, 여자친구와의 대화, 아이디어 나누는 일도 코딩을 하면서 진행한다. 페이스북은 항상 켜져있어야 하며, 메일을 확인해서 사용자 건의사항을 챙겨본다. 스토어에 댓글이나 리뷰가 등록되었을 수 있기에 시간이 되는데로 창을 켜둔다. 특히 크롬 웹스토어는 매우 느리게 접속될 가능성이 크다. 일단 눌러두고 지속적으로 새로고침을 한다. 그러면 아주 느린 속도지만 웹폰트도 캐시에 저장할 것이고, 나는 개발자 대시보드에 접속하기 위해 로그인 창을 만난다. 아쉽게도 로그인창이 떠도 아이디와 비밀번호를 치는 작업 역시 원활하지 않다. 이것 역시 한단계 한단계 새로고침하면서 진행한다.
싸지방은 마우스 우클릭이 OS 기본에서 작동하지 않는다. 가령 바탕화면에서 우클릭을 해도 아무런 창이 뜨지 않는다. 그렇기 때문에 버전 업데이트를 위해서, 혹은 업로드를 위해서 네이버 클라우드에 파일을 통째로 올려야 한다. 웹스토어에 올라가는 확장 프로그램은 압축 파일 형태로 올라가는데 우클릭이 안된다. 때문에 압축도 할 수가 없다. 그래서 네이버 클라우드에 수정 파일을 올린 후 다시 다운로드 받아 zip파일을 얻는다. 이때 zip파일 내부에 깜빡하고 수정 안한 요소가 있다면 일부분을 수정한 파일을 다시 업로드하고 다시 다운로드 받는다. 만약 매니페스트 파일의 버전을 변경하지 않았다면 다시 파일을 업로드 하고 다운로드를 받는다. 이렇게 다운로드를 받은 zip파일을 스토어에 들어가 개발자 대시보드로 들어가고 업로드를 한다.
개발자 대시보드에 가도 진행은 더디다. 일단 크롬 웹스토어는 용량이 큰 프로그램은 처리 시간이 추가로 소요된다. 그렇기 때문에 업로드를 하고 나서 개발자 대시보드에서 처리중이 성공으로 바뀔 때까지 기다려야 한다. 짧게는 1분이면 되지만 길게는 10분이 걸리기도 한다. 만약 뒤에 기다리고 있는 사람이 있다면 나의 마음은 촉각을 다툰다. 웨일 스토어는 비교적 낫다. 업로드를 하면 처리가 완료될 때까지 창이 바꾸지 않고 끝나면 리뷰를 요청하면 된다. 웨일이 비교적 나아보이지만 꼭 낫지는 않은 이유가 있다.
웨일 스토어는 직접 개발자들이 리뷰를 하는 시스템이다. 크롬은 바로 업데이트가 적용되어 빠르면 몇시간 안에 모든 유저가 업데이트 된 걸 사용할 수 있지만 웨일은 금요일 저녁부터는 일을 하지 않는다. 그렇기 때문에 금요일 저녁에 올린 업데이트는 월요일 오전이 되야 리뷰가 끝나 업데이트가 진행될 것이다. 심각한 버그라도 있는 버전을 수정해야 한다면 금요일 저녁이 되기전에 끝을 내야한다.
대시보드는 로딩이 오래걸리므로 이 사이 시간을 활용해 캔버스(협업 툴인 비캔버스에서 쓰는 말이다)에 새로운 내용들을 업로드한다. 등록되는 내용은 대부분 개발 진행상황과 어떤 내용을 추가하거나 수정했는지이다. 그리고 기록을 위해 스크린샷을 남긴다. 작업이 오래될 경우 레퍼런스 페이지 링크를 추가한다.
혹시라도 모를 위험에 대비해 로그인 기록들을 지운다. 로그아웃을 하거나 인터넷 기록을 삭제한다. 파이어폭스는 사용 정보 삭제가 귀찮기 때문에 로그아웃이 편하다. 반면 크롬이나 웨일은 싹다 지우는게 빠르다.
주말은 군인들에게 늦잠의 시간이다. 나는 이 시간을 최대한 효율적으로 활용해야 한다. 비라도 오는 날이면 다들 늦잠을 더 많이 자는데 이럴 때 새벽에 일어나 커피를 타고, 아침에 할 일을 정리한다. 아침점호를 하기 전에 독서실에 가서 할 일을 정리한 후에 점호가 끝나면 바로 프로그래밍 준비를 한다. 대부분 자거나 페이스북을 하러 온 몇명을 제외하곤 없기 때문에 이때 1시간 이상 연속적으로 프로그래밍을 할 수 있다. 날이 좋아서 잠에 깬 전우들이 많다면 1시간 해커톤을 한 후에 기다리고, 다시 1시간 사용한다. 대부분 아침은 거르고 점심을 빨리 먹기 위해 11시 직전 많이 일어나는데, 이때 최대 3시간도 사용할 수 있다.
또한 주말에 어떤 시간은 사람이 텅텅 비기도 한다. 가령 풋살을 하러 간다던지, 무한도전 시간 등이다. 롤챔스시간도 프로그래밍하기에 적합하다. 전우들을 즐겁게 해주는 요소가 많을수록 운 좋은 시간은 늘어난다. 일종의 보너스다. 이렇게 프로그래밍을 하게 되면 다른 사람들에게 피해를 주지 않으면서도 많은시간을 할 수 있다. 부대의 분위기도 다들 별 욕심이 없기도 하고 프리해서 가능한 일이기도 하다.
EXAMPLE.
그래서 만들고 있는게 에어데스크이다. 크롬하고 웨일에 있는데 airdesk(에어데스크)라고 치면 나온다. 저번 휴가때부터 만들기 시작해서 오늘로 출시한지는 50일쯤 되었다. 제작 기간은 55일. 사용자는 총 630명정도. 어쨌던 군대에서도 프로그래밍을 한다. 도리어 생각할 시간이 많아서 최대한 시간을 효율적으로 쓰는 습관이 생긴다.
에어 데스크 웨일 스토어:
에어 데스크 크롬 웹스토어: