리멤버를 만드는 사람들 서버 개발 파트 인터뷰
리멤버 사내 메신저 공지 채널에 빨간불이 켜졌습니다. 갑작스레 서비스가 지연되면서 일부 장애가 발생한건데요. 민원이 밀려드는 긴박한 상황 속, 문제를 해결하기 위해 개발자들이 빠르게 모여 브리핑을 준비합니다.
*발생 시간
2023년 5월 22일, 13시 59분
*장애 범위
OO 서비스 지연 및 일부 장애
*원인
서버 인프라 변경에 따른 CPU 부족 및 대처 지연
*경위
13:59) 장애 알람 수신
14:05) 대응 시작
문제 발생 시간부터 범위, 원인, 경위, 재발 방지 대책까지. 사건의 처음과 끝이 분 단위로 촘촘히 기록되어 있는데요. ‘장애 해소 및 지속적인 모니터링’이라는 마무리 문구와 함께 화재는 10분 만에 진압됩니다.
400만 비즈니스 프로페셔널이 사용하는 리멤버. 이 400만 유저들이 안정적으로 리멤버를 이용할 수 있도록 뒤편에서 늘 분주히 움직이는 사람들이 있습니다. 바로 리멤버 서버 개발 파트인데요. 언제, 어디서 리멤버를 켜더라도 늘 같은 서비스를 받아볼 수 있도록 인프라를 안전하게 구축하고 관리하는 조직입니다. 어느덧 10년이란 시간 동안 한결 같이 안정적인 서비스를 만들어낸 비결이 무엇인지, 이 파트의 테크 리드(Tech Lead) 4명을 만나 자세히 들어봤습니다.
강태화: 리멤버 채용공고 서비스를 만들고 관리하는 공고성사 크루에서 서버 개발 테크리드(Tech Lead, 이하 TL)를 담당하고 있습니다. 채용 공고를 통해 구인자와 구직자가 만나 채용이 성사되기까지의 여정을 돕는 서비스를 개발하고 있습니다.
오일승: 인재검색 서비스의 개발을 책임지는 검색성사 크루의 서버 TL입니다. 저희 팀은 채용 담당자가 어떤 인재를 뽑고 싶은지 의도를 파악해 알맞은 인재를 찾아 제안을 발송하고, 채용까지 이어질 수 있도록 지원하는 서비스를 개발하고 있습니다.
나경상: 파운데이션 크루 서버 파트 TL 입니다. 저는 일본 SI(Systems Inegrator)개발 회사에서 개발자로서 커리어를 시작했는데요. 보다 능동적으로 개발할 수 있는 환경에서 경력을 쌓고 싶어 리멤버와 함께하게 되었습니다. 현재는 채용 서비스를 제외한 서비스 전반의 서버 개발 및 운영을 담당하고 있어요.
이정민: 플랫폼 서버 엔지니어링 파트 TL을 맡고 있습니다. 리멤버의 유일한 DevOps 엔지니어이기도 해요. 리멤버의 인프라 아키텍처 설계를 중심으로 서비스가 안정적으로 돌아가도록 인프라 전반을 유지하는 업무를 담당합니다.
오일승: 검색성사 크루의 핵심 과제는 ‘채용 성사율을 높이기’예요. 이 성사율은 제안 수가 많을수록 올라가기 때문에, 성사 이전 단계인 제안율 높이기에 모두가 달라붙고 있죠. 그 일환으로 최근에는 인재 검색 서비스 내 인재 프로필을 띄우는 사이드 탭을 개발했습니다.
기존에는 인재의 상세 정보를 보려면 새 창으로 열어야 했는데요. 이 과정에서 검색 결과 페이지 이탈률이 높아져 제안 발송까지 이어지지 않더라고요. 다이렉트 소싱을 할 때, 여러 인재의 프로필을 한 번에 조회하기 때문에 창이 많아질수록 피로도가 높다는 고객의 목소리도 있었죠. 버튼 하나 누르는 과정도 유저의 리소스를 들이는 일이다 보니 개발의 우선순위를 높였습니다.
저희가 시도한 방안은 화면 사이드에 모달뷰(Modal view)를 만드는 것이었습니다. 모달은 사용자의 이목을 집중시키는 별도의 화면인데요. 이 모달뷰로 페이지 이동 없이 프로필 조회가 가능해 이탈률을 줄이고, 프로필 상세 조회율을 높여 제안 발송률까지 잡은 거죠.
또 프로필을 상세 조회한 경우, 제안 보낼 확률이 높다는 점을 확인해 탭 상·하단에 제안을 보낼 수 있는 ‘포지션 알리기’ 버튼을 추가해 허들을 확 줄였어요. 새 창 기능 역시 계속 사용할 수 있도록 새 창 띄우기 버튼을 별도로 추가해 기능을 유지했고요. 이번 사이드 탭 덕에 프로필 조회에서 제안까지의 전환이 기존 대비 1.5배나 증가할 수 있었어요.
강태화: 공고 성사 크루도 검색 성사 크루와 동일하게 ‘사용자 편의성’에 집중하고 있어요. 유저가 최소한의 노력으로 자신에게 적합한 공고를 놓치지 않고 탐색할 수 있도록 돕는 일들을 하고 있습니다. 지금은 AI 모델을 적용해 프로필 정보뿐 아니라 지원 및 조회 정보를 활용해 추천의 질을 더 높이는 데 주력하고 있죠.
또 유저가 지원하기까지의 과정을 최대한 간편하게 만들고 심리적인 허들을 줄여 같은 시간에 더 많은 기회를 얻을 수 있도록 돕고 있는데요. 이를 위해서 리멤버에 등록된 프로필이 아니라 이미 준비된 이력서를 첨부하여 지원하는 기능을 개발하고 있습니다. 그리고 더 나아가서는 이 외부의 이력서를 손쉽게 리멤버 프로필로 전환할 수 있도록 하는 기능들도 검토 중입니다.
나경상: 파운데이션 크루는 리멤버 서비스의 전반을 다루다 보니 시기별로 집중해야 할 제품이나 태스크가 달라요. 그럼에도 모든 업무의 기본이자 핵심은 서비스 모니터링과 서버 장애 대응입니다.
어떤 서비스를 이용하든 서버를 통하기 때문에 서버 조직은 언제든 고객의 요청 사항에 안정적으로 응답할 수 있는 상태를 유지해야 하죠. 로그인과 같은 코어 기능부터 명함관리, 커뮤니티, 비즈니스 선물하기 등 주요 서비스의 서버 안정화 작업에 막중한 책임감을 느끼고 있습니다.
이정민: 플랫폼 파트는 각 크루가 제품 개발에만 집중할 수 있도록 지원하는 조직이라 제품의 경계가 없기 때문이에요. 저희 팀을 한 문장으로 소개하자면 ‘업무를 자동화하는 팀’입니다. 동료들이 개발한 멋진 제품들이 고객과 빠르게 이어지도록 서버 인프라와 애플리케이션의 배포를 자동화하는 데에 집중하고 있죠.
제품 전반의 안정성 확보를 위해 다양한 지표를 수집하고, 서비스 이용에 불편을 겪는 고객이 있으면 사전에 인지해 적절한 조치가 이루어질 수 있도록 장애 대응을 자동화하고 있습니다.
강태화: 기존에도 사용자에게 알맞은 공고를 추천순으로 제공해 드렸는데요. 고객들이 원하는 공고와 추천순 공고 간의 간극이 있었어요. 기존의 추천순 방식은 특정 규칙에 의한 산술 계산 방식으로 공고의 적합도를 매겼는데요. 예를 들어 공고에 기재된 직무와 인재 이력 정보의 직무가 일치하거나 공고 내 주소지와 인재의 현 직장 주소지가 같을 때 매칭 점수가 높게 책정됩니다.
이처럼 정규화되는 값을 기반으로 공고를 추천하다 보니 유저가 공고를 탐색할 때, 세부적으로 따져보는 조건들과 부합하지 않은 경우도 발생한 거죠. 또 공고 소개나 직무 설명과 같은 텍스트(자연어)는 추천 점수에 활용되기 어려운 문제도 있었고요.
이 문제를 해결하기 위해 AI Lab에서 추천의 정확도를 높여줄 AI 모델을 개발해 주셨어요. 자연어 처리가 가능하고, 비정형 데이터도 활용 가능한 AI인데요. 서버 팀은 해당 AI 모델을 제품에 적용해 풍부한 공고 정보를 기반으로 추천순 정렬이 가능하도록 개발했어요. AI 모델이 적용된 후 유저의 채용공고 조회 대비 지원율이 크게 상승했고 저희 채용공고를 통한 전체 지원 수가 2배 가까이 올랐어요.
나경상: 파운데이션 크루에 오기 전, B2B 서비스 중 하나인 광고 크루에 있었어요. 당시, 광고 사업팀에서는 단순 노출형 광고 상품에서 벗어나 광고 업계에서 일반적으로 사용되는 cpm(cost per mile), cpc(cost per click) 상품으로 전환하고 싶은 니즈가 있었는데요. 이를 시도하기 위해 이미 많은 기술 부채를 가지고 있는 모놀리틱(monolothic)으로 구현된 레거시 코드 위에 구현하기는 어려웠습니다. 새로운 광고 시스템을 구축해 서비스 품질과 기술을 확장하는 게 더 낫다고 판단했고, 6개월이라는 대장정의 신규 광고 시스템 프로젝트를 진행하게 됐죠.
진행 과정은 정말 험난했습니다. 사업팀원들에게 신규 광고 시스템 개혁의 필요성을 설득하는 일부터 대거 리소스 지원에 따른 경영진의 승인을 받기까지, 헤쳐 나가야 할 것들이 산 넘어 산이었죠. 무엇보다 CPM, CPC가 우리 광고에 정말 적합한 상품일지 증명해야만 했는데요. 기존 레거시 광고 시스템을 활용해 빠르게 테스트하며 실현 가능성을 발견했죠. 그 후로 서비스 상품이 전면 개편되었습니다.
기존에는 예상 노출 수로 광고비를 책정했다면, 이제는 CPM을 통해 광고비 기준을 좀 더 정확하게 세워 비용을 지불하고 있어요. 광고 효과에 따라 이용비가 정확히 계산되기 때문에 고객들로부터 서비스 신뢰도를 더욱 높일 수 있는 계기가 됐습니다.
강태화: 다행히 24시간 상시 대기를 하면서 컴퓨터 앞을 지키고 있지는 않아요. 아무래도 리멤버의 주요 고객이 직장인이다 보니 대부분의 트래픽이 평일 근무 시간에 몰려 있는데요. 이 때문에 장애가 발생하더라도 대부분은 일과 시간에 해결할 수 있습니다.
물론 예상치 못한 시간에 변수가 발생하기도 하는데요. 서버 장애 이슈는 사내 메신저로 알림을 받고 있어, 알림을 확인한 몇몇 동료들과 확인한 자리에서 바로 해결합니다.
조직 차원에서는 장애 대응과 프로세스 관련해 좀 더 고도화하는 방안을 연구하고 있어요. MTTA(Mean Time to Acknowledge, 평균적으로 장애 인지까지 걸리는 시각), MTTR(Mean Time to Repair, 평균적으로 장애 해결까지 걸리는 시각)과 같은 지표를 수집하며 서비스 안정성에 관한 기준을 체계적으로 세워가고 있죠. 이를 통해 저희 서비스가 더욱더 안정적으로 이용될 수 있도록 최선을 다하고 있습니다.
이정민: 리멤버 개발자분들이 전체적으로 성장에 대한 갈망이 매우 높아요. 일례로 개발자를 위한 테크톡과 지식공유 등 다양한 세션이 주기적으로 진행되는데요. 단순히 코드를 잘 완성하는 데에 그치지 않고, 더 많은 도메인 지식을 쌓고 서로 영향력을 발휘할 수 있도록 지원하는 문화가 기존에 경험해 본 다른 조직들과 가장 큰 차이점인 것 같습니다.
특히 서버 파트의 경우 매주 금요일 ‘서버 개발자 지식 공유’ 세션을 가지고 있어요. 제품마다 사용하는 기술 스택도 다르고, 개개인의 관심사도 다양한데요. 지식 공유 세션을 통해 제품에서 개선하거나 새롭게 알게 된 내용, 또는 공부한 내용을 공유하기도 합니다. 최근에는 Spring Boot, Redis, Terraform, AWS 메타데이터를 호출하는 IDMS 등 여러 주제로 발표가 진행되었어요. 다채로운 주제 덕분에 잘 몰랐던 분야의 지식을 쌓을 수 있는 유익한 시간이기도 하지만, 서버 파트가 유일하게 모이는 기회이기도 해 일주일 중 가장 기대되는 일정입니다.
오일승: 페어 프로그래밍(Pair programming)은 개발 업무에 있어 일종의 ‘훈수’를 두는 과정이에요. 2015년에 처음 시도한 페어 프로그래밍은 개발 조직의 온보딩 과정에서 핵심 문화로 자리 잡게 됐는데요. 서로 코딩 과정을 따라가면서 의견이나 지식을 공유하고, 서로에 대한 신뢰를 쌓도록 장려하고 있어요. 하나의 문제를 여러 명이 동시에 파고들기 때문에 어떨 땐 하나의 키보드를 같이 돌아가며 코딩을 진행하기도 하죠.
사실, 페어 프로그래밍이라는 게 에너지 소모가 정말 큰 일이에요. 내 코드를 타인에게 실시간으로 보여주는 게 쉽지 않을뿐더러, 내가 알고 있는 지식을 누군가에게 알려줄 때도 상대의 역량이나 이해 여부에 맞춰 설명해야 하기 때문에 많은 노력이 필요하니까요. 그럼에도 저희가 이 문화를 지향하고 지키는 이유는 하나입니다. ‘더 나은 결과물을 만드는 것’에 모두가 동의하는 거죠. 특히, 온보딩 과정에서는 페어 프로그래밍을 통해 친밀한 관계를 다지고, 자연스럽게 코드 컨벤션 및 프로젝트에 대해 익힐 수 있게 하고 있습니다.
이정민: 이름 뜻대로 ‘나를 소개하는 자료’예요. 각 파트 원끼리 서로를 더 잘 이해하고, 친목을 다지기 위한 방안으로 작성하고 있어요. 선호하는 업무 환경과 근무 시간, 원하는 피드백 스타일, 좋아하는 것과 어려워하는 것, 취미와 MBTI 등 자신의 모든 것을 기록하는데요. 이렇게 채운 user manual을 토대로 신규 입사자가 들어올 때마다 공유하는 시간을 가집니다. 소개서를 채우는 과정에서 자신을 객관적으로 돌아볼 수 있고, 함께 하는 동료의 성향이나 업무 스타일을 파악할 수도 있어요.
강태화: 말씀 주신 것처럼 리멤버에서 서버 개발자들은 다양한 일을 담당하고 있는데요. 채용 솔루션을 고도화하는 작업부터 명함, 커뮤니티, 리서치 등 여러 B2B, B2C 서비스의 유지 보수 및 기능 개발을 하고 있죠. 또 제품의 보안 및 안정성을 향상하기 위한 작업과 리멤버의 새로운 사업을 위한 개발 등의 일들을 꾸려가고 있는데요. 앞으로도 이 모든 작업은 든든한 동료들과 함께 꾸준히 진행될 계획입니다. 리멤버에 합류하게 되신다면, 여러 제품 크루에서 여러 도메인을 쌓아갈 기회는 언제든 열려있습니다.
나경상: 태화님과 같은 맥락일 것 같은데요. 문제 해결을 위해 본인이 기여하고자 하는 의지가 있다면 많은 경험을 해볼 수 있는 곳이 리멤버라고 생각합니다. 앞서 신규 광고 시스템을 도입한 사례를 말씀드렸는데요. 새로운 기술로 신규 프로젝트를 주도했던 것은 물론, 팀원들과 경영진을 설득하는 과정도 큰 의미가 있었습니다. 단순히 기술 영역뿐만 아니라 서비스 기획부터 운영까지 적극적으로 참여할 수 있으니, 도전의 기회를 갈망한다면 적극 환영합니다!
오일승: 언젠가 테크톡에서 ‘리멤버 개발팀의 큰 장점은 무엇일까?’를 조사한 적이 있었는데요. 많은 분이 ‘동료’라고 답했어요. 이제는 너무 많이 이야기해서 진부하게 들릴 수 있지만, 리멤버 최고의 복지는 동료입니다. 서로의 성장에 시너지를 높이는 자극제이자, 힘들 때 기댈 수 있는 버팀목이죠. 함께하는 기쁨을 아는 분이시라면, 저희와 함께 해주세요!
※ 프로페셔널 네트워크 서비스, 리멤버와 함께
일하는 세상을 혁신하는 서버 개발자가 되고 싶다면? ▶ 공고 지원하기