2023년, 돌아봅시다.

러리·2024년 1월 6일
0
post-thumbnail

안녕하세요!

조금 (많이) 늦은 2023년 회고글을 써보려 해요. 서울로 올라가는 기차에서 회고 글의 시작을 떼어보고 있는데, 그 끝은 집에서 쓰고 있네요.

작년에도 이런 저런 재밌는 일이 많았는데, 기억나는 걸 하나씩 돌아볼 예정이에요.
크게 회사 내에서 일어났던 일과 회사 밖에서 일어났던 일로 나눠서 살펴볼게요.

제작년 회고인 2022년 회고 때는 내년에 뭘 해보자! 같은 계획이 따로 없었어서, 이번엔 올해에 뭘 해볼건지도 생각해보면서 글을 써내려가볼게요.

시작해볼까요?


회사 내에서의 나

회사에서의 스스로를 돌아보면서 시작해볼게요. 정말 큰 프로젝트를 많은 인원과 함께 성공적으로 끝내고, 다른 팀으로 이동하고, 정말 처음보는 도메인을 다루기 시작했어요.

주가 되는 프로젝트 외에도 엔지니어링 컬쳐 길드에 참여해서 여러 활동을 해봤어요.
일단 먼저 2022년의 마무리에도, 2023년의 시작에도 함께했던 큰 프로젝트를 돌아볼게요.

워크스페이스 프로젝트

개인적으로는 작업 규모나 마이그레이션 규모 모두 전무후무한 기록을 세운 프로젝트가 아닌가 싶은데, 정말 말 그대로 "모든" 마이크로서비스를 수정했던 프로젝트였어요.

워크스페이스 프로젝트는 복잡하게 꼬인 인가 체계를 정립하고, 중앙화하기 위한 프로젝트였어요. 이 프로젝트는 사수님이 처음 기획 및 설계하셨는데, 당시에는 마침 제가 맡았던 프로젝트도 끝났었고, "이제 이걸 해야해요!"라는 느낌으로 관련 내용을 직접 들어보기도 하고, 나온 모델들도 봤었어요.

그런데 설명을 들으면 들을수록 점점 뭔가 이상한 거에요.

어 이거 근데 이러면 규모가 엄청 커지지 않아요?

네 맞아요. 그렇게 워크스페이스 프로젝트는 시작됐어요.

이 프로젝트 덕분에 인가 체계에 대해서도 자세히 공부해보고, 구글의 잔지바르(Zanzibar) 논문도 살펴보고.. 카프카라는 기술도 들어만 봤던 그걸 직접, 거하게, 당해보기도 하고.

배포가 몇 달 안 남은 시점에 마이그레이션을 점점 고려해보기도 하고, 몇 번이나 연습해보고, 제발, 잘 되겠지.. 하면서 끝까지 마음 졸였었던 기억이 있네요.

아무튼 정말정말 많은 걸 배웠던 프로젝트였어요!

추가적으로, 프로젝트 진행하면서 항상 느꼈던 거지만, 지금 돌아봐도 프로젝트를 리드하셨던 PM님이랑 사수님 두 분 모두 정말.. 존경스러운 마음이 남아있어요.

프로젝트 특성 상 말그대로 "모든" 서비스의 "모든" 도메인 정책을 알고 있어야 하고, 문제가 발생했을 때 이걸 어떻게 해결할 수 있을지, 그 해결책을 제시해야 할 때도 많았고, 워낙에 큰 프로젝트에 기간이 길다보니 일정에서 오는 압박이 있었음에도, 항상 그 자리를 지키고 계셨던 두 분이 있었기에 워크스페이스 프로젝트가 잘 마무리될 수 있었다고 생각해요.

이 프로젝트 관련해서는 회사 기술 블로그에 조만간 기술적인 이야기들을 모아서 글을 올려보려 하고 있는데, 게으름 때문에 점점 미뤄지는 느낌이 있네요.. 크게 주제들만 잡아봤는데도 글 세 개는 뚝딱 나올 거 같더라구요. 지금 쓰고 있는 회고처럼 언넝언넝 써서 올려야겠어요. 점점 기억에서 사라지는 거 같아서요..

워크스페이스 프로젝트와 관련된 자세한 이야기는 이후 기술 블로그에 올라올 글을 참고해주세요!

거대한 TF 팀의 해산

워크스페이스라는 거대한 프로젝트를 위해 모인 TF 팀이, 프로젝트가 끝나자 각자 다른 기능들을 만들러 해산하게 됐어요.

여러 다른 팀으로 쪼개지고, 각자 다른 도메인을 다루며, 각자 각 팀의 목표를 향해, 궁극적으로 회사의 비전을 향해 한 걸음씩 걸어가기 시작했어요.

개편된 인가 체계 위에서, 또 다른 멋진 기능들을 만들러 갔죠.

저는 그 중에서 SaaS 플랫폼 팀에 소속되게 되었어요.

SaaS 플랫폼팀으로

SaaS 플랫폼팀은 우리 서비스가 SaaS 서비스로써 동작하게 하는 여러 기능들을 만드는 팀이에요.

우리 서비스에 문제 없이 로그인 할 수 있도록, 회원 가입할 수 있도록 인증 부분도 다루고요!

여러 유저가 사용하기 때문에, 각각의 유저가 자신의 리소스를 문제 없이 볼 수 있도록, 자신의 것이 아닌 리소스를 볼 수 없도록하는 인가 처리.

그리고, 기본적으로 구독제로 서비스가 동작하기 때문에 구독, 결제도 맡고 있고, 결제 내역을 관리하고, 매출을 기록하는 장부 도메인도 맡고 있어요.

또, 그 외에도 엔터프라이즈 고객을 위한 보안 기능들도 개발하고 있어요.

뚝딱뚝딱. 그래서 조금 바빠요.

일하는 방식의 변화

팀이 나뉘면서 일하는 방식에도 변화가 일어났어요. 애자일을 큰 베이스로 여러 방법을 시험해보고 있는 과도기라고 느껴져요.

스프린트마다 무엇을 할지 정하고, 스토리로 쪼개고, 태스크로 쪼개고.

아직은 스스로가 애자일이라는 방법론에 적응하지 못한 거 같아요. 좀 더 공부해보면서 차차 알아나가야 할 거 같네요. 배워야 할 게 산더미에요..

그래서 뭐 하고 있나요

앞서 말했던 것처럼 처음 보는 도메인을 다루고 있어요. 입사 직후에 여러 코드를 둘러보면서 이건 무슨 역할을 하는거지.. 내가 다룰 일이 있을까.. 했던 바로 그 코드를 다루고 있는데요!

레거시 코드가 적지 않게 섞여 있고, 여러 도메인 용어가 혼재되어 있어서 현재 도메인에 맞게 리팩토링하고, 정책을 정리하고, 기능을 얹어가고 있어요.

이 과정에서 팀원분들과 함께 무엇이 옳은지, 무엇이 틀린지, 어떻게 개선해볼 수 있을지를 고민하면서 발전시켜 나가보고 있어요.

최근에는 갑자기 일이 쏟아져서 당황스럽긴 한데, 어떻게든 쳐내가고 있네요.

엔지니어링 컬쳐 길드

회사에 VPE님이 오셔서 엔지니어링 컬쳐 길드라는 걸 시작했어요. 메인 프로젝트 외에 엔지니어링 적으로 문화를 개선하기 위해, 혹은 같이 해볼 사람이 없어서 못 해봤었던 기술적인 개선을 함께 시도해보고 있어요.

저는 "비동기 메시지 가시화"와 "http client", 두 길드에 속해 있어요.

비동기 메시지 가시화 길드에서는 말그대로 뒷단에서 주고 받는 비동기 메시지를 엔지니어들이 더 인식하기 쉽게 하고, 다루기 쉽게 하자는 목적에서 시작됐어요.

이 길드에서는 백엔드 어플리케이션 내에 있는 모든 비동기 메시지를 정리해서 현재 우리 시스템의 상태를 살펴보고, 이를 개선하기 위해 AsyncAPI를 기준으로 메시지 스키마에 대한 codegen을 시도해보고 있어요.

또, http client 길드는 백엔드 어플리케이션 내에서 rest api 호출을 주고 받기 위해 사용하는 수많은 어댑터들을 더 사용하기 쉽게 만들자는 목적에서 시작됐어요.

당시에 자바를 사용할 일이 있어서 살펴보다가 retrofit에 큰 충격을 받고.. TS에서도 더 사용하기 쉽게 만들어보자! 하면서 시작되었어요.

둘 다 메인 프로젝트를 진행할 때 경험했던 것과는 또다른 새로운 경험을 할 수 있어서 좋았던 거 같아요.

작년과의 다른 점은?

2022년에는 주로 혼자서 백엔드를 진행하는 경우가 많았어요. 그래서 여러 많은 사람들과 이야기하고 협업할 경험이 크게 없었는데요. 2023년 넘어와서 워크스페이스 프로젝트를 진행한 후에는 여러 사람들과 정책도 이야기하고, 어떻게 구현해볼지도 이야기해보면서 더 재밌게 느껴졌던 거 같아요.

물론 자연스레 리뷰해야 할 코드의 수는 늘었지만, 리뷰에서 배우는 것도 정말 많아서 좋아요.

내년에서는 회사에서 뭘 하고 싶나요

조직 개편 후 아직은 적응을 하고 있는 과정인 거 같아요. 새로 마주한 도메인에도 이제 점점 익숙해지고, 이미 기능도 몇 개 배포..를 해서 괜찮은 거 같아요.

개인적으로 느끼기에는 맡은 도메인들이 모두 리스크가 큰 것들이라 배포할 때마다 정말 긴장되는데.. 아직 큰 문제는 없었던 거 같아요. 내년에도 그 흐름이 계속되었으면 좋겠는데, 아직은 불안불안한 거 같네요.

그리고 회사에서 DDD + 클린 아키텍처를 기반으로 코드를 작성하는데, 요즘 들어서 고민을 계속 하는 부분이, "이 코드는 그래서 어디로 가야 할까?"에요.

예를 들면,

이 부분은 도메인 규칙이 맞나?
도메인 규칙이면 도메인 계층으로 가야 하나?
도메인 서비스로 코드가 너무 몰리는 거 같은데..
책임을 분리해볼 수는 없을까?

같은 생각들이에요. 결국 동작하는 건 동일하겠지만, 점점 코드가 복잡해지니 이런 걸 많이 고민하게 되더라구요.

또, 테스트 코드를 어떻게 잘 짤 수 있을까.. 같은 것들도 많이 고민해보고 있어요. 어떻게 해야 내가 테스트하고 싶은 바를 잘 드러낼 수 있을까? 같은 것들 말이에요.

동료 분 중에 테스트 코드를 깔끔하게 짜는 분이 계셔서, 이 분 코드 리뷰를 할 때 작성하신 테스트 코드를 유심하게 보는 편이에요.

그리고, 최근 들어 더 "코드를 읽기 쉽게" 작성하는 걸 신경 쓰고 있어요. 코드 라인 수를 줄인다거나, 이름을 더 신경써서 짓는다던가!

이런 것들도 고민해보면 정말 재밌긴 한데, 어쨌든 일은 해야 하다보니 어느 정도는 양보하고 지나가는 일도 적지 않은 거 같아서, 좀 더 습관화해서 큰 시간을 들이지 않더라도 충분히 좋은 결정을 내릴 수 있도록 열심히 고민해보고, 시도해보고 있어요.

결국, 더 도움이 되는 사람이 되고 싶은 거 같아요.
엔지니어로써던, 사람으로써던 간에 말이에요.

물론 일만 하진 않았는데..

오일 파스텔로 그려진 그림

누군가의 "오일 파스타"에서 시작된 오일 파스텔.. 그림 그리기를 했었어요.
점심 시간에 짬 내서 다들 했었는데 저는 몇 장 그리다가 목 아프고 허리 아파서 그만뒀는데 몇몇 분들은 점점 실력이 왕왕 늘어서 신기했어요.


회사 밖에서의 나

이번에는 회사 밖에서의 스스로를 돌아볼게요. 회사 외에도 이모저모 활동을 했었는데요!

아래 5개의 활동 중에 3개는 한 친구 덕분에 경험할 수 있던 것들이라, 정말 고맙게 생각하고 있어요. 그 친구에게 저도 도움이 되는 사람이 되길 바라며..!

시작해볼게요!

쿠톤의 스태프

쿠톤 대회 진행 사진

제가 다니고 있는 대학교에서는 매년 khuthon(쿠톤)이라는 해커톤을 개최해요. 쿠톤은 제가 운영진으로 소속되어 있는 KHLUG(쿠러그)에서 주관하고 있으며, 저도 운영진으로써 학교에서 전산 스태프 및 현장 스태프로 활동했어요.

확실히 밤 새는게 힘들더라구요. 금요일에 퇴근하고 바로 올라와서 밤샘까지 하려니.. 거의 좀비처럼 있었던 거 같아요. 그러던 중에 서버 한 번 터지고(..)

짐 정리를 위해 카트 하나에 모든 짐을 올려둔 모습

그리고 한 번에 짐 정리하려고.. 카트 하나에 모든 짐을 얹어서 동방까지 이동했어요.
주말이라 사람이 없을 줄 알았는데 학교 체험인지 고등학생으로 보이는 굉장히 다수의 사람들을.. 헤쳐나가면서 이동했었는데 잠시 부끄러움이 (..)

쿠러그 동아리 사이트 포팅 시작

위에서 언급이 나왔던 쿠러그 동아리 사이트는 약 2015년 즈음에 단 한 명에 의해 PHP로 만들어진 걸로 알고 있어요.

그리고 그걸 제가 유지 보수 해야 하는데, 일단 제가 PHP를 경험해본 적이 크게 없던 것도 문제고, 따로 레포지토리가 만들어져있지도 않았습니다. 원래는 해당 시스템을 만든 분이 직접 모두 운영하셨기에 크게 문제가 안 일어났는데, 이제 제가 모두 받게 되어서..

이거 이후에 유지보수하려면 피보겠다 싶어서 저한테 익숙한 기술 스택으로 리팩토링해보려 합니다. 겸사겸사 레포지토리도 만들고, 리팩토링도 하고! 그래서 기능 하나씩 옮겨서 만들어보고 있어요.

SUSC의 운영진

위에서 언급했던 바로 그 친구가 삽을 떴던 대학생 교류 단체에요. 여기서 운영진 및 멘토로써 활동하고 있어요. 주로 여름 방학 및 겨울 방학 시즌에 활발하게 운영하고 있어요.

이름은 SUSC인데, 이거 이름 짓는 것도 꽤 걸렸던 기억이 남아있네요. 이름 추천도 받아보고..

2023년 여름 방학 때 플러터 스터디 멘토로써 활동했었고, 이번 2023년 겨울 방학 때는 NestJS 백엔드 스터디 멘토로써 활동할 예정이에요. 참여해주신 분들이 멋진 경험을 가져가실 수 있도록 이모저모 준비하고 있어요.

이런 활동 할 때마다 느끼는 거지만, 아는 것과 이해시키는 것은 하늘과 땅 차이네요..

소마고 연합 해커톤 멘토

이것도 그 친구가 이야기를 해줘서 참가하게 됐어요. 4개의 소프트웨어 마이스터 고등학교 학생분들이 참여하는 해커톤이었고, 거기서 멘토로 활동했어요.

멘토링 시간에 여러 테이블을 돌면서 주제를 들어보고 피드백 드리고..를 반복했어요. 대회가 총 사흘 진행됐었는데, 그 중 이틀 동안 멘토링을 진행했었어요.

조금 놀란 부분은, 저는 명함을 다른 분께 드릴 일이 거의 없어서 안 들고 다니는데, 학생 분들이 명함을 저한테 주셨어요. 저는 드릴게 없어서 그냥 받기만.. 했었습니다.

취업 관련한 이야기도 나누고, 기술 관련한 이야기도 이모저모 나눴었는데, 경력자로써 활동할 일이 잘 없다보니 새로운 경험이었어요. 다른 멘토분들과도 이야기를 나눴는데 저와는 또다른 도메인에 계신 분들이다보니 흥미롭게 이야기를 들었었네요.

(여러분 잘 지내시죠..?)

파이콘 부산 세미나 발표

부산역에 있는 부산 유라시아 플랫폼에서 열린 파이콘 부산 세미나에서 발표를 했었어요. finally의 기묘한 동작과 관련하여 발표를 진행했었는데요! 정식 발표는 아니었고 라이트닝 토크였어서 가볍게 이야기하고 내려왔었어요. (그래서 발표도 전 날에 준비했어요.)

생각보다 사람이 많았기도 해서 조금 긴장은 되긴 했었지만, 지금 돌아봐도 후회는 안 해요. 다음에는 더 큰 발표도 해보고 싶네요.

추가로, Django로 DDD를 구현하는 이야기도 발표에 있었는데, 당시에도 이런저런 고민이 많았어서 발표자분께 질문을 정말 많이 드렸고, 많이 배웠던 기억이 있네요.

운동

기술 관련 이야기 이모저모 엄청나게 했는데, 최근에 PT를 시작했어요.
무게가 늘어가는 걸 보니 뿌듯..은 한데 힘들어요. 어쩔 수 없지만 힘들어요.

호흡 조절을 잘못해서 토 할 뻔 하기도 했어서, 뭔가뭔가 이게 맞나 싶긴 한데, 확실히 체력도 늘고 뭔가 자세도 더 좋아진 거 같아요.

그리고 키도 조금 컸어요!


내년 계획.

내년. 이제 2024년 됐으니 올해죠? 올해에 뭘 해볼지 적어볼거에요.
그리고 2024년 회고에서 돌아보면서 뭘 성취했는지, 얼마나 성취했는지를 돌아보려구요!

일단 생각나는 건 이렇게 있어요.

  1. Kotlin or Rust 배우기
    • 코틀린이 되게 모던한 언어라고 하더라구요. 그래서 스프링이랑은 별개로, 그냥 언어 자체에 대한 호기심이 생겼어요. 코루틴이라는 것도 있구.
    • 러스트는 swc 때문에 궁금해졌어요. 워낙 유명해진 언어다보니 한 번 맛은 보려고 했었는데, 이번에 회사 내에서 테스트 코드 실행할 때 ts-jest 대신에 @swc/jest로 바꿨는데, 속도가 차원이 달랐어요. 그러면 왜 빠른지 궁금해지잖아요?! 그래서 한 번 공부해보고 싶어지더라구요.
  2. 함수형이 뭐에요
    • 요즘 함수형에 관심이 가요. 여기저기서 이야기를 들어보기도 해서 궁금해졌어요.
    • 함수형이 뭔지, 코드는 어떻게 작성하는지, 그래서 이거 왜 쓰는지.. 이모저모!
  3. 책 4권 읽고 독후감 쓰기.
    • 3개월에 하나씩 읽기!에요.
    • 무슨 책이던 상관 없어요. 물론 만화책은 아니겠지만.
    • 4권이면 너무 적은 거 아닌가라고 느낄 수 있지만 제가 책을 잘 안 읽어서요..!
    • 그래서 일단 작게 잡아야 할 거 같더라구요.
    • 1 ~ 3월은 사수님이 추천해주신 <팀장의 탄생>을 읽고 있어요.
    • 독후감은 읽은 내용을 잃지 않기 위함도 있어요.
    • 너무 기술적인 책 외에도 일하는 방식이라던지.. 이런저런 책을 많이 읽어보고 싶어요.
  4. 제대로 이해하고 있지 못한 개념 제대로 공부하고 3개 이상 정리해서 올리기.
    • 노드에서 ESM/CJS 개념이라던지.. CS라던지.
    • 일 할 때 부족함이 느껴지는 부분이 있어서, 제대로 잡고 공부해봐야 겠다는 생각을 계속 하고 있어요.
    • 3개를 잡은 이유는 크게 없어요. 그래도 3개 정도는 해야 하지 않을까 하는 생각!

이렇게 제 2023년을 돌아봤어요. 이렇게 모아두니 열심히 산 것 같긴 한데, 하나하나 뜯어보면 쓸데없이 버린 시간이 많아서.. 더 많은 성취를 이뤄내지 못한게 아쉽네요.

내년에 더 잘 하면 되겠죠!

아무튼, 제 회고를 읽어주셔서 감사해요.
여러분들도 멋진 2023년을 보내셨길, 그리고 더 나은 2024년을 만들어나가시길 바라요!

profile
하고 싶은걸 합니다.

0개의 댓글