2019년 회고록을 올린 게 정말 엊그제 같은데 벌써 한 해 두 해가 바뀌어 2021년이 되었다.

작년 한 해를 한 단어로 요약하자면 “놀았다”이다. 딱히 나 자신에게나 주위 사람들에게 변명(?)할 이유도 없고 놀고 싶고 쉬고 싶어서 회사일을 제외하고는 그냥 마음 놓고 놀았다.

지나간 시간을 돌아보면 의미 없이 보낸 시간들도 있기에 아쉬운 마음도 있지만 언제 또 쉬어보겠는가 하며 보냈던 거 같다.

2020년 회고록을 2021년 1월이 다 가는 시점에 적는 이유도 놀았기 때문이다…^^ 그래도 매해가 지나면서 회고록은 꼭 적어보자 생각하고 있었기 때문에 이제라도 적고 있다.

1. 어땠냐?

나 자신에게 물어보는 첫 번째 질문이다. 2019년 회고록에 써놨듯이 2019년 12월에 새로운 회사 a.k.a 현 회사로 이직을 했다.

두 번째 회사이자 첫 번째 이직이었는데 은근 적응하는데 시간이 꽤 걸렸던 것 같다. 일단 가자마자 한 달 만에 팀이 바뀌게(…)되어서 1차로 적응하는데 애먹었고 맡은 업무가 꽤나 복잡하고 어려워서 2차로 애먹었다. 기술적으로도 이전 회사에서는 전혀 다뤄볼 기회가 없었던 것들을 실무에서 써보려니 처음엔 좀 헷갈리고 어려운 부분들도 있었지만 실무적인 것들보다는 나았다.

당연한 말일지 모르지만 이전 회사보다 규모적으로 엄청 커졌기 때문에 체계적이고 시스템이 잘 구축되어 있었다. 또한, 이런 업무적인 것들 외에 복지라든가 페이라든가 업무 환경적인 것들에게서 오는 만족감이 많이 상승했다. 이래서 다들 큰 회사는 한 번쯤 가봐야 한다고 하는듯하다.

2. 그래서?

업무

현재 맡고 있는 업무는 간략하게 소개하자면 주 업무로는 쿠폰과 관련된 업무를 맡고 있다. 쿠폰 발급부터 사용, 쿠폰에 대한 정보 관리 등 전반적인 업무 전체를 맡고 있으며 부 업무로 프로모션과 관련된 영역을 맡고 있다. 다른 회사도 그럴지는 모르겠지만 프로모션 업무 안에 사실상 쿠폰 업무가 포함되어 있기에 파트원 별로 프로모션 업무 안에 있는 세부 업무를 분장받은 거라 보면 될 듯하다.

내 업무에 대한 만족도는 꽤 좋은 편이고… 어떻게 보면 기존에 관리가 소홀히 되고 있었고 추가되는 일이라고 느낄 수도 있지만 업무를 점점 알아갈수록 기존 영역에서 개선하고 관리해야 할 것들이 많이 보여서 하나둘 스케줄링해두고 처리해나가고 있다.

개발

MSA 환경으로의 전환

작년 한 해 동안 진행했던 큰 줄기(?)는 기존 레거시 시스템을 MSA 환경으로 전환하는 업무였다. 사실 이것에 대해 상당히 기대감을 가지고 있었고 업무적으로나 기술적으로나 흥미를 가지고 있던 부분들이라 이것과 관련된 업무들은 되게 재미있게 진행하였고 현재도 진행 중이다.

일단 기존 레거시 시스템은 모든 업무 영역들이 하나의 애플리케이션에 묶여있고 라이브러리 형태로 여기저기, 심지어 내가 모르는 영역에도 의존성을 가지고 있기 때문에 뭐 하나 잘못 건들면 확인하고 신경 써야 할 부분들이 너무 많은 상태였다. (이런 이유와 관련하여 나를 원치 않게 야근하게 만든 사건들도 꽤 있었다 -_-)

때문에 내가 들어오기 전부터 우리 회사는 MSA 환경으로의 전환을 꾀하고 있었고 때마침 내가 들어온 때부터 MSA 환경으로 전환을 시작하였다. 물론 내가 직접적으로 MSA 환경의 초석이 되는 클라우드 환경 구축이라든가(ex. k8s, Docker, Spinnaker 등) 관리는 하지 않지만 그것들을 이용하여 우리 파트 업무에 해당하는 영역들을 MSA 환경으로 전환하는 작업을 진행하였다.

처음 왔을 땐 DEV, QA, STG 환경으로 나눠져 있고 젠킨스로 배포되는 환경조차 낯설었는데 이제는 파이프라인을 통해 Gitlab에 push 하면 자동으로 이미지를 생성하고 빌드하여 클라우드 환경에서 pod들이 생성되는 것들에 익숙해져 있다. 운영 환경으로의 배포도 Spinnaker를 통해 손쉽게 할 수 있어서 정말 편한 것 같다.

파트 업무 영역의 MSA 환경 전환 업무들은 스프링 부트 기반의 애플리케이션으로 진행되고 있으며 기존 시스템들을 하나 둘 떼어내어 API로 만드는 작업들을 하고 있다. 조금 더 기능 단위로 분리하고 다른 애플리케이션에 영향을 미치지 않고 독립적으로 운영될 수 있는 애플리케이션을 만들고 있다. 이렇게 함으로써 다른 환경에 구애받지 않고 손쉽게 이슈에 대응할 수 있게 되는 것 같다. 실제로도 무언가 테스트해봐야 하는 것이 생기거나 이슈가 생기면 파트 내에서 논의하고 바로 수정사항을 배포하여 체크해볼 수 있어서 기존 레거시 시스템 대비 빠르게 대응할 수 있는 게 큰 장점 같다.

배치, 알람, 데이터 보정 등

전 회사에 있을 땐 배치라는 걸 써보지도 않았었고 시스템과 관련된 알람 또한 따로 없었다. 그러다 보니 오류가 나면 직접 관련 실무자로부터 오류가 났다는 제보를 받고 들어가서 로그를 확인해보고 대응을 해야 했고, 무언가 주기적으로 해야 하는 일이 있다면 윈도우 스케줄러(뭐… 이것도 어떻게 보면 배치라고 볼 수 있겠다.)에 bat 파일을 작성하여 걸어두고 처리하곤 했다.

현 회사에 와서야 크론탭으로 직접 배치 작업을 걸어두거나 Projobs라는 살짝 구시대 유물(?) 느낌의 프로그램을 통해 배치 스케줄링을 걸어둘 수 있는 것들을 알게 되었다. 따로 배치를 수행하는 Spring 기반 프로젝트가 있었고 그것을 jar 파일로 올려두고 배치 서버에서 수행하는 식이었다.

또한, 알람의 중요성을 참 많이 느끼고 있다. 손쉽게 받아볼 수 있는 메일, 문자 메시지부터 프로메테우스와 그라파나를 이용한 시각적인(?) 알람까지 다양한 형태의 알람들을 접하고 있다. 프로모션이나 쿠폰 같은 경우는 데이터가 조금만 잘못 들어가도 바로 돈과 연관되는 부분들이기 때문에 데이터 무결성 체크에 대한 알람이 상당히 중요하다. 때문에 우리 파트에서는 정해둔 규칙에 위배되는 데이터가 있다면 바로 알람을 받아볼 수 있게 해 둔 것도 있고 전날 사용된 쿠폰 발급량이나 사용량 등을 체크해볼 수 있는 통계성 알람 등도 많이 사용 중이다.

대용량 요청, 데이터 처리

1년 중 사내의 IT 관련된 팀들을 긴장하게 하는 기간이 하나 있는데 바로 1년에 한 번 열리는 대규모 세일 행사 기간이다. 더군다나 2020년은 처음으로 클라우드 환경에서의 MSA 환경 전환을 진행한 해라서 더욱 조심히 대응했던 것 같다.

결과적으로 다행히 별일 없이 지나갔고 오히려 작년 대비 대용량 요청을 처리한 결과는 좋았었다. 첫날은 사용자가 몰리는 이벤트 시작 시간 9시에는 응답이 상당히 느려지고 트래픽이 솟아오르는 무서운 광경을 볼 수 있었지만 캐시 이용, pod 수 증설, Slow Query 개선 등을 통해 다음날부터는 무난한 처리 능력을 보일 수 있었다. 전 회사에서는 끽해야 몇백몇천 정도의 동시접속자를 볼 수 있었는데 여기서는 몇십만에서 몇백만의 요청수를 심심찮게 볼 수 있었다.

캐시나 pod 수 증설 등과 같은 물리적인(?) 대응 말고도 큐와 배치를 통한 대용량 데이터 처리로도 꽤나 성능적인 이득을 많이 보았다. 물론 이러한 처리는 실시간으로 꼭 응답을 내려주지 않아도 되는 부분들에 대해서 적용을 하였다.

3. 뭐할까?

라는 질문에 대한 고민은 항상 하고 있는 것 같다. 사실 작년 한 해를 쭉 놀았던 이유도 이 질문과 어느 정도 연관되는 듯하다.

이직 준비할 때는 그만큼 이직하고자 하는 욕구와 이유가 있었기에 공부도 열심히 하고 준비를 하였지만 막상 이직하고 나니 당장의 목표가 사라져 버렸기 때문에 무언가 하고자 하는 의욕이 사라진 듯하다.

더불어 새로운 회사에서의 적응, 새 업무에 대한 부담감과 책임감, 경력직으로 들어와서 무언가 보여줘야 한다는 나 자신에 대한 압박감이 있었기 때문에 은근히 스트레스도 받았던 것 같다. 그러다보니 집에 오면 쉽게 지치고 다른 것은 하기 싫고 편히 쉬고 놀고먹고 하는 거에 눈이 더 돌아갔던 것 같다.

또한, 이놈의 코로나 때문에 어디 편히 나가지도 못하고 집돌이인 내가 한 번씩 하던 바깥 취미 생활들도 하지 못하게 되어 점점 더 집에서 보내는 시간이 많아졌던 것 같다. (제발 올해는 코로나 좀 종식되었으면…)

지금 쓰고 있는 이 회고록도 어떻게 보면 올해 목표하고자 한 “다시 공부 시작“이라는 것에 대한 첫 번째 시작점이기도 하다. 올해는 작년 한해 구석 한편에 치워놨던 공부도 다시 시작하고 조금 더 개발이라는 본업에 충실하고자 한다. (사실 회사에서 개발하면서 알게 되거나 재미있게 처리한 것들을 항상 정리해서 남겨봐야지 하고는 넘어갔던 것들이 꽤 많다…ㅎㅎ)

뭐… 여하튼 올해는 블로그 포스팅도 좀 더 열심히 하고 이것저것 개발 공부도 더 열심히 해볼 작정이다. 이럴 때 개발자 컨퍼런스나 세미나를 가야 의욕에 불이 확 붙는데 코로나 때문에 가지 못하는 현실이 참 안타깝다.

2020년 회고록은 이쯤에서 마치도록 하고 조만간(!) 새로운 포스트로 찾아오도록 하겠다. 글을 읽어주신 모든 분들께 감사하며 코로나 조심하시길.