Easy Understanding

2022년 4분기 + 2022년 회고 본문

Job

2022년 4분기 + 2022년 회고

appleg1226 2022. 12. 25. 23:26

이번에 회사에서 성과를 정리해서 제출할 일이 있었는데, 그걸 진행하는 김에 바로 이어서 회고도 같이 작성하기로 했다.

 

성과 작성을 하면서 1년 동안 우리 팀의 지라 이슈들을 쭉 둘러보았다. 

이슈들을 쭉 보는 것 만으로도 내가 1년 동안 어떻게 지내왔는지를 파악하기에 충분했다. 

또한 각 이슈들을 보다보니 그 당시에 했었던 다른 일들도 어떻게 새록새록 기억에서 꺼내져 나오곤 했다.

 

또한 나의 블로그도 1년 동안 쌓인게 적지는 않은데,

제대로 된 포스팅보다는 스터디 정리가 대부분이지만 새삼 지나고 나니 참 많이도 썼다는 생각이 든다.

 

이번 회고에서는 위의 기억의 재료들을 한 페이지에 정리해보면서 스스로 칭찬하는 시간도 가지고,

내년에도 잘 살아볼 수 있게 스스로를 자극하고 다짐하는 시간을 동시에 가져보려고 한다.

 

1. 스터디

요새 공부도 안하고 너무 연말을 즐기는 게 아닐까 싶었는데,

막상 목록을 정리해보니 생각보다 스터디를 좀 해서 그냥 맘편하게 12월 말을 즐기기로 했다. 

목록은 다음과 같다.

 

  • 자바/스프링 스터디
  • DDD 스터디
  • HTTP 완벽 가이드 및 http/3 리서치
  • Real MongoDB
  • 헤드퍼스트 디자인패턴
  • 김영한님 스프링 심화편 강의(인프런)
  • 데이터 중심 어플리케이션 설계

모든 스터디들이 버릴 것이 하나도 없었고 나에게 많은 도움이 되었다.

특히 실무와 어우러지면서 많은 시너지 효과를 냈던 스터디들이었다.

 

'자바/스프링' 스터디의 경우 소속 개발실에서 주니어들과 함께 진행한 스터디였다. 기본 문법과 프레임워크 사용법을 알고 있다는 것을 전제로 진행한 심화 스터디였다. 진행은 주제에 대해서 각자 정리해온 것들을 발표하고, 때로는 예제 코드를 작성하여 가져와서 서로 리뷰하는 식으로 진행되었다. 자바나 스프링의 내부 구조를 깊게 들어가보기도 하는 등 꽤나 깊은 내용들을 다루었다. 서로 다양한 내용들을 가져오는 경우도 많았는데 그때마다 또 많은 자극이 되었다. 게다가 여기에서 배운 것들을 토대로 실제 업무에서 코드를 작성할 때 제대로 써먹은 적이 있었다. 스터디가 가장 좋은 효과를 본 상황이 아닐까.

 

'DDD' 스터디의 경우 '반 버논'의 '도메인 주도 설계 핵심'이라는 책으로 진행했고, 이건 내 블로그에 정리도 되어있는 스터디이다. 도메인 주도 설계에서 다루고 있는 코드들이 팀의 코드에 일부가 녹아있어서, 읽어보면 도움이 되지 않을까라는 생각으로 스터디를 시작했다. 게다가 요새는 DDD가 꽤나 핫하니 말이다. DDD를 당장 제대로 적용해볼 수 있는 기회는 없었지만 여러모로 엔터프라이즈 개발에 대한 통찰력이 늘어나게 되었다. 이런 지식을 머릿속에 선택지로 두고 있다는 것 자체가 앞으로 개발의 방향성을 결정하거나 토론할 때 충분히 도움이 될 것 같다.

 

'HTTP 완벽 가이드' 스터디의 경우 특히나 올해 웹 페이지 쪽을 건드릴 일이 많았어서 그 일과 시너지를 이루었던 스터디였다. 취준생 때도 이 책을 읽었는데 그때는 이 책을 읽었을 때 무엇이 도움이 되는지를 몰랐고, 이해가 되지 않는 부분들도 많았던 걸로 기억한다. 하지만 이번에 읽을 때는 다소 달랐다. 대체로 이런 느낌이 많았는데 '아 저번에 봤던 그게 여기에 써있구나?' 라는 느낌이 많이 들었다. 이전엔 HTTP뿐 아니라 TCP, UDP 등을 이론으로만 배우고 실제로 활용이 어떻게 되는지를 전혀 몰랐었는데, 경험과 동시에 이론을 배우니 확실히 왜 공부해야 하는지를 깨달을 수 있게 되었다. 추가로 이때 쯤 http/3(quic) 프로토콜에 대해서도 정리할 일이 있었다. 구글에서 개발한 최신 프로토콜인데 이를 통해서 최신 네트워크 지식까지 접할 수가 있었다. 이것도 내 블로그에 정리되어 있다.

 

'Real MongoDB' 스터디는 우리 팀의 프로젝트에서 Mongo를 사용한다고 하여 학습하게 되었다. 이 Real 시리즈가 원래 그러한데, 단순 쿼리 사용법에 대한 책이 아니다. DB의 내부 구조가 어떻게 되어있고, 어떤 프로세스를 통해서 데이터가 저장되고 쿼리되는지에 대한 자세한 학습서이다. 스터디를 하면서 처음보는 용어와 설명들 때문에 이해하기가 굉장히 어려웠다. 하지만 천천히 한줄한줄 배워나가고, 내가 궁금한 것들을 찾아보면서 공부하다보니 어떻게든 나아갈 수가 있었다. 특히나 대표적인 RDBMS인 MySQL과의 차이를 계속해서 확인해봐가면서 학습했던 것이 도움이 되었다. 거기에선 이렇게 하는데 여기에선 그걸 어떻게 해야하나라는 궁금증으로 이것저것 찾아보았고, 책에서도 이에 대한 설명이 자세하게 나와 있었다. 이것도 내 블로그에 글 하나를 정리해 두긴 했다. 올해는 아직 몽고를 업무에 도입하지 않았지만, 조만간 사용할 기회가 있을 것 같다.

 

'헤드퍼스트 디자인패턴' 스터디의 경우 책 자체는 쉽게 설명이 되어있지만, 그렇기 때문에 대충 보고 넘어가고 싶지가 않았다. 그 당시에 초점을 맞춘 것이 그래서 이 패턴을 실제로 스프링으로 백엔드를 개발하면서 어디에 적용할 수 있느냐였다. 그래서 나름대로 팀의 코드를 떠올리며 이런 상황에서 쓰면 적절할 것 같다고 생각을 하며 정리를 해본 스터디였다. 하지만 그때로부터 반 년 정도가 지난 지금 위 책을 다시 본다면 또 새로운 생각이 들지 않을까 싶다. 지금의 나와 5월의 내가 그만큼 많이 달라졌기 때문이다. 그래서 아마 내년에도 시간이 난다면 한번 훑어볼 책이 될 것 같다. 

 

김영한님의 스프링 심화편은 사실 가벼운 마음으로 학습했다. 위의 스프링 스터디에서 진행했던 내용들의 대부분이 강의에 포함되어 있었기 때문이었다. 이건 내가 빼먹은 지식이 있지 않을까 확인용으로 학습했던 강의였다. 게다가 강사님의 강의에서 다루고 있는 예제 어플리케이션과 비슷한 기능을 하는 코드를 이미 작성해본 적도 있기에 편하게 들었다.

 

'데이터 중심 어플리케이션 설계' 스터디는 개인적으로 읽으면서 가장 만족했던 책이다. 올해 내가 일을 하면서 느낀 것은 백엔드 개발자가 알아야할 소양 중 제일은 데이터라는 것이었다. 데이터는 일단 알아야할 기술들이 굉장히 많다. RDB, NoSQL, 메시징, 스트리밍, HDFS 등 많은 분야의 지식들을 알아야 한다. 또한 장애나 문제가 발생한다면 데이터베이스에 문제가 있던 적이 꽤나 있었다. 게다가 고가용성이나 분산처리 같은 익혀야할 지식들은 복잡하고 어렵기만 하다. 하지만 놀랍게도 그런 경험과 고민들이 다 이 책 한 권에 정리되어 있었다. 책의 내용이 다소 어렵고 때로는 이렇게까지 알아야할 필요가 있나 싶은 내용도 있기는 하지만, 실제로 고민할만한 부분들 대부분이 이 책에 정리되어 있다는 점에서 굉장히 만족했다. 솔직하게 내가 굳이 이렇게 열정적으로 이 책을 좋아하는 이유가 있다면, 내가 여기에서 나온 기술들과 문제들에 대해서 다 한 번씩 경험해봤다는 뿌듯함 때문일 수도 있긴 하다. 책이 다소 어려워서 스터디하는 동기들도 어려워했지만 충분히 다시 볼만한 책이라고 생각한다. 그리고 후배 주니어 개발자를 알게 된다면 적극적으로 추천해주고 싶은 책이다. 

 

2. 회사 생활

나는 올 한해 회사에서 다양한 일들을 겪었고, 그 과정에서 많은 도움과 성장을 얻을 수가 있었다.

그런 것들을 몇 가지로 정리해보려고 한다.

 

1) 개발

다음은 내가 생각하기에 올해 간접적으로든 직접적으로든 경험했다고 생각하는 업무이다.

 

  • 실시간 대용량/대규모 데이터 처리
  • 데이터의 정합성을 위한 개발 및 관리
  • 배치 어플리케이션 개발
  • 캐싱, 메시징 등 데이터 플로우 과정
  • vm, 클라우드 인프라 경험
  • 로깅, apm 등 기본적인 모니터링
  • 프런트엔드 개발 경험
  • 응답 지연, 에러 처리 등 장애 대응 경험
  • 유저 CS에 대한 기본적인 운영 업무 경험

이렇게 하나씩 정리해서 보니까 나 스스로를 너무나도 뻥튀기하고 있는 느낌이 있는데 뻥튀기가 맞다.

내가 직접 이 일을 다한게 아니라 옆에서 돕고 가끔씩 작은 것들만 처리하기는 했다.

하지만 이 모든 것들에 대해서 한 싸이클을 돌고 입문했다는 데에 의의가 있다.

 

나에겐 모두 처음 겪는 상황들과 일들이었지만, 팀원 분들의 일처리를 보면서 많은 것들을 배울 수가 있었다.

'아 이런 상황에선 이렇게 하시는구나' 를 일년 내내 보면서 배워왔다.

내년부터는 '아 이런 상황에서는 그렇게 하셨지' 로 넘어가고 그게 성공한다면 좋을 것 같다.

 

위의 다양한 경험을 해볼 수 있었던 것은 회사의 상황과 개발 도메인이 적절하게 어우러져서 된 것도 있다.

우리 팀의 어플리케이션들은 실시간 api를 제공하고 있을뿐 아니라,

어드민, 웹페이지, 배치 등의 많은 종류의 어플리케이션이 포함되어 있다.

심지어 배치 어플리케이션의 경우 유지보수해야할 어플리케이션도 꽤나 많다. 

 

또한 결제라는 도메인이 정합성이 중요하고 그 덕분에 할 수 있는 고민들이 있어서 그런 점들이 좋았다.

데이터베이스 책에 나오는 트랜잭션 격리수준이나 이런 것들을 실제로 고민해볼 수가 있었다.

또한 쌓이는 데이터들이 꽤나 많아서 그것들을 어떻게 세심하게 다룰지도 고민해야만 했고 지금도 그런 문제들을 고민 중이다.

인덱스 설계나 테이블 구조 설계 같은 것들이 이에 포함될 것이다.

 

또한 인프라의 경우 vm, docker, k8s 모두를 사용하고 있고, aws, gcp도 둘 다 경험해볼 수 있는 환경에서 일을 했다.

정말 이렇게 다양한 인프라를 쓰게 될 줄은 몰랐다.

새로운 걸 공부해야 한다는게 좀 불편하기도 하고 많은 분들이 클라우드로 고통을 받으시기는 하시지만,

개인적으로는 많이 배울 수 있는 기회라고 생각하고 있다. 

 

위의 모든 것들에 조금씩 발을 담가볼 수 있었다는 것이 참 행운이라고 생각한다.

비록 얕지만 꽤나 넓게 경험하고 느낄 수 있었다.

물론 내년의 나에게는 발을 담그는 수준 이상을 요구해야 겠지만 말이다. 

 

2) 팀

나의 성장에는 나의 팀원들과 그 분위기가 큰 몫을 했다고 생각한다. 

다른 분들의 일에 하나씩 끼어들면서 보조 역할을 하면서 꽤나 많은 것들을 배울 수가 있었다.

특히나 그 과정에서 가장 좋았던 것은 질문을 아무도 귀찮아하지 않으셨다는 것이다.

오히려 내가 물어봤을 때 더 적극적으로 자세하게 설명해주시는 경우가 많았다.

심지어 이런 질문을 끊임없이 하는 게 팀에 도움이 되는거라고 안심까지 시켜주는 분위기였기에 더더욱 좋았다.

이렇게 알려주신 덕분에 팀 업무에 쉽게 적응할 수 있었고,

배운 것들 중에서 내가 할 수 있는 부분들에 대해서는 확실하게 가져갈 수 있었다.

 

또한 의견을 내는 분위기도 생각보다 건설적인데, 좋은 코드와 개발에 대해서 토론이 많이 이루어진다.

그리고 그 과정에서 서로의 기분을 상하지 않게 소통하는 것들이 눈에 자주 띄었다.

물론 나는 아직 대부분의 경우 의견을 수용하는 쪽을 택하기는 한다만,

그런 분위기에 힘입어 가끔은 이렇게 하면 어떨까 조그맣게 속삭이는 정도는 되었다. 

 

3) 커뮤니티

나는 올 한해 회사 생활도 꽤나 재미있게 했다고 생각한다. 

특히 내 주변에 같이 일을 하는 사람들 중에 주니어가 별로 없었는데 이것이 나름대로 즐거웠다. 

특히나 내가 나이가 신입 중에서는 적은 나이가 아니라서 어딜가서 막내 취급 받기가 쉽지 않은데,

여기에선 아직도 막내다.

아마도 여기가 마지막일 것 같아서 즐기는 중이다. 

 

많은 시니어 분들이 커피 마실때도 챙겨주시고 해서 대화에 껴서 앉아있을 때가 종종 있었는데,

그런 대화들을 듣고 있는 것만으로도 꽤나 도움이 많이 되었다. 

기술적인 논의를 하시거나 기술 외적으로 사적인 이야기를 하는 것도 재미있었고 참고할 만한 점들이 많았다.

 

때로는 내가 고민중인 기술적 질문을 하게될 때면

그걸 이 회사에서는 이렇게 하고는 했다, 이건 이렇게 하면 좋다라고 이야기 해주실 때가 있는데

그런 스토리들을 통해서 많은 것들을 느꼈다.

 

올 한해 같이 일하는 분들 중에서 롤모델로 삼고 싶은 사람들도 꽤나 있었다.

저 사람처럼 되고 싶다, 저 사람처럼 잘하고 싶다라는 생각을 들게 한 분들이 많았다. 

기술적으로 뛰어난 분들이 계셨고, 기술뿐 아니라 일 자체를 잘하시는 분들도 계셨다.

또한 좋은 리더십으로 팀 관리를 잘 하시는 분도 계시다.

이런 점들을 하나하나씩 보면서 내가 나중에 되어야 할 방향성이 자연스럽게 잡히는 것 같다.

좋은 점들을 모두 흡수해서 그런 사람이 되어야 겠다.

 

3. 내년 목표

마지막으로 내년 목표를 세우는 것으로 마무리를 하려고 한다. 

내년의 목표는 역시나 퇴보하지 않도록 끊임없이 성장하는 것이다.

내년에는 올해 일을 한다고 돌보지 않았던 주변 사람들에 대해서도 더 신경쓰고 싶지만,

그럼에도 불구하고 업무 능력을 게을리 할 수는 없기에 계획을 한 번 나열해보려고 한다. 

 

1) 개발 기본기 보충

내년에는 개발에 대한 base라고 불리는 책들을 꾸준히 읽고 정리해보려고 한다.

대표적으로 '리팩터링', '클린코드', '실용주의 프로그래머', '헤드퍼스트 디자인패턴', 'DDD' 등의 책들이 있을 것 같다.

이미 본 책이지만 다시 한번 봐야하는 책들이 대부분이다. 

이전에 읽었을 때와 다시 읽을 때에 느끼는 점들과 배우는 점들이 무조건 다를 것이기에

내가 겪어온 시간들을 평가하는 시간이 될 것이기도 하다. 

목표는 월에 하나씩 꾸준히 읽는 것이다.

그리고 블로그에 간단하게 월간으로 남겨보는 것이 목표다.

 

2) 기술 딥다이브

기본기는 당연히 해야하는 거고, 내년에는 하나를 깊게 공부하고 그것을 어딘가에 남기는 걸 더 적극적으로 해보려고 한다.

어떤 것을 깊게 파보았다는 것이 주니어에서 그 다음으로 넘어갈 수 있는 조건이라고 생각한다. 

물론 많은 자료를 봐야하고 그것들을 하나의 자료로 정리하는 것이 고통스럽고 시간이 많이 걸리는 작업일 것이다만,

그런 과정이 나에게 얼마나 많이 남는지를 생각하면 충분히 가치있는 시간이라고 생각한다

연 2~3회 정도를 목표로 하고 있다.

 

3) 새 언어 학습

최신 언어 하나 정도를 재미로 익혀보려고 생각하고 있다. 

현재 실무에서는 자바와 파이썬, js 정도를 사용하고 있는데 이렇게 하던것만 하니 신선한 느낌이 없다.

개인적으로 개발 공부 중 가장 즐거운 시간이 새로운 언어를 배우는 시간이라고 생각한다.

그 언어를 직접 사용할 일은 별로 없겠지만, 사용해보는 것만으로도 최신 트렌드를 익히는 데에 도움이 되지 않을까.

개인적으로는 rust나 elixir 같은 언어를 생각중인데,

딱 하나 정도만 책을 떼보면 어떨까 생각중이다. 

 

4) 영어 공부, 재테크 공부

이것들은 꼭 하려는 건 아니고 시간이 허락한다면 하고 싶은 공부들이다.

현재 해외의 개발자 취업시장이 다소 어렵다는 건 알지만 그럼에도 가능성에 대해서는 조금이라도 열어두고 싶기는 하다.

물론 위의 것들을 하고 시간이 남아야 가능한 것이기는 하다.

또한 올해는 내가 개인적 사정으로 돈을 모을 수가 없었는데,

내년엔 가능하지 않을까 보고 있어서 재테크도 이거저거 알아볼 생각이다.

일단 이 두 가지는 선택 항목이다.

 

 

4. 마무리

내가 올 한해 백엔드 개발자로서 느낀 결론은 이 직업은 나에게 굉장히 잘 맞는 직업이라는 것이다.

문제가 해결되었을 때의 기쁨,

그리고 퀘스트처럼 일을 끝내는 재미,

새로운 것이 나오는 고이지 않는 업계,

사람들이 많이들 알고 있는 서비스를 개발하고 있다는 즐거움 등

이 직업을 선택한 것에 굉장히 만족한 한해였다. 

 

2022년의 나는 초보 개발자로서 그 어떤 해보다 많은 성장을 이룬 해일 것이다.

당연히 무로부터 지금의 나를 만들었으니 그럴 수 밖에 없다.

아마 내년에는 올해보다 적은 성장을 이룰 것이고, 내후년에는 그보다도 적을 것이지만

그렇기에 올해가 소중한 한해가 아니었나 생각한다.

 

지금 내 마음 속은 내년에 어떤 성장을 이룰지에 대한 기대와 과연 잘할 수 있을지에 대한 걱정이 공존하고 있다.

그건 또 내년 회고 때 결론이 날 것이다만,

일단 올해는 감사한 마음으로 한 해를 마치려고 한다.