
10년 차 백엔드 개발자 장훈입니다. 이전에는 캐시워크에서 백엔드 개발자로 일했고, 모니모니에 합류한 지 어느덧 3년이 됐어요.
이전 회사에서 DAU 300만 규모의 서비스를 운영하면서 큰 트래픽을 경험했어요. 이 경험을 온전히 활용하면서도 제가 주도적으로 움직일 수 있는 조직을 찾고 있었는데, 생각보다 두 가지를 모두 만족하는 회사를 찾기가 쉽지 않더라고요.
그러던 중 썸원을 발견했어요. 당시 썸원의 성장세라면 제가 경험했던 대규모 트래픽에 대한 고민이 곧 필요해질 거라고 생각했고, 제가 가진 경험으로 충분히 기여할 수 있겠다는 생각이 들었습니다.
무엇보다 저는 B2C 서비스를 계속 만들고 싶었어요. 길을 걷다 우연히 마주친 누군가가 제가 만든 서비스를 사용하고 있을지도 모른다는 것, 그런 서비스를 안정적으로 운영하는 일이 저에게는 꽤 큰 동기부여가 되거든요.
동시성에 대한 고민을 정말 많이 합니다.
썸원은 ‘커플’이라는 두 사람이 하나의 데이터를 함께 관리하는 서비스예요. 한 명이 데이터를 보고 다른 사람이 데이터를 보는 일반적인 피드 형태의 서비스와 달리, 두 사람의 상태가 실시간으로 맞아야 하는 경우가 많습니다.
두 사람이 동시에 어떤 행동을 했을 때 데이터가 어떻게 처리되어야 하는지, 서로 다른 상태가 발생하지 않도록 어떻게 제어할 것인지 계속 고민해야 해요.
그래서 백엔드 채용 인터뷰에서도 동시성에 관한 질문을 많이 하는 편이에요. 썸원이라는 서비스의 특성상 중요하기도 하지만, 경험하지 않고는 고민하기 어려운 영역이거든요.
개발자로서 가장 기억에 남는 순간 중 하나는 썸원의 질문 구조를 대규모로 개편하면서 진행했던 데이터 마이그레이션이에요.
당시 기존 데이터가 굉장히 많이 쌓여 인덱싱 성능이 떨어지고 있었고, 테이블 구조를 변경해야 하는 시점이었습니다. 문제는 이미 서비스 안에 약 20억 건의 데이터가 존재하고 있었다는 거예요.
서비스를 중단하지 않으면서 이 데이터를 모두 옮겨야 했고, 그 과정에서 발생할 수 있는 실패나 재시도 같은 다양한 예외 상황까지 고려해야 했어요. 정해진 시간 안에 서비스 장애 없이 마이그레이션을 끝냈을 때 백엔드 개발자로서 큰 성취감을 느꼈습니다.
사실 저는 한 번도 바뀐 적이 없어요. 백엔드 개발자에게 가장 중요한 것은 결국 안정성이라고 생각합니다.
서비스에서 발생하는 이슈에 기민하게 대응할 수 있어야 하고, 아직 발생하지 않은 예외 상황까지 생각할 수 있어야 해요. 그래서 좋은 백엔드 개발자에게는 비판적인 사고가 중요하다고 생각합니다.
‘당연히 잘 되겠지’라고 생각하기보다 ‘이 상황에서는 문제가 생기지 않을까?’, ‘우리가 놓치고 있는 경우는 없을까?’를 계속 의심할 수 있어야 해요.
백엔드는 유저에게 직접 보이는 영역은 아니지만, 그 보이지 않는 곳에서 수많은 가능성을 먼저 생각하고 대비하는 사람이 좋은 백엔드 개발자라고 생각합니다.
저는 팀의 결속력이라고 생각해요.
백엔드팀에는 주도성이 강한 사람들이 모여 있고, 각자가 맡은 일에 대한 책임감도 굉장히 높아요. 그렇다 보니 서로의 방향을 맞추는 것도 비교적 자연스럽게 이루어지는 편이에요.
그리고 모니모니에서는 백엔드 개발자라고 해서 백엔드에 주어진 일만 해야 하는 것도 아닙니다.
서비스를 사용하다가 불편한 점을 발견하거나 내부적으로 개선해야 할 문제를 발견하면 누구든 이야기할 수 있어요. 필요하다면 그 문제를 직접 프로젝트로 만들어 해결할 수도 있고요.
누군가 정해준 문제를 개발하는 것보다 스스로 문제를 발견하고 해결까지 연결할 수 있다는 것이 모니모니 백엔드팀의 큰 매력이라고 생각합니다.
