시작하며
매년 그랬지만 2021년도 참 빠르게 지나간 것 같다. 벌써 연말이라니.
오늘은 2021년을 돌아보며 잘 했던 부분에 대해선 나 자신을 칭찬해주고, 아쉬웠던 부분에 대해서는 개선할 방안을 찾아봄으로써 새해는 더 뜨겁고 의미있게 보내고자한다~!
개발 외적인 거는 개인적으로 정리할 계획이고, 본 회고록에서는 개발 관련된 내용 위주로 작성했다.
2021년 개발 관련 활동 요약
- 다양한 이유로 미뤄왔던 스프링을 사용해보기 시작했다.
- 바닥부터 주도적으로 설계/개발해나갈 수 있는 초기 스타트업에 합류해 나름 많은 경험을 해볼 수 있었다.
- 실제 개발 프로젝트에 여럿 참여해 협업을 해보았다. (교내 사이드 프로젝트, 개발 동아리, 스타트업)
- CS 지식을 넘어 개발자로서 필요할 만한 내용들을 많이 접하고 공부했다.
- DB, Transaction, Cache, Redis, Concurrent programming, TDD
- MSA, DDD, 메시지 큐, CQRS, SAGA 등에 대해
- AUSG(AWS 대학생 동아리)와 SOPT(개발 동아리)에서 진행한 세미나에서 ElasticBeanstalk 관련 세션을 진행했다.
- 취준을 시작했다.
- AWS SAA 자격증을 공부 중이다.
- 백엔드/클라우드 분야에 있어 대부분의 기술 세미나와 기술 블로그 글들을 어느 정도 다 이해할 수 있어졌다.
- 무엇보다 올해에는 마음이 맞는 소중한 사람들을 많이 만나게 된 것 같아 감사하다.
좋았던 점
스타트업에 합류해 많이 성장할 수 있었다!
작년까진 대부분의 프로젝트를 혼자해왔던 것 같은데 그러다보니 기획, 디자인, 프론트 등에 너무 에너지를 뺐겨서 백엔드에 집중하기가 힘들었던 것 같다. 이런 점에서 아쉬움을 느꼈고, 최대한 실무와 유사한 경험을 해보고 싶다. 그래서 제대로 사이드 프로젝트를 구하는 플랫폼에서 팀을 구해보고자 했다.
당시에 개발 동아리가 아닌 팀을 따로 구하고자 했던 이유는 사실 개발 동아리는 인터뷰 과정을 거쳐 팀을 정할 수 있는 게 아니라 보통 동아리원들 중 랜덤으로 팀 빌딩이 이루어지다보니 사실 팀 빌딩에 있어 운이 많은 부분을 차지하지만 내 프로젝트를 그렇게 운에 맡기고 싶지 않았기 때문이었다. 실제로 대부분의 동아리가 한 1/3 정도는 프로젝트나 협업이 원활히 이루어지지 않는 것 같다.
어쨌든 나름의 그런 판단하에 개발 동아리보단 따로 사이드 프로젝트 팀을 구해서 합류하는 게 더 좋은 팀원들을 만날 수 있을 것 같았고, 결과적으로는 사이드 프로젝트가 아니라 초기 스타트업에 합류하게 되어 학생으로서는 적지 않은 급여를 받으며 주도적으로 개발해나가고 많이 성장할 수 있었던 것 같다.
나는 이 팀에서 개발 리드를 하며 클라우드 인프라 설계/구축, Spring Boot RESTful API 서버 개발, 프론트 일정 관리 및 QA 등의 업무를 담당했다.
Spring도 JPA도 테스트 코드도 처음이었는데, 잘 적용해볼 수 있었다. 지인들과 스터디 그룹을 만들어 토의하고 인프런에서 강의를 수강하며 기술을 공부하고 적용해나갔다. 서비스를 개발하면서 N+1 쿼리의 문제점 같은 부분들을 실제로 경험해볼 수도 있었고 개선해나가면서 Latency가 낮은 서비스 제공하기위한 전략들에 대한 관심도 갖게 된 것 같다.
CS 지식을 넘어 개발자로서 필요할 만한 내용들을 많이 접하고 공부했다.
‘MSA에 관심있다, 관심있다.’ 말만 하다가 지인이 선물해준 “마이크로서비스 패턴”이라는 책을 시작으로 DDD라는 주제와 조금 더 자세한 MSA에 대해 알게 되었다.
실질적으로 마이크로서비스들이 어떻게 낮은 의존성과 느슨한 결합으로 동작할 수 있는지 공부해보다보니 메시지 큐와 CQRS, SAGA와 같은 내용들도 알게 되었다.
그리고 캐시나 테스트 코드들은 막연하게만 알고 있던 상태였는데 실제로 도입해보면서 주니어 치고는 썩 나쁘지 않은 정도까지는 알게 된 것 같다!
그리고 기술 관련된 아티클을 읽는 걸 참 좋아하는데 열심히 읽은 내용들이 그냥 스쳐지나가는 것이 아쉽기도 하고 남들은 어떻게 생각하나 궁금해서 아티클 내용에 대한 요약이나 내 생각을 적어나가기 시작했다. 이렇게하니 확실히 내용이 잘 기억나기도 하고, 가끔 본인의 생각을 공유해주시는 경우도 있어서 그를 통해 배워나가기도 한 것 같다.
이런 공부들을 바탕으로 결과적으로는 과거에 내가 꿈꿨던 개발자 상에 좀 더 가까워진 것 같다. 당시엔 대부분의 기술 세미나가 오프라인으로 진행됐었고 나는 뭐라도 배워보려고 세미나에 참여했으나 대부분의 내용을 이해하지 못했고, 주변을 둘러보며 ‘아니… 여기있는 사람들은 저 얘기를 다 이해할 수 있는건가..? 대단하다’라는 생각을 가지곤했다.
그래서 나도 나중에는 이런 내용을 다 이해하고 공감할 수 있는 개발자가 되고 싶었다. 그리고 올해를 마무리하며 돌이켜보니 이제 대부분의 기술 세미나는 무리 없이 이해할 수 있었던 것 같아 뿌듯하다. +_+
올해에 재미있게 봤던 세션들은 대충 다음과 같았던 것 같다.
- [2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
- [우아콘2020] 배달의민족 마이크로서비스 여행기
- [우아한테크세미나] 191121 우아한레디스 by 강대명님
- Google I/O 2012 - Go Concurrency Patterns
- 당근마켓의 고언어 도입기, 그리고 활용법
- [NHN FORWARD 2021] Redis 야무지게 사용하기
생각을 공유하고 공감할 수 있는 소중한 사람들 만나게 됐다.
사실 그동안은 이런 저런 이유로 전역한 뒤로는 나랑 잘 맞는 사람들을 만날 기회가 적었다. 아무래도 학교가 고립되어 있고 너무 어렸던 게 주된 원인이었던 것 같다.
하지만 올해에는 잘 맞는 사람들을 만나 함께 취업 준비를 하면서 각자가 가진 커리어에 대한 가치관이나 가고 싶어하는 회사 기준을 공유하면서 서로 자기 자신에 대해서도 잘 알아갈 수 있었던 것 같고 많은 힘이 됐던 것 같다.
개발하다가 드는 궁금증이나 이해 안되는 점을 마음 놓고 공유할 수 있는 그룹이 생겼다. ㅎㅎ.
‘왜 세션 말고 JWT를 쓸까’, ‘데이터랑 트래픽이 얼마나 커져야 RDB가 감당하기 힘든 수준이 될까’, ‘인터페이스와 구현체로 구분할까 그냥 구현체만 쓸까’ 이런 내용들에 대해 자주 대화를 나눴던 것 같은데 딱 정해진 정답이 있는 질문들은 아닌 것 같다. 하지만 그에 대해 혼자서 고민만 하기보다 ‘나도 그거 궁금해’ 하면서 같이 고민하고 공부해나가다보니 훨씬 더 재밌더라!
아쉬웠던 점, 개선할 점
선택과 집중을 잘 하지 못했던 것 같다.
개인적인 일로 슬럼프가 찾아왔던 것 같고 그를 끊어내려고 이래 저래 일을 벌렸던 것 같다. 그러다보니 한 활동이나 프로젝트에 몰입하지 못하고 병렬적으로 진행하면서 약간 늘어지게 된 것 같은데, 확실하게 하나씩 하나씩 쳐냈으면 더 좋지 않았을까 싶다.
그리고 프로젝트 뿐만 아니라 공부에 있어서도 나름 깊게 파는 걸 좋아한다고 생각했는데 면접 준비를 하면서 내가 아직 많이 부족하단 걸 느끼게 됐고, 그동안 선택과 집중을 잘 하지 못했다는 걸 알게 되었다.
클라우드 인프라 조금, 컨테이너 조금, Java spring 조금, DB 조금, MSA/DDD 조금, 캐시/Redis 조금, Go 조금, … 뭔가 다 두루두루 알고는 있는데 클라우드 인프라를 제외하면 깊이가 그리 깊진 못했던 것 같다. 게다가 사이드프로젝트에서 안드로이드도 건드리고 리액트도 살짝 건드리고 쿠버 생태계쪽도 건드리고 그러다보니 집중이 분산된 것도 있는 것 같다.
개발을 즐기는 건 너무 좋지만, 결국 프로가 되려면 즐기면서 재밌는 것만 할 수는 없는 것 같다. 때로는 조금 재미가 없는 것도 감수하고 노력해야 프로가 될 수 있는 것 같다.
그래서 새해에는 관심있는 분야 폭을 정해 책을 통해 좀 더 확실히 다이브를 해보고자한다. 각 분야별로 베스트셀러 같은 책들을 한 권씩은 읽어보고자 결심했다.
- RDB - Real MySQL
- NoSQL - Real MongoDB
- NoSQL - 각 NoSQL 비교하는 내용의 어떤 책 하나
- DDD/MSA - 도메인 주도 설계로 시작하는 마이크로서비스 개발
- Redis - Redis in Action
- Spring Boot - Spring Boot를 다룬 어떤 책 하나
- Go - Effective Go
- 기타 - 가상 면접 사례로 배우는 대규모 시스템 설계 기초
멘탈이 약했다.
취업 준비를 시작하기 전부터 멘탈이 많이 흔들렸던 것 같다. 나는 그냥 설계하고 개발하는 게 좋은데 취업을 위해선 코딩 테스트를 준비해야한다는 것부터 스트레스였고 JD를 보면 요구 조건은 물론 우대 사항까지 모두 자신있어야만 할 것 같은 압박도 스트레스였던 것 같다.
그러다보니 지레 겁을 먹고 지원 자체를 미루거나 지원과 동시에 갑자기 피로감이 몰려오곤 했던 것 같다. 그러다보니 일상 생활이나 공부에도 지장이 있었던 것 같다.
그래서 새해에는 커리어와 관련해서 좀 더 강한 멘탈로 열정적으로 임하면 더 좋을 것 같다.
2022 목표
- 지식의 깊이를 더 깊게 해야겠다
- 분야별 책 읽기
- 동영상 강의 꾸준히 시청하기
- 선택과 집중을 하자
- 너무 다양한 분야보다는 내가 우선순위에 둔 기술들을 위주로 개수는 적더라도 깊이있게 공부해나가자
- 운동을 소홀히 하지말자
- 요 몇 달 운동을 소홀히 했더니 몸이 뻐근해지기 시작한 것 같다. 새해에도 운동을 꾸준히 해야겠다.
자신감 있되 겸손한, 한결 같이 열정적인 개발자가 되고 싶다.
마치며
올해에는 계속해서 ‘길게 보자’는 말을 되새겼던 것 같다. 지금 당장 내가 코딩 테스트에 통과했는지, 기술 면접에 통과했는지에 집착하기보다는 나 자신이 그러한 지식들을 숙지한 엔지니어가 되는 것을 목표로 하는 것이 더 중요하다고 생각하기 때문이다.
하지만 사람 마음이라는 게 참… 머리로는 알아도 ‘혹시라도 구렁이 담 넘어가듯 운 좋으면 어떻게 될 수도 있지 않을까…?’ 이런 알량한 기대를 하게 되더라.
새해에는 좀 더 본질적으로 지식이 깊고 실력 있는 개발자가 되기 위해 여유를 갖고 나아가야할 것 같다!