ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6년차 중니어(?) 백엔드 개발자의 2023 회고
    개발 일기장/직장 생활 2024. 1. 11. 01:50

    어느새 한 해가 흘렀다. 벌써 만으로 5년차 개발자가 되었다.

     

    현재 다니는 회사는 내 길지 않은 커리어 중 가장 오래다닌 회사로 매일 갱신 중이다. 재직기간 2년을 돌파했기 때문!

     

    이제 회사는 더이상 주니어 역할을 기대하지 않는 듯 하다. 주니어와 시니어 사이를 중니어(?)라고 하던가. (시니어 개발자가 끌어주면 끌어주는대로 따라갈때가 편했지...)

     

    뭐든 중간이 애매하듯 지금 경력을 어떻게 잘 쌓아야 멋진 시니어로 넘어갈 수 있을까 고민이다. 커리어를 고민하지 않을 날이 올까나.

     

    그런 의미에서 내가 작년에 세운 목표를 잘 실천했는지 되돌아보았다.

     

    ▶ 우선 순위 1. 올해도 그렇지만 회사 업무가 1순위다. 작게 시작하지만 크게 키울 프로젝트를 맡아서 잘 해내고 싶다.
    맡은 일만큼은 최선을 다했고, 능동적으로 일을 찾고, 개선했기에 100%을 주고 싶다. 


    ▶ 우선 순위 2. 집필중인 책은 어떻게든 완성하자

    60%
     
    ▶ 우선 순위 3. 블로그에 짧게라도 1달에 유의미한 글 1개는 올리자

    10개 정도 올렸으니 80%
     
    ▶ 우선 순위 4. 틈틈이 개발 책 읽기(1~2달에 한권씩)

    3권 완독, 1권 읽다가 포기, 3권 읽는 중이다. 4권 읽은걸로 해서 대략 40%
     
    ▶ 우선 순위 5. Rust로 사이드 프로젝트로 서비스 올려보기(Rust를 알게 됐는데 정말 매력적이어서 꼭 공부해보고 싶다)

    러스트가 모에요? 0%

     

    총 달성률: 56%

     

     

    물이 반이나 있네? 물이 반 밖에 안되네...? 노력하자 '나'란놈ㅜㅜ


    상반기

    2023년이 시작하면서 같은 파트에 세 분이나 퇴사를 했다. (몇달 뒤 새로운 분들이 합류하시긴 했다.)

     

    기존 인원으로는 대처할 수 있는 업무양이 아니었기에 불가피하게 조직 개편이 되었다.

     

    조직 개편이 되면서 원래 개발하기로 되어있던 프로젝트보다 스펙이 더 큰 프로젝트를 맡아야했다.

     

    새로 맡은 프로젝트는 자동차 검사였다. 정부에서만 제공하는 서비스를 민간 회사에 오픈하는 서비스 중 하나였다.

    (다른 회사들은 자동차 검사 예약 연동 느낌으로 접근했다면, 현 직장은 모빌리티 회사다보니 하나의 서비스 개발로 접근해 스펙이 큰 편이었다.)

     

    자동차 검사는 카카오 T, 카카오 내비에서!

     

    이번 프로젝트는 혼자 진행해야해서 누군가의 조언을 기대하고 개발할 수 없는 프로젝트였다. 다행히 재작년 진행했던 프로젝트도 후반부는 거의 혼자 개발해야했기에 불안감이 크진 않았다.

     

    기획 1, 디자인 1, 백엔드 1, 프론트엔드 1 이렇게 구성하여 일 했는데, 일 욕심 많은 사람들이라 피드백이 빠르고 진행 속도가 빨랐다. 

     

    회사는 기능 조직으로 팀이 나누어져있지만, 이 프로젝트는 목적 조직처럼 일했다. 즐거운 경험이었다. 프로덕트를 만드는 중심으로 사람이 모여있어야 일의 진행이 더 빠르다고 개인적으로 생각한다. 일이 잘 진행되다보니 같이 일하는 사람들간에 케미를 자연스레 느꼈다.

     

    기술적으로는 서비스 내에 이벤트를 활용해보았다. 재작년에 사용하고 싶었지만 타이밍을 놓쳤던 이벤트 기반으로 개발하기.

     

    내부적으로 객체 상태 관리, 크리티컬한 비즈니스 로직을 제외한 부가적인 처리들은 분리하고 싶었다. 이벤트를 활용하지 않아도 트랜잭션에 영향을 안 줄 수 있겠지만, 그렇게 처리하려면 메서드 분리와 try, catch로 잡아서 계속 진행하도록 만들어야해서 그런 처리를 넣는게 싫었다. 크리티컬하지 않은데도 해당 로직을 수행하느라 응답이 늦어지는 것도 싫었다.

     

    이전 회사에서는 카프카를 활용해서 코드간의 연결을 느슨하게 만들었었다. 근데 찾다보니 스프링 내부적으로 이벤트를 publish/listen하게 해주는 기능이 있었다. 내부에서만 흐르는 이벤트라면 스프링 이벤트를 활용하는게 훨씬 안정적일거라 스프링 이벤트를 도입했다. 

     

    또, 카프카는 전사적으로 사용하는거라 내부에서 쓸 이벤트 때문에 topic과 partition을 만든다면 배보다 배꼽이 더 커지는 개발 방법이다.

     

    푸시가 안나갔다거나, 외부 시스템에 로그를 못 쌓았다고 유저의 예약이 안되게 막을 순 없으니 이런 작업들은 트랜잭션이 끝나고 실행하도록 만들 수 있었다.


    하반기

    하반기 들어서는 상반기에 비하면 텐션이 훅 떨어졌다.

     

    하반기에는 그룹사 전체적으로 대외 이슈가 많아 뭐든 프로젝트나 서비스 오픈이 조심스러웠다.

     

    Bottom Up으로 시작한 소규모 프로젝트가 있었는데, 한달간 빠르게 개발하고 배포까지 하려했지만 결국 오픈하지 못했다.

     

    기존 일정대로라면 시작했어야할 프로젝트도 미뤄졌다.

     

    긴장감있게 일하는걸 좋아하는 나에겐 고역이었다. 그렇다고 가만 있을 수 없어 계속 일을 찾아서 필요한 부분들을 개선했다.

     

    1. 테스트 커버리지 높이기

    테스트 커버리지가 얼마나 되는지 확인해보기 위해 Jacoco를 적용했다. 아마 처음에 30%? 정도 였던 것 같다.

     

    '테스트 커버리지가 좋은 소프트웨어의 지표를 나타내는건 아니다'란 말은 책이나 인터넷에서 꽤 들은것 같다. 그 말이 테스트 커버리지에만 집착하지 말라는 얘기지 하지말라는건 아니잖아? 좋은건 활용해야지!

     

    몇 년 전에 이 영상(토스 테스트 커버리지 100%)을 보았었는데, 속으로 '쩌..쩐다'라 생각했었고, 때마침 하반기 들어 개발 잘하는 친구와 이야기하다 본인은 테스트 커버리지 60% 이하로 떨어뜨린적이 없단 얘기를 들었다.

     

    나도 감으로 테스트 코드를 작성할게 아니고, 정량적으로 개발해야겠단 생각이 들었다. 최종적으로 58%까지 올리고 한해를 마무리 했다. 현재도 커버리지를 높여가는 중이다. (테스트 커버리지 70% 가즈아)

     

    소나큐브도 도입해서 코드 버그를 예방하면 어떨까했지만, 필요하면 라이센스 구입 후 사용하라는 피드백을 받았다. 나 혼자 도입하고 싶다고 결재까지 올리기가 좀 그래서 접었다.

     

    2. 기술 공유를 위한 문서화

    트러블 슈팅 위주로 작성했다. 서비스는 달라도 기술 스펙은 동일한 팀이라 내가 겪은 이슈는 누구나 겪을 수 있을거라 생각해 트러블 슈팅을 위주로 위키에 열심히 정리하고 팀내에도 전파했다. 작성한 글 중, 내 블로그에도 범용적인건 몇 개 작성했다.

     

    3. 안정성과 효율화

    혼자 서비스를 개발하고 배포하다보니 스스로 실수를 줄이기 위한 프로세스를 만들었다. 혼자 담당하는 만큼 장애도 온전히 내 몫이다.

     

    풀리퀘스트 생성 시, 작업한 브랜치를 기반한 빌드가 트리거되면서 테스트 커버리지가 기준을 넘지 못하면 빌드가 실패하게 만들었다.

     

    사내에 신규 런칭한 CD(Continuous Delivery) 툴이 배포 히스토리를 통한 롤백, 블루/그린 또는 카나리 배포, 파이프라인 기능 등을 제공해줬기 때문에 관리가 잘 안되던 젠킨스를 버리고 파트 내에서 누구보다 빠르게 마이그레이션했다.

     

    추가적으로 툴에서 제공하는 승인 프로세스를 활용해 운영 배포 시에는 셀프 승인 과정으로 더블 체크 후 배포가 되도록 파이프라인을 만들었다.

     

    장애 알림 민감도를 높인다거나, 에러 메시지를 좀 더 디테일하게 분리해서 모니터링 편의를 높였다.

     

    운영 리소스를 줄이기 위해 자동차검사 예약 일일 리포트를 슬랙으로 보낸다든지, 어드민 페이지에서 필드를 자동 입력을 해준다든지, 상세화면을 볼 때 새창 띄우기 등 조금씩 개선했다.

     

    4. 서비스 개선하기

    빈자리가 생기면 유저에게 알림을 보내주는 기능이 내부적인 사정으로 제약이 꽤 많은 기능이었다. 그래서 도달률이 떨어지는 편이었는데, 머리를 좀 더 굴려서 구조를 개선해 도달률을 높였다.

     

    기획자분과 유저 편의를 높이기 위한 방안에 대해 의견이 부딪히면 논의를 굉장히 많이 했던 한 해였다. 서로를 설득하기 위한 의견 피력이 잦았지만, 기분이 상했던 적은 단 한번도 없었다. 이게 당연한 것 같지만, 실제로 일하다보면 그렇지 않은 경우를 허다하게 본다.


    개인사

    2023년은 개발자보단 '나'란 사람의 개인적인 도전이 많았던 해였다.

     

    복싱을 배우기 시작했다.

    이거슨 입에서 나는 소리가 아니여

    어릴적부터 격투기를 배우고 싶었는데, 드디어 등록했다. 지난해 8월부터 꾸준히 주 2~3회 나가고 있다.

    1시간이면 그날 남은 체력까지 쏙 뽑아낼 수 있다. 몸은 확실히 이전보다 더 튼튼해졌다.

     

    대학생들을 대상으로 직업 강연을 했다.

    비루하지만, 미래 백엔드 꿈나무들에게 백엔드 개발자란 무엇인가?를 열심히 설명하고 왔다.

    3시간이라는 어마무시한 강연 시간을 준비해야해서 2주 동안 퇴근 후 슬라이드를 준비하는데 꼬박 매달렸다.

    (대학 강연 후기)

     

    결혼식 사회를 봤다.

    친한 대학 동기에게 결혼식 사회를 부탁받았다. 결혼식이 끝나고 결혼한 동기가 아까 긴장된다는 말은 설레발이었냐며 칭찬해주었다. 물론 친구 표정이 만족해보여서 나도 만족 :0)

     

    게임 시간 줄이기

    작년에 비해 게임하는 시간을 줄였다. 평일은 30분 할때도 있고 아예 안할 때도 있고.


    올해의 목표

    ▶ 개발 1~2달에 1권 읽기

    ▶ 블로그 포스팅 한 달에 최소 1개

    ▶ 쿠버네티스 공부(겉핥기로만 쓰고 있다는 기분이다)

    ▶ 집필중인 책 완성하기(1달에 목차 1개는 무조건 쓰자)

     

    올해는 개인적으로 큰 일을 준비해야해서 일을 벌려두면 수습이 안될 거 같아 이정도라도 해내면 뿌듯하겠다.


    중니어(?)라 그런지 주니어분들이 종종 개발하다 막히는 부분에 대해 질문을 한다.

     

    '이야. 내가 누구한테 질문받을 수준인가?'라며 기쁘면서도 부담을 느낀다. 어쨌든 신나서 어떻게든 찾아보고 고민하고 도와드린다.

     

    코드 리뷰도 열심히 하는 편. 사실 더 많이 물어봐주면 좋겠다. 알려주면서 나도 같이 레벨업 할 수 있으니까.

     

     

    해맑아...!

     

    마지막은 항상(은 아니지만) 날 행복하게 만들어주는 울집 강아지 사진으로 마무리 ㅎㅎㅎ

Designed by Tistory.