Octoping의 블로그
article thumbnail

나는 2022년 08월 25일에 산업기능요원의 신분으로 취직을 했다.

코로나로 인해 학교를 가지 못 한 채 대학 생활이 끝나간다는 불안에 빠져, 도피성으로 선택한 산업기능요원이었다.

 

사실상 기존에 정보 올림피아드 공부를 해서 약간의 알고리즘 지식 이외엔 별다를 것이 없는 나였다만, 정말 다행히도 면접을 두 군데 보았고, 두 군데 모두 합격하게 되었다.

 

그리고 그 중에 한 곳이었던, M 회사에 입사해서 이렇게 1년의 시간이 지나게 되었다.

 

벌써 1년이라니! 별 다를게 없기도 했고 많은 것 같기도 한 1년을 정리해보고자 글을 쓰게 되었다.

 


👔 산업기능요원 취직

M 회사는 여러 도시가스 업체에 업무용 웹이나 프로그램을 만들어주는 등의 업을 하는 SI 회사이다.

난 그 곳에서 프로젝트들의 유지보수를 맡는 '서비스 운영팀' 에 들어가게 되었다.

 

사실 웹이라고는 기존에 만져본 적이 거의 없다고 봐도 된다.

웹 프로그래밍 과목을 수강하긴 했었으나, HTML/CSS 부분에서 다양한 태그들과 선택자들에 복잡함을 느끼고 공부를 안하여 C 학점을 맡기도 했었고, 그나마 메이플스토리를 할 때 도움이 될만한 기능들을 길드원들과 공유하기 위해 만든 간단한 홈페이지 수준이 다였다. ( https://github.com/Octoping925/Octoping925.github.io )

 

그런데 웹 개발자로서 취직이라니! 지금 생각해보면 참 놀라운 일이다.

 

자바스크립트에 대한 정말 기초적 지식밖에 없었던 상태로 Controller니, Service니, Mapper니, JQuery니, Ajax니 다양한 지식들을 한번에 맡닥뜨리게 되니 굉장히 뇌에 과부하가 왔었던 것으로 기억한다.

 

 

역사적인 첫 업무로는, VO에 변수와 GETTER, SETTER를 추가하는 작업을 맡게 되었다.

 

진짜 간단한 일이었지만 그 당시엔 되게 힘들어했었다.

추가해야할 변수가 많아, 직접 손으로 GETTER SETTER 만드는 것이 굉장히 피곤했다.

그래서 Python으로 변수명을 집어넣으면 게터와 세터를 만들어주는 프로그램을 제작해서 그 결과물을 복사, 붙여넣기 했던 기억이 난다.

 

지금은 그냥 IntelliJ에서 Alt + Insert 누르면 자동으로 만들어준다는 사실을 알지만, 내가 회사에 갓 취직했을 때는 그 정도 사실도 모른다는 것을 제대로 방증하는 일이었다.

 

 

아무튼..

프론트에서 서버와 통신하는 자세한 방식이라던가, 서버에서 mybatis를 통해 DB와 통신하는 방식, DB의 프로시저가 돌아가는 방식도 자세히 알지 못했다.

 

그래서 다른 선배들이 장애를 처리하는 방식을 잘 봐두고, 그 패턴을 외워서 어떨 땐 어디를 보고, 어디를 수정해야 할지를 숙지해가면서 천천히 프론트와 백의 지식들을 얻어갔던 기억이 난다.

 

 


 

💎 solved.ac (백준) 등반

사우님이신 nahwasa 선생님 ( https://nahwasa.com/ ) 덕분에 다시 알고리즘의 세계에 빠지게 되어 백준과 solved.ac에 빠지게 되었다.

 

22.09.06 현재 티어는 P5

 

가파른 상승곡선이 돋보이는 solved.ac 히스토리

브론즈 5에서부터 열심히 달렸다.

실버 상위권까지는 그래도 이전에 하던 가락이 있어 별 노력 없이 쉽게 찍었지만, 그 이상부턴 나도 BFS, DFS 같이 까먹은 알고리즘을 상기시키는 것도 하고, Union Find 같은 새로운 알고리즘들도 배우면서 쭉쭉 올렸던 것 같다.

 

내가 열심히 달리니, 회사 내의 다른 직원 분들도 같이 열심히 해주어 같이 달릴 수 있었던 것 같다.

물론 가장 큰 동기부여는 nahwasa 선생님 덕이 크지만..

 

 


🌱 Github에 잔디 깔기

후배님들의 github들을 가끔 보게 되는데, (우리 회사는 svn을 써서 github을 볼 일이 회사 일 외엔 거의 없다) 잔디로 빼곡한 모습을 보면 나도 저렇게 잔디 채워보고 싶단 생각을 많이 하게 되었다.

 

그래서 매일 백준에서 문제를 풀 겸 github에 커밋을 하며 천천히 잔디도 키워가게 되었다.

 

1일 1커밋을 해야겠단 생각까진 없지만, 그냥 코딩을 살면서 하다보니 커밋을 할 일이 그냥 많아서 잔디가 채워지는 것 같다

 

어느덧 나도 1년의 절반 넘게가 잔디로 채워졌다니, 감회가 새롭다. 물론 여기저기 듬성듬성 하긴 하지만.. ㅋㅋㅋ

 


👨‍✈️ 훈련소 입소

산업기능요원이라면 빼놓을 수 없는.. 훈련소를 나도 갔다왔다.

남들은 빼빼로를 주고 받는 빼빼로 데이 날.. 나는 훈련소에 갔다.

 

뭐 코로나 시기가 겹쳐 2주 동안은 격리를 당하느라 훈련도 생활관 내에서 받는 등, 사실상 누워만 있었고, 나머지 1주만 훈련을 야외에서 받았다. 그 곳에서 IT 병특 분들 3분을 만났고, 참 내가 얼마나 부족한 사람인지 깨닫게 되는 계기가 되었다.

 

훈련소가 좀 고되긴 했지만, 참 유익한 시간이었다. 정신적으로.

 


그 곳에서 '자바 ORM 표준 JPA 프로그래밍' 이라는 책도 알게 되고, 다양한 개발 세미나들도 많이 들어보라는 조언도 들었다. 개발적으로 굉장히 성숙하신 분들을 그 곳에서 만났고, 대단하다 생각을 많이 하다 나왔다.

 

 


📗 전 분야 교양 쌓기

그리고 그 곳에서 또 다른 깨달음도 얻었는데, 훈련소에서 고전 문학 (수레바퀴 밑에서 - 데미안 헤세)을 읽었는데, 맨 뒤에 '죽기 전에 꼭 읽어봐야 할 100가지 고전문학' 들을 보게 되었다.

 

나름 문학 쪽은 안다고 생각했는데, 읽어보기는 커녕, 이름도 못 들어본 책들이 너무 많았다. 그걸 보고 '죽기 전에 꼭' 이라 함은, 정말 기초 중의 기초인 교양 수준의 지식일텐데 그 정도 교양도 난 모르는구나 하는 생각을 했다.

 

그래서 다양한 분야의 '교양'들이라도 아는 사람이 되고 싶다! 라는 생각이 들었고,

그 첫 스타트를 영화로 끊게 되었다. 최소한 영화 얘기가 나왔을 때 모르는 영화가 나오지 않았으면 좋겠다는 생각이었다.

그래서 영화를 보고 있는데.. 아 너무 재밌다.  그리고 동시에 '교양'의 깊이가 너무 깊어서 언제쯤 끝낼 수 있을까 모르겠다.

 

1~2년짜리 단기 프로젝트가 아닐 것이라 생각은 했다만 역시 엄청 긴 프로젝트가 될 것 같다..

 

 


🥀 인프런과 책으로 공부하기

부끄러운 이야기다만 그 전까지 특별히 강의를 듣거나 책을 들으며 공부를 하진 않았었다. 하지만 7월 모종의 사건 이후로 얼른 실력을 키워야겠다는 생각이 들었다. 지금 내 실력으로는 다른 곳에 가서 부끄러울 실력이란 생각이 들었다. 그래서 실력을 쌓기 위해, 인프런에서 강의도 듣고 책을 보며 공부를 시작하게 되었다.

 

현재까지 7, 8월까지 해서 2개월 동안 들은 강의와 본 책은 다음과 같다.

 

저자 제목
김영한 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
김영한 스프링 핵심 원리 - 기본편 (진행 중)
김영한 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
코딩애플 매우 쉽게 알려주는 git & github
조영호 객체지향의 사실과 오해
주홍철 면접을 위한 CS 전공지식 노트 (진행 중)

많이는 못 봤지만, 다양하게 내면의 지식 세계를 넓혀가고 있는 중이다. 도움이 많이 된다.

스프링이 뭔지 정확히 말도 못하던 내게 자신감을 많이 불어넣어주게 된 좋은 녀석들이다.

 

특히 스프링 입문 강의는 내게 많은 충격을 주었다. Null 값을 그대로 던지는 것이 아니라, Optional을 통해 java에서 Null을 책임져주어야 한다는 부분과 테스트 코드의 작성, 그리고 그 동안 모르고 썼던 Spring의 개념들을 드디어 알게 되어 너무 좋았다.

 

 

👩‍🎨  토이 프로젝트

회사 내에서 나의 팀은 유지보수를 맡는 팀이다보니, 신규 프로젝트를 개발하는 것 같은 일은 맡기 어렵다. 그나마 맡더라도, 기존 프로젝트에 기능 (화면)을 좀 추가하는 정도. 항상 신규 프로젝트를 개발해보고 싶었다. 뭐, 사실 개발자라면 누구나 그런 걸 원하지 않을까?

 

따라서 이런 부족함을 채우기 위해, 그리고 또 강의에서 본 내용을 써먹어보기 위해, 그리고 새로운 기술을 도입해서 사용해보기 위해 프로젝트들을 해보았다.

 

1. Wordle

먼저, 내가 너무 HTML과 CSS에 대해 모르는 것 같았다. 유지보수라 하면 보통 기능에 문제가 있는 경우가 대다수이기 때문에 JS만 만져서 HTML과 CSS에 대한 개념은 너무 없었다. 이를 좀 자신감을 심어보기 위해, pure하게 HTML, JS, CSS만 가지고 Wordle 게임을 클론코딩해보았다.

 

우리는 구형 안드로이드 기기를 대상으로 하는 웹 앱을 개발하기 때문에 ES6를 마음껏 사용하지 못했는데, 이에 한이 맺혀서 ES6의 기능도 마음껏 써보았다. 그래봤자 뭐 화살표 함수 정도였지만.. ㅋㅋㅋ

 

https://github.com/Octoping925/Wordle_Octoping

 

GitHub - Octoping925/Wordle_Octoping: 화제의 그 게임, Wordle 클론코딩 해보기

화제의 그 게임, Wordle 클론코딩 해보기. Contribute to Octoping925/Wordle_Octoping development by creating an account on GitHub.

github.com

 



 

2. 동영상 스트리밍 서버

영화를 굉장히 좋아하는 친구가 있다. Netflix 같은 OTT에 들어가있지 않은 영화들의 경우 이제 관람하기 힘들기 때문에, 그 친구가 군대에 있는 동안 소소한 낙이라도 되길 바라며 스트리밍 서버를 제작해보았다. 김영한 선생님의 스프링 입문 강의를 듣고 굉장한 충격을 받고, 그 강의를 복습해볼 겸 만들어본 프로젝트이기도 하다.

 

정말 스트리밍 기능만 구현하는건 맛이 없기 때문에, Spring을 사용하여 게시판 형태로 구현을 일단 해보았고, Bootstrap으로 디자인은 살짝 도움을 받은 후, 동영상 플레이어로는 flyr 이라는 라이브러리를 썼다. 내 사이드 프로젝트 중 첫 오픈소스 외부 라이브러리가 아닐까 싶다. (gradle 등으로 import 되는 애들 빼고 ㅋㅋ)

 

https://github.com/Octoping925/StreamingForSakia.tai

 

GitHub - Octoping925/StreamingForSakia.tai: 군대에 있는 진태를 위한 스트리밍 서버

군대에 있는 진태를 위한 스트리밍 서버. Contribute to Octoping925/StreamingForSakia.tai development by creating an account on GitHub.

github.com

 

 

3. Talboard

회사 직원 분들과 진행하고 있는 토이프로젝트다. 대학교 팀 프로젝트 이외의 첫 팀 프로젝트이다. 기대가 꽤 많이 된다. 아직은 내가 잘 모르는 React, TS, Spring Security, Swagger, ESLint 등의 다양한 기술들을 도입해서 스터디 겸 진행하고 있다. 이것도 뭐 주제는 게시판이지만, 다양하게 내가 기능을 설계했고, 나름 복잡한 프로젝트가 될 것 같다.

 

API 문서를 작성하면서 Markdown의 작성법도 나름대로 공부했다. 정성이 정말 많이 들어간 프로젝트인데.. 잘 되면 좋겠다.

 

https://github.com/Octoping925/TalBoard

 

GitHub - Octoping925/TalBoard: 간단한 CRUD 게시판 만들기

간단한 CRUD 게시판 만들기. Contribute to Octoping925/TalBoard development by creating an account on GitHub.

github.com

 

 

 


선영향

회사에 무언가 선영향을 끼치고 싶다는 마음이 있다. 나는 회사에 면접을 볼 때 어떤 개발자가 될 거냐는 질문에, 발목을 잡지 않는 개발자가 되고 싶다고 했다. 1인분 하면서 다른 사람들에게 폐 끼치지 않고 싶다고.

 

그래도 이제 지금은 지금 회사에서 나름 1인분 정도는 하며 발목은 잡고 있지 않다 생각이 든다. 그렇다면 이 다음, 회사의 다른 직원들에게 좋은 영향을 끼치고 싶다. 내가 나갔을 때 누군가가 코드 주석에 있는 내 이름을 보며 "그 사람 있을 때가 좋았는데" 라고 생각하도록 만들고 싶다. 그래서 뭐가 있을까.. 생각을 좀 해봤는데.

 

우리 회사는 역사가 오래 된 회사이다보니 레거시 코드가 많다. 그리고 뭐 잡플래닛이라던가 회사에 계셨던 / 계시는 사람들과 이야기를 해보면, 이런 부분에 대한 불만이 많았고, 성장 가능성이 낮다 이런 이야기를 참 많이 들었다. 그 부분에 대해서 나도 많이 공감한다. 위에서 그런 말들을 많이 써놨으니. 그렇다면 회사 차원에서 개인의 역량 발전에 이바지 할 부분이 없다면, 다른 회사에 가기 위해서라도 사원들 차원에서 주도적인 스터디나 공부 등이 있어야 한다 생각이 든다.

 

그래서 세미나를 계획해보려고 한다. 기술적인 부분은 사실 내가 뛰어나게 드릴 말은 없을 것 같고.. 대신 객체 지향 관련한 개념들에 대해 간단히 설명해보면 어떨까? 한다. 뭐 주제가 뭐가 되었든, 회사 내의 이런 기술적인 발전을 고무하는 분위기를 조성할 수 있을만한 작은 불씨라도 만들 수 있다면 좋겠다.

 

가능할런지?

 

 

 


돌아보며

참 1년 동안 다양한 일들이 있었던 것 같다. 대학교 3학년, 그저 아무 것도 모르던 꼬맹이이던 시절이 있었는데 (지금도 그렇지만) 지금은 다양하게 책도 보고 강의도 듣고, 다양한 기술들을 배우며 나를 인정해주는 팀원 분들도 생겼으니, 1년 전의 내가 보면 굉장히 까무러치게 놀랄 만한 일이라 생각한다.

 

내년 9월의 나는 이 때의 나를 어떻게 회상할까? 되게 궁금하다.

지금의 나를 자랑스럽게 바라보는 내년의 나를 만드려면 오늘도 공부를 열심히 해야할 것인데.

 

힘내자.

profile

Octoping의 블로그

@Octoping

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!