내 군생활의 전성기
군장병 온라인 해커톤 일기
2020 군장병 온라인 해커톤
6월
6월, 내 동기가 어느날 생활관 책상에 ‘국방 SW 아카데미’라고 적혀있는 포스터 한 장을 인쇄해서 뒀다. 내가 좋아할 만한 거라고 뽑아왔다고 했다. 마음이 문드러진 상태였고 다른 걸 잊어버릴 무언가가 필요했던 나에게 딱이었다. 정보처리기능사 실기시험을 앞두고 있었지만 개발자가 되려면 깃을 관리해야 한다고 귀에 못이 박이도록 들어왔던 나머지, Git 강의 하나는 들었다. 군대에서 제공하는 교육이니 뭐 별거 있겠나 싶어 기대는 하지 않았다. 그런데 왠걸? 퀄리티가 굉장히 좋았다.
7월 중순
7월 중순 쯤, 정보처리기능사 실기공부를 얼추 끝내고 git강의를 제외한 나머지 필수과목 강의들을 들었다. 아쉽게도 퀄리티가 좋은 건 git강의 뿐이었다. 3과목 쯤 들어보니 알만했고 나머지는 뭐…시간만 채웠다. 개발과정이 웹, 앱, IoT, 인프라 네 가지 있었는데 웹과 앱은 괴물들이 많을 것 같았고 인프라는 별로 끌리지가 않아서 IoT를 택했다. 아두이노와 라즈베리 강의였는데 그것 뿐 아니라 3강에서는 AVR 기초에 대해서도 설명해줬다. 이 강의로 AVR과 ARM공부를 시작했다고 봐도 무방할 정도로 매력적인 강의였다.
7월 말
7월 말, 개인적으로 심적 한계에 다다랐다. 바다가 보고 싶어 휴가를 쓰고 무작정 부산으로 갔다. 모든게 두려워서 달아나고 싶었다. 나 자신으로부터 도망치고 싶기도 했다. 바다도 보고 동백섬에서 쉬기도 하고 바다 보이는 카페, 호텔에서 책도 읽었다. 끝없이 펼쳐진 수평선을 보며 망망대해에 홀로 남겨진 나를 봤다. 기쁨도 슬픔도 그 어떤 감정도 딱지앉아 느껴지지 않았는데. 산을 흩어놔도 수평선 끝에는 아무것도 없다는 것을 깨달은 건지 아니면 무언가 느끼기 위해 바다를 보러 달려왔지만 놀라울만치 아무것도 느껴지지 않아서 그랬던건지. 서럽게 울고싶어도 눈물이 나오지 않아 울지 못했다. 그 와중에도 IoT강의가 생각이 나서 스타벅스에서 강의를 마저 들었다.ㅋ
8월
8월, C언어 책을 펼쳤다. 대학교 1학년 때 내가 굉장히 코딩을 잘한다고 착각했다는 사실을 깨달았다. C언어를 다 볼 때쯤 유튜브에서 코딩테스트를 준비하려면 자료구조론을 빠삭하게 알고 많은 기출문제를 풀어봐야된다길래 후임한테 자료구조론 책을 빌렸강탈했다. 코딩테스트까지 4주 정도 남았었는데 어찌저찌 자료구조론을 다 봤다. 알고스팟이라는 사이트에서 문제도 몇 문제 풀어봤다. 이때였나? 근무서다가 후임한테 중학교 때로 돌아가서 C언어 공부해놓고 싶다고 칭얼댔었는데 “김경호 상병님은 사실 30대인데 소원이 이루어져서 20대로 돌아온 겁니다”라는 말을 듣고 30대가 되어서도 칭얼댈까봐 끔찍했고 동시에 내가 그토록 원하던 20대가 지금 내 손안에 있어서 기뻤다. 그래서 자극받고 다음날 바로 자료구조론 책을 빌려강탈해서 단기간에 끝낼 수 있었던 것 같다.
9월
9월, 코딩테스트라는 걸 처음으로 봤고(코딩테스트 후기) 놀랍게도 좋은 성적이 나왔다. 같이 나가기로 했던 후임사람이 실력에 자신이 없다고 시험을 아예 치지 않는 바람에 아쉽게도 우리 부대에서 나 혼자만 해커톤에 나갈 수 있는 기회를 얻었다. 이후에는 깃 쓰는 법을 익히기 위해 유튜브랑 pro git이라는 책을 많이 봤고 github를 이용해서 이렇게 블로그도 만들었다. 제출할 작품에 대한 구상도 조금 했는데, 센서나 개발보드 같은건 부대에 반입금지라서 막막했다. 적당히 하다 그만둘 생각이었다.
10월
10월, IoT강좌를 보고 난 뒤 임베디드에 관한 관심이 극도로 상승해서 ATmega128로 AVR을 설명하는 책을 하나 사서 공부하기 시작했다. 아마 이때 블로그에 임베디드 관련 글을 올리기 시작했던 것 같다. 멘토를 지정해준다는데 3주째 소식도 없고 공지도 없고…짜증이 조금 났지만 그래도 해보긴 해야 할 것 같아서 없는 자리 겨우 만들어서 휴가를 따냈다사실 동기가 다해줬다. 10월 마지막 주였는데 이 날을 위해 센서도 사고 라즈베리도 사고 C++, ARM 등 책 무더기…한 30만원 정도를 쏟아부었다.
10월 휴가
10월 휴가, 휴가가 시작되자마자 곧바로 문제가 발생했다. 무엇이 문제였을까? 센서를 잘못 샀다는 점? 센서를 연결할 케이블이 없었다는 점? C++로 개발한다고 해놓고 C++을 할줄 몰랐다는 점? 놀랍게도 라즈베리 파이 세팅하고 os 올리고 openCV 설치하는데에서 진을 다 뺐다. 일단 라즈비안 os를 어떻게든 올려놓고 미리 사둔 C++, ARM, 라즈베리 책들을 보면서 공부하고 있었다.
3일째 되는 날. 약속했던 시간에 멘토의 연락이 없자 멘탈이 나가서 저녁까지 놀아버렸다. 하지만 정말 다행스럽게도 저녁에 멘토에게서 전화가 왔다. 상황을 이야기하자 그는 포기하지 말라는 말을 해주었다.거기까지는 좋았는데
난데없이 자기 군생활이야기 시작. 한시간 넘게 2절,3절,뇌절까지 이어지는 그의 군대이야기에 더 이상은 안되겠다 싶어 결연한 목소리로 포기하지 않고 멘토님께서 말씀하신대로 당장 시작하겠다고 말한 뒤 전화를 마쳤다걸렸구나 요놈. 의도했든 아니든 포기하면 안되겠다라는 생각그리고 군대이야기는 밖에서 하면 안되겠구나라는 생각과 함께 멘토링을 끝냈고 또다시 3일간 밤을 새며 폐관수련에 들어갔다. 결국 무선랜이 연결되지 않는 라즈베리를 인터넷에 연결시키는데 성공했고 openCV도 컴파일하는데 꼬박 하루가 걸렸지만 어떻게든 설치해버렸다.
C++공부를 얼추 마치고 openCV 예제를 살펴보니 faceLandmark 데이터가 있었다. 깃헙에서 내가 하려는 프로젝트와 비슷한 코드들을 싹다 긁어와서 살펴보니아니 파이썬을 왜이래 좋아하세요들 이것땜에 파이썬도 공부했다 dlib라이브러리와 faceLandmark데이터, eye aspect ratio 졸음 판별법을 이용하면 졸음을 판별할 수 있었다. 죽어가던 펜티엄 듀얼코어 노트북에 인공호흡기를 겨우 달아놓고 우분투 환경에서 소스코드를 짜봤다. 라즈베리에서 돌릴 소스코드도 완성. 그렇게 해서 만들어 진 깃헙 리포가 졸음운전방지 시스템.
원래 졸음운전을 인식하면 부저로 알람을 울리는게 목표였건만 구매한 부저가 불량…잠깐 쇼트났었는데 그때 고장났나보다 일단 README랑 PPT 급하게 완성하고 부대로 복귀했다.
11월
11월, 놀랍게도 복귀하자마자 근무 뛰고 부대에 별들이 찾아오는 데다 휴가 때 밤낮이 바뀐 탓에 누적된 피로가 몰려오는 바람에 4일간 휴대폰을 키지도 못했다. 나도 모르는 사이에 이미 내부평가가 진행되어 버렸고, PPT에 시연영상을 포함해야 한다는 공지도 확인하지 못했다애초에 작품이 구려서 합격은 꿈도 못꾸지만. 4일날 멘토에게 물어봤지만, (대충 탈락했다는 말)이 돌아왔다.
끝은 좋지 않았지만, 이번 대회를 준비했던 5개월은 내 군생활의 전성기였다고 분명히 말할 수 있다. C언어, 자료구조 공부 끝낸대다가 코딩테스트도 경험해봤고 C++, ARM, CMake, Makefile 등 내가 뭘 공부해야 할지 명확하게 정해졌다. 임베디드 분야를 하려면 대충 어떤걸(C/C++, AVR/ARM, 리눅스, 회로이론) 공부해야겠다라는걸 알아냈고 코딩테스트 준비도 다음번에는 C++ STL을 공부해서 종만북 문제를 겁나게 풀어야겠다는 걸 깨달았다.
끝
댓글남기기