ML 데이터 플랫폼팀을 소개해요
만약 당근의 홈 화면의 중고 거래 게시글이 누구에게나 똑같이 최신순으로만 보인다면 어떤 모습일까요? 나는 아이가 없음에도 유모차나 육아용품이 뜨거나, 냥집사, 식집사임에도 관련 물품이 안보이고, 현재 관심 없는 의류나 가구, 미용용품이 보일 거예요. 이처럼 개인화 피드와 추천은 당근의 1,900만 MAU 사용자들이 당근을 더 잘 이용하기 위해서 필수적인 부분이에요.
피드실 ML 데이터 플랫폼 팀은 당근에서의 피드 개인화와 광고 추천을 비롯해 여러 팀이 다양한 도메인에서 활용하는 머신러닝 서비스들이 대용량 데이터를 각자의 서비스에 효과적으로 활용할 수 있도록, 견고하고 확장 가능한 고성능 데이터 플랫폼을 구축하고 있어요.
- 추천 서빙 시스템 아키텍처: 높은 생산성을 위한 아키텍쳐 및 ML Flywheel | 2024 당근 테크 밋업
- ML 데이터 플랫폼 팀은 7명의 소프트웨어 엔지니어로 구성된 팀이에요
- ML 데이터 플랫폼 팀은 피쳐 스토어와 추천 엔진, 스트림 데이터 파이프라인 등 피드 개인화 및 광고 추천 등 추천 시스템을 위해 필요한 서비스들을 운영하고 있어요
- 2,000만 MAU 사용자들의 추천을 위해 초당 100K+ 대용량 트래픽 요청을 p99를 넘어 p99.9 기준 30ms 이하로 처리하고 있어요
- 이는 당근의 수백 개 백엔드 서비스 중에서도 손에 꼽히는 많은 처리량이에요
- 그와 동시에 가능한 한 최신 정보로 추천하기 위해 여러 서비스의 데이터를 스트림으로 준 실시간 수집하고 처리하고 있어요
- Kafka, GCP Pub/Sub에서 100+개의 이벤트 스트림을 처리해 1,000개가 넘는 피쳐를 피쳐 스토어에서 제공하고 있어요
이런 일을 해요
- 추천 시스템에 필요한 추천 엔진, 피쳐 스토어, 데이터 스트리밍 플랫폼 등의 서비스들을 개발 및 운영해요
- 높은 트래픽에도 안정적으로 서비스가 운영될 수 있도록 서비스들의 성능과 비용을 최적화해요
- 데이터를 단순 수집하는 것뿐만 아니라 데이터 스트림 파이프라인과 LLM을 이용해 임베딩 벡터 추론 결과나 프롬프트 결과 또한 저장해 추천 시스템에 사용할 수 있는 환경을 구축하고, 추천 성능을 확장할 수 있는 피처도 발굴해요
- 전사 누구든 새로운 피처를 사용하고, 기여하거나 새롭게 추천을 도입하기 위해 데이터 플랫폼의 사용성을 높이며 데이터 품질의 가시성 또한 확보해요
이런 기술을 사용하고 있어요
- Go, gRPC, Protocol Buffers, Kafka, Redis, AWS DynamoDB, GCP Pub/Sub, GCP BigQuery, GCP VertexAI
- Kotlin, Apache Beam, GCP Dataflow
- Kubernetes, Istio, Grafana, Prometheus, Loki
ML 데이터 플랫폼 팀은 이렇게 일해요
- 서로 테크스펙과 코드를 리뷰하며 공유와 커뮤니케이션을 중요하게 여겨요
- 풀어야 할 문제와 요구사항에 대해 주도적으로 고민해요
- 실용적인 자세로 기술을 대하지만 필요하면 깊게 파고들어요
- 장애를 개인의 책임이 아닌 시스템으로 재발방지하고 팀의 성장의 기회로 삼아요
이런 문제를 같이 해결하고 싶어요
ML 데이터 플랫폼 팀에서는 추천 시스템을 견고하게 운영하 며 사용자에게 더 좋은 컨텐츠를 추천해주기 위해 다음과 같은 일들을 하고 있어요
1. 추천 시스템을 최적화해요
추천 시스템에서 지탱해야 할 트래픽과 데이터양이 6개월마다 2배씩 증가하고 있어요. 매니지드 환경에서 로컬 캐시, 리모트 캐시 등을 최대한 사용해 저지연 처리를 하고 있지만 앞으로 트래픽이 10x, 100x 규모로 커져도 대응할 수 있게 저장소와 캐시 등 서비스를 꾸준히 최적화하고자 해요.
2. 추천 시스템을 고도화하기 위해 필요한 서비스들을 개발 및 운영해요
추천 시스템이 고도화되면서 성능을 향상시키기 위한 LLM 임베딩 벡터의 활용이나 벡터 검색, 피쳐 로깅 시스템 등 여러 가지 서비스들에 대한 니즈가 증가하고 있어요. ML 데이터 플랫폼 팀에서는 이러한 서비스들을 구축해 추천 시스템을 고도화해요.
이런 분을 찾고 있어요
- 3년 이상의 경력이 있거나 혹은 그에 준하는 역량을 가지신 분
- 베스트 프랙티스대로 사용 가능한 프로그래밍 언어가 하나 이상 있고, 필요에 따라 새로운 언어를 배우는 데 거부감이 없는 분
- 분산 서비스 환경에서 신규 개발, 리팩토링, 고도화, 마이그레이션, 모니터링, 이슈 대응, 장애 대응, 프로파일링, 성능 최적화 등을 포함한 백엔드 서비스 라이프 사이클 전반에 대한 이해가 있으신 분
- ML 기반 시스템을 다뤄보는 것에 대해 관심이 있으신 분
위의 요구사항을 반드시 모두 만족해야 하는 것은 아니에요. ML 데이터 플랫폼 팀에서는 여러 배경과 경험을 가진 분들이 함께 성장할 수 있다고 믿으며, 위의 조건을 모두 충족하지 않더 라도 열정과 가능성을 보여주실 수 있다면 기꺼이 환영해요!
이런 분이면 더 좋아요!
- 저지연 대규모 트래픽을 처리하는 고가용성 백엔드 서비스를 구축하고, 운영한 경험이 있으신 분
- Kafka, GCP Pub/sub, Dataflow 등을 이용해 데이터 파이프라인을 구축해본 경험이 있으신 분
- ML 모델의 학습부터 서비스 배포 및 개선까지 ML flywheel에 대한 경험이 있으신 분
FAQ
-
팀 이름에 ML이 있는데요. ML 실무 경험이나 깊은 이해가 필요한가요?
- 아니요, 저희 팀은 ML기반 추천 서비스를 지탱하기 위한 고성능의 시스템을 만드는게 팀의 비전이기 때문에 Software Engineering 역량을 핵심으로 생각하고 있어요
- 팀에 조인하면 실무적인 ML과 추천에 도메인 지식을 습득해서 적응하실 수 있으니 해당 부분은 걱정하지 않으셔도 돼요
- 다만 팀 업무에 흥미를 위해서는 ML이나 추천에 많은 관심이 있기를 기대하고 있어요
-
팀에서 작성한 블로그 글이 있나요?
참고해 주세요
- 화상 면접에서 이력 기반 질문과 라이브 코딩 테스트가 있을 예정이에요
- C++, Go, Java, Python 언어로 진행하실 수 있어요
- 직무 면접에서 시스템 설계 테스트가 진행될 예정이에요
- 정규직 채용의 경우 3개월의 수습기간이 있어요
- 평가 결과에 따라 수습 기간이 연장되거나 채용이 취소될 수 있어요
- ‘장애인고용촉진 및 직업재활법’, ‘국가유공자 등 예우 및 지원에 관한 법률’에 따라 장애인 및 보훈대상자는 채용 전형 시 우대하고 있어요
이렇게 합류해요
1. 서류 전형 → 2. 화상 인터뷰(라이브 코딩 테스트) → 3. 직무 인터뷰 → 4. 컬처핏 인터뷰 및 레퍼런스 체크 → 5. 처우협의 → 6. 최종 합격 및 입사