체대 출신 개발자의 2018년 회고

이 글은 개인적인 회고록이다. 그래서 독백체
자문자답 형식으로 2018년을 정리해보고자 한다.

1. 시작

2017년은 다사다난 했다.
취업(1월), 졸업(2월), 퇴사(7월), 결혼(11월)
그리고, 2017년 12월 18일 개발 공부를 시작했다.

나는 체육교육을 전공했고, 마케팅 직무로 인턴을 하고, 무역 사업을 경험한 후, 해운업계에서 경력을 시작했다.
때문에 왜 개발자가 되었냐는 질문을 올 해 20번 이상 들어본 것 같다.
체육을 전공하고 대기업에 다니다가 29살에 개발자가 된다는 것이 자연스럽지 않았던 모양이다.

하지만 나에게는 꽤 자연스러운 과정이었다.
스티브잡스가 스탠포드 연설에서 말한 Connecting the dots를 믿고 지냈기 때문에,
욕심나는 일이 있으면 뛰어들었다.
쫄보라서 무작정 뛰어들지는 않았고, 철저하게 계획하고 준비했다.

*욕심나는 일에 뛰어든 경험?

체육교사가 꿈이었던 중3때, 우연히 본 어느 대학교의 호랑이 마크가 욕심났었다. 나는 곧장 그 학교의 체육교육과 홈페이지를 찾아가서 교수들에게 메일을 돌렸다. 어떻게 하면 그 학교에 입학할 수 있냐고, 무엇을 준비해야 하냐고 건방진 중3의 말투로 여쭈었다.

단 한 분의 교수님이 답변을 주셨다. 책 많이 읽고, 영어공부 열심히 하면 올 수 있다고 하셨다. 답장을 받아서 기뻤지만, 여전히 축구, 농구만 하고 지냈다. 하지만 이 일을 계기로 호랑이 대학교에 갈 수 있다는 근거 없는 자신감을 갖게 되었다. 그렇게 고등학교 3년 내내 호랑이 대학교 체육교육과를 목표로 공부하고 운동했고, 결국 더 좋은 학교에 입학했다.

대학입시 뿐만 아니라 마케팅 인턴도, 무역 사업도, 해운업에 종사한 것도 모두 내 욕심에서 비롯되었으며, 철저하게 계획하고 준비해서 도전했다. 그런데 모두 실패한 경험이 되었다. 하지만 그 과정에서 내가 어떤 사람인지, 무슨 일을 해야 즐겁고, 잘할 수 있는지 알게 되었다. 내 욕심이 이끄는대로 20대를 보내고 나니, 그제서야 스윽~ 수면 위로 떠오른 것이 개발이었다.

너무 재미있고, 욕심난다.

*결정적 계기는?

화장품 관련 사업을 하려고 돈 주고 웹사이트를 만들었었다. 웹사이트를 관리하기 위해 html/css를 조금 공부했는데,
어라? 재미있었다. 밤새 공부해도 더 많이, 더 깊게 알고 싶었다. 그래서 아예 다이브했다.

2. 국비지원학원

처음에는 구글 센세와 공부할 생각이었다.
결혼을 코앞에 두고 퇴사한 백수에게 학원비가 있을 리 만무했기 때문이다. 하지만 국비지원학원에서는 오히려 매달 30만원을 준다니!? 와이프에게 용돈을 받아 생활하려던 파렴치한에게 30만원은 300만원 마냥 든든해보였고, 국비지원학원을 알아보기 시작했다.

*학원 선택은?

학원을 알아볼수록 대부분 광고였기에 OKKY에서 국비지원학원을 검색했다.
최근 2년 내의 국비지원학원 관련 글을 모두 읽었더니, 몇 가지 중요한 사실을 알 수 있었다.

1. 학원, 커리큘럼, 강사 마다 퀄리티가 제각각이라는 것.
2. 피해야 할 학원들이 있다는 것.
3. 빅데이터, 머신러닝 같은 수사여구(?)에 현혹되지 말고 Java 과정을 선택할 것.

이러한 기준을 가지고도 학원을 선택하기가 쉽지 않았다. 3만원짜리 이어폰 살 때도 리뷰를 전부 찾아보는 편이라..
누군가 딱 나타나서 여기로 가! 라고 해줬으면 하는 마음이었다.

그래서 OKKY에 질문을 올렸고, 감사하게도 좋은 답변을 얻어 학원을 결정하게 되었다.

학원은 답변 받은 학원 중 한 곳으로 갔다.
신혼여행 일정과 맞는 반을 선택했는데, 다행히 강사님 운(?)이 좋았던 것 같다. 같은 반 친구들은 강사님 이름을 쫒아 우리 반에 등록한 경우가 많았고, 나중에 알고보니 인문학도 개발자되다를 쓰신 마르코님을 가르치셨던 강사님이셨다.

*학원 프로젝트는?

강사님은 조금 특이하게 팀 프로젝트를 진행하셨다. 해커톤 아이디어 스피치처럼, 프로젝트 아이디어가 있는 사람들이 아이디어를 발표하고, 나머지 사람들은 발표를 듣고 원하는 아이디어에 참여해서 프로젝트 팀을 구성하는 방식이었다.

원노트에 메모해 둔 사업 아이디어가 10개 이상 있었기 때문에, 그 중 하나를 발표했다. 신혼방의 창틀을 교체하기 위해 시공업체를 찾아보는 과정에서 떠오른 아이디어였다. 간략히 말하자면, 소규모 인테리어 시공을 중개해주는 서비스였다.

다행히 팀원들이 많이 모였다. 나는 당시에 정말로 창업하는 사람처럼 열정적이고 진지하게 프로젝트를 기획했다. 그리고 내 열정이 문제였다. 팀원 7명과 신나게 아이디어 회의를 하고 서비스를 기획하면서, 정작 중요한 개발 실력을 간과한 것이다. 개발 실력은 저 밑에 남침용 땅굴 쯤 있었는데, 기획은 안드로메다에 올려놓은 것이다.

기획 회의를 매일 2시간 이상 했던 것 같다. 꿈과 희망이 넘치는 상상의 나래를 펼치면서, 카카오 플랫폼에 서비스를 팔고 Exit하는 계획까지 세웠었다. ㅋㅋㅋ 거창한 기획서를 작성하고 드디어 개발에 착수했으나, 기획한 기능은 커녕 기본적인 게시판도 제대로 만들지 못한 채 프로젝트 마감일이 되었다. 완벽한 실패였다.

결국 나는 프로젝트 하나도 제대로 끝내지 못한 채 학원을 수료했고, 포트폴리오를 만들 수 없었다.
카카오에 서비스를 팔고 Exit을 꿈꿨지만.. 현실은 빈 손으로 학원 Exit !!

*학원을 수료하고 느낀 점?

  1. 팀 프로젝트는 무조건 심플하게! 완성을 목표로 만들고, 시간이 남으면 개선했어야 했다.
  2. 배운 내용을 손으로 안쳐보고 눈으로만 복습한 바람에 아직까지도 고생중이다.
  3. Servlet, JSP, Spring으로 이어지는 구간에서 여긴 어디? 나는 누구? 상태가 되는 것은 당연한 것 같다. 모든 것을 알겠다는 욕심을 버리고 기초적인 개념에 집중했어야 했다. 학원에 다니면서 Head First Servlet & JSP (번역본)라는 책으로 복습했다면 훨씬 수월했을 것 같다.
  4. 학원 교재와 별개로 Java 기본서를 한 권 독파했어야 했다. (학원에 다니는 동안 자바의 정석을 반 정도만 봤는데, 뒷 부분에 중요한 내용들이 더 많았고, 최근에 다 읽었다. 진작 읽지 않은 것을 땅을 치고 후회했다.)
  5. Git을 개인적으로 공부해서 학원에서부터 사용한 것이 회사에서 도움이 많이 되었다. (학원에서 Git으로 온갖 삽질을 해본 덕분에 현업에서 두려움이 덜했다.)

3. 책

나는 책 사는 것을 좋아한다.
지난 1년간 구매한 개발서적은 총 33권이다.
그리고 사고싶은 개발서적 목록에 43권이 있다.
(내가 읽은+읽을 개발서적 정리)

*책을 사재끼는 이유?

개발 서적을 많이 읽는 것에 회의적인 시각이 많다. 백견불여일타 라는 책이 있을 만큼 직접 해보며 익히는 것이 중요하기 때문일 것이다. 하지만 개발의 바다는 너무나 넓고 깊어서 나같은 사람에게는 책이 필요했다.
아니, 책의 목차가 필요했다.

요즘엔 바다에 등대가 필요없다고 한다. 작은 배들도 모두 레이더 같은 장비를 탑재하고 있기 때문이다. 하지만 개발자가 되려는 비전공자들은 등대가 필요하다. 우리는 정말 아무것도 없는 뗏목과 같기 때문이다. 칠흑같은 어둠 속 바다에 떠있는 뗏목처럼, 무엇을 모르는지도 모르는 상태인 것이다.

책의 목차는 등대 역할을 해준다. 그것만으로도 좋았다. 목차에는 해당 기술의 중요한 주제들과 학습 순서가 나와있어서, 적어도 방향은 분간할 수 있게 해주었다. 나는 훌륭한 개발자들이 추천해주는 책들을 서점에서 펼쳐보고, 조금이라도 도움될 것 같으면 무조건 샀다. 책 구매 비용은 내 용돈이 아닌 생활비에서 공제해주는 와이프 덕분에, 사고싶은 책이 생기면 부르주아 마냥 사재껴버렸다. 탕진잼!

나는 새 책을 빳빳하게 펼쳐서, 형광펜으로 중요한 내용에 슥-슥- 밑 줄 치며 차분하게 읽어가는 그 느낌을 좋아한다. 공부하는 맛이라고 해야 하나? 이따금 책으로 공부하면, 공부하는 맛에 심취해서 시간가는줄 모르고 늦은 새벽까지 읽기도 한다. 어떤 기술의 개념을 공부할 때는 구글 검색보다 책을 먼저 접하는 것이 더 효과적인 것 같다.

*가장 유익했던 개발서적은?

미천한 실력 덕분에 모든 책이 유익했다.
좋지 않았던 책들도 라면냄비 받침대모니터 받침대로 유익하게 사용중이다.
O'REILLY 사에서 출판되어 번역된 책들이 특히 좋았다.

4. 취업

2018년 6월 4일부터 백엔드 개발자로 일하기 시작했다.

*취업 과정은?

취업 과정이 순탄하지는 않았다. 우선, 위에서 언급했듯이 포트폴리오가 없었다. 다행히 학원에서 작성한 코드들은 매일 Github에 올려두었기 때문에, 포트폴리오 대신 이력서에 Github 주소를 적어서 냈다.

학원을 수료하기 3주 전 부터 이력서를 제출하기 시작했고, 서비스를 개발하는 스타트업 위주로 26개의 회사에 지원했다. SI회사는 전혀 지원하지 않았다. SI회사의 좋은 점도 있지만, SI 특유의 리스크를 감당할 필요는 없다고 생각했다.

나는 조급하지 않았다. 입사 경쟁이 치열한 회사에 취업하고도 6개월만에 퇴사한 경험 덕분에 속도보다 방향이 중요하다는 사실을 알고 있었다. 하지만 스타트업들은 포트폴리오도 없는 체대생에게 베팅할 만큼 여유롭지 않았던 것 같다. 지원한 26개의 회사 중에 서류가 통과된 곳은 단 6곳 이었다.

그래도 조급하지 않았다. 다 떨어지면 더 준비해서 다시 지원하면 그만이라 생각했다. 회사를 다니거나 다니지 않거나, 내 자유시간을 모조리 개발 공부에 바칠 것을 스스로 알고 있었기 때문이다. 다만, 남편이라는 직무를 수행하기 위해서는 회사를 다니는 것이 나아보였다.

*면접에서 가장 많이 받았던 질문은?

" 개발자 같이 안생기셨는데.. 개발 좋아하시는거 맞나요? " 였다. (진심)

축구선수가 꿈이던 초딩때부터 운동광으로 살아온 흔적은 쉽게 지워지지 않았던 것 같다.
그래서 다음 면접을 준비할 때는 중학교때 썼던 안경을 꺼내 써보기도 하고,
비탈릭 부테린을 검색해서 그의 표정을 진지하게 따라해보기도 했다.

*그래서 결과는?

합격한 회사들의 기술 스택은 비슷했기 때문에, 직원들 표정이 밝았던 회사를 선택했다.
연봉은 대기업 다닐 때와 비교하여 정확하게 반토막이 났다. 싹둑~

5. 회사 생활

개발자로 일하게 된 것이 기분 좋아서, 입사 첫 날 내 자리의 사진을 찍었었다.

*지난 6개월간 한 일?

주로 Back Office로 불리는 관리자 페이지를 개발했고, 회사의 코드리뷰 환경을 구축했다.

*신입이 코드리뷰 환경을?

아래 글은 코드리뷰의 중요성을 강조한 우아한형제들 개발자 이동욱(jojoldu)님의 글이다.

진짜 코드리뷰가 최고입니다. 여러분. 
이게 없으면 주니어가 단기간에 실력 키우는게 너무나 힘듭니다. 
코드리뷰를 안받게 되면 정말 자기 멋대로 코드 짜고, 혼자서 자화자찬하는걸 자주 경험합니다. 
자기 혼자 착각하는걸 깨주는건 코드리뷰 밖에 없습니다. 
주니어 분들은 무슨 수를 쓰더라도 코드리뷰 하는 회사로 가세요 꼭!

이 글을 읽고, 코드리뷰 문화가 없던 회사에 코드리뷰 시스템을 제안하기 위해 git을 열심히 공부했다.
학원 시절부터 개인적으로 GitKraken 이라는 GUI 프로그램으로 git을 사용해왔는데, Mac의 깔끔한 터미널에 명령어치는 맛(?)에 빠져 터미널도 꾸미고, git을 CLI 환경에서 사용하기 시작했다.

다양한 소스로 git을 공부하다 보니 git-flow라는 브랜치 전략을 알게 되었고, 회사 규모에 맞게 약간 변경하여 Git-flow를 활용한 코드리뷰 시스템 이라는 문서로 정리했다.

다행히 CTO님이 코드 리뷰에 호의적이셔서 대표님과 개발팀 앞에서 나의 제안을 발표할 수 있었다.

프로젝트 저장소와 개인 원격저장소, 개인 로컬저장소 총 3개의 Repository를 화이트보드에 그려놓고 설명을 시작했다. git을 써보신 분과 안써보신 분 모두 아하 모멘트를 연발해주셔서 화이트보드에 신나게 그리며 설명하고, 노트북과 연결된 프로젝터를 통해 협업 워크플로우의 a부터 z까지 모두 시연했다. 다행히 다들 흡족해하셨고, 우리 회사에도 코드리뷰 문화가 만들어지게 되었다. 없으면 만들자!

가르칠 때 가장 많이 배운다는 말을 실감한 기회였다. 완벽하게 설명하기 위해 복잡한 구조와 흐름을 노트에 여러 번 그려보면서 git을 더 정확하게 이해할 수 있게 되었고, 다양한 협업 방법과 코드리뷰 방법을 익힐 수 있었다. 그리고 git 명령어와 정말 많이 친해졌다.

하지만 git은 sneaky한 친구라 아직 숨겨둔 비밀이 많은 것 같다 :)

6. 깃헙과 블로그

학원에 다니던 때, 학원에서 작성한 코드를 집에서 복습하고 싶어서 github을 사용하기 시작했다.
git을 제대로 이해하지 못한 상태에서 eclipse와 github을 연동하는 블로그 글 몇 개를 읽고 시작했었다.
당연히 수 없이 많은 뭐야? 이거 왜이래 상황을 맞이 했고, 학원에서 작성한 코드를 집으로 가져가기 라는 이 단순한 작업을 위해 git과 씨름했다.

*깃헙?

이렇게 Java 보다도 git에 먼저 익숙해진 나는, 금새 github 세계에 빠져들었다.
github은 페이스북 같은 느낌이었다. 다른 사람들의 활동을 보는 것만으로 많은 자극을 받고 정보도 얻었다.
특히 다른 개발자들의 TIL 저장소를 많이 봤던 것 같다. 다른 저장소는 봐도 뭔지 몰랐기 때문에ㅋㅋ

TIL은 Today I Learned의 약자로, 그 날 배운 내용을 기록하는 저장소처럼 보였다.
회사에 입사한 이후에 나도 TIL 저장소를 만들었고, 일을 하며 구글링했던 내용 중 일부를 기록하기 시작했다.

욕심과다증후군에 걸린 나는 해당 주제를 자세하고 깊게 공부해서 완벽하게 정리하고 싶었지만,
나같은 늦깎이 개발자는 Top-down 방식으로 개발을 알아가는게 효율적일 것 같아 간단하게 정리했다.
그리고 해당 주제를 또 검색하게 될 때 마다 조금씩 내용을 추가하는 방식으로 작성하고 있다.

학원다닐 때는 집에 가져갈 코드를 Commit 했고, 회사에서는 TIL 위주로 Commit을 했다.
구글 검색은 매일 했기 때문에 자연스레 Commit을 거의 매일 하게되었다.

하지만 위의 Commit 그래프는 무의미하다. Commit의 퀄리티는 평가되지 않기 때문이다.
특히, 가장 많은 커밋(49개)을 한 날은 블로그의 테마를 편집한 커밋들인데, 로컬 서버에서 테스트하지 않고 매 수정사항을 배포하면서 편집 결과를 확인한 멍청함 덕분이었다. (Hugo의 Docs를 제대로 읽지 않아 발생한 멍청함 폭발사건)

또한 10월 부터는 {고퀄리티 ⚡️ 개발 컨텐츠 모음} 저장소에 커밋한 것들도 추가되었다.
때문에 개발 공부를 시작한지 1년이 안되서 1800개에 가까운 커밋을 기록했지만, 전혀 자랑스럽지 않은 기록이다.

*블로그?

운동선수들은 집중하기 위해서 본인만의 루틴을 만든다.
내가 제일 좋아하는 운동선수인 라파엘 나달은 철저한 루틴 실행으로도 유명하다.
서브를 넣기전 공을 튀기는 횟수, 코와 귀를 만지고 엉덩이에 낀 팬티를 잡아당기는 순서, 음료수를 마시고 땅에 놓는 위치와 방향 등 수십 개의 루틴을 만들어 놓고 매 경기에서 실행한다. 루틴 실행은 정신력이 중요한 스포츠에서 선수의 집중력에 막대한 영향을 끼친다.

샤워과다증후군에 걸린 나는, 샤워를 하루에 2번, 최소 40분씩 한다.
샤워는 내가 20년간 이어온 루틴이다. 나도 모르게 매 번 같은 순서와 동작으로 샤워를 하기 때문이다.
나는 샤워라는 루틴 속에서 생각을 정리하거나, 깊게 생각할 일들을 처리한다. 물을 낭비한다고 마누라에게 매일 쿠사리를 먹지만, 그래도 나는 멈출수가 없다. 새로운 아이디어가 샘솟고, 철학적인 고민이나 일상 속의 생각이 잘 정리되기 때문이다.

블로그는 샤워하며 정리된 내 생각을 글로 표현하기 위해 만들었다.
개발과 관련 없는 일은 우선순위가 낮아서, 생각을 글로 옮기는 일을 자주하지 못한다.
그래도 가끔 SNS에 올리기 힘든 진지한 글들과, TIL 저장소에 작성한 글 중 정리된 글을 올리고 있다.

블로그는 Hugo로 만들었고, 만든 과정은 Hugo로 github.io 블로그 만들기 글에 정리해두었다.

7. {고퀄리티 ⚡️ 개발 컨텐츠 모음}

이 프로젝트 개발 후기는 따로 작성할 예정.

구글에 모르는 내용을 검색하다보면, 내용이 유익하고 잘 정리된 블로그 글들이 보였다.
수집과다증후군에 걸린 나는 이런 글이나 영상, 슬라이드를 발견할 때 마다 카테고리별로 북마크에 저장해두었다.
3개월 정도 모았더니 나의 잘 정리된 북마크를 다른 사람들에게 공유해주고 싶었다.

그래서 깃헙에 { 고퀄리티 ⚡️ 개발 컨텐츠 모음 } 이라는 저장소를 만들었다.
그런데 생각해보니, 개발자라면 경력에 상관없이 누구나 검색을 하고, 검색하는 누구나 고퀄리티 컨텐츠를 찾는다.는 명제에 도달했다. 나같은 쪼랩 개발자가 찾은 컨텐츠만 올릴게 아니라, 대한민국 모든 개발자들이 함께 만들어가면 더 좋을 것 같아 코드 없는 오픈소스 형태의 저장소로 만들기 시작했다.

그리고 사람을 모으기 시작했다. 깃헙 팔로워 0명인 내가 만든 저장소에는 아무도 오지 않을테니까ㅠ

*사람 모으기?

사람들을 모으기 위해 페북 페이지카톡 오픈챗방을 만들었고,
내 북마크에 있던 개발 컨텐츠들을 공유하기 시작했다.

역시나 이름 짓기가 제일 어려웠는데, 출퇴근 길에 페이스북을 많이 사용하는 내 모습을 보고
{ 출퇴근길 개발 읽기 }라고 이름지었다.


이 페북 페이지와 카톡 오픈챗방에 대해서는 추후에 프로젝트 개발 후기를 작성하며 상세히 다룰 예정이다.

만든지 두 달만에 페북 페이지 팔로워 3500여명과 오픈챗방 참여자 660여명이 모였다.
또한 {고퀄리티 개발 컨텐츠 모음} 저장소가 458개의 Star를 받았고, 컨텐츠는 400개 가까이 모였다.

*앞으로 계획은?

{고퀄리티 개발 컨텐츠 모음} 저장소에 모인 컨텐츠를 활용해서 다양한 서비스를 개발할 계획이다.
우선, 저장소에 모인 컨텐츠를 카테고리별로 목록화한 아카이브를 만들 예정이다.

아카이브의 목표는 단순하다.
개발자들이 구글보다 먼저 검색하는 곳이 되는 것!

가령 Docker에 대해 알아보고 싶은 개발자가 있다면, 구글에 검색하는 것보다
아카이브의 Docker 카테고리에 쌓인 고퀄리티 컨텐츠를 먼저 보는게 효율적일 것이다.

구글에서 검색하면 1페이지에 나오지만 퀄리티는 잔잔바리인 컨텐츠들이 아카이브에는 없기 때문이다.
대신, 아카이브에는 Docker 관련 글, 영상, 슬라이드 등 이미 퀄리티 검증을 거친 대어(大魚) 컨텐츠만 모여있을 것이다.

물론, 환경설정 방법이나 Java String 변환 등의 단순 검색은 구글에서 해야할 것이다.
하지만, 유익하고 정리가 잘 된 컨텐츠를 찾고 있는 개발자 대상으로는 꽤 확고한 포지셔닝을 할 수 있을 것 같다.
소싯적에 <포지셔닝>이라는 책을 읽고 마케팅에 빠졌었다.

아카이브가 개발되면 컨텐츠의 퀄리티 검증 또한 집단지성의 힘을 빌릴 예정이다.
2019년의 토이프로젝트는 이 것 하나만 해도 벅찰 것만 같다.

8. 2019년 계획

익히고 싶은 기술들이 산더미인데, 하루는 24시간 뿐이라 선택과 집중이 필요하다.
그리고 2019년에 선택할 것들의 키워드는 기본기이다.

*기본기?

비전공자라는 타이틀로 기본기가 약한 것이 용서되는 것은 1년차 때 뿐이라 생각한다.
아직 개발자로 일한지 6개월 밖에 안되었지만, 기본기가 중요하다는 생각이 매일 든다.

지금처럼 기본기가 없는 상태에서 내 후임이 들어온다고 상상하면, 등골이 서늘해진다.
지난 6개월간은 다양한 기술들을 간장 맛보듯 약지에 콕 찍어 맛만 봤다면,
2019년에는 메주를 쑤는 마음가짐으로 기본기에 집중할 생각이다.

물론 Spring Boot, JPA 등의 실무능력을 빠르게 키우고 싶은 욕심이 들지만,
실무능력이 1~2년 뒤쳐지더라도 조급해하지 않고 멀리가기 위한 준비를 하려 한다.

친구들과 피시방비 내기 카트라이더 단판 승부를 할 때가 있다.
나의 필승전략은 부스터를 일찍 쓰지 않고 모아두는 것이다.

빨리 성장하고 싶은 욕심은 그 누구에도 뒤지지 않지만,
2019년의 나는 조금 뒤쳐져 있을 예정이다.

(물론 회사 업무는 100% 이상 처리하고, 개인 시간에 할 것들에 대한 이야기다.)

*기본기가 뭔데?

나는 기본기를 두 가지로 나누었다.
자료구조 & 알고리즘그 외의 것들.

그 외의 것들은 확실히 정하지 못했지만
운영체제, 네트워크, HTTP, 리눅스, SQL 등등이 될 것이다.

그리고 아래의 글을 읽고 자료구조 & 알고리즘을 더 신중하게 생각하기 시작했다.

요즘처럼 기술 변화의 속도가 빠른 시대에는
특정 기술, 플랫폼, 언어, API에 종속되는
코딩 기술의 가치가 전보다 크지 않다.

전투기의 생명이 빠르게 방향을 전환하는
기동성(maneuverability)에 있는 것처럼

프로그래머의 생명도 방향전환 능력에 달렸다.
알고리즘은 그러한 방향전환을 가능하게 해주는
일종의 "메타-능력"이다.

    - 임백준 <누워서 읽는 알고리즘> p.5

물론, 알고리즘 문제풀이 능력 = 개발자 실력 등식이 성립하지 않는다는 것에 동의한다.
하지만 개발자 실력을 판단하는 기준 중에 가장 확실한 것은 문제 해결 능력이라고 생각한다.
커뮤니케이션 능력과 서비스에 대한 이해력도 모두 중요하지만,
결국 문제를 해결하지 못하면 개발자로서의 자질은 낮게 평가될 수 밖에 없기 때문이다.

아니, 이런 뜬구름 잡는 논리는 집어치우고 현실을 바로 보자.
알고리즘 문제를 못 풀면 좋은 회사에 갈 수 없다 period!

9. 맺으며

*어려움

개발은 어려웠고, 지금도 어렵고, 앞으로도 어려울 것 같다.
뭐든지 빨리 배우는 편이었지만, 29살에 시작한 개발은 생각보다 더 어려웠다.

이게 왜 안되지?이게 왜 되지?라는 벽에 막힐 때가 많았다.
그럴 때마다 마음 속으로 한 문장을 떠올렸다.

"This is not rocket science"

우주로 로켓을 쏘는 과학에는 답이 없을 수 있지만,
내가 맞이한 이 정도 문제는 반드시 답이 있다고 생각했다.
그리고 막막할 정도로 어렵다고 생각된 것들은, 결국 익숙함의 문제인 경우가 많았다.

우주로 로켓을 쏘지 않는 이상,
주니어 개발자로서 정말 어려운 문제를 맞이할 가능성은 낮다고 생각하니, 작은 난관에 청승떨지 않게 되었다.

*2018년 소득 1

학원에 다니던 시절, OKKY에서 진행된 황후순님의 세미나에 참석했었다.
세미나가 끝나고 함께 치킨을 먹는 네트워킹 시간이 있었는데, 같은 테이블에 앉은 분들과 자기소개를 했었다.

이 때 알게 된 김남준님과는 그 다음 OKKY 세미나에서 또 만나게 되었고, 지하철역까지 같이 걸어갔다.
같이 걸으며 이런 저런 대화를 했고, 헤어지기 전에 서로의 연락처가 아닌 Github 주소를 교환했었다.
남준님은 나와 비슷한 부류의 노력쟁이(?)라는 느낌이 강하게 들어서 좋았다.
남준님은 큰 개발회사에 다니면서 이직을 준비하는 신입 개발자셨고, 열심히 준비하시더니 결국 원하는 회사에 입사하셨다.

아직 존댓말을 쓸 정도로 가끔 안부를 묻는 사이로 지냈는데,
얼마 전에 남준님이 다니는 회사에 나를 추천해주겠다고 연락이 왔다.
지금의 나는 알고리즘 테스트에서 떨어질 것이 명백하기 때문에 지원하지 않았지만,

누군가에게 개발자로서 인정받는 것은 꽤 기분 좋은 일이었다.

*2018년 소득 2

그리고 일주일 뒤에, 개발자들은 아는 IT전문 컨설팅사의 이사님으로부터 메일을 받았다.
블로그 글을 봤는데, 한 번 만나보고 싶다고 하셨다.
유명 개발자들이 이 회사를 통해 이직한 사실은 진작에 알고 있었기에,
아직 이룬 것이 하나도 없는 나는 과대평가 받은 것 같았고, 서로의 시간을 아끼고 싶었다.
내 초라한 이력서를 보내드리면서, 이력서를 보시고도 만나보실 의향이 있으시면 만나겠다고 했다.

그래도 만나보길 원하셔서 퇴근 후에 회사 근처 까페에서 만났다.
지금 당장 job offer를 주려고 만난 것은 아니지만, 유망주 선점 차원으로 이해해달라고 하셨다.
그리고 정말 도움이 많이되는 말씀들을 많이 해주셨다.
집에 가서 와이프에게 "서쪽으로 갔더니 귀인을 만난 것 같다" 라고 말했을 정도로
좋은 회사에서 20년이상 개발하셨던 컨설턴트님으로 부터 귀중한 조언을 정말 많이 들었다.

누군가 내 미래를 낙관적으로 봐줬다는 것 또한 꽤 많이 기분 좋은 일이었다.

*기억

2018년은 내 개발 인생의 올챙이 시절이다.

2018년에 나를 도와줬던 사람들,
2018년에 계획했으나 이루지 못한 것들,
2018년 내내 느꼈던 성장에 대한 갈증,
2018년 내내 개발과의 외도를 눈감아준 사랑하는 와이프.

이 모든 것을 개구리가 되어서도 기억해야 한다.
그래서 이 회고록은 개구리에게 보내는 편지이기도 하다.

거만한 자는 자기 발 밑을 내려다 보고, 겸손한 자는 자기 발자취를 되돌아본다. 고 생각한다.
2018년 나의 발자취는 이쯤에서 정리하고, 이따금씩 꺼내 보면서
겸손하고 실력있는 개발자로 성장하고자 한다.