티스토리 뷰

지난 해를 돌이켜보며 회고를 해보자라는 계획은 예전부터 해왔지만, 조금 귀찮기도 했고 불편한 상황들은 외면하고 싶은 심정도 있어 각잡고 해본 적은 없었다.
 
그런데 요즘 가장 즐겨보는 유튜버의 영상을 보고 생각이 바뀌었다. 영상을 요약하자면 “중학교 때까지 성적이 좋지 않던 유도 선수 이원희가 성적을 높일 수 있었던 계기가 본인시합을 돌려보며 자신에 대해서 파악한 것”이라고 한다.
 
 

 
 
누군가는 회사에선 시키는 일만하고 돈만 벌면 된다고 하지만, 나는 회사에 있는 동안 즐거웠으면 좋겠고 그건 보통 맡은 일을 기술적으로 잘 해냈을 때 만족감이 높았다. 결국 내가 발전하고 행복하기 위해 번거롭더라도 2023년을 돌아보고, 2024년에는 뭘할지 정해보려고 한다.
 
 
 

회고와 목표 요약

2023년에는

 

  • 2022년에 이어서 유지보수하기 좋은 코드를 작성하기 위한 지식을 실무에서 적극 활용했다.
  • 컴포트존에서 벗어나기 위한 선택을 했고, 회사에서의 역할이 백엔드 개발자에서 SRE 개발자로 바뀌었다.
  • 그에 따라 쿠버네티스와 관련된 업무를 담당하게 되었다.

 
 

2024년에는

 

  • 정기적으로 프로필을 정리해 내 상황에 대한 점검을 해보려고 한다.
  • 쿠버네티스, 퍼블릭 클라우드 그리고 대규모 트래픽 처리와 관련된 학습을 할 것이다.
  • 오프라인 커뮤니티 모임과 행사에 참여하여 인사이트를 얻어보려고 한다.
  • 고민을 통해 해결할 수 있는 문제가 아닌 상황에서는 “그냥 그렇구나”라는 마음가짐을 가질 것이다.

 
 

2023년 회고

직장 생활을 하며 무난하게 보낸 해는 거의 없었지만, 2023년에는 부서가 바뀌고 업무도 조정 되면서 유독 많은 일들이 있었다.
 
 
 

유지보수하기 좋은 코드를 작성하기 위한 지식을 실무에 적용

 

책과 강의로 학습했던 TDD, DDD, 클린 아키텍처 등을 22년부터 23년까지 실무에 적용하며, 유지보수하기 좋은 코드를 작성하는데 필요한 기술들을 적극적으로 활용할 수 있는 시간이었다.

 
그리고 NEXTSTEP의 TDD, 클린 코드 with Java 강의를 통해 레거시 코드를 어떻게 리팩토링하는지, 깔끔한 코드를 작성하기 위해서는 어떻게 하면 좋을지 코드 리뷰 기반으로 배울 수 있었다. 수업이 있는 8주간 퇴근 이후의 개인 시간과 주말을 대부분 갈아넣었는데, 힘들기보다는 개발에 몰입했던 과정이 정말 즐거웠다.
 
조금 아쉬운 점이라면 현재는 롤이 변경되어 개발과는 조금 멀어졌으나, 내 베이스는 백엔드 개발이라고 생각하고 다시 개발자의 역할을 해야하는 상황이 온다면 기쁜 마음으로 수행할 것이다.
 
 
 

백엔드 개발에서 SRE로

 
기존에 있던 부서가 다른 부서로 통합되며, 업무가 백엔드 개발에서 SRE로 변경되었다. 2023년의 주 역할은 부서 내 각 파트의 어플리케이션을 컨테이너 오케스트레이션 플랫폼 위에 얹기 위해 필요한 일들을 수행했다.
 
예컨대 CI/CD 환경을 구성한다거나, 쿠버네티스 매니페스트 파일을 작성하거나, 컨테이너 오케스트레이션 플랫폼 업그레이드 등을 진행했다. 더불어 사내 DR 시스템을 퍼블릭 클라우드로 이관하는 준비를 하고 있어 그에 대한 PoC도 수행했다.
 
2023년에는 기존에 하던 업무와 신규 업무를 병행해서 100% 역할이 변경된건 아니지만, 이전부터 일을 해오던 동료 분을 봤을 때는 어플리케이션 개발 외에 필요한 것들은 다 처리하는 것 같다 😲
 
 
 

컴포트존에서 벗어나기

 

 
거의 이직에 가까운 역할 변화가 있었는데, 부서가 통합되며 몇가지 선택할 수 있는 옵션 중 하나였기 때문에 결국 내가 선택한 일이다. 그런 선택을 한 이유는 기존에 내가 맡은 업무에서 이미 많은 부분을 리팩토링했고 업무 자체도 익숙해진 상태라, 컴포트존에서 벗어나 새로운 것들을 배워보자라는 생각이었다.
 
결론적으로는 컴포트존에서 벗어나긴 했지만, 너무 많이 벗어났던 건지 배우는 건 많지만 그만큼 스트레스를 받고 있는건 사실이다 😅
 

기존에는 요구사항을 받아 어플리케이션을 개발하고 CI만 해두면 그 이후의 과정은 다른 분들이 맡아주셨지만, 이제는 반대로 컨테이너 오케스트레이션과 더불어 웹 서버/로드 밸런서 설정, DNS, 인증서, 서버 계정별 세부 권한 설정 등 이전에는 크게 염두하지 않았던 운영에 필요한 지식이 필요하게 되었다.

 
최근 백명석님의 글에서 배우는 것과 성과에 대한 내용을 보게 되었는데, 내가 처한 상황이랑 비슷해 많은 공감과 힘을 얻었다.
 
 

 
 
요약하자면, “새로운 기술을 배울 때는 이전에 익숙한 기술을 사용할 때보다 성과가 떨어질 수 있는데(고통의 계곡), 그 상황에서 빠져나오면 기하급수적으로 성장할 수 있다”는 것이다.
 
더 큰 성장을 하기 위해 선택한 길이기 때문에, 어느 정도의 압박은 있더라도 고통의 계곡이 새로운 컴포트존이 될 수 있도록 노력해보려고 한다.
 
 
 

쿠버네티스 학습

 

컨테이너 기반 서비스가 주된 역할 중에 하나이기 때문에, 쿠버네티스에 대한 학습을 했다. 자격증 자체는 실무에서 크게 도움이 되지 않는다는 것은 알고 있지만, 데드라인을 정해 전반적인 개요를 살펴보기엔 자격증을 따는 것(== 사비를 쓰는 것)이 괜찮은 방법이라 생각해서 CKA도 취득했다 🥳

 
 

 
 
퍼블릭 클라우드 PoC를 수행하며 관리형 쿠버네티스 서비스도 사용해보았기 때문에, 아래의 일 정도는 혼자 수행할 수 있게 되었다 👏👏👏

- 백엔드 어플리케이션 개발 
- CI 환경 구축: 어플리케이션 빌드 및 이미지 생성
- 온프레미스 혹은 클라우드 환경에 쿠버네티스 사용 환경 구축 ✅
- 쿠버네티스 오브젝트 생성을 위한 매니페스트 작성 ✅
- GitOps 방식을 통한 CD 환경 구축 ✅

 
 
 

블로그 시작

 
구글링을 하다보면 눈에 띄는 블로거들이 있고 나도 그런 분들처럼 멋진 개발자/엔지니어가 되고 싶다는 생각에, 2023년 3월을 시작으로 블로그를 시작했다.
 
잘한 점이라면 블로그를 시작할 때 평균 한달에 하나라도 포스팅 하자라는 목표를 지켰고, 아쉬운 점이라면 포스팅할 주제들은 정말 많았는데(실무에서의 이슈, 교육, 읽은 책 등) 조금씩 미루다보니 결국 적다만 글들이 많이 쌓여버렸다.
 
한해동안 경험으로 배운건, 나중에 하자는 보통 안하게 되더라. 생각날 때 그냥 하자.
 
 
 

2024년 목표

이루기 어려운 목표보다 충분히 실천할 수 있는 정도의 목표를 세워보았다.
 
 
 

정기적으로 프로필 정리하기
 

 

회고를 작성한 이유와 동일하게, 앞으로 내가 더 잘하기 위해 프로필도 정기적으로 정리해두려고 한다. 당장의 이직이 목적이 아니라, 내가 어떤 길을 걸어왔는지 봐야 앞으로 가야할 길을 올바르게 정할 수 있을 것이라 생각한다.
 
귀찮고 번거로운 일들을 부채로 쌓다보면 결국 더 큰 이자로 돌아오게 되니까, 이제라도 원금도 조금씩 갚을 때다. 못해도 분기에 한번은 업데이트하자.

 
 
 
쿠버네티스 심화 학습
 

2024년에는 상용 컨테이너 오케스트레이션 플랫폼(OCP)과 함께 쿠버네티스를 통해 서비스를 운영할 계획이라고 한다. 단순히 쿠버네티스를 사용하는 정도를 넘어 air gap 환경에서 쿠버네티스 사용 환경 구축부터 운영 상황에서의 트러블 슈팅까지 큰 이슈 없이 잘 해낼 수 있도록, 쿠버네티스의 심연을 들여다보기 위해 노력할 것이다 🤓

 
추가로 지난 사이버 먼데이에 구매한 CKAD도 취득해야지…

 
 
 
퍼블릭 클라우드 학습
 

사내의 DR 시스템을 퍼블릭 클라우드를 활용해 구축할 계획이 있기 때문에, CSP가 정해지진 않았지만 널리 사용되는 AWS에 대한 학습을 하려고 한다.

 

지난 PoC를 통해 경험해본 AWS는 생각보다 유저가 직접 핸들링해야 할 부분이 많았고(구성도도 자동으로 그려주는게 아니었다…), 익숙하다면 키워드만 들어도 이해할 수 있는 서비스들도 익숙하지 않으면 전혀 감도 안오는 것들이 부지기수이기 때문에 MSP든 보안/인프라 부서든 원활히 논의를 할 수 있을 정도의 지식은 갖추고 있어야 할 것 같다.

 

IaC도 까지 학습할 수 있으면 좋겠지만, 그건 일이 어떻게 진행되는지에 따라 정하면 될 것 같다.

 
 
 
대규모 트래픽 처리를 위한 학습
 

올해 부서 계획에 kafka를 도입하는 것과 이전에 내가 개발하고 유지보수했던 어플리케이션을 고객사 설치형이 아니라 서비스 형태로 본격적으로 제공할 예정이라 대규모 트래픽 처리에 대한 니즈가 있을 것이라 생각한다.

 
물론 역할이 변경되면서 개발보단 그 외적인 부분에 대한 업무를 수행하게 되겠지만, 그래도 논의를 하거나 의사결정을 해야하는 상황에서 목소리를 내고 싶기 때문에 이와 관련된 학습을 하려고 한다.
 
지금 당장 구체적인 계획을 세우진 못했지만, 최소 “가상 면접 사례로 배우는 대규모 시스템 설계 기초 1, 2” 정도는 완독해서 내걸로 만들어야지.

 
 
 
오프라인 커뮤니티 모임 / 행사 참여


레퍼런스는 부족한데 선택권이 여러 개인 상황에서 취사선택을 어떻게 할지에 대한 건 늘 고민이다.
 

예를 들어 온프레미스 환경에 쿠버네티스을 구축하는 것만 하더라도, 관리형 서비스를 사용할지 직접 구축할지 정해야 한다. 그리고 직접 설치한다면 어떤 OS에(CoreOS, RHEL…) 어떻게 쿠버네티스를 구축할지(k3s, k8s…)에 대한 부분도 정해야 한다.

 
구현을 하고 이후에 리팩토링을 할 수 있는 어플리케이션과 달리 어플리케이션이 기동되는 환경의 경우, 구축이 되고 서비스가 시작되는 순간 달리는 기차가 되어버리기 때문에 바퀴를 갈아끼는건 생각만 해도 골치가 아프다 😧
 
그러므로 비슷한 일들을 하시는 분들을 만나서 힌트도 얻고, 최근 동향은 어떻게 되는지도 접해봐야지.

 
 
 
“그냥 그렇구나”라는 마인드셋
 

 

어느날 자존감 높은 사람이 절대 하지 않는 한 가지라는 쇼츠를 보게 되었다. 내용은 자존감이 높은 사람은 무슨 일이 있을 때 부정적인 생각 없이 “그냥 그렇구나”라고 하고 끝난다는 것인데, 내가 가져야할 마음가짐이라 생각해 기억해두고 있다.
 
기존 부서도 없어지고 컴포트존에서 꽤나 멀리 떨어져오면서 조금은 불안하고 걱정이 되기는 하지만, 그것들이 해결해줄 수 있는 것들은 거의 없다.
 
오히려 걱정과 고민 때문에 스트레스를 받아 루틴이 깨지고 이게 다시 불안으로 이어지는 악순환이 반복될 뿐이다. 고민이 아무런 도움이 안되는 상황에서는 “왜 이렇게 되었을까”보다는 “그냥 그렇구나”라는 마인드셋을 가져야지.

 
 

댓글