Hits bn

2020년 1분기 회고

벌써 2020년의 1/4이 지나갔다. 한 분기 동안 어떤 일들을 목표로 했고, 얼마만큼 완수했나 자신에게 피드백을 해보자.

개별 역량

1. 일일커밋

일일커밋

올해의 첫 번째 목표이자 제일 큰 목표는 바로 일일커밋이다. 이전에는 일일커밋이 부질없다고 생각했는데, 그 생각을 고쳐먹었다. 무언가를 거창하게 하기보단, 작더라도 꾸준히 하는 것이 중요하다.

이런 생각은 지방대 개발 비전공자가 배달의민족 리드 개발자가 되기까지open in new window에 언급된 하루키 법칙에서 비롯되었다.

나는 관성의 영향을 크게 받는 사람이다. 그래서 일일커밋이라는 관성에 탑승하기로 했다. 강제로 꾸준히 공부하다 보면 뭐라도 되어있겠지 하며..

너무 피곤해서 못할뻔한 적도 있었지만, 머릿속으로 계속 '그래도 오늘 커밋을 해야 하는데...' 하며 몸을 일으키고 컴퓨터를 고 공부를 했다. 이렇게까지 해야 하는 건가 싶을 때도 있었지만 어쨌든 결과적으론 나쁘지 않았다.

일일커밋의 양분으로

등을 이용했다.

학과 자료는 옛날부터 생각했던 거라서 그냥 시간 있을 때 조금씩 정리했고, TIL도 팀원들과 유명한 개발자들이 하고 있었기 때문에 나도 하고 싶다는 생각으로 시작했다. 그리고 사이드 프로젝트의 경우 학교에 다닐 때부터 해야지 해야지 하다가 결국 못했는데, 어떻게든 끝맺음을 짓고 싶어서 시작했다.

확실히 3개월 동안 매우 많은 공부를 했다. 적어도 내가 여태까지 살아왔던 다른 시간들과 비교하면 그렇다. 이 밀도를 3년 정도 유지하는 것이 나의 최대 목표다. 그리고 이 목표를 얼마나 착실하게 이루어가느냐에 따라서 앞으로의 인생이 달라지겠지?

성공까진 아니더라도 나 자신에게 떳떳하게 살기 위한 한 걸음이리라.

2. Today I Learned

TIL은 Vuepress를 이용하여 만들었다. Vuepress의 디자인이 깔끔하기도 했고, 무엇보다 다른 정적사이트 생성기(Static Site Generator)보다 구축하기가 쉬웠다. 그리고 Vuepress에서 자체적으로 만든 마크다운 플러그인이 무척 마음에 들었다(ex: Custom Container, Highlight, ...)

기록하고 싶은 것들이 참 많은데, 내가 글을 작성할 때 공을 너무 많이 들여서 한 가지 주제로 무언가를 쓸 때 시간을 너무 많이 소모한다. 그렇다고 대충 쓰기는 또 싫다. 그러다 보니 자연스럽게 멀리하게 된다.

일단 사이드 프로젝트를 완료한 다음에 다시 꾸준히 쓰든가 해야지

3. Side Project

Github와 관련된 주제로 사이드 프로젝트를 진행하고 있다. 깃허브에 올린 마크다운 파일을 내가 만든 서비스에서 읽어올 수 있고, 훅을 등록하면 저절로 포스트가 업데이트되는 그런 서비스다.

일단 위에 언급한 기능들은 일찍이 다 만들었는데, 실제 서비스를 하기에는 너무 디자인도 구리고 퀄리티가 낮았다. 그래서 이것저것 서브 기능을 넣어야 하는데 그것마저 쉽지가 않다. 혼자서 사이드 프로젝트를 하는 게 이럴 때 버겁구나 느끼는 중이다.

그래서 리팩토링이나 사용하는 기술 스택을 최대한 많이 공부하는 식으로 진행 중이다. 벌써 리팩토링만 몇 번 한 것인지...

사이드 프로젝트를 하면서 제일 큰 성과는 Open API를 사용하는 방법을 완전히 터득한 것이다. 이전에는 API를 연동할 때 문서를 봐도 모르겠고, 다른 사람들이 작성한 글들을 봐도 감이 오질 않았는데 정말 어떤 API를 사용하더라도 큰 문제가 없을 정도로 이해한 상태다.

그리고 이전에 너무 어려워서 사용하기를 포기했던 NestJS에 대해 진짜 제대로 이해했다. 이건 객체지향 공부의 영향이 컸다. 국내 자료를 아무리 찾아봐도 NestJS에 대한 내용은 거의 볼 수 없었다. 대부분 해외에서 사용하고 있는데, 영어에 너무 취약하다 보니.. 이해가 너무 어려웠다.

하지만 Spring을 많이 사용해봤고, Spring에 사용된 기본적은 디자인패턴이나 철학을 이해하고 있다면 NestJS를 이해하는 데 큰 무리가 없는 것 같다. 그래서 사이드 프로젝트의 제일 큰 수확은 사실 NestJS의 사용 숙지가 아닐까 싶다.

4. 객체지향 개발방법론

코드스피츠 86기open in new window와 인프런에서 백기선 님이 강의하신 스프링 프레임워크 입문open in new window, 그리고 여름나라 겨울이야기open in new window 블로그의 주인장님이 집필한 스프링 입문을 위한 자바 객체 지향의 원리와 이해open in new window 라는 책을 읽고 객체지향에 대해 어느 정도 깨우칠 수 있었다.

여태까지 내가 작성했던 코드는 말 그대로 쓰레기였다는 것을 알 수 있게 해준 강의들과 책이었다.

그리고 이러한 개념들을 숙지하지 않은 상태에서 프레임워크를 공부한다는 것은 어불성설이라는 생각이 들었다. 요즘 누군가가 나에게 어떤 프레임워크를 공부하면 좋겠냐는 말에 이처럼 대답한다.

XXX라는 프레임워크를 공부하고 싶습니다. 무엇부터 해야 좋을까요?

  1. 객체지향 개발 방법론을 익혀라.
  2. 디자인패턴을 익혀라.
  3. MVVM을 익혀라.
  4. IoC나 DI에 대해 이해하라.
  5. 그리고 프레임워크 문서를 보아라.

IoC(제어역전)는 객체지향의 궁극적인 목적이며 보통 프레임워크 수준에서 IoC를 담당한다. 따라서 IoC를 이해하지 못한다면 프레임워크를 사용하고 있다고 해도, 제대로 사용하는 경우는 드물다.

이러한 것들을 이해하고 있는 상태라면 어떤 프레임워크를 사용하여도 기본 이상은 할 수 있다.

객체지향 개발론을 공부하면서 아쉬웠던 점은, 왜 학부 과정에서 이러한 것들을 설명해주는 교수님이 없었을까 하는 점이다. 이렇게 중요한 개념을 왜 인제야 알았을까? 참 의문이다.

5. 알고리즘

꼴 보기도 싫던 알고리즘을, 여자친구의 취업 준비를 도우면서 어쩌다 보니 같이 하게 되었다. 오랜만에 알고리즘을 공부하니까 재미있었기 때문에 주말마다 코딩테스트를 같이 준비하고 있다.

그러면서 카카오 인턴 코딩테스트, 프로그래머스 프런트엔드 개발자 코딩테스트, 백엔드 개발자 코딩테스트, 이스트소프트 코딩 테스트 등을 풀어봤는데.. 아직 내 수준은 고만고만한 것 같다.

프로그래머스가 한글로 되어 있고, UX/UI가 좋긴 한데 테스트케이스에 대한 설명이 너무 빈약하다. 피드백이 너무 없어서 왜 틀렸는지 모른다고 해야 하나?

Codility의 경우 피드백이 확실해서 자신의 문제점을 고쳐가는 데 큰 도움이 된다.

개발 외

수영

수영을 시작했다. 하지만 코로나 때문에 망했다. (빌어먹을 코로나)

확실히 수영 덕분에 몸이 개운했는데.. 코로나의 여파로 수영을 못 하고 있으니까 몸이 다시 뻐근해지는 것을 몸소 체험 중이다.

돈을 오랫동안 많이많이 벌기 위해서라도 공부를 열심히 하기 위해서라도 운동을 착실히 해야지!

자본에 대하여

우리 회사 사람들의 핫한 주제는 언제나 부동산과 주식이다. 사실 우리 회사 사람들뿐만 아니라 다른 회사 사람들 또한 마찬가지니라. 어느 회사에 다니건 아무리 월급을 많이 받아도 월급쟁이다. 그리고 월급쟁이는 기적이 일어나지 않는 이상 일정 수준 이상의 부를 축적하기는 힘들다. 그래서 큰돈을 모으기 위해선 사업을 하거나 주식을 하거나 부동산을 하거나 셋 중 하나인데, 부동산을 하기 위해선 또 큰돈이 필요하고, 다시 큰돈을 모으기 위해선 주식이나 사업을 해야한다.

그런데 주식이나 사업은 부동산보다 위험부담이 훨씬 크다. 특히 주식/비트코인을 통해서 자본을 잃은 사람이 주변에 너무 많다

이렇게 해도, 저렇게 해도 평탄한 인생을 살아가기는 참 힘들구나 싶다. 어쨌든 나는 지금 당장 욕심을 부리기보단, 내적 역량을 축적하는 것이 옳다고 생각한다.

앞서 언급했지만, 최소 3년은 공부에 매진하자.

Last Updated: