ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2022년 회고] 앞만 보고 달렸다. 그런데 주변은?
    회고 2023. 1. 1. 01:13
    반응형

    1) 앞만 보고 달린 2022년, 그런데 주변은?

    2021년 9월 27일 처음으로 개발자가 되었다. 2021년은 개발자로서, 회사원으로서 적응하는데 시간을 보냈었다. 혼자서 개발하는 것에서 벗어나 많은 사람들과 개발하고, 대화를 잘할 수 있는 고민을 했던 것 같다.

    2022년은 쏟아지는 수많은 현실 문제를 해결하는데 집중했다.

    클라우드가 아닌, IDC 로컬 서버에서 운영 중인 서버는 언제 멈출지 모르는 시한폭탄과 같았다. IDC에 계약된 물리적인 하드웨어 스펙이 너무나도 부족한 상태에서 DB 커넥션은 항상 모자랐다. 이런 심각성을 아는지 모르는지 N+1 쿼리, 끝나지 않는 긴 트랜잭션, 데드락 등 온갖 문제점들이 터져나왔다. 알 수 없는 스케줄링된 배치 코드가 동작을 해서 뜬금없이 새벽에 서버가 죽기도 했다. 단일 repository, 단일 프로젝트로 구성되었기에 모든 서비스가 멈췄다.

    아키텍처 설계자, 코드 작성자들은 모두 퇴사하고 없었다. 어떤 의도를 가지고, 어떻게 작성된 것인지 미처 파악하기도 전에 급박한 오류로서 코드들을 먼저 만나곤 했다. 이렇게 급하게 너희들을 만날 줄은 몰랐는데... 조금 천천히 봐도 되는데...

    회사의 핵심 비지니스이자 도입문과 같은 카드 발급 서비스가 제대로 되지 않았다. 1 ~ 5 발급 단계가 존재한다고 했을 때 1단계에서 오류를 만났고, 이를 해결해주면 2단계에서 오류가 발생하고는 했다.

    사실 3개월 밖에 안된 신입으로서는 미쳐버릴 뻔했다. 모니터링 도구도 없었다. 그저 Sentry로 오류 알림만 무수히 왔다. '왜 아침마다 서버가 죽는걸까'라는 생각을 수백 번 했던 것 같다. 정말 힘들었다.

    오전 8시 출근하는데 서버가 죽었다.


    하지만 이러한 상황에서도 이유 모를 희열감과 재미를 느꼈다. 왠지 이 정도는 다 해결할 수 있을 것 같았고, 해보고 싶었다.
    정말 좋은 제품을 만들어 보고 싶다는 생각이 들었다.


    그래서 Sentry 오류 알림, 고객 VOC가 발생할 때마다 빠르게 대응하여 고쳐나갔다. 정말 오류들을 부수면서 나갔는 것 같다. 그러다 보니 현재 12월이 된 지금, 카드 발급 시 오류는 한 달에 한 두건 발생하는 수준으로 개선되었다. 사실 어떻게 개선을 했는지, 무엇을 했는지 자세히 기억을 하지 못할 만큼 정신없이 오류들을 부수면서 앞으로 갔던 것 같다. 사실은 이미 정신이 나간 상태가 아니었을까 싶기도 하고...

    뿌듯했지만, 뒤돌아보면 아쉬운 코드와 아키텍처 퀄리티들이 보였다. 객체지향, 유지보수 용이한, 좋은 성능 등 이런 것들과는 거리가 먼 코드들만 양산해 냈다. 그러다 보니 새로운 분들이 입사하셨을 때 코드를 보여주기 너무 창피했다. 코드는 사연을 드러내지 않는다. 그저 결과만 보여줄 뿐이다. 하루에 각기 다른 종류의 VOC가 10건씩 들어오고, 처음 보는 코드를 우선 돌아가게 만들어야 했던 과거의 사연은 구구절절한 핑계에 지나지 않는다.

    이러한 나쁜 코드들을 양산해냈었던 분위기에서 당연히 좋은 개발문화 또한 없었다. 테스트 코드, 좋은 리뷰 문화, 체계적인 업무 같은 것들은 전혀 없었다. 새로 입사한 개발자분들은 아마도 적응하기 힘드셨을 것 같다. 입사 후 얼마 있지 않아 퇴사하시는 분들도 생겼다. 사실 많이 미안했다. 주니어라는 핑계로 생존하기 급급했지만, 먼저 일했던 사람으로서 좋은 것들을 전달드리지 못했기 때문이다.

    더욱더 마음이 아팠던 것은 나의 오른쪽 자리에 앉은 개발자 두 분이 다 퇴사를 하셨다.

    한 분은 내가 개발자가 될 수 있게 많이 도와주셨던 분이고 조언을 아끼지 않은 분이었다. 지금도 종종 저녁을 먹고는 한다. 다른 한 분은 나와 같은 주니어인데 정말 똑똑한 분이었다. 그분의 질문을 통해서 새로운 고민도 많이 할 수 있었고, 다양한 시각을 배울 수 있었다. 매우 신선한 경험이었다.

    하지만 두 분 다 퇴사를 하게 되면서 개인적인 고민도 커졌다. '혹시 내가 문제라서 오른쪽에 앉으면 퇴사하는 것일까?', '내가 동료로서 좋은 사람은 아닐 수도 있겠다'라는 걱정이 들었다. 그리고 한편으로는 같이 고민을 나눌 수 있는 동료가 사라지면서 힘들었다. 혼자서 고민하는 것은 한계가 있었다.

    미지막으로 개인적인 건강이 나빠졌다. 스트레스로 인해 술을 많이 먹었고, 저녁을 많이 먹었다. 오히려 운동량은 줄어들어서 이전보다 살도 많이 쪘다.

    하지만 이러한 고민도 잠시, 역시 VOC와 장애 대응에 빠져 22년을 보냈다.

    2) 앞만 보고 달리니, 그래도 앞은 보인다.

    22년은 지독하고 제한된 IDC 인프라, 레거시와의 싸움이었다. 클라우드 이전을 시도를 몇 번했지만 번번이 실패했다. 시간도 사람도 부족했다.

    하지만 좋은 개발자분들께서 들어오시면서 약간의 여유가 생겼다. 덕분에 하나의 프로젝트로 된 전체 서비스를 MSA 구조로 분리했다. 사실 모든 코드들이 뒤엉켜 분리하는 것이 불가능한 수준이었다. 그래서 기존의 코드를 대응하며, 틈틈이 새롭게 코드를 작성하며 서버를 만들면서 이전했다.

    GCP, MSA로의 이전으로 인해 도메인별로 서버가 분리되었다. 장애전파라는 관점에서 매우 좋아졌다. 이전에는 하나의 DB에서 장애가 발생하면, 전체 서비스가 죽었었다. 지금은 각 서버별로 DB도 분리했다. 비즈니스적으로는 도메인의 경계가 뚜렷해졌다.

    이것이 좋은 MSA 아키텍처인지는 잘 모르겠다. 하지만 그래도 앞으로 나아갈 수 있는 기틀은 마련했다고 생각한다.

    이러한 레거시를 개선하고, 클라우드 환경을 경험 한 것이 22년의 가장 큰 수확인 것 같다. 특히 물리적인 DB를 옮기는 것은 데이터 정합성 측면에서 어려웠다. 테이블 설계도 다시 했기 때문이다. 수 많은 데이터를 마이그레이션 경험을 했던것이 뿌듯하고 재밌었다.

    그리고 퇴사한 동료로부터 좋은 피드백을 받아서 기분이 좋았다.

    3) 조금 더 '잘' 나아가는 23년이 되기를

    ‘모로 가도 서울만 가면 된다’는 말이 있다.

    22년은 어떻게든 장애가 나지 않고, 클라우드 이전만 하면 됐었다. 하지만 한 명의 개발자로서는 성장하지 못했던 것 같기도 하다. 회사원으로서 일만 했었기 때문인 것 같다.

    앞서 언급했듯이 좋은 아키텍처와 코드는 챙기지 못했다. 뱅크샐러드에서 계셨던 회사 선배 개발자분께서 말씀해주셨던 것이 있다. 항상 순리를 지켜야 한다고. 22년은 '순리'를 지키지 못 한 한 해였다.

    23년에는 지금의 속도를 유지하며, 그 속에서 '순리'를 지켜보고 싶다.

    출처: 뱅크샐러드 기술블로그


    마지막으로 23년은 조금 더 어른스럽게 의견을 표현할 수 있었으면 좋겠다.

    개발팀의 인원이 약 2배가 되었다. 소수일 때 편하게 의견 표현하던 것이 다수가 되면서 문제가 되었다. 너무 의견이 강했었다. 혼자 업무하는것에 익숙해져 협업이 어색하다는 생각을 많이 했다.

    앞으로는 조금 더 어른스럽게, 부드럽게 표현을 해보려고 노력한다. 특히 많이 들으려고 노력하려고 한다.

    여하튼 정신없었지만, 재밌었던 22년이었다.

    안녕

    반응형

    댓글

Designed by Tistory.