[get Server!] 서비스와 개발자가 함께 성장하는 카카오 커머스플랫폼개발팀입니다.

카카오 커머스플랫폼개발팀에서 함께할 크루를 기다리고 있습니다. [영입공고 보기]

4천만 사용자가 함께하는 선물하기를 비롯하여 카카오의 주요 커머스 서비스를 제공하는 커머스플랫폼개발팀에 대해 소개해 드릴께요.

 

카카오 커머스플랫폼개발팀은요.

카카오 조직도의 “카카오 > 커머스CIC > 커머스CTO”에 위치해 있어요.

CIC라는 단어가 낯설게 들리실 수 있는데요. CIC는 큰 조직에서 올 수 있는 단점을 보완하고, 속도감 있게 업무를 진행할 수 있도록 의사결정 체계와 보상 체계의 자율성, 독립성을 갖춘 카카오 내 조직 형태 중 하나예요.

카카오 커머스 부문이 2022년 8월 8일자로 사내독립기업으로 전환되었고 급변하는 이커머스 시장에 맞춰 빠르게 사업을 전개함으로써 카카오만이 할 수 있는 커머스 서비스를 강화하는 목표를 가지고 있어요.

카카오 뿐만 아니라 덩치가 큰 기업에서는 CIC를 운영하는 사례를 종종 보실 수 있는데요. 다만 커머스CIC는 카카오의 주요 사업영역이기 때문에 분사를 전제로 CIC를 만든 것은 아니랍니다. 입사하시게 되면 경력증명서의 회사명은 “카카오”로 나와요.

 

이런 일들을 했어요.

카카오는 매년 다양한 주제로 ifkakao라는 컨퍼런스를 열고 있는데요.  ifkakao 발표자료를 통해 커머스플랫폼이 해온 일들을 소개해드릴께요.

 

커머스플랫폼개발팀은 2019년부터 매년 ifkakao에 해온 일들을 공유하고 있어요.

2019년에는 <대용량 데이터 처리>와 <레거시 코드 개선>이 화두였어요. 서비스가 빠르게 성장하다보니 DB 스토리지가 부족해졌고 다양한 요구사항에 맞는 데이터를 제공하는게 중요해졌어요.

“밑바닥부터 시작하는 커머스 데이터 엔지니어링 고군 분투기”는 실시간으로 발생하는 주문 데이터를 처리를 위해 Scala 기반의 Spark을 도입하고 Data warehouse를 만드는 과정을 공유했었어요.

대량의 데이터를 다루고 실시간 처리도 해야하다보니 혹시 모를 장애상황에 대비가 필요했는데요. ‘새벽에도 맘 편히 잘 수 있는’ 튼튼한 백엔드를 만들기 위해 기반을 다지는 시기였습니다.

“초당옥수수의 취소를 막아라! : 수만 건의 주문을 1초내에 처리하는 기술”에서는 복잡한 비지니스 코드를 리팩토링 하고 대량처리 속도를 개선하기 위한 과정을 발표했었어요. 확장성 있고 안정적인 구조를 만들기 위해 고민했던 내용들을 소개했고 레거시 코드를 개선하면서 ‘일하면서 성장한다’는 것을 느낄 수 있어서 보람있었던 프로젝트였습니다.

2020년에는 JVM 기반의 MSA 환경에서 대량의 트래픽을 안정적으로 처리하기 위해 알아야 하는 G1 GC 특징과 이것으로 인해 발생할 수 있는 장애상황에 대해서 소개했는데요. 선물하기는 매년 빠르게 성장하는 서비스로 특히 빼빼로데이나 크리스마스에는 평소보다 몇 배 많은 대량 트래픽을 받아야 해서 긴장하며 모니터링 하고있어요. 이런 이슈 데이를 견뎌내려면 평소에도 서버 상태 변화를 모니터링 하고 이상한 현상을 발견했을 때 의문을 갖아야 큰 장애가 발생하기 전에 막을 수 있는 것 같아요. 호기심 많고 딥다이브 할 수 있는 동료들이 곁에 있고 이 분들과 함께 일하다보면 저도 자극을 받고 계속 성장해야겠다는 동기부여가 되는 것 같아요.

2021년에는 2개의 발표가 있었는데요. “Open Water Diver? OpenSource Diver!”는 무려 커머스플랫폼개발팀 막내의 발표였어요. 신입개발자가 얼마나 딥다이브 할 수 있느냐를 보여주는 발표였는데요. 이제는 그 막내 개발자가 타칭 “치~부장님”이라고 불리우며 본인의 역할을 톡톡히 하고 있어요. 그리고 또 하나.. “Commerce Query data Rebuild Success 했을까?”는 이 프로젝트를 함께 한 사람들은 눈물없이 들을 수 없는 발표였는데요.

커머스플랫폼개발팀에서 해야할 일들은 많았지만 우선순위 1위를 고수하며 꾸준히 개발내부과제로 진행해온 일감이였어요. 주문데이터를 CQRS를 이용해 해결했던 경험을 공유했는데요. 1개의 주문DB를 10개의 DB로 샤딩하는 엄청난 작업을 했어요. 

주문 데이터를 선물받은 사람 기준으로 다시 MongoDB에 마이그레이션 해 놓고 신규 API를 개발해 기존보다 월등히 향상된 성능의 API를 제공했어요. 백엔드의 스토리지 변화가 컸기 때문에 혹시 선물하기 서비스의 선물함에 잘못된 데이터가 노출되지 않을까 싶어 수억건의 주문 데이터를 모든 유저에 대해 100% 전/후 비교하는 검수과정도 거쳤었어요. 총 8회에 걸친 전수검수 과정은 정말 눈물없이는 들을 수 없을거예요. 하지만 우리는 끈기있게 했고 성공적으로 오픈했습니다.

 

커머스플랫폼개발팀에서 사용하는 기술

  • Java, Kotlin, Scala, Spring, Spring Boot, Gradle
  • MySQL, JPA, Hibernate, MongoDB, Elastic Search, Redis, Arcus
  • Spark, Hadoop, Zookeeper
  • Kafka, RabbitMQ
  • Kubernetes, Docker, Vault, ArgoCD
  • Git, Jenkins, JIRA, Ansible

 

이런 분들이 오시면 좋을 것 같아요.

저희도 이런 사람이 되기 위해 꾸준히 노력하고 있어요.

  • 나만의 전문영역을 만들고 꾸준하게 노력하시는 분
  • 기본을 중요하게 여기고 서버 설정도 꼼꼼하게 잘 만드시는 분
  • 쉽게 포기하지 않는 분
  • 주위에 관심을 갖고 내 일은 무엇이든 될 수 있다고 생각하시는 분
  • 쉽게 가려 하지 않고 처음 만들어진 구조를 잘 유지하면서 개발하시는 분
  • 상황을 보니 이런게 필요할 것 같다고 해서 준비하시는 분
  • 문제가 발생했을때 원인을 분석하고 해결해 나가는 것을 좋아하시는 분

커머스플랫폼개발팀에 오신다면 하고싶은 건 얼마든지 해보세요. 주변에 관심을 갖으면 경험해볼 수 있는게 많이 있어요. 

어떤 이슈가 발생했다면 할 수 있는데까지 해봐요. 그래도 안되면 어쩔 수 없죠.

처음에 프로젝트 구조를 잡을 땐 아름답게 출발해요. 하지만 점점 이 코드도 레거시가 되죠. 처음부터 잘못 만들어진 프로젝트는 없어요. 코드리뷰 하면서 구조를 잘 유지해가면 좋겠어요.

 

팀에는 이런 분들이 있어요.

커머스 경험자가 아니라도 함께 일하는데 문제 없어요. 팀 동료들이 도와줄거예요.

  • 3년 이하의 경력을 가진 팀원은 27%예요
  • 카카오가 첫 직장인 팀원은 31%예요
  • 카카오에서의 평균 근속년수는 4년 4개월이예요
  • 전직장이 비커머스인 팀원은 80%예요
  • 전직장이 스타트업/중소기업인 팀원은 22%예요
  • 비전공자 팀원은 19%예요

 

커머스플랫폼개발팀 크루들의 한마디!

💬 anne.jy

일 잘하고 친절한 동료들, 재밌는 업무, 이상적인 개발 프로세스까지 갖춘 곳은 찾기 어려워요. 하지만 이곳이 바로 그런 곳입니다. 같이 일하며 더 나은 개발자가 되는 경험을 함께 하고 싶습니다.

💬 sophie.re

포켓몬빵의 엄청난 트래픽을 경험하면 당신도 대용량 트래픽 전문가!

💬 jayou.k

내가 만든 소중한 서비스가 수많은 유저들에게 추앙 받을수 있는 기회를 경험해 보세요. 대용량 트래픽과 수많은 데이터들…. 오히려 좋아!!

💬 mason.kwon

뛰어난 커머스 크루들과 함께 같이 성장할 수 있어요!

 

이력서에는 이런 내용이 담겼으면 해요

  • 일하면서 경험했던 기술들과 주로 어떤 일들을 담당했는지 적어주세요.
  • MSA에 개발 경험이나 대용량 트래픽 처리를 위해 고민한 내용이 있으면 적어주세요.
  • 개발자로서 성장을 위해 꾸준히 하는 것이 있다면 적어주세요.
카카오톡 공유 보내기 버튼

Latest Posts

제5회 Kakao Tech Meet에 초대합니다!

Kakao Tech Meet #5 트렌드와 경험 및 노하우를 자주, 지속적으로 공유하며 개발자 여러분과 함께 성장을 도모하고 긴밀한 네트워크를 형성하고자 합니다.  다섯 번째

테크밋 다시 달릴 준비!

(TMI: 이 글의 썸네일 이미지는 ChatGPT와 DALL・E로 제작했습니다. 🙂) 안녕하세요, Kakao Tech Meet(이하 테크밋)을 함께 만들어가는 슈크림입니다. 작년 5월에 테크밋을 처음 시작하고,