최근 성공적으로 이직하여 새로운 출발을 앞두고 있다. 지난 회사에서 보낸 시간으로 여러모로 값진 성장을 할 수 있었다. 특히 백엔드 엔지니어로서, 그리고 한 명의 팀원으로서 겪었던 어려움과 이를 통해 얻은 배움을 잊기 전에 기록하며 스스로를 다잡아보려 한다.
하드 스킬 관점
작년 7월, 백엔드 직무로 전환한 이후 마이크로 서비스 개발부터 시작해 점차 서비스 전체의 구조를 이해하고 개선하는 역량을 기를 수 있었다. 알고리즘 연구원으로 쌓았던 도메인 지식에 더해, ChatGPT, Claude, Gemini와 같은 AI 도구들을 적극적으로 활용하여 코드를 작성하고 리뷰하여 단기간에 압축적인 성장을 경험했다. 막연했던 개념들이 실제 제품 개발 과정에서 어떻게 작동하는지 체득하는 할 수 있는 시간이었다.
기술적 성장을 이끈 두 가지 키워드
1. 테스트 코드의 부재가 알려준 것들
이전까지는 테스트 코드가 '있으면 좋은 것' 정도로 막연하게 생각했다. 하지만 테스트 코드가 없는 환경을 직접 경험하며, 그것이 단순히 좋은 습관을 넘어 '제품의 안정성과 팀의 생산성을 지키는 핵심 요소'임을 절절히 깨달았다.
- 예측 불가능한 사이드 이펙트: 새로운 기능을 추가하거나 기존 로직을 수정했을 때, 어떤 기능에 예상치 못한 영향을 미칠지 파악하기 어려웠다. 이로 인해 변경에 대한 확신이 부족해지고, 잠재적인 불안감을 안고 개발을 진행해야 했다.
- 불필요한 커뮤니케이션 비용: 기능 장애가 프론트엔드단에서 먼저 발견되어 백엔드팀에 전달되는 일이 잦았다. 이는 결국 팀 전체의 리소스를 불필요한 소통에 소모하게 만드는 결과를 낳았다.
- 심리적 장벽: 시스템에 대한 히스토리를 모르는 새로운 동료가 합류했을 때, 코드 수정이 가져올 파급 효과를 알기 어려워 적극적으로 기여하기 힘든 심리적 장벽이 생길 수 있다는 점을 알게 되었다. (새로운 동료가 나였다.)
2. 견고한 아키텍처의 필요성
과거에는 MVC와 같은 디자인 패턴이 때로 불필요하게 코드를 복잡하게 만든다고 생각한 적도 있었다. 하지만 역할과 책임이 분리되지 않은 아키텍처가 장기적으로 어떤 문제를 만들어내는지 직접 겪으며 생각이 완전히 바뀌었다.
로직이 특정 계층에 집중되고 관심사가 분리되지 않으면, 코드의 재사용성이 떨어지고 중복 코드가 늘어난다는 점을 목격할 수 있었다. 무엇보다 큰 문제는 테스트하기 어려운 구조가 된다는 점이었다. 각 로직을 독립적으로 테스트할 수 없고 항상 전체 API를 호출해서만 검증할 수 있다면, 쉽사리 테스트 코드를 작성할 마음이 안생기고 기존에 있던 코드에 테스트 코드를 작성하기도 쉽지 않았다. [1]
결국 테스트 코드와 견고한 아키텍처의 부재는 서로 맞물려 개발 생산성을 저하시키고, 협업의 어려움을 가중시킨다는 사실을 체감했다. 이러한 경험을 바탕으로 연초에 리팩토링을 건의하고 아키텍처 설계를 고민해볼 수 있었던 것은 엔지니어로서 큰 자산이 되었다. (실제 리팩토링은 기존에 코드를 작성하던 개발자가 담당했다.)
소프트 스킬과 조직에 대한 관점
이전 직장은 IT 분야와는 다른 산업적 배경을 가진 조직이었다. 덕분에 일반적인 IT 스타트업과는 다른 환경 속에서 조직 문화를 경험하고 소프트 스킬의 중요성을 다시 한번 절감할 수 있었다.
- 심리적 안정감의 가치: 팀원들이 결과에 대한 두려움 없이 문제를 제기하고 솔직한 의견을 나눌 수 있는 '심리적 안정감'이 왜 중요한지 깨달았다. 심리적 안정감이 부족한 환경에서는 고객의 가치보다 내부의 복잡한 역학 관계에 더 집중하게 되고, 문제 해결보다는 책임 회피에 에너지를 쓰게 될 수 있다는 것을 보았다.
- 불안감 관리 능력 체득: 개인적으로는 높은 심리적 압박감을 느끼는 시기도 있었다. 하지만 이 과정을 통해 불안감이 극심해질 때 제 몸과 마음이 어떻게 반응하는지 명확히 알게 되었다. 그리고 어떻게 해야 스스로를 돌보고 다시 나아갈 힘을 얻을 수 있는지, 나만의 회복 방법을 터득하는 계기가 되었다.
마치며
결코 쉽지만은 않은 시간이었지만, 돌이켜보면 그 어떤 환경보다 값진 배움을 얻었던 시간이었다. 기술의 중요성은 물론, 함께 일하는 사람들과 건강한 문화를 만드는 것이 얼마나 중요한지를 온몸으로 배웠다. 이 소중한 경험들을 자양분 삼아, 앞으로 새로운 환경에서는 함께 일하고 싶은 사람이자 엔지니어로 기여하고 싶다.
함께 읽으면 좋은 글
[1] 카카오페이, 실무에서 적용하는 테스트 코드 작성 방법과 노하우 Part 2: 테스트 코드로부터 피드백 받기, https://tech.kakaopay.com/post/mock-test-code-part-2/