내가 군대에서 개발하는 방법

내가 군대에서 개발하는 방법

군대와는 다른 개발 환경…

사회에서…

나는 사회에 있을 때 코딩하기를 즐겼다. 좀 더 정확히 말하면 군대 가기 6개월 전부터 전공에 대한 흥미가 정점을 찍고 있었다.
이유인 즉슨 그때 처음으로 프로그래머스에서 코딩 테스트를 보았고 대학교 2학년 생활이 끝이 나고 프로젝트란 걸 해봐야겠다 라는 생각이 들었기 때문이다. 그때 대학 동기형과 진행한 프로젝트가 있었는데 FindGhost 이다.
1학년 때 html, javascript, jQuery 를 배웠지만 그렇게 집중하지를 않고 다른 과목에 더 신경썼던 기억이 난다. 저 언어들을 findghost 프로젝트 덕분에 다시 해볼 수 있는 기회가 생겼다.

findghost 2학년때 진행한 findghost 프로젝트의 사이트…

이때 처음으로 서버에 관한 지식도 알게되고 사이트의 UI를 잡는 것이 어렵다고 느꼈다. 또한 게임의 서버가 필요했기에 AWS EC2 를 처음으로 써보게 된다. 프로젝트 초반 당시 어떻게 시작해야될지도 막막했고 javascript 의 숙련도도 굉장히 낮았기 때문에 진행속도가 우리가 원했던 속도만큼 붙지 않았다. 그럴수록 동기형과 항상 통화하면서 프로젝트 진행을 하고 각자 숙제도 스스로 내서 꼭 해오기로 하던 것이 생각난다.

그렇게 점점 코딩이 재밌어지고 입대하기 전 했던 안드로이드 앱 수업을 들으면서 앱에 관한 흥미도 올라 밤새 과제로 내주신 앱을 만들었다. 그렇지만… 코로나 때문에 비대면 수업이 장기화가 되고 작년 6월 17일 쯤 종강할 줄 알았던 나는 6월 29일, 입대 하루전까지 시험을 보고 코딩을 하다가 입대를 하게된다… 😫

군대에서…

20년 6월 30일 입대를 하게 된다. 자대 배치를 받고 자대로 전입을 온 날, 내가 제일 먼저 한 것은 findghost 를 체크한 것이다. 참 웃기다. 다들 페이스북이나 인스타그램을 먼저 확인하느라 바빴지만 나는 내가 코딩한 게임과 사이트가 제일 먼저 보고 싶었다. 그러나 AWS EC2 서버를 이용하여 실행시킬 수 있던 우리 게임은 사지방에서는 접속이 되지 않았다…


알아보니 AWS EC2 의 사설 IP 는 군대에서 막아놓았다. 이를 어쩌면 좋나. 그럼 무엇을 코딩하면서 보내야하나 한참 고민했다.

군장병 오픈소스 소프트웨어 해커톤

일병 1호봉을 달았을 때쯤(우욱…) 군장병을 대상으로 해커톤을 실시한다는 공지를 보았다. 공지링크(종료됨)
여기서 React-Native-Cli 를 이용해 앱 분야에 지원을 했고 본선에 통과하게 된다. 이때 개발환경으로 Codespace를 지원해줬다. 이것이 나의 군생활에서의 개발생활을 바꾼다.

Codespace

codespace Github의 Codespace

Codespace 란 무엇이냐 하면 쉽게 말해 온라인상에서 vscode를 쓸 수 있다. 또한 운영체제는 Ubuntu 20.04 를 지원하므로 리눅스를 터미널을 통해 배울 수 있는 장점을 가지고 있다. 현재 이 글을 작성하고 있는 시점에서는 베타 테스트 중이기에 얼른 가입해서 써보는 것을 강력 추천한다. Early Access

Codespace 의 장점은 Github에 있는 레포지토리를 Git Clone 한 것 같은 효과를 주는데 다만 로컬에 clone 한 것이 아닌 별도로 제공되는 VM에 한 거라 생각하면 된다. 현재는 베타 테스트 기간이기 때문에 별도의 요금이 청구되지 않고 개인 당 2개까지만 만들 수 있다. 현재 이 게시글도 Codespace 를 이용하여 작성하고 있는 것이다.


alphacode

현재 사용하고 있는 Codespace

Codespace 는 군인뿐만 아니라 다른 개발자들한테도 굉장히 유용할 것으로 생각되므로 꼭 한번 해보기를 바란다.

구름 IDE

goorm 출처 : 구름 IDE


Codespace 베타 테스트 승인을 받기 전 썼던 클라우드 IDE이다. 이미 국내에서는 많은 사람들이 이용하는 것으로 알고 있다.
다만 이 IDE는 Codespace 보다 속도도 현저히 느리고 git 과 연동해서 쓰기에는 큰 무리가 있었다. 그래서 나는 이것을 코딩 테스트 문제 푸는 용도로만 사용하였다. python3 를 지원하고 운영체제도 Ubuntu 18.04 를 고를 수 있었기에 사회에서 리눅스를 쓰던 나에게는 코딩 문제 풀이용으로는 더 없이 좋은 IDE 였다.

사지방 TIP

사지방에서 코딩을 하다보면 갑자기 컴퓨터가 꺼질 때가 있다. 이는 2시간씩마다 전원이 꺼지게 되있는 설정 때문인데 구글링을 하다 찾아본 결과 Powershell을 켜서

logoff

명령어를 입력하면 이를 방지할 수 있다고 나와있다. 현재는 24시간을 켜놔도 꺼지지 않는 상태이다. 그러나 우클릭이나 탐색기에서의 권한은 주어지지 않기 때문에 불편할 수 있다. 나같은 경우 구름 IDECodespace 를 이용해 잘 해결하고 있는 중이다. 더 설명을 하자면 Codespace 에서 로컬 PC에 있는 파일을 따로 올릴 수 없다. 그래서 나는 구름 IDE 를 깃허브의 개인 사진 올리는 용도로 쓰고 있는 레포지토리를 연결한 다음 올린 사진을 Codespace 에서 wget 을 이용해 다운받는 방법으로 해결하고 있다.
두 ide 모두 리눅스 기반이기에 scp 명령어를 쓸 수도 있지만 위의 방법이 관리가 더 용이하기에 scp 명령어는 잘 쓰지 않는다.

마무리하며

군대에서 개발 실력이 얼마나 늘까 입대하기 전에 걱정을 많이 했다. 솔직히 입대하기 전과 다를 것 같지 않았지만 요즘은 생각이 다르다. 굉장히 늘고 있다고 생각하고 Github Page (이 블로그) 도 군대에서 만든 것이다. 이 글을 읽는 군인인 개발자들도 많이 코딩하고 실력도 마니마니 늘었으면 좋겠다.