비전공자의 군대에서 코딩 시작하기

Sung Bo Shim·2022년 10월 16일
0
post-thumbnail

본 글은 제가 군대에서 공부했던 내용들을 정리 및 공유하기 위해 작성한 글입니다.
이 글이 다른 분들에게 동기부여가 되기를 바랍니다.

개발, 그 이전의 삶

저는 축구 선수로 11살 부터 24살까지 14년간 축구선수로 활동했습니다.
2006년 독일 월드컵을 보며 축구선수를 꿈꿨던 저는 본격적으로 국내 프로 선수가 되기 위한 절차인
엘리트 코스로 축구를 시작하였고, 보다 빨리 꿈을 이루기 위해 대학교도 휴학하며 프로 선수가 되기 위해 도전하였습니다.

대학교를 휴학할 당시에 저는 22살 대학교 3학년의 나이였습니다.
저는 주변 친구들보다 빠르게 프로에 입단하고 싶었고 자신감도 있었기에 대학교를 휴학하고,
독립구단인 TNT FC에서 선수생활을 이어가며, 국내 및 해외 테스트에 도전했습니다.
하지만 저의 생각과는 달리 예상치 못한 많은 일들이 있었습니다.

3년간 두 번의 수술, 테스트, 에이전트의 사기와 소송까지 개인적으로
부정적인 상황이 지속적으로 발생했습니다.
이러한 상황들이 계속되다보니, 자신감을 잃게되어 목표만을 바라보며 살게되었고, 정작 가장 중요한 기본적인 것들을 실수하고 놓치는 일들이 잦아졌습니다.

그러나 힘들었던 경험을 통해 "쓰러져도 다시 일어나는 방법"을 배웠습니다.
앞서 기재한 두 번의 수술은 축구 선수들에게 가장 중요한 시기인 겨울 이적시장에 당한 부상이라 계약에도 큰 영향을 미쳤고 그로 인한 상실감이 매우 컸습니다.
하지만 두 번의 수술은 되려 저를 성장하게 만들었습니다.
수술 후 병원에 누워만 있을 수 있었던 저는 다양한 책들을 많이 읽을 수 있었고, 이는 저의 부상으로 인한 실패를 극복하는데에 큰 도움이 되었습니다.

  • 겸손, 의미와 가치
    부상과 실패 모두 제 자신의 실력은 쌓지 못하고 자존심만 내세운 결과 라는 생각을 하게 됐습니다. "나의 실패를 바탕으로 더 나은 성공을 만든다" 과거의 실패가 진짜 실패가 아님을 알게 됐고 현재의 저에게는 지속적인 에너지의 원동력이 됐습니다.
  • 현실을 직시하는 태도
    처음 부상을 당했을 때 현실을 직시하지 못하고 회피하려 했습니다.
    하지만 수술로 인해서 제 자신을 돌아보는 시간을 갖게 됐고, 이 시간을 통해 저의 단점과 장점, 무엇이 부족한지를 알게 됐습니다. 이로 인해 제 자신의 부족한 점을 채울 수 있는 시간이 됐습니다.
  • 긍정적으로 생각하는 습관
    실패, 부정적인 경험을 했을 때 흔히 마주하는 생각은 부정적인 생각들입니다.
    하지만 실패로 인해 배울 수 있는 것들이 정말 많았습니다.
    용기, 도전, 끈기, 인내 등 배울 수 있는 것들이 무궁무진했습니다.
    '고통은 쓰나 그 열매는 달다'라는 말이 있는 것처럼
    실패 횟수는 성공 횟수와 비례한다고 생각합니다.

이와 같이 실패로부터 배울 수 있는 것들은 정말 많았습니다.
저는 현재 축구를 그만두었지만, 축구 선수 생활을 통해 배웠던 끈기와 성실함은 꾸준히 프로그래밍을 공부 할 수 있었던 원동력이되었고, 이로 인해 배움이라는 작은 성취감으로 나날이 발전하며 살아가고 있습니다.


입대 전

축구를 그만두고 입대하기 전까지의 1년간의 과정입니다.

  • 카투사 지원하기
  • 카페에서 일하기

카투사

'이왕 군대에 가게 된 거 카투사에 지원해 보자' 라고 생각하여 토익시험을 준비했습니다.
저의 영어실력은 제로베이스에 가까운 실력이었습니다.
매일 퇴근 전, 후 독학으로 공부하여 800점 이상의 성적을 얻게 되어 카투사에 지원했습니다.
하지만 제비뽑기 형식의 카투사 선발이였지만 아쉽게도 떨어지고 말았습니다.

스타벅스

입대 전 스타벅스에서 1년 3개월동안 바리스타로 근무하며 체계적인업무 시스템을 배웠습니다.
비좁은 공간의 바 스테이션에서는 철저한 루틴을 통해 음료를 제조해야 했기에 파트너들과의
호흡이 굉장히 중요했습니다. 이러한 경험을 통해서 동료들과 협력하여 일할 수 있는 방법들을 배웠습니다.


입대

2021년 5월 3일 입대해 마침내 전역을 앞두고 있습니다.
저는 옆에 있는 동기들보다 비교적 늦은 나이에 입대하였기 때문에
군대안에서의 시간을 더 잘 사용하고 싶었습니다.

제가 입대 할 당시 '네카라쿠배' ... '부트캠프' 등 코딩열풍이라는 기사를 보게됐습니다.
소프트웨어 개발 등 IT기술자의 수요가 급증한다는 내용의 기사였습니다.
마침 스타벅스 근무 당시 사용했었던 발주 시스템의 동작 원리에 대한 궁금중이 있었던 저는 '코딩을 배워보자' 라고 생각하게 되어 입대 후 프로그래밍을 시작하게 됐습니다

2021년 9월부터 매일같이 일과 종료후 개인정비 시간에 프로그래밍 공부를 하였고, 모두가 잠이 든 시간에도 연등을 신청해 부족한 공부시간을 보충하였습니다.
쉬는 시간에도 공부하는 열정적인 저의 모습은 다른 부대원들에게도 동기 부여를 심어주었고,
한 명, 두 명 공부하는 인원들이 늘어나는 사지방 공부 붐이 일어나게 됐습니다.🔥


내가 했던 공부들

1. HTML/CSS

개발이라는 단어조차 생소했던 저는 무작정 사지방으로 향했고, 생활코딩에 들어가
인터네 강의를 들으며 Hello world 코드를 따라 쳤습니다.

"ㅇ에에 이게 된다고??" 저도 모르게 이고잉님과 함께 박수를 쳤습니다ㅎㅎ
그렇게 저는 HTML,CSS 강의를 들으며 혼자 개발 공부를 시작했습니다.
모든 유튜브 강의들이 저에게는 친구이자 선생님이었습니다.
저는 아무래도 프론트가 즉각적으로 반영이 된다는 사실이 신기하고 큰 매력을 느꼈습니다.
무엇보다도 친구들에게 "내가 만든 사이트야!" 하며 자랑하는걸 좋아했던 저는 프론트의 성향이 잘 맞는다고 느꼈습니다. 그렇게 HTML,CSS 클론코딩으로 당근마켓을 만들어 봤습니다.

2. JavaScript

본격적으로
제로초, 모던자바스크립트 를 통해서 프로그래밍을 시작했습니다.
솔직히 굉장히 어렵고 낯설고 지루하게 느껴졌습니다.

공부하는 시간이 흘러 "이렇게 공부하는게 맞나?" 싶은 생각이 들었지만,
나태해져가는 제 자신을 다잡고 처음 들을 때는 강의를 보면서 따라하고,
그 다음은 중요한 로직들을 복습 및 다시 완성시켜가며 공부를 했습니다.

이러한 과정을 겪은 후 다시 복습을 했을 때는 "어제는 몰랐던 것들을 오늘은 알게 되는"
놀라운 일들을 경험했습니다. 실제로 레벨업했다고 느꼈던 것 같습니다.

레벨업 하는 순간이 가장 짜릿하고 저를 좀 더 생동감 있게 만드는 느낌이었습니다.


3. React

그 다음으로는 프론트엔드의 꽃? 이라고 불리는 리액트를 공부했습니다.
저는 저에게 지속적으로 동기부여를 심어주기 위해서 데드라인을 설정하고 싶었지만..?
여건상 어려운 부분들이 있어서 "그냥 익숙해질때까지 반복하자" 라는 마음으로 리액트를 공부했습니다.

그렇게 리액트의 virtual DOM 과 불변성을 지켜야하는 이유 등.. 이론과 코딩을 반복하며
실력을 쌓아갔습니다.

(CRUD로 구성했던 축구팀 경기기록 앱) (json-server사용)

개발 초보자인 제가 리액트를 공부하며 느꼈던 가장 큰 고충은 "새로고침 하면 데이터가 원상복구 된다" 였습니다. 그래서 "아 백엔드도 공부해야하나?" 제 자신에게 질문하게 됐고
백엔드의 기초지식은 선택 아닌 필수 라고 생각해 기초적인 공부를 시작했습니다.



4. 백엔드(node.js)


최소한의 api는 만들자. (로그인, 회원가입, 인증) 라고 생각하여 제 자신에게 비교적 진입장벽이 낮았던 node.js를 통해서 공부를 시작했습니다.

백엔드는 실제로 풀스택 클론코딩 강의와 추가적인 공식문서를 통해서 짧게만 공부했습니다.
(기본적인 CRUD, 토큰생성, 로그인,로그아웃 라우터 등)

그 당시 저는 빠르게 서버와 통신할 수 있는 웹앱을 만들고 싶었고, 이 과정에서 짧게나마
DB에 대해서도 공부하게 되었고, 결과적으로 '개발자로서 성장' 하고 있음을 많이 느꼈고,
개발에 자신감이 붙기도 했습니다.



5. 개인 프로젝트(MERN)

공부한 내용을 토대로 제대로 된 프로젝트를 시작해 봤습니다.
군대에서는 병영갈등 문제를 해결 하기 위해서, 카카오톡 오픈채팅(익명)을 활용해서
병영 부조리, 갈등문제에 대해서 직접 제보하고 지휘관이 답장해주는 시스템을 운영중이였습니다.

군대에 있는 저는 "익명앱을 만들면 괜찮겠다!" 생각하여 만들 앱이 We Are App 입니다.

Features

로그인, 회원가입
1. 토큰을 활용하여 유저의 로그인 상태에 따라 게시판, 마이페이지 접속이 (불)가능 설정
2. 로그인시 userId, userPw가 일치하는지 체크
3. input 입력창에 로그인에 대한 모든 정보가 입력됐는지 확인
4. 아이디 중복체크 및 아이디 글자 수 제한

게시판
1. Nav bar 영역 로그인 상태에 따라 접속가능한 UI 변경
2. 게시판 글 작성 시 익명기능 및 작성시간 추가
3. 등록된 게시글 좋아요 및 댓글기능 추가
4. 게시판 정보를 추가로 불러오기
5. 본인의 게시글 삭제기능

마이페이지
1. 닉네임 변경 기능
2. 회원탈퇴 기능
3. 내가 쓴 글 목록 확인


Priview

로그인, 회원가입, 중복ID 체크기능

메인게시판, Detail게시판

Mypage, 회원탈퇴, 게시글 작성

호흡이 긴 강의를 계속해서 들었을 때 보다, 강의를 듣고
포트폴리오를 만들면서 모르거나 헷갈리는 부분들을 추가로 공부하며 포폴을 만들었을 때
실력이 비약적으로 올랐다고 느꼈습니다.
이론적으로만 짧게 이해했던 부분의 이해도를 높이며, 퍼즐이 맞춰지는 기분이었습니다.


공부하며 느꼈던 어려움과 고충

  • 개발 에디터 Feat.(구름IDE)

저의 경우 코딩, 프로그래밍에 대한 지식과 경험은 없었기 때문에, 보안이 철저한 군대 내에서 초기 개발 환경을 만드는 것 조차도 너무 큰 어려움을 느꼈습니다.
당시 네이버 검색창에 "군대에서 코딩하는 방법" 등과 같은 키워드로 서칭해가며 구름IDE
서비스를 통해서 개발을 시작했습니다.

"dev 환경에서 개발할 때 localhost를 사용할 수 없었던 점" 또한 고충으로 느껴졌습니다.
(자세한 이야기는 추후 게시글로 작성할 예정입니다.)

  • 내가 하는 개발이 올바른 개발인가?

주입식 교육이 익숙했던 저는 개발을 하면서도 계속 정답 만을 찾았던 것 같습니다.
그래서 내가 작성한 코드가 올바르게 작동해도 "이게 정답이 맞나"라고 스스로에 의심을 던졌습니다.
지금까지 강의를 찾아보고, 책을 봐도 "이게 실제로는 어떻게 쓰이지?" "내가 한 게 맞는 건가?"라는 의문이 있었지만 항상 시원하게 해결이 되지는 않았습니다.

  • 혼자하는 개발

"Hello World" 를 작성했을 때와 지금의 나를 비교하면 정말 엄청난 성장을 거두고 있다는 것을 느낍니다. 올바른 개발에 이어서 혼자하는 개발의 어려움은 "함께 하는 동료나 멘토가 있으면 좋겠다."라는 점이었습니다.
제 자신 스스로 엄격한 시간관리를 통해 코딩을 매일 했지만, 좋은 동료나 멘토와 함께 공부할 수 있으면 더욱 큰 시너지 효과를 만들 수 있었을 것 같다는 아쉬움이 들었습니다.


548일 동안의 성과

글로써 그동안 공부했던 것을 정리해 보니 대략 1년 3개월의 시간동안
이뤄낸 것들이 정말 많다고 생각합니다.

HTML, CSS에서 시작해 JS, React, node.js, 사이드 프로젝트까지
정말 알차게 공부한 것 같습니다.

오랜 시간 동안 제한적인 환경에서 꾸준히 자기계발을 했다는 것은 제 자신 스스로
자랑스럽고, 성장할 수 있었던 값진 시간이었습니다

중간중간 근무와 훈련에 지쳐 번아웃이 왔던 순간들이 있었지만,
프로그래밍에 대한 열정과 흥미가 있었기에 잘 극복하여 마지막까지 최선을 다 할 수 있었습니다.

마지막으로 미국의 발명왕 토마스 에디슨의 명언으로 마무리하고 싶습니다.


나는 실패한 적이 없다.
단지, 작동하지 않는 10,000가지의 방법을 찾았다.

매 순간 최선을 다하고 주어진 하루에 의미 있는 변화에 보람을 느끼고 살아간다면,
어느새 어제보다 성장한 나 자신을 발견할 것이라고 확신합니다.

저의 나눔이 다른 국군 장병분들에게도 힘이 되었으면 좋겠습니다.:)

profile
개발 블로그

1개의 댓글

comment-user-thumbnail
2023년 11월 4일

군 입대를 앞두고 있는 소프트웨어학과 학생입니다. 근데 군대에서 코딩 공부를 하는게 정말 가능한가요? PC랑 공부할 시간이 나오는지 궁금합니다!

답글 달기