KwanIk Devlog
article thumbnail

 2020년 4월 작은 SI 업체에서 개발자 커리어를 시작한 이후로 처음으로 작성하는 회고록이다. 제목은 2022년 회고록이지만 3년간의 여정을 돌아보는 종합적인 회고록이 되지 않을까 싶다. 해마다 회고록을 적어야지 적어야지 하면서 넘겼던 것이 3년을 가득 채우기를 앞두고 이를 실행에 옮기고 있다(게으른 완벽주의자). 종합적이라 하더라도 다사다난했던 2022년을 중심으로 돌아보고, 이전 년도의 기억들을 통해 어떤 발전을 이루었는지를 위주로 다뤄보고자 한다.


2022년 핵심 키워드

동료, 반면교사, 새로운 시작

 적어도 작년까지 내 목표는 '잘'하는 개발자가 되는 것이었다. 내가 생각하는 하는 개발자의 핵심은 1) 개인 개발 능력, 2) 의사소통 능력이었다. 개발자는 전문직이라고 볼 수 있으므로, 역시 가장 중요한 것은 개인의 개발 실력과 능력이라고 생각했다. 적어도 기본기에 충실해야 어떤 새로운 환경이 주어지더라도 이를 손쉽게 익히고 덧붙여 결과를 만들어낼 수 있을 것이기 때문이다.

 

 두 번째 의사소통의 경우 역시 개발자의 핵심 가치라고 생각하는데, 아무리 개발 실력이 뛰어나더라도 회사에 몸담고 있는 이상 모든 것을 혼자서 처리할 수는 없기 때문이다. 종종 나는 개발 프로젝트를 예술품에 빗대고는 하는데, 하나의 예술품을 제작함에 있어 통일된 개발철학을 바탕으로 프로젝트가 보여주고자 하는 방향이 하나여야 한다고 생각한다. 이를 위해서는 적절한 의사소통이 가장 중요할 것이다.

 

 2022년은 세 가지의 키워드를 뽑았지만 사실 '동료'라는 하나의 키워드로 정리할 수도 있다. '잘'하고자 하는 동료 개발자들을 만나 스스로의 발전을 위해 되뇌어보고 함께 성장할 수 있었고, 이런 것에 관심이 없는 동료를 통해 앞으로의 개발인생에 있어 절대 하지 말아야 할 행동들을 정리할 수 있었으며, '잘'하는 동료들을 만나 새로운 목표와 방향성을 세울 수 있었다.

 

 작년 그리고 올해는 가히 앞으로의 인생에 있어서 가장 중요한 분기점이 될 것이라고 생각된다.


SI 그리고 스타트업

 2020년 11월 1일 작은 SI 업체에서의 업무를 정리하고 현재 재직중인 스타트업으로 이직하였다. 이직 사유는 간단했다. 일이 없었다. 처음 많은 지인들의 만류에도 불구하고 SI를 선택한 이유 역시 간단했는데, 다양한 경험들을 통해서 빠르게 성장하고 싶었다. 더욱이 새로운 것에 도전하는 것을 좋아하는 편이라고 생각했다. SI의 특성 상 다양한 도메인들을 경험하며 요구사항 분석/설계 단계부터 실제 서비스 배포까지 모든 스탭을 밟아볼 수 있기 때문에, 여러 프로젝트를 경험하면서 비전공자로써 부족한 점들을 빠르게 채워나가고 싶었기 때문이다. 실제로 서비스 기획을 준비하던 문과생의 감성이 녹아서였을까. 신입사원임에도 불구하고 핵심인력으로 3개의 프로젝트를 완수할 수 있었다. 사실 더 많은 경험을 하고 싶었으나 회사가 일을 가져오지 못했고 두 달 간의 공백 동안 개인 공부를 하다 이직을 선택하게 되었다.

 

 스타트업으로 이직하게 된 배경은 SI의 연장선이기도 했다. 프로덕트의 시작부터 끝까지를 경험해보았기 때문에, 빠른 주기로 단위 프로젝트들을 완수해야 하는 스타트업에서 내 능력을 십분 발휘할 수 있을 것 같았다. 또한 보다 새로운 기술, 개발 방향을 다양하게 이야기해 볼 수 있는 동료들이 많을 것으로 생각했기 때문이다. 원년 멤버들이 모두 떠난 회사라는 것은 알고 있었기 때문에, 새로운 개발자들이 와서 함께 일하고 싶은 회사로 만들어보고도 싶었다. 처음에는 순탄한 듯 했으나 세상 일 쉬운 것 하나 없다고 다양한 문제를 마주해야만 했다. 

 

 조직이 성장하기 위해서 겪는 성장통이라고 하기엔 조금 결이 다른 문제들도 있었지만, 있는 힘껏 몸으로 받다 보니 병이 나기도 했지만, 그래도 연말이 됐을 때 정말 스타트업에 다니게 되었다고 생각할 수 있었다. 

 

 가장 큰 첫 번째 이유는 팀 동료들이다. 조직의 성장통을 우리 나름대로 어떤 식으로 헤쳐나갈 것인가를 함께 얘기해보게 되었고 방향성을 설계할 수 있었다. '구글 엔지니어는 이렇게 일한다' 라는 책을 통한 스터디를 진행하면서, 빠르게 사이클을 돌려야 하는 스타트업에서 우리 조직이 갖고 있는 문제들을 현실적으로 직시할 수 있었고, 개발자로써는 어떤 팀분위기를 만들어야할 지 만들어 볼 수 있었다. 그 첫 번째 스탭으로는 개발문화를 만드는 것이었다. 어떤 문서도 없이 떠나가버린 레거시 개발자들을 탓하고 있는 것은 비생산적인 프로세스이므로, 같은 실수를 되풀이하지 않기 위해 Git Process를 구체화 하였다. 너무나도 많은 프로젝트들을 모두 문서화하는 것은 현실적으로 불가능한 작업이므로 우선 우리가 앞으로 만들어낼 서비스들에 대해서는 형상관리를 통한 문서화를 진행하기 위함이었다. Issue 템플릿, MR 및 Commit 규격 그리고 코드 리뷰까지 규칙을 정하고 이를 적용함으로써 조금이나마 버스지수를 높이는데 기여할 수 있었다. 물론 이를 지키지 않고 파괴하는 시니어 개발자가 존재하지만 이는 올해의 과업으로 가져가야할 것 같다.

 

 두 번째는 상호 동기부여 체계다. 체계라는 단어를 사용하는 것이 조금 웃기는 일이기는 하지만, 조직 차원에서 제공되지 않는 심리적 안전을 동료들끼리 제공하기 위해 노력하였다. 서비스를 구현함에 있어 어렵거나 도움이 필요한 일들을 언제든지 서로 편하게 소통할 수 있는 창구를 만들었고, 함께 성장하기 위한 기술적인 대화를 적극적으로 나누고자 노력하고 사내스터디를 만들어서 더 나은, 잘하는 개발자가 되기 위해 서로 동기부여를 할 수 있었다.

 

 세 번째는 새로운 동료들과의 만남이다. 전혀 다른 기술적 배경과 성장과정을 가진 다른 팀의 동료들과 만남으로써, 새로운 동기부여를 할 수 있었다. 그들과 개발자로써 이룩하고자 하는 목표, 동기부여들을 나누면서 인사이트를 얻을 수 있었다. 또한 그들을 통해서 더 높은 레벨에 있는 개발자들과의 네트워킹을 할 수 있었는데, 이는 새로운 동기부여가 되었다. 많은 경험을 하고 기술적 깊이가 있는 사람들과 함께 기술적 대화를 나누는 모습들을 통해, 내가 가진 기술적 한계를 되돌아보고 나아가야할 원동력이 되었다고 생각한다. 먼 훗날 내가 하고 싶은 일 역시 멘토링으로 개발자로 첫 발을 내딛은 사람들에게 도움이 되고 싶었기 때문이다. 

 

 동료들을 통해서 스스로를 되뇌어보고 개인의 성장을 통해 조직에 어떤 식으로 기여할 수 있는가를 얘기해볼 수 있게 됨에 따라, 그저 시키는 일만 하는 것이 아닌 주도적인 성장을 할 수 있는 개발자가 되었다는 생각에 마침내 스타트업에 다니고 있다는 생각을 하게 되었다. 감사함을 표하고 싶은 사람은 너무나도 많지만 그 중 같은 팀의 건희, 슬기님께 특히 더 깊은 감사를 표하고 싶다. 그들에게 나도 하나의 동기부여 수단이 되고, 도움을 주기 위해 올 한해도 열심히 나아가보고자 한다.


1. 성과

1) 1 Day  1 Commit

 작년 새해에 했던 가장 큰 결심은 '라이프 사이클을 만들자' 였다. 비록 질 높은 contribution을 수행한 것은 아니었지만, 매일 정말 단순한 문제 하나를 풀어서라도 1 day 1 commit을 하기로 결심을 했고, 최선을 다해서 수행해보았다. 이상하게 수요일에 4번 깨졌는데 모두 술자리 때문이었다...(술이 문제다)

 

 덕분에 특별한 이벤트가 있지 않는 날이면, 매일 아침 가볍게 PS를 하면서 뇌를 깨우는 습관을 가지게 되었다. 뭐 사실 뇌를 깨운다고 하기에도 부끄러운 문제들로 commit을 연명한 날들도 있지만, 습관을 만들었다는 것에 의의가 있다고 생각한다. 올해는 Bronze와 같은 너무 쉬운 문제에서 난이도를 높여, 실제 PS 사고를 키울 수 있는 알고리즘들에 접근해서 보다 질 높은 PS로 데일리 커밋을 해보고자 한다. 내년에는 플래티넘 1을 찍는 것을 목표로!

 

 거의 12월이 되서야 조금 더 체계가 잡혔는데, 실버 이상의 문제를 풀 때는 아래 Repository의 PR을 통해서 해설을 작성하고 있다. 약간 contribution 불리기 같은 느낌도 있지만... 자료를 한 곳에 아카이빙하고자 코드를 올리는 Repo를 수단으로 사용하게 되었다. 올해는 보다 풍성하게 PR을 채워보고자 노력할 것이다.

https://github.com/kwanik-kor/BOJ/pulls?q=is%3Apr+is%3Aclosed

 

2) 2 Studies

 첫 번째 스터디는 회사 동료의 초대로 MSA + DDD 스터디에 참가하였다. 재직 중인 회사의 서비스가 MSA로 구성되어 있지만, 처음 경험하는 것이고 분명히 문제가 있지만 가이드를 제시해줄 수 있는 사수가 없었기에 찔끔찔끔 공부하면서 어떻게 하지 고군분투하던 찰나.. 스터디에 들어가게 된 것이다. '도메인 주도 설계로 시작하는 마이크로서비스 개발' 이라는 책으로 스터디를 진행하였고, 뜬 구름 같던 MSA의 개념을 확실하게 익히고 현재 진행 중인 프로젝트에 (진짜) MSA로 나아가기 위한 첫 번째 단계를 준비할 수 있었다.

 

 두 번째 스터디는 앞서 언급했던 회사의 문제를 해결하기 위해서 시작했다. 문제는 보다 가까이 있을 것이라고 판단했고, 개발 조직의 효율적인 업무 방식 그리고 조직의 규모가 커짐에 따라 개발자 채용이 반드시 필요한 시점이므로 개발자들이 오고 싶은 회사를 만들어 보고자 첫 단추를 꿰기 위함이었다. 블로그에 잡다한 똥글로 적어놓은 바로 그 문제를 해결하기 위해서..

 

 우리가 선택한 것은 '구글 엔지니어는 이렇게 일한다' 라는 책이었다. 구글의 훌륭한 엔지니어들이 만들어 놓은 그리고 구글이라서 가능했던 많은 시스템을 소개하고 있긴 하지만, 보다 '애자일' 스러운 조직이 되고자 한다면 어떤 문화와 체계를 갖춰야 하는가를 느낄 수 있었다. 더 나아가 개발자에서 S/W 엔지니어로의 성장했을 때, 어떤 포지션으로 성장할 것인가에 대한 목표를 설정해볼 수 있었다. 엔지니어라 하더라도 조직에서 IC로 남을 것인가 테크 리드 혹은 매니저의 길을 갈 것인가에 따라 준비해야할 것들이 다소 다를 수 있기 때문이다. 물론, '리더'는 직접 해보지 않고서는 본인의 역량이 어느 정도인지 알 수 없기도 하다. 내 성향을 돌아봤을 때, '테크리드'의 길을 걷고 싶다는 목표를 세울 수 있었고 이를 보완하기 위해서는 부족한 엔지니어로써의 역량을 빠르게 키우는 것을 올해 그리고 앞으로의 목표로 세우고자 한다.

 

3) 보다 성숙해지고자

 어찌보면 개인적으로는 너무나도 다사다난 했던 한 해였지만, 이를 받아들이는 방법에 대해서 많은 고찰이 수반되었다. 그 중에서  '스트레스 관리법'에 대해 가장 많은 생각을 했었다. 다른 포스트를 통해 스트레스를 어떻게 관리할 것인가. 나는 스트레스 관리법이 있는가에 대한 고민하는 글을 쓴 적이 있다. 결과적으로 나는 스트레스를 효과적으로 관리할 수 있는 수단이 없었다. 스트레스를 잘 안받는 편이었기 때문에 몰랐었던 것 같다. 이후 더 많은 고민을 해봤었지만 스트레스를 잘 관리하는 방법은 없는 것 같다. 이미 스트레스라고 생각해버리는 이상 머리 속에서 이를 떨쳐내는 것은 쉽지 않기 때문이다. 

 

 그래서 방법을 바꾸기로 했다. 상황을 받아들이는 방법을 바꾸는 것이다. 상황을 인지함에 있어 최대한 감정을 배제하고 이성적으로 바라보기로 하였다. 감정이 개입되는 순간, 3 정도의 잘못된 일이라도 7 정도의 잘못된 일로 생각되고 객관적인 판단이 흐려지기 때문이다. 또한 감정적으로 나를 흔들려는 시도에도 이성적으로 상황을 판단하고 기준을 잡고 서있는다면, 불필요한 스트레스를 받지 않을 수 있음을 깨닫게 되었다. 어찌보면 당연한 소리일 수 있지만 이를 끊임 없이 되뇌이고 내재화하는 것이 중요하다고 생각되었고, 올해는 이를 실천에 옮기는 해로 만들어보고자 한다.

 

 그 첫 번째 스탭으로는 작년 한 해 가장 큰 스트레스 요인이었던 팀 리더에게는 오히려 감사하는 마음을 가져보기로 하였다. 그의 행동들을 반면교사 삼아 어떻게 하면 리더의 자질을 갖출 수 있는지, 훗날 리더가 되었을 때 어떤 행동들을 하면 안되는지를 다짐할 수 있기 때문이다. 


2. 목표

1) 스터디 및 도서

 우선 현재 진행형인 스터디는 두 개다.

  • 오브젝트(조영호) + 개발자의 글쓰기(김철수)
  • Rust 스터디

두 개 모두 사내스터디로, '오브젝트'라는 책을 통해 보다 객체지향에 가까운 설계와 코드 작성을 공부하고, '개발자의 글쓰기'라는 책을 통해 개발자에게 필요한 글쓰기 스킬에 대해 한 번 더 생각해보는 시간을 갖고 있다. Rust 스터디의 경우 이번에 새롭게 도전하는 Rust 언어를 모각코 형태로 기본기를 다지고 간단한 서비스들을 만들어보는 프로젝트를 진행할 예정이다. 위 스터디용 도서를 포함해서 올해 우선 반드시 완독할 것으로 목표한 도서는 아래와 같다.

  • 조영호. 「오브젝트」. 위키북스,2006
  • 김철수. 「개발자의 글쓰기」. 위키북스,2019
  • Raul-Gabriel Urma, Mario Fusco, Alan Mycroft. 「모던 자바인 액션」. 우정은 옮김. 한빛미디어,2020
  • Joshua Bloch. 「이팩티브 자바」. 이복연 옮김. 인사이트,2020
  • 공봉식. 「Tucker의 Go 언어 프로그래밍」. 골든래빗,2021
  • Laurentiu Splica. 「스피링 시큐리티 인 액션」. 최민석 옮김. 위키북스,2022

 

2) 개발

 올해는 위의 목표 도서들에서 알 수 있듯이, 새로운 언어의 기본기를 익히고 Main Language였던 Java를 더 깊이 있게 공부하고자 한다. Go의 경우 회사 레거시 코드를 더 이상 보일러플레이트 없이 깔끔하게 작성하기 위해 배우고자 하며, Rust의 경우 언어 자체에 흥미가 생겼기 때문이다. 또한 추가적으로 아래 프로젝트 혹은 위 스터디, 회사 업무에 필요한 추가적인 기술 스택을 적극적으로 배우고자 한다. 더 이상 현실에 안주하기에는 꿈을 이루기 위한 시간이 부족하다. 

  • Advance Java 프로젝트 마무리하기
  • Go와 Rust 기본기 다지기
  • Solved.ac Platinum 1 달성하기

 

3) 프로젝트

 와이프가 될 여자친구의 사업 아이템을 조금 더 구체화하고 서포트하기 위한 플랫폼을 기획 중에 있다. 업무 그리고 공부를 병행하며 사이드 프로젝트까지 하는 것이 분명 쉬운 일은 아닐테지만, 해내야 한다. 백날 공부만 하고 이를 실제로 구현하거나 운영해보지 않는다면 이는 의미가 없기 때문이다. 실제로 서비스를 개발하면서 추가적으로 공부해야할 항목들을 구체화하고 빠르게 실패하면서 배워나가기 위해서라도 올해 새로운 사이드 프로젝트 개발은 필수 불가결한 요소다. 사이드 프로젝트의 내용은 아직 공개할 수 없지만, 해당 서비스를 개발하면서 공부하는 기술적인 내용들은 블로그에 함께 포스팅할 계획이다.

  • 잇쇼니일본어 프로젝트 윤곽 마무리
  • 일부 서비스 론칭하기

 

4) 인생

 올해가 인생에서 큰 분기점이 되는 가장 큰 이유 중 하나는 올해 10월 결혼을 앞두고 있기 때문이다. 나를 가장 나로써 존재할 수 있게 해주는 사람과 함께 평생을 함께 하기로 약속하였고, 새로운 시작을 앞두고 있다. 보다 큰 책임감을 갖고 즐겁게 살아가기 위한 큰 원동력이 되어준 여자친구에게 늘 감사하다.

 

 작년 하반기 너무나도 많은 업무와 스트레스로 인해 방통대를 등록휴학 처리했었는데, 정말 힘들더라도 올해 졸업을 하고자 한다. 두 학기만을 남겨두고 있는 상황이므로, 지지부진하게 또 휴학을 하느니 빠르게 스퍼트해서 끝내버려야겠다.


큰 틀에서의 올해 목표들을 모두 달성하는 것은 역시 어려워 보인다. 하지만 어려운 일들을 해낼 때 그만큼의 성취감과 보상이 따라올 것이라 믿어 의심치 않는다. 하루하루가 분명 부족할테지만 늘 올해의 목표를 되뇌이며 올해말 회고록에 더욱더 많은 성과들을 기재할 수 있게, 올해도 힘차게 달려나가보자.

반응형
profile

KwanIk Devlog

@갈닉

노력하는 개발자가 되고자 합니다. GitHub이나 블로그 모두 따끔한 피드백 부탁드립니다 :)