2024년 많은 변화들이 존재했던 한 해였었다.
어떤 일들이 있었는지 회고를 하며 돌아보는 시간을 가져보고자 한다.
취업, 그리고 첫 온보딩
개발자가 되고자, 1년 반이라는 시간 동안 공부한 끝에 그동안 원했던 자사 서비스를 운영하고 있는 회사에 취직할 수 있었다.
그간 많은 공부를 해왔지만 녹록지 않은 취업시장 현실에 나는 단순히 개발을 취미로만 가져야 하는 직종인가 에 대한 고민이 많았던 찰나에 합격 소식이라 너무 기뻤다.
회사에 취직 후, 속한 부서의 코드, 그리고 노션 문서를 이리저리 찾아보았다.
그간 진행한 토이 프로젝트와는 달리 복잡도가 높은 코드들이 많았고, 헥사고날 아키텍처, MSA, 코틀린 언어, 코루틴 등 그간 사용하지 않았던 기술들을 보며 순간 내가 잘 해낼 수 있을 까에 대한 걱정감도 들었다.
첫 온보딩으로, 한 스프린트 간 간단한 티켓 2개를 받아 팀장님에게 멘토링을 받으며 개발을 진행했다.
다른 부서의 팀원에게 물어보며 해결해야 했는데, 다른 팀원에게 질문을 하면 하던 일의 집중력을 앗아갈까 봐 전전긍긍하며 최대한 혼자 해결하고자 했었다.
혼자 예상했던 타깃 스토리 포인트는 4였지만, 1주일이 넘어감에도 문제의 진척이 없자 애간장이 타들어갔다.
그제야 해당 티켓을 해결하기 위해 기능 구현이 되어야 하는 범위 / 명세를 꼼꼼히 정리하던 중 기획에서 놓친 부분이 있음을 깨달았고, 해당 부분에 대해 담당기획자와 얘기를 하며 기능 명세를 명확히 한 후 다른 부서의 팀원과 문제를 해결하기 위해 필요한 인사이트를 얻었다. 그 후로 2일 내에 문제를 해결할 수 있었다.
첫 온보딩 과정을 통해 두 가지 깨달음을 얻었다.
- 팀원들에게 질문을 두려워하지 말 것
- 단순 코드 작성이 아닌 개발을 할 것
첫 번째 깨달음과 관련하여 질문을 막 하는 것이 아닌 적어도 내가 어떤 부분에 대해서 문제를 겪고 문제를 해결하기 위해 적절한 고민을 한 뒤 질문을 하는 것이다. MSA로 구성된 개발 팀의 경우 담당 부서의 팀원이 그 누구보다 잘 알고 있다. 다른 도메인에 대한 궁금한 점이 있을 때 질문을 하고, 보다 빠르게 인사이트를 얻어 개발을 하는 것이 현명한 방법이지 않을까?라고 생각한다.
두 번째 깨달음의 경우 내가 맡은 업무는 그 누구보다 내가 잘 알고 문제를 풀어나가야 한다고 생각한다. 티켓을 받은 뒤 단순히 코드를 치는 것이 아닌, 업무에 대해 명세를 명확하게 한 후 개발을 진행했을 때 원래 의도하던 바를 잘 지켜나갈 수 있다고 생각한다.
몰로코 API 버저닝 업그레이드
우여곡절이 많았던 온보딩 후, 좋은 기회가 찾아와 몰로코 관련 API를 업그레이드하는 역할을 맡았다.
관련 서버의 경우 앱에서 많은 영역들을 담당하는 서버이기에, 혹시나 잘못 개발을 하는 것은 아닐까 하는 걱정과 함께 개발을 진행했다.
버저닝 업그레이드를 진행하기 위해 몰로코 담당 엔지니어와 소통을 하며 개발을 진행하였다.
당시 새로운 모델을 적용시키는 것이라, mock 응답만 받고 있어 요청에 대한 응답이 제대로 오는지 확인하지 못한 채 개발을 진행했다.
배포 타깃 날짜를 얼마 남겨두지 않고, 새로운 모델에 대한 응답을 테스트하는데 기대하는 응답값이 내려오지 않아 진땀 흘렸던 기억이 있다. 그 당시 몰로코 엔지니어와 계속 연락을 주고받으며 어떠한 부분이 문제였는 지 확인하고 해결하던 기억이 새록새록하다.
결과적으로 원래 배포 타깃 날짜보다 1주일 정도 미루어졌지만, 팀원들이 괜찮다고 독려해 주셔서 죄송하면서도 감사한 마음이 가득했다.
성능개선
사내에서 신규 프로젝트로 인해 특정 서비스의 활성 엔티티 개수를 늘렸다. 기존 활성화 엔티티 개수 대비 약 15배가 늘었다.
그 주 주말에 다음과 같은 에러가 발생했었다.
확인해 보니 해당 서비스의 파드가 계속 떴다가 죽었다를 반복하고 있었다.
기존 레거시 코드의 경우 성능에 대한 큰 고려 없이 개발이 되어 있어 불필요한 로직들이 많이 존재했다.
대표적인 불필요한 로직은 다음과 같았다.
- N + 1 문제 (서비스 로직 상 N + 1)
- 쿼리에서 처리할 수 있는 데이터를 서비스 로직에서 처리하기
해당 문제를 해결하기 위해 문제가 되는 API들을 grafana를 통해 확인을 했고 개선을 시도했다.
그 결과는 다음과 같았다.
- API 1 : 기존 6.5s -> 0.3s (기존 API 응답 대비 약 22배)
- API 2 : 기존 5s -> 1s (기존 API 응답 대비 약 5배)
- API 3 : 기존 12s -> 0.3s (기존 API 응답 대비 약 40배)
결제와 관련된 서비스였기에 고객 만족을 위해서는 성능개선이 필수적으로 필요했다. 서비스 성능 개선을 통해 고객의 불편함을 덜어낼 수 있었고, 특히 그간 강의 혹은 서적으로만 공부한 지식을 활용 할 수 있어 뿌듯했다.
개인 맞춤화 서비스 프로젝트
몰로코 외에 새로운 개인 맞춤화 서비스를 제공하는 업체와 일을 시작하게 되었다. 처음에는 팀장님의 서포트 역할로 프로젝트에 투입되었지만, 시간이 지날수록 나의 비중이 점점 커졌다. 그러던 와중 팀장님의 개인적인 일로 인하여 프로젝트를 그만두게 되었고, 해당 프로젝트를 메인으로 이끌게 되었다.
유저의 행동 관련한 로그들을 처리하는 프로세서 개발, 맞춤화 서비스에 필요한 데이터 값들 정의 및 공유 등 생각보다 많은 작업이 소요되어 솔직히 중간에 조금 지칠 때도 있었다. 하지만 처음으로 주도적으로 맡게 된 프로젝트였기에 실수하고 싶지 않았고, 주말 밤낮없이 개발을 했던 것 같다.
결과적으로 무사히 프로젝트를 완료할 수 있었고, 많은 뿌듯함을 느꼈던 프로젝트 중 하나이다.
Ebay MIP 개발
현재의 경우 직원이 이베이에 상품을 등록하기 위해 일일이 수기로 작성을 하고 있다.
현재 수기로 등록을 하는 경우 일 최대 70개 정도 등록을 하는 것 같다.
지금 현황보다 더 많은 상품들을 등록하고자 하기에, 해당 프로젝트에 단독으로 참여하였다.
Ebay 개발 환경의 경우 sandbox라고 하는데, sandbox환경에서 MIP를 등록해 보고자 공식 문서를 참고하며 등록을 하고자 했다. 하지만 참조할 수 있을만한 레퍼런스가 적었고, 어떤 이유 때문에 등록이 안 되는지 다소 모호한 에러 메시지들이 많았다. 그 바람에 이베이 엔지니어에게 컨택해서 메일을 주고받고, 화상회의를 하며 어떤 문제가 있고, 이를 해결하기 위해서 어떠한 과정들이 필요한 지 계속 얘기를 주고받았다. 사실 영어로 회화를 엄청 잘 하는 편은 아니라 화상회의 당시 다소 절었지만 우여곡절 끝에 성공적으로 MIP를 통해 등록을 할 수 있었다. 상품 정보와 관련해 필요한 값들은 Athena Query를 통해서 추출을 했으며, MIP 등록에 맞게끔 전환하는 과정들은 Google Apps Script를 통해서 변환할 수 있도록 하였다.
해당 프로젝트의 경우 아직 진행중인 프로젝트로, 정상적으로 개발을 완료했으면 하는 바람이다.
개발자로서의 2024년
돌아보니 한 해 동안 생각보다 많은 일들을 했던 것 같다.
어떤 일이 주어지든 간에 큰 고민하지 않고 시도해보고자 했던 노력들 덕에, 좋은 경험들을 많이 쌓을 수 있었던 것 같다.
24년 한 해 꾸준히 공부했지만, 아직도 모르는 것이 많고, 배워야 할 것이 많다고 생각한다.
25년에는 보다 더 많은 지식들을 쌓아 보다 합리적인 선택으로 효율적인 코드를 개발할 수 있는 개발자가 되었으면 한다.
업무를 진행하며 많은 부분들이 바뀌었던 것 같다.
- 개발 시 업무에 대해 충분한 고민을 한 후 개발에 임하기 시작했다.
- 팀원 간 소통의 중요성을 깨달아, 궁금한 부분을 물어보는 데 주저하지 않게 되었다.
- 문제가 발생했을 때 어떻게 대처해야 하는지 깨달았다.
한해를 돌아 봤을 때 다소 아쉬웠던 점들도 존재한다.
Chat GPT 의존성
회사에서 업무 시작 시에 코틀린 언어에 대해서 미숙하기도 하고, 코루틴 환경에 대해 제대로 이해하지 못하여 Chat GPT에 물어보며 개발을 진행했다. 그러다 어느 순간 GPT에게 의존을 너무 하고 있다는 생각이 들었다. GPT를 사용함으로써 생산성이 극대화되는 것은 동의하는 바이나, GPT를 이용하는 것이 아닌 의존을 하면 안 된다고 생각한다. 4분기 즈음 이런 생각이 들었고, 이를 지키기 위해 GPT에 대한 의존도를 낮춰가고자 하고 있다.
테스트 코드
실무를 하기 전에는 테스트 코드의 중요성을 그 누구보다 공감했고, 테스트 코드를 잘 작성하고자 노력했다. 처음에는 실제 실무에서도 이를 이어가고자 했으나, 다소 깨진 테스트 코드들이 많았고, 일이 많다는 핑계로 테스트 코드 작성을 소홀히 했던 것 같다. 최근 리팩토링을 진행하며, 다시금 테스트 코드의 중요성을 깨닫고 있다. 25년에는 다시 안전한 코드작성을 위해 테스트 코드 작성을 열심히 하고자 한다.
2025년에는..
최근들어 개발자에게 Computer Science가 왜 중요한 지 많이 깨닫는다. 이에 올해 11월부터 지금까지 자바언어 및 컴퓨터 지식과 관련한 기초를 쌓아가고 있다. 기본에 충실히 공부하며, 진행하는 프로젝트에서 배울 수 있는 부분들을 배워가며 실력이 탄탄한 개발자로 거듭나고 싶다.
그간 개인적인 일도 있었고, 업무에 집중하고자 컨퍼런스 혹은 스터디 활동들을 일제히 하지 않았다. 25년에는 보다 많은 개발자들과 교류하며 색다른 인사이트 및 새로운 정보들을 얻고자 한다.
다가오는 25년, 24년보다 더 나은 개발자가 되어있길 바라며 회고글을 마친다.
'회고' 카테고리의 다른 글
백엔드 개발자 취업 준비 회고록 (0) | 2024.04.12 |
---|---|
클론코딩 최종 회고 (0) | 2023.09.25 |
클론 코딩 중간 회고 (0) | 2023.09.18 |
인프콘(INFCON) 2023 방문 후기 (0) | 2023.08.15 |
백엔드 데브코스 4기 월간 회고 1편 - 모든 게 낯설다 그치만 재밌다! (0) | 2023.07.05 |