코로나로 인한 전역 전 휴가 출발 후 쓰는 군대 회고입니다. (드디어 탈출이다!!!)
지난 6월 19일부로 나는 전역 전 휴가(조기 전역) 출발을 하였다. 입대하고 나서 그동안 나는 성장을 위해 어떤 것을 했고 그 결과는 어땠는지 회고해보려고 한다.
주변에서는 아무일 없이 건강하게 전역만 하면 된다고 했지만 나는 군대에서 날리는 시간이 너무 아까웠고 조금이라도 시간 손해를 덜 보고자 이것저것 하게 되었다.
1. 알고리즘
군 생활의 시작과 끝을 같이한 알고리즘 공부이다.
첫 휴가 이후 본격적으로 개발 공부를 다시 시작한 후 가장 먼저 알고리즘을 공부하였다.
그 이유는 사지방이란 제한적인 환경에서 제약 없이 공부할 수 있는 분야라고 생각했기 때문이다. 실제로 알고리즘을 공부하면서 크게 불편했던 점은 없었던 거 같다.
1-1. 백준 단계별로 풀어보기 (2020. 05)
알고리즘 공부를 하면서 백준이라는 알고리즘 문제 사이트를 가장 많이 이용했다. 처음 공부할 당시 알고리즘 이론이나 개념 파일 입출력에 대해서도 잘 몰랐기 때문에 무작정 단계별로 풀어보기에서 처음부터 풀어봤다.
재귀까지는 특별한 알고리즘 기법을 사용하지 않아 기본기를 다지기에는 너무 좋았다! (고마워요 백준!)
꾸준히 공부하던 중 국방부 오픈소스 아카데미라는 대회를 알게 되어 대회 준비 관련해서 다른 기초 언어 공부 때문에 소홀해지기 시작했다... ㅠㅠ
1-2. 알고리즘 초보에서 벗어나기 위한 여정 (2021. 03)
국방부 오픈소스 아카데미에 참가하기 위해 코딩테스트를 본 후 나의 처참한 알고리즘 실력에 매우 자괴감이 들었다...
그래서 이것저것 알고리즘 공부법에 대해 찾고 있던 중 알고리즘 초보에서 벗어나기 위한 여정을 보게 되었다. 해당 글에서는 좋은 알고리즘 문제를 선별하여 액셀 시트에 만들어서 풀고 리뷰하는 방식이었고 공부법을 찾던 나에게는 충분히 해볼 만하다고 생각하고 도전하게 되었다.
3월 15일에 시작하여 마지막으로 푼 날짜인 6월 7일 기준으로 현재까지 총 119문제를 풀었다. 나중에 다시 한번 회고하긴 하겠지만 알고리즘 풀이 실력 향상에 큰 도움이 되었고 특히 리뷰를 통해 알고리즘에 대한 이해도를 한번 더 높이게 되었다.
1-3. 알고리즘 스터디 (2021. 06)
내가 알고리즘 공부를 시작했을 당시 후임 중 한 명이 코딩 공부를 시작했었다. 전기전자공학부였던 그 후임은 처음에 메서드에 대해서도 몰랐지만 5월이 됐을 무렵 실력이 비약적으로 성장하였다. 그러던 중 부대 내에서 동아리 활동을 장려하게 되어 후임과 함께 알고리즘 스터디를 시작하게 되었다.
스터디 진행방식은 다음과 같았다.
- 프로그래머스에서 레벨 2, 3을 선정하여 4일 동안 4문제를 풀기
- 중간중간 서로의 풀이를 보면서 코드 확인 하기
- 돌아가면서 알고리즘 이론 관련 발표자료를 준비하여 발표하기
처음으로 깃헙으로 하는 스터디였기 때문에 초반에는 많이 부족한 점이 많았지만 나중에는 서로의 풀이에 대해 이해하고 어떤 관점으로 문제를 접근해야 하는지 배우게 되어 관점의 폭이 넓어졌다. 또한 알고리즘 이론에 대해 발표하면서 이해도를 더 높이는 계기가 되었다.
아쉽게도 전역이 얼마 안 남았을 때 시작했던 스터디여서 6주 차까지 진행하였지만 그럼에도 불구하고 얻는 것은 무수히 많았던 스터디였다.
2. 국방부 오픈소스 아카데미 (2020.06)
인사 계원이었던 나는 인트라넷 서핑 중 국방부 오픈소스 아카데미라는 교육 프로그램을 알게 되었다.
사실 군 생활 내내 알고리즘만 공부하다가 끝날 거라고 생각한 나에게 매혹적인 행사였다. 심지어 국방부 오픈소스아카데미 집체교육 후기입니다. 해당 글을 읽고 4박 5일간 교육과 해커톤을 한다는 말을 듣고 내가 성장하기에 딱 좋겠다고 생각했다. 지원하기로 마음을 먹었다.
이제 곧 다시 국방부 오픈소스 아카데미를 시작할 시기여서 나중에 다시 한번 과정을 쓸 예정이지만 결과만을 말하자면 뚜렷한 성과를 거두지는 못했다. 그 이유는 다음과 같다.
- 부족한 나의 알고리즘 풀이 실력
- 프로젝트에서 사용하는 프레임워크에 대한 이해도 부족
- 첫 해커톤으로 인한 협업, 소통 능력 부족
먼저 집체 교육은 성적 우수자 한해서 선발하는데 선발 과정 중 하나가 바로 코딩테스트이다.
하지만 나는 코딩테스트에서 저조한 성적을 보여 그동안 알고리즘을 풀었던 나를 다시 되돌아보게 하였다.
비록 당시 코딩테스트를 봤을 때 나는 완전 탐색만 알고 있는 상태에서 시험을 봤지만 이렇게 못 볼 줄은 몰랐었다...(무슨 자신감으로 그 생각을 했는지 모르겠다 ㅋㅋㅋㅋ)
다행스럽게도 이 문제를 인지하여 해커톤 대회가 끝난 후 가장 먼저 알고리즘 공부를 다시 시작하였다.
그다음으로는 프레임워크에 대한 이해 부족이다.
그전까지 해봤던 프로젝트라고 하면 HTML과 CSS를 이용한 간단한 프로젝트랑 Java만을 이용한 수강신청 프로그램 프로젝트였다. 즉, 나는 React나 Redux, Express 같은 제대로 된 프레임워크를 공부하지 않았다. 그래서 해커톤을 하는 당시에도 React 개발 문서를 읽거나 구글링을 하면서 어떻게 작동하는지 하나하나 찾으면서 무작정 만들었다...(그 결과 나 자신도 모르는 코드들이 무수히 많이 생겨났다...)
우여곡절 끝에 얼추 프로젝트라는 것을 끝내긴 했지만 프레임워크 하나 제대로 몰라 팀원들에게 민폐만 끼쳐 매우 미안했다. 이와 같은 일이 다시는 생기지 않게 공부하려고 했지만 사지방이라는 불편한 환경 때문에 전역하고 나서 본격적으로 할 예정이다.
마지막으로는 협업, 소통 능력 부족이다.
이번 해커톤이 나의 첫 협업 프로젝트여서 그런지 나는 깃을 사용할 줄 1도 몰랐다. 또한 남들 다 쓰는 Trello나 Notion 같은 협업 프로그램도 몰라서 프로젝트 초반부터 애를 썼다. 그리고 팀원 간에 소통이 안돼 개발 방향을 서로 다르게 생각하여 다 만들고 나서야 수정하는 일들이 빈번했다. 또한 서로가 무엇을 개발하는지에 대한 개발 현황도 공유가 안됐고 이슈에 대한 처리도 공유가 안되어 개발 진행 속도가 더뎌졌다.
만약 서로 간에 소통이 잘됐으면 더 나은 결과물이 나왔을 텐데라는 아쉬움도 있었다. 이번 해커톤을 통해 개발자들이 그토록 강조하는 협업의 힘에 대해 알게 되었다.
뚜렷한 결과물이 없지만 실패하지는 않았다. 오히려 나의 부족함을 일찍 알게 되어 다행이었고 이런 경험들도 나에게 가르침이 된다는 것을 다시 한번 느끼게 되었다. 현재 나의 공부 방향 역시 이번 대회를 바탕으로 해서 부족한 점을 메꾸려는 방향으로 공부하고 있다. 그래서 국방부 오픈소스 아카데미는 나에게 엄청난 가르침을 주었기 때문에 나는 만족했다.
3. 어플 개발 파견 (2021.01)
국방부 오픈소스 아카데미 해커톤 참여 후 대대 내에서 코딩 병사로 알려지게 되었다. 그러다가 혹한기 훈련 관련해서 대대장님이 화상회의를 하던 중 여단장님이 CCTV 관련해서 어플을 만들면 좋겠다고 말씀하셨고 이에 대대장님은 나를 추천하여 여단으로 어플 개발 파견을 갔다. 사실 앞서 말했듯이 나는 제대로 된 프레임워크를 할 줄 몰랐고 심지어 어플 개발 역시 한 번도 해본 적이 없을뿐더러 여러 사람이 사용할 수 있는 서비스를 구현하려면 배포까지 했어야 하기 때문에 개발을 못할 거라고 생각했다. 그러나 나의 생각과는 다르게 내 의사를 묻지도 않고 다음날 바로 어플 개발하러 파견을 갔다.
그래도 사전에 들었던 얘기로는 나 말고 다른 한 명과 같이 개발을 한다고 했다. 협업을 할 줄 알고 기대했지만 게임 개발을 전공한 학생이었고 심지어 앱이나 서버 관련 지식이 하나도 없어 같이 협업을 못하고 따로따로 개발을 하였다.
지난번에 리액트로 개발한 경험이 있어 리액트 네이티브로 개발을 진행했고 일종의 지도 어플을 만드는 프로젝트였기 때문에 구글 맵 API를 사용하였다.
그 결과 나름 필수 기능들은 꽤 구현하였다. 하지만 혹한기 훈련 전까지 완성해야 했던 프로젝트였고 서버 파트는 하나도 구현을 못했기 때문에 해당 결과들로만 보고 되었고 이후에 추가 작업을 위해 훈련 끝난 뒤 불러 주겠다고 했지만 끝끝내 불러주지 않았다...(망할 군대)
그래도 나름 재밌었던 외주 아닌 외주 프로젝트였고(포상 휴가는 받았다) 처음으로 해본 앱 개발이 생각보다 재미있어서 나중에 시간이 되면 완성을 해보려고 한다.
4. 1일 1 잔디와 TIL (2021.03)
어느 날 유튜브를 보다가 1일 1잔디라는 것을 알게되었다. 1일 1잔디란 깃허브에 있는 contribution을 빈칸 없이 매일매일 채우는 행위를 일컫는데 나도 나의 노력을 기록을 해보면 좋겠다는 생각으로 시작하게 되었다. 그러나 잔디를 채울만한 커밋이 알고리즘 풀이 말고는 없었기 때문에 무엇을 더 해볼까 하다가 내가 배운 것을 기록하는 Today I Learned(TIL)도 시작하게 되었다.
1일 1 잔디를 하면서 확실히 오늘도 잔디 채워야지라는 일종의 사명감 때문에 공부를 더 열심히하게 되었다. 1일 1잔디를 통해 꾸준하게 공부하는 습관이 늘었다. 또한 1일 1잔디와 같이 시작한 TIL도 마크 다운으로 알고리즘, 자료구조, HTTP등을 기록하고 그 때 그 때마다 복습하여 공책으로 기록하는 거 보다 훨씬 생산성도 있고 정리하기도 깔끔해서 좋았다.
잔디 운동을 통해 꾸준함의 힘을 느꼈기 때문에 앞으로도 1일 1잔디 운동을 계속할 거 같다.
5. 운동 (2020.06)
개발 실력 향상 외에 가장 눈에 띄게 성장한 것은 바로 몸이다...!
입대 당시 훈련소에서 체력 기준 미달을 당했던 내가 전역할 때 즈음에는 몸도 제법 만들고 체력평가는 항상 특급이 나왔다.
6월부터 시작해서 격리기간 동안에도 휴대폰으로 영상 보면서 홈트를 할 정도로 운동에 미쳤었다.
사회에 있었을 때 운동을 안 했던 이유는 다음과 같다.
- 운동을 하면 체력이 없어 개발 공부에 집중을 못할 거 같아서
- 운동을 어떻게 시작할지 몰라서
- 귀찮아서 ㅎㅎ
그러나 군대라는 조직이 위의 문제점을 해결해줬다.
- 항상 남아도는 20대 초반의 불꽃 체력
- 주변에 헬창들이 너무 많아 친절하게 알려줌
- 군대에서 시간 버리는 게 아까워서 강제로 하게 됨.
운동을 하면서 나날이 성장하고 있는 나의 모습을 보며 성취감을 느꼈다. 전역 후에도 헬스장을 꾸준히 다니고 있으며 결과적으로 나에게 도움이 되는 거 같다. 여유가 없어도 꾸준히 운동해야겠다고 생각했다.
6. 마무리
다시 생각해보면 군대에서 나는 소통의 힘을 알게 되었다. 이러한 환경에서 많은 것을 할 수 있었던 이유는 여러 선후임들과 함께 소통하면서 여러 정보들을 얻었다. 내가 혼자 공부하면 몇 시간이나 걸리는 것을 서로의 지식을 공유하는 과정에서 풀리기도 하고 같이 고민하면서도 시간을 더 줄이고 효율적인 답을 얻을 수도 있었다. 또한 내가 몰랐던 정보나 그들만의 노하우도 알 수 있었다.
제대 후에는 입대 전처럼 혼자만 있지 않을 예정이다. 나와 뜻이 맞는 사람들과 함께 여러 활동을 하고 싶어 졌다. 그래서 먼저 부스트캠프, SSAFY, SW마에스트로, 42서울 같은 교육형 프로그램을 듣기 위해 도전할 것이고 만약에 안된다면 메이커스, 넥스터즈, YAPP, SOPT, Mash-Up 등의 IT 동아리에 지원할 예정이다.
입대했을 때부터 꿈꿔왔던 전역을 하였다. 이제는 하고 싶었던 개발을 계속하여 더 성장하고 싶다.
'회고' 카테고리의 다른 글
개발자 지망생의 2021년 회고 (6) | 2022.01.16 |
---|