군대에서 코딩하기

n0wkim·2021년 5월 23일
36

회고록

목록 보기
2/3
post-thumbnail

'19/10~'21/4 까지 군대에서 공부했던 내용들을 정리하기 위해 작성된 글입니다. 이 글이 다른 분들에게 다시 힘을 주기를 바랍니다. 화이팅!

목차

  • 프롤로그
  • 한 눈에 보는 목차
  • 첫 목표와 결과, 피드백
  • 공부했던 방향
  • 마무리

프롤로그

처음 군대에 입대를 할 때 많은 회의감과 무기력함에 빠져 코딩을 몇 달간 놓게 되고, 힘든 상황에서 "에이, 뭔 공부야... 그냥 쉬자" 라는 마인드로 몇 달간 살아갔다.

그러던 와중, 쉬는 시간에도 공부, 밤에도 공부하는 선임을 보고 다시 열정이 불타게 된다. 그렇게 20년도 2월부터 공부를 시작하게 된다.

월별 공부 목차


공부
2월Do it! HTML5+CSS3 책으로 프런트 입문
3월static 사이트 클론 코딩 (html + css)
bootstrap 경험
4월노마드 코더/바닐라 js로 크롬 앱 만들기
5월생활코딩/ Git 강의 듣기
6월백준 문제풀이 - c언어
8월생활코딩 - 머신러닝 야학
osam 온라인 해커톤을 위한 강의 수강
코딩테스트를 위한 백준 문제풀이
9월osam 온라인 해커톤 참가, 본선 진출
vue.js 공부 시작
10월군 장병 온라인 해커톤 진행
1월node.js 입문
2월express 입문
동적 웹페이지 구현, aws ec2사용하여 배포
3월노마드 코더 react, react native 코스 수강
oracle database 입문
4월전역 / react native 어플리케이션 외주

첫 목표와 결과, 피드백

목표

처음 가졌던 목표는 풀스택 개발자가 되는 것이 목표였다. 나중에 다른 일을 할 수도 있지만 프런트, 백엔드 모두 할 줄 안다는 것은 개인적인 프로젝트를 하기도, 해커톤을 나간다고 하더라도 어디서나 발목잡힐 일은 없다고 생각했기 때문이다. 그리고 이것저것 여러 가지 모두 건드려 보고 싶었다.

결과

결과적으로 지금 전역한 후의 나의 레벨을 보면 프런트 외에 백엔드, db는 잘 다루지 못한다(아예 못하는 것은 아니지만). 사실 당장 어느 팀에서 개발자로 뛴다거나 할 때는 어느 한 분야를 특출나게 잘 하는 것이 중요하긴 하겠지만, 다시 돌아간다고 해도 한 우물만 팔 것 같지는 않다. ' 궁금한데 어떡해! '

피드백

전체적으로 성취도에 대해서만 본다면 만족스럽지만은 않다. 슬럼프도 있어서 공부를 몇 달 동안 놔버린 적도 있었고, 공부할 시간이 절대적으로 부족해서 공부량이 적었던 때도 있었다.

해커톤이 끝난 뒤에는 번아웃이 와서 거의 두 달 동안 아무 공부도 하지 않았었다. 공부하지 않고 그냥 날려버린 순간들이 조금은 아쉽긴 하지만 다시 돌아간다고 해도 똑같았을 것 같다. (그 안에서 공부하는게 쉽지가 않아...)

공부했던 방향

위의 표에서 간략하게 나열했던 것들을 좀 더 자세하게 서술하려고 한다. 웹페이지(서비스)를 완벽하게 만들 수 있는 개발자가 되고 싶다! 라는 목표를 가지고 시작했듯이, 다른 분야보다 웹 개발에 많은 시간을 들였고, 그럼에도 아직 많이 부족함을 느낀다. 하면 할수록 알아야 하는 것들이 더 많아지는 것 같다. 입대 이전에는 웹에 대해 아무것도 지식이 없는 상태에서 시작했고, 처음 공부하는 사람들의 경우 어떤 식으로 시작할지 막막할 텐데 참고하길 바란다.

프런트엔드

웹에 대해 아무것도 모르던 내가 가장 먼저 선택한 것은 html, css였다. 우선 가장 기본적이고, 어떤 커리큘럼을 보더라도 프런트에 대해 기본적으로 알아야 한다고 생각했기 때문에 가장 기초적인 부분부터 시작했다.

첫 시작을 알린 책.

공부했던 방법은 우선 기본적인 태그에 대해 처음부터 꼼꼼히 익히면서 나아갔고, 책의 후반부에는 '잘 쓰이지 않고, 나중에 필요할 때 그때그때 검색해서 찾으면 될 것 같다.' 라고 판단하는 것들이 있어서 중간에 정주행을 멈췄다.

아예 아무것도 모르던 극초반부에는 공부 진도가 느렸는데, 어느 정도 웹에 대한 감각, 느낌? 이 생기면서 빨라지는게 체감이 되었다. 확실히 로직이 필요 없는 단순한 작업이다 보니까 직관적이고 쉽다고 느낀 것 같고 흥미로웠다. 책으로 공부는 한달 반 정도 진행했던 것 같다.

클론 코딩, BootStrap

어느 정도 자신감이 붙고 나서는 클론 코딩을 시작하게 되었고, 프레임워크를 기웃대기 시작했다. 클론코딩이 실력을 올리기에 정말 좋은 방법이라고 생각하는데, 실제로 서비스를 만들 때 내가 아는 개념이 어떻게 쓰이는지, 혹은 어떤 것들이 많이 쓰이는지 알 수 있기 때문에 자연스럽게 뭐가 중요한지 알 수 있게 된다.

또한 이 시기부터 유튜브 알고리즘이 웹 개발에 대한 영상을 많이 찾아보는 나를 위해 관련 영상들을 많이 추천해 주었는데, 이후에도 가장 많은 참고가 되었던 영상을 소개한다.

이 영상을 통해 어떻게 공부를 진행해야 할지 갈피를 잡을 수 있게 된 것 같다.

처음 클론코딩을 할 때 쉬워보이는 것부터 시작했는데, 가장 먼저 만든 페이지는 아직도 기억에 남는다. 바로 구글의 검색엔진이 있는 첫 페이지이다.

그 때 당시에 1px도 틀리지 않게 만들려고 얼마나 고생했는지...

그리고 예전부터 궁금했었던 bootstrap이 어떤 것인지, 프레임워크가 정확히 무엇인지 궁금했었기에 한 번 찍어먹어 보았다.

능숙하게 사용하려면 관련 공부를 더 해야 했고, 트렌드에는 bootstrap은 살짝 안맞는다는 말을 듣고 재미로만 클론코딩 몇 번 하고 넘겼다.

노마드 코더 코스 수강

프런트 능력이 가장 빠르게 뛴 구간이 바로 이 구간이라고 생각한다. 노마드 코더 로드맵 에서 Junior Track을 처음 듣게 되었고, 무료로 풀려있는 강의들을 순차적으로 들었다. 처음 성장해야 하는 단계에서는 유튜브 강의와 같은 영상이 정말 많은 도움이 된다고 생각한다.

단순히 강의를 듣고 따라하는 것은 타자연습 그 이상도 이하도 아니라고 생각하고, 특히 처음 접하는 것이라면 더욱 더 기억에 남지 않는다고 생각하기 때문에 강의를 안 보고 혼자 만들 수 있을 때까지 반복해서 만들어 보았다.

  • 처음 들을 때는 강의를 보면서 따라하고, 완성된 후 어떤 중요한 로직이 있는지, 어떤 부분이 중요한지 생각한다.
  • 두 번째는 강의를 보지 않고 혼자 만들면서 막히는 부분만 강의를 시청한다.
  • 세 번째는 실제로 개발하는 것처럼 막혀도 강의 없이 검색을 하면서 완성한다.
  • 마지막으로는 본인의 입맛대로 변형도 하고 로직도 내 것으로 바꿔서 만들어 본다.

이러한 과정 후에는 완벽하게 레벨업했다고 느껴졌고, 실제로도 그런 것 같다.

해커톤, Vue.js

앞서 포스팅하긴 했지만 군대에서 좋은 기회로 해커톤에 나가게 되었다. 해커톤에서 맡은 파트는 프런트 파트였고, 사용한 프레임워크는 vue.js였다. 처음 접해봤고, 익숙치 않았지만 그래도 언젠가 한 번쯤 해볼 것이고, 부딛히면서 성장하자는 느낌으로 시작하게 되었다.

처음 사용할 때는 유튜브 튜토리얼 영상도 보고, vue.js 공식 문서, vuetify 공식 문서, 그 외 다른 분들의 블로그 등등을 많이 참고하면서 익혀 나갔다. 시간이 한정되어 있기에 천천히 차근차근 한 느낌보다 잡히는 대로 마구잡이로 가져와서 머리에 넣었다는 느낌이 있었지만, 나중에 "회사에서 어떤 프로젝트를 하는데 익숙치 않은 언어로 단기간에 해야한다" 라면 이런 느낌이 아닐까??

우선 처음 하는 것 치고 사용해본 결과 상당히 강력했고, 왜 프레임워크를 쓰는지 알 수 있게 되는 경험이었다. 이 해커톤을 기점으로 프런트를 작성할 때는 vue.js를 사용하는 게 더 편하게 되었다. 해커톤 이후에 개인적으로 토이 프로젝트를 만들 때 vue.js를 사용하게 되었다.
해커톤 후기 보러가기

백엔드

웬만한 웹페이지에는 무조건 백엔드 서버가 있고, 단순 static 페이지라고 해도 최소 api호출이 있었는데, 그 경우 기본적으로 REST API를 사용하게 되었다.

상태 코드PUT, POST, GET 등 http 메소드들을 사용하면서 백엔드에 대해 궁금증이 생기게 되었고, 그냥 가져와서 사용하는 api들을 직접 만들어도 보고 싶다는 생각이 들었다.

입문

프런트를 만들 때 javascript를 사용했기에 가장 진입장벽이 낮았던 node.js를 통해서 시작하게 되었다. (express 사용)
사실 백엔드 파트는 걸음마 수준으로 끝났는데, 실제로 공부할 시간이 없었다. 로그인, 로그아웃, 회원가입, 회원탈퇴 예제를 만들어보면서 공부했다. (기본적인 CRUD, 토큰 관리)
서버를 만들고, http 메소드들을 사용하는 정도에서 그쳤다.

역시 공부는 유튜브에서 다른 외국인 선배들이 올려준 영상들을 보면서 따라했고, 이 과정에서 데이터가 저장되고 사용되기 때문에 DB에 대해서도 살짝 맛을 본 것 같다.

mongo db, express를 통해 구현했고, 관련 영상은 유튜브에 검색하면 쏟아져 나오므로 따로 첨부하지 않겠다.

DB

mysql, mongoose, oracle sql

클론코딩을 하면서 자연스럽게 db를 사용하게 되었는데, 사실 정확한 이해 없이 하라는 대로 따라했기 때문에 지금도 자세히 안다고는 자부할 수는 없다.

데이터베이스에 대해 자세히 알아보고 싶어서 책을 사서 가볍게 한 번 읽어봤다. 문법이 생각보다 어렵지 않아서 빠르게 끝낼 수 있었던 것 같다.

읽었던 첫 책 : '모두의 sql'
데이터베이스에 대한 입문이 된 책. oracle인지 모르고 샀다.

굳이 이 책이 아니더라도 데이터베이스에 대해 기본적인 입문을 하고 싶다면 'SQL 첫걸음'이라는 책도 좋다.

지금은 큰 규모의 서비스를 만들어 본 경험이 없지만 앞으로 그러한 일들을 하게 된다면 필수적으로 데이터베이스에 대한 전문적인 지식이 필요할 것이므로 급하게는 아니더라도 차근차근 공부해 나가야 한다고 생각한다.

알고리즘

알고리즘 공부가 특히 아쉽다. 사이드 프로젝트나 클론코딩, 독서 등 다른 공부를 하면서 알고리즘 공부를 소홀히 했던 것 같다. 확실히 오랫동안 안 하다가 갑자기 하려고 하니까 가물가물하고 '어떻게 어떻게 했었던 것 같은데...' 하는 단편적인 기억들만 남아 있고 실제로 코드를 작성하기에 어려웠던 것 같다.

사용했던 언어도 python을 사용했는데, 처음 사용할 때 학교에서 사용했던 C와 달라서 버벅거렸었다. 그래도 익숙해지니까 되게 편하고 왜 파이썬파이썬 하는지 알게 되었다.

공부는 Baekjoon - 백준에서 문제를 풀면서 진행했고, 따로 문제의 난이도를 신경쓰지 않고 문제 - 단계별로 풀어보기에서 1단계부터 차근차근 밑의 난이도까지 나아갔다. 쉬운 문제도 낯선 언어로 풀려고 하니까 어렵더라.

원래 계획은 꾸준히 알고리즘 공부도 놓치지 않고 하는 것이었는데 사람 마음이라는게 그렇게 쉽지 않았다... 그래도 파이썬이라는 언어에 대해 어느 정도 편하게 쓸 수 있는 정도가 되었기에 나름 만족한다.

독서

읽었던 책들 중에서 좋았던 책들에 대한 목록이다. 좋았던 점은 확실히 군대 안에서 책을 읽을 시간이 많았다는 것인데, 전역하고 나서는 책을 아직도 한 권도 안 읽었다. 빨리 읽어야겠다.

  • CODE 코드 : 컴퓨터 하드웨어와 소프트웨어에 숨어 있는 언어 - 찰스 펫졸드
    기본 지식이 없다면 읽기 살짝 어려울 수도 있다. 나의 경우 컴퓨터공학 3학기까지 마치고 읽었고, 어셈블리 프로그래밍에서 기본적인 컴퓨터의 구조에 대해 배웠었고, 어셈블리어로 코딩도 살짝 해봤기 때문에 다시 리마인드 하기도 좋았고 컴퓨터의 역사에 대해 전체적으로 훑어주기에 정말 좋았던 책이었다.

  • 비전공자를 위한 이해할 수 있는 IT 지식 - 찰스 펫졸드
    위의 책이 컴퓨터의 역사에 대해 쭉 훑었다면, 이 책은 제목에서부터 알 수 있듯이 전반적으로 깔려 있는 IT 지식에 대해 설명한다. 따로 독후감도 썼지만, 비전공자이든 전공자이든 읽어보는 것을 추천한다.

  • 트렌드 코리아 2020,2021 - 김난도 외
    '비대면' '언택트' 등 코로나로 인해 많은 것들이 변했다. 어떤 변화가 다가오고 있으며, 어떤 것들을 주목해야되는지 알려준다. 해마다 나오는지는 모르겠는데, 앞으로도 매년 나온다면 항상 읽을 것 같다.

  • 심판 - 베르나르 베르베르
    원래 고등학생 때 부터 베르나르 베르베르의 소설을 좋아했다. 운이 좋게도 진중문고로 들어왔고, 바로 읽었다. 항상 그렇듯이 몰입도는 최고였고, 실망시키지 않았다. 죽은 이후에 영혼이 심판을 받는 재판의 내용이다.

  • 나는 돈이 없어도 사업을 한다 - 프레이저 도허티
    책을 고를 때 제목을 많이 보는 편인데, 제목을 보고 바로 집어들었다. 자세하게 어떻게 하라고 설명해주지는 않지만 그래도 처음부터 끝까지, 혹은 어떤 자세로 임해야 하는지에 대해 알려준다. 사업에 대해 아무런 지식 없이 막연하게 '한번쯤 해보고 싶다'정도였었는데, 어느 정도 도움이 되었다.

  • 인간의 흑역사 - 톰 필립스
    이 책은 지난 인류의 역사에서 인간이 저지른 여러 실수, 혹은 잘못된 판단들이 어떤 결과를 만들었는지 알려준다. 가장 흥미로웠던 파트는 여러 심리학 이론들을 적용하면서 설명한 초반 챕터였다.

  • 기록의 쓸모 - 이승희
    어떤 유의미한 행동을 하더라도 기록하지 않으면 잊혀지기 마련이다. 단편적으로 독후감을 그때그때 쓰지 않으면, 어떤 책을 읽었는지조차 기억이 나질 않는다. 그냥 단순히 끄적이는 것이 도움이 되기도 한다. 단순히 방향을 제시하기보다 대화를 하는 느낌이라 좋았다.

단순히 지금 기억에 남는 것들만 썼는데, 못해도 거의 30권정도? 읽었던 것 같다.

마무리

이렇게 군대에서의 이야기를 마무리짓게 되었다. 사실 1달 전에 끝냈어야 했는데 다른 여러 일들 때문에 늦어지게 되었다. 후련하기도 하지만 아쉬운 점들이 몇 가지 있는 것 같다. 이 글이 앞으로 입대를 하거나, 현재 복무중인 분들에게 자극이 되거나 어느 정도 참고가 되었으면 좋겠다.

profile
끙끙대며 배우는 중

20개의 댓글

comment-user-thumbnail
2021년 5월 23일

노마드코더도 그렇고 호기심 때문에 여러가지 공부하신 것도 그렇고 저와 비슷하시네요!ㅎㅎ 화이팅~

1개의 답글
comment-user-thumbnail
2021년 5월 24일

군대에서 이렇게 공부하시기가 쉽지만은 않으셨겠지만 정말 대단하시네요. 저도 시간을 돌릴수만 있다면 군대에서 작성자님처럼 이렇게 공부하고 싶어요. 후회되네요 :)

1개의 답글
comment-user-thumbnail
2021년 5월 24일

와 저는 군대에서 드라마만 봤는데 진짜 대단하세요!!

1개의 답글
comment-user-thumbnail
2021년 5월 24일

이 글을 보니 동기부여가 되네요. 요즘 나태해졌는데 마음을 다잡고 다시 시작해야겠다는 생각이 드네요. 본받고 싶지만 아직 저는 많이 부족한거 같네요 ㅠㅠ 다시 열심히 해보겠습니다!

1개의 답글
comment-user-thumbnail
2021년 5월 25일

이야 대단하시네.. 군대에서 아무것도 못하고 나오는 사람들이 태반인데
멋집니다 앞으로도 화이팅

1개의 답글
comment-user-thumbnail
2021년 5월 27일

육군 가셨나요 공군 가셨나요?

1개의 답글
comment-user-thumbnail
2021년 5월 27일

진심으로 존경스럽네요. 저는 전역 한 달 전에야 개발을 시작했었는데, 후회 없는 시간이셨을 거 같습니다. 😄

1개의 답글
comment-user-thumbnail
2021년 5월 30일

군대에 싸지방밖에 없는데 어떻게 하셨나요?? 제가 있던 부대는 프로그램 설치를 못해서 ... 손코딩하다가 현타왔습니다

3개의 답글
comment-user-thumbnail
2021년 6월 1일

멋져요~

답글 달기
comment-user-thumbnail
2021년 9월 25일

동기부여가 됩니다! 응원합니다!

답글 달기