쿠팡 김범석 대표가 자바 개발자 행사에 등장한 이유
“쿠팡에선 기술이 전부라 해도 과언이 아니다. 모든 분야에 기술이 중심에 있다. 밖에서는 쿠팡을 ‘쿠팡맨’으로 기억하지만, 그 뒤에는 쿠팡의 기술, 그 뒤에는 오픈소스가 있다.”
김범석 쿠팡 대표가 21일 서울 잠실 쿠팡 사옥에서 열린 ‘2018 스프링캠프(Spring Camp)’에 깜짝 등장했다. 스프링캠프는 국내 최대 스프링 프레임워크 사용자 커뮤니티인 한국스프링사용자모임(KSUG)이 주관하는 행사다. JVM(Java Virtual Machine) 기반 백엔드 시스템, 또는 서버사이드 영역을 개발하는 애플리케이션 서버 개발자가 한 곳에 모여 IT기술과 정보, 경험을 공유하는 자리다. 이날 행사는 주말임에도 불구하고 스프링 프레임워크를 쓰는 전국 300여 명의 개발자가 모였다.
이날 김 대표의 등장은 예정되어 있던 일은 아니다. 자리에 있던 쿠팡 직원들도 “김범석 대표가 직접 올지는 몰랐다”고 말했다. 김 대표의 깜짝 방문은 쿠팡이 오픈소스 진영을 최대 파트너로 생각하고 있다는 것을 강조하기 위한 행보다.
김 대표는 이 자리에서 “밖에서는 (쿠팡을) 쿠팡맨이 대표하지만, 그 뒤에는 쿠팡의 기술이 있고 또 그 뒤에는 오픈소스가 있다”고 강조했다. 그는 이어 “쿠팡이 얼마나 오픈소스의 도움을 받고 컸는지 알려야 했다”며 “쿠팡에서 왜 개발자 행사를 후원하는지, 또 쿠팡에 왜 이리 많은 개발자가 필요한지를 설명하고 싶다”고 덧붙였다.
그는 “쿠팡에선 기술이 전부라고 해도 과언이 아닐 정도로 모든 분야에 기술이 중심에 있다”며 물류를 예로 들었다. 예컨대 미국 오프라인 유통 채널의 대표적 모델이 월마트다. 월마트는 통상 12만개의 재고를 보유하고 있고, 이를 45일만에 소진한다. 일년에 8번의 재고 회전이 생기는데, 월마트 전에는 불가능한 일이었다. 12만개에 달하는 물건의 수요 예측을 한다는 것이 어려운 일이기 때문이다.
쿠팡은? 김 대표에 따르면 쿠팡은 수백만개 가짓수의 4000억개 이상 재고를 한 달 만에 소진한다. 일 년이면 열두 번의 재고 회전이 생겨난다. 그는 “시즌별 수요 예측은 물론, 각 물류센터에 얼마만큼의 물건을 보낼지까지도 모두 계산해야 한다”며 “몇 분 단위로 재고와 배송의 조합을 빨리하는 기술 예측으로 전통적인 트레이드 오프 시스템을 깬 것인데 이 기술은 쿠팡 혼자 만든 것이 아니다”라며 오픈소스의 중요성을 강조했다.
쿠팡을 만든 것은 8할이 기술이고, 그 뒷배경엔 오픈소스가 있다는 설명이다. 쿠팡은 이날 ‘테크 블로그’를 신설, 오픈소스 커뮤니티와 밀접한 관계를 이어갈 것이라고 밝히기도 했다.
이날 행사에는 정재훈 쿠팡 개발자가 마이크로 서비스 아키텍처(MSA)를 도입하며 겪은 경험담을 공유하기도 했다. 정 엔지니어는 2013년 9월 쿠팡 플랫폼에 조직에 입사한 쿠팡의 7번째 멤버로, 쿠팡의 ‘클라우드 마이그레이션 프로젝트’를 이끌었다.
쿠팡은 지난 2015년 초에 자체기술로 마이크로 서비스 아키텍처를 완성했다. 지난해 9월에는 국내서는 처음으로 대규모 클라우드 이전에 성공하기도 했다.
정 개발자는 이 자리에서 쿠팡이 지난 5년간 국내에서 단일 서비스로서는 가장 큰 MSA를 구축하면서 어떤 도전들이 있었고, 그 도전들을 어떻게 풀어 나갔는지에 대해 이야기했다. MSA는 쿠팡 같은 서비스를 아주 작은 단위의 모듈(마이크로 서비스)로 잘게 쪼개, API를 통해 연결해 만드는 것을 의미한다. 레고블록을 조립하듯 시스템을 개발할 수 있다.
정 개발자는 수백 개의 마이크로 서비스(micro-service)를 안정적으로 운영할 수 있게 한 서비스 플랫폼이 무엇인지, 그 과정에서 어떠한 문제를 발견했고 어떻게 해결했는지를 설명했다.
그는 쿠팡이 기술 조직으로 성장하며 겪은 변곡점을 크게 세 가지로 꼽았다. 첫째가 PHP에서 자바로 서비스를 변환시킨 것이고 둘째가 모놀리틱(Monolithic) 아키텍처에서 마이크로 서비스 아키텍처(MSA)로 변화이며, 마지막 세번째가 전사 서비스를 클라우드로 이관한 것이다.
이중 특히 강조한 것이 MSA로 변화다. 쿠팡은 MSA를 기반으로 하루에 약 100회 이상의 배포를 이상없이 실행할 수 있게 됐다. 이는 100여 가지의 다양한 업데이트와 신기능 도입이 이뤄진다는 의미기도 하다.
정 개발자에 따르면 쿠팡니 MSA를 도입하기 전인 5년 전에는 모놀리틱 아키텍처(쿠팡 시스템 전체가 통으로 하나인 아키텍처)를 썼고, 부분의 장애가 전체 서비스 장애로 번지는 일이 굉장히 빈번했다. 그는 “작은 서비스 배포에도 전체 서비스의 품질 테스트를 매번 진행했어야 한 것이 큰 비용이었다”고 지적했다.
이 뿐 아니다. 데이터베이스(DB)의 필드를 수정할 때도 어떤 부작용이 일어날지 예측할 수 없었으므로 작은 수정과 배포에도 회사 전체에 이메일을 보내고, 어떤 곳에서 오류가 일어난 부분을 사용하는지를 모든 사람들을 일일히 찾아다니며 알아내고 테스트해야하는 번거로운 과정을 거쳤다.
아울러 여러 컴포넌트가 하나의 서비스로 구성되어 있다보니 특정 부분의 스케일아웃(필요한 용량에 맞춰 노드만 추가 확장하면서 전체가 하나의 시스템으로 보이게 하는 것)이 어려웠다. 또 이용자가 쿠팡 사이트에서 상품을 고르고 주문하고 배송하는 전 기간의 트랜젝션이 하나로 구성되어 있어, 어느 한 부분의 오류를 고치기 위해서는 전체 아키텍처를 손봐야 하는 번거로움이 컸다.
이같은 불편은 쿠팡이 작은 조직일 때는 그나마 감당할 수 있는 것이었다. 그러나 쿠팡이 계속해 성장하면서 자동화 시스템의 필요성이 굉장히 커졌다. 쿠팡이 MSA를 도입한 이유다.
정 개발자는 “쿠팡에서는 하루에 100번, 최근엔 200번 이상의 서비스 배포가 일어나고 있고, 2000대 이상의 인스턴트를 배포하고 있다”며 “빠르게 기능을 배포하고 고객 피드백을 받아 개선할 수 있는 강력한 자동화 배포 시스템이 필요했다”고 강조했다.
클라우드 이전 작업에 대한 설명도 했다. 쿠팡은 지난해 8월 대규모 클라우드 이전 작업을 자체기술로 3개월만에 마무리했다. 정 개발자는 “2015년 초 마이크로 서비스 아키텍처를 완성하면서 3년 이상 쌓아온 운영 노하우로 24시간 365일 서비스를 지속하면서도 서비스 중단이나 장애 없는 빠른 이전을 완성할 수 있었다”고 설명했다.
쿠팡 측은 행사에서 ‘개발자 중심 조직’이라고 회사 정체성을 누차 강조했다.
쿠팡은 수백만 가지 상품의 재고를 실시간으로 파악해 고객에게 정확한 가격으로 판매해야하는 필요가 있다. 또 이 제품은 99.7% 가 소비자에 다음날 배송되는 구조를 갖추고 있다. 수백만 가지의 상품이 만드는 조합을 실수 없이 제품 검색부터 제품 입출고, 재고 파악, 주문, 결제를 완료해 차질 없이 배송하는 것에는 보이지 않는 기술이 적용됐다.
즉, 밖으로 보여지는 쿠팡의 모든 혁신 서비스가 쿠팡의 개발자들이 자체적으로 만들어낸 결과라는 것이다. 이 회사 측은 “이런 시스템이 쿠팡에 많은 개발자가 필요한 이유”라며 “한국에서는 누구도 이런 스케일에 도전을 한 적이 없다”고 말했다.
쿠팡은 향후 스프링캠프를 비롯, 오픈소스 행사에 적극 참여한다는 계획이다. 쿠팡 관계자는 “이번 행사를 통해 쿠팡의 개발에 대한 강한 의지를 엿볼 수 있을 것”이라며 “쿠팡은 실력과 경험을 갖춘 개발자들을 국내외에서 채용해 서울과 실리콘밸리, 시애틀,상하이, 베이징 등 세계 각국의 오피스에서 고객을 위한 혁신적인 서비스 개발에 집중하고 있다”고 강조했다.
글. 바이라인네트워크
<남혜현 기자> smilla@byline.network