Unknownpgr

군대에서의 950시간

2023-10-12 07:43:46 | English, Korean

군 복무로 보내는 1년 6개월이라는 시간이 너무 아까웠습니다. 끊임없이 공부하고 성장해야 할 시기에 군 복무로 인해 성장이 멈춰버렸다고 느껴졌기 때문입니다. 아마도 제가 군대를 상당히 늦게 간 편이기에 이미 전역한 후 열심히 성장 중인 친구들이 많아 이런 느낌을 더 강하게 받았던 것 같습니다. 그래서 저는 군대에서의 1년 6개월을 절대로 낭비하지 않기로 마음먹었습니다. 입대하기 전부터 많은 준비를 해왔고, 입대 후에도 계획한 것처럼 다양한 시도를 했었습니다.

이 글은 제 1년 6개월간의 공부 경험을 정리한 글입니다. 이 글을 통해 제가 공부했던 내용들을 기록하는 동시에, 이 글이 저보다 늦게 군대를 가는 친구들에게 조금이나마 도움이 되었으면 좋겠습니다.

서버 구축

저는 어떤 분야라도 공부를 하기 위해서는 반드시 실제로 그것을 해 봐야 한다고 생각합니다. 피아노를 배우는 사람이 악보나 교과서만 보고 실제로는 피아노를 치지 않으면 실력이 늘지 않듯이, 프로그래밍을 하는 사람 역시 어플리케이션이 되었든 인프라가 되었든 실제로 해 보지 않으면 실력이 늘지 않습니다. 그래서 저는 군대에서 실제로 서비스를 개발하고 배포할 수 있는 환경을 구축하는 것을 매우 중요한 목표로 설정했습니다.

그렇기 때문에 입대 전 사전 준비로 집에 서버를 구축했습니다. 24시간 가용한 서버가 있는 것과 없는 것, 예를 들어 구름 IDE 등을 사용하는 것은 차이가 큽니다. 앞서 언급한 것처럼 서버에 개발 환경을 구성해두면 어디서든 접속해서 개발할 수 있습니다. 저 역시 주로 VSCode로 SSH extension를 이용, 서버에 접속하여 개발했습니다. 그뿐만 아니라 개발자에게 서버란 안정적으로 파일을 저장할 수 있는 장소가 되기도 하고, 구현한 서비스를 비용 부담 없이 올릴 수 있는 테스트 베드가 되기도 합니다.

특히 군대의 사이버지식정보방에서는 마음대로 프로그램을 설치할 수도 없고 80이나 443을 제외한 포트 역시 대부분 막혀 있습니다. 그러므로 미리 그러한 상황에서도 접속할 수 있는 개발 환경을 잘 구축해두는 것이 중요합니다.

개발 환경 구축

그리고 입대 후 EC2의 Windows Server Instance를 기본 개발 환경으로 선택했습니다. 입대 전에는 앞서 구축한 서버를 이용하거나 아니면 집에 맥북을 놔두고 VNC로 접속할 예정이었습니다. 그러나 다음과 같은 이유로 새로운 환경을 추가로 구축했습니다.

실제로 했던 것들

군대에서는 오랜 기간이 걸릴 수 있는 작업들을 주로 진행했습니다. 예를 들어서 제가 만들었던 프로덕트들의 전반적인 리팩토링을 진행했습니다. 사회에서는 시간이 오래 걸리기 때문에 이러한 리팩토링을 하기 어려울 수 있습니다. 그러나 군생활은 절대로 끝나지 않기 때문에 마음 편하게 리팩토링을 진행할 수 있었습니다.

그리고 군대에 와 보니 아무것도 안 하고 가만히 있는 시간이 대단히 많다는 것을 알게 되었습니다. 그래서 이러한 시간을 효율적으로 이용할 수 있는 공부 방식을 택했습니다. 특히 틈날 때마다 책을 읽었습니다.

그리고 심심할 때마다 여러 수학, 공학적인 개념들을 다시 돌아봤습니다.

그리고 다양한 프로젝트들도 진행해봤습니다.

결론

사이버지식정보방에서 컴퓨터 사용 기록 로그를 뽑아서 확인해보니 950시간이 넘었습니다. 이 글의 제목인 950시간은 그런 의미를 담고 있습니다. 처음에는 다른 사람의 계정을 빌려 쓰다가 중간부터 제 계정을 만들었으니, 실제로 사용한 시간은 1000시간이 넘을 것입니다.

이로부터 저는 1년 6개월을 낭비하지 않고 계속 발전해올 수 있었다고 생각합니다. 다른 분들도 군대에서의 시간을 낭비하지 않고 효율적으로 사용할 수 있기를 바랍니다.

TMI

사이버지식정보방에서 컴퓨터 사용 로그를 가져오고 싶었습니다. 그러나 관리 프로그램에서는 텍스트를 복사할 수도 없고 별도의 export 기능도 없었습니다. 한참 삽질하다가 결국 Wireshark로 TCP stream을 떠 봤습니다. 다행인지 불행인지 데이터가 그냥 평문으로 전송되기에 데이터를 저장한 후 적당한 파싱 스크립트를 작성해서 총 사용 시간을 알아낼 수 있었습니다.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -