페이스북 <로켓 스타트업 CTO들의 대화> : 박준철 CTO 강연 정리
3개월 소요되던 AI 모델 배포 주기가 1개월로 단축된 비결은?
어느 회사나 인재 유치는 가장 중요한 미션 중 하나입니다. 특히 회사의 주요 프로덕트와 관련된 인력은 더더욱 중요한데요. 이제 막 3번째 생일을 맞은 초기 스타트업 옴니어스가 경쟁력 높은 이미지 인식 AI 기술을 보유하고 있는 것도 능력 있는 개발자분들의 노력이 있었기 때문입니다.
개발 인력의 소중함을 잘 알고 있는 기술 기반 스타트업이기에, 옴니어스는 여러 시행착오를 거치며 건강한 개발 문화를 만들어 왔습니다. 이 과정에서 3개월이 소요되던 AI 모델 배포 주기가 1개월로 단축되는 성과도 있었고요. 지난 10월 5일 열린 페이스북 이노베이션 랩 세미나 <로켓 스타트업 CTO들의 대화>의 박준철 CTO님 강연에서 자세한 이야기를 들어보실 수 있었습니다. 이번 포스팅에서는 강연의 핵심만 골라 전해드립니다.
(옴니어스 CTO 준철님과 셔터 소리가 끊기지 않았던 세미나 현장)
안녕하세요, 옴니어스 CTO 박준철입니다. 오늘 세미나의 주제가 <로켓 스타트업 CTO들의 대화>인데요, 제 발표에서는 옴니어스가 어떻게 로켓을 만들어가고 있는지 구체적인 사례와 함께 말씀드리고자 합니다.
‘오늘 무엇을 입어야 할까?’
출근 전, 혹은 오늘 같은 특별한 날 외출 전에 누구나 한 번쯤 해 보았을 고민입니다. 입을 옷이 없어 맘에 드는 새 옷을 사려고 하다 보면, 내가 원하는 상품 “검색” 이 아직 어렵죠. 저희 옴니어스에서는 AI 기술을 패션에 접목하여 이러한 일상의 고민을 해결하고자 노력하고 있습니다. 이를 위해 현재 개발된 태거Tagger를 시작으로 고객의 문제를 해결하는 다양한 서비스를 개발 중이기도 하고요. 그렇다면 옴니어스에서는 AI 기술을 어떻게 실제 사용 가능한 제품으로 만들어나가고 있을까요?
일반적으로 스타트업에서 소프트웨어 서비스는 애자일 프로세스를 통해 점진적으로 제품이 구현되는데요, 이렇게 구현된 소프트웨어는 버전 관리가 되는 코드 저장소를 기반으로 CI/CD 파이프라인을 통해 클라우드 환경에 배포가 되어 고객이 사용할 수 있게 됩니다. 내부적인 QA 결과와 고객으로부터의 피드백은 Planning 과정을 통해 다음 배포에 반영되는데, 이러한 과정이 주기적으로 반복되어 점진적으로 향상된 제품이 고객에게 전달됩니다.
일반적인 제품 개발 과정과 달리, 태거와 같은 AI 서비스의 경우에는 AI Model도 code와 같이 배포가 이루어져야 합니다.
AI 서비스의 딥러닝 모델 개발은 잘 정리된 데이터로부터 시작됩니다. 그래서 패션 데이터 모델링 과정과 데이터 수집이 중요한 프로세스 중 하나입니다. AI 연구자에 의해 디자인된 딥러닝 모델은 GPU 서버에서 패션 데이터의 학습 과정을 거쳐 배포 가능한 모델 형태가 됩니다. 이러한 모델은 별도의 관리되는 모델 저장소를 거쳐 코드와 함께 배포됩니다. 배포된 패션 AI 서비스는 고객이 사용할 수 있게 되며, 일반적인 서비스와 마찬가지로 고객의 피드백이 반영되어 점진적으로 개선되는 제품을 지속적으로 전달하고 있습니다.
이를 위해 옴니어스에서는 일반적인 제품 전문가로 구성된 팀에 더해 패션 전문가와 AI 및 Data 전문가로 구성된 도메인 전문가들이 함께 일합니다. 서로 다른 배경을 가진 도메인 전문가들이 같이 일을 진행하기에 상호 커뮤니케이션이 매우 중요한데요. 물론 여러 도메인의 사람들과 일을 진행하며 서비스를 만들어 나가는 것이 쉽지만은 않았습니다. 그래서 저희는 제품 개발의 생산성을 어떻게 하면 높일 수 있을까 많이 고민했고, 다양한 시도 끝에 3개월이 소요되던 AI 모델 배포 주기를 1/3인 1개월로 단축하였습니다.
약 1년 전 모델을 새로 학습하여 배포하기 위해서는 변화된 패션 데이터 모델링 정책에 따라 패션 데이터를 추가로 수집하고, 추가로 수집된 패션 데이터 셋을 바탕으로 모델 학습을 진행해야 했습니다. 학습이 완료된 모델은 QA 과정을 거쳐 서비스 코드와 함께 배포가 진행되는 식이었는데요.
그동안의 축적된 경험을 통해 현재는 패션 데이터 모델링 정책이 어느 정도 안정된 상황에서 패션 데이터가 지속적으로 수집되고 있습니다. 그래서 대부분의 경우 최근까지 축적된 패션 데이터로 모델을 다시 학습하기만 하면 됩니다. 그래서 학습된 model이 준비가 되는 대로 QA가 바로 이루어지고 있으며, 모델을 배포하는 과정도 CI/CD pipeline을 통해 자동화가 되었습니다.
자동화를 통해 업무 효율성을 향상시킨 데에는 저희 회사만의 애자일 방법론이 큰 역할을 했습니다. 저희는 AI 소프트웨어를 개발함에 있어 애자일 방법론을 적용하고 있습니다. 다만 시행착오를 거치며 애자일의 기본적 가치에 AI 기업으로서 필요한 가치를 더하게 되었습니다. '데이터의 양보다 데이터의 활용을 가치있게 여긴다'가 그것입니다. 따라서 저희 팀은 다음 5가지 사항을 가치 있게 여깁니다.
- 프로세스나 도구 그 자체에 매몰되기보다 협업을 위한 팀원 간의 소통 그 자체를 중요시합니다.
- 새롭고 가치 있는 제품을 만들어 나가기 위해서 한 번에 모든 것을 계획하기는 어렵습니다. 그래서 단계별로 MVP를 정의해 나가며 실제로 작동하는 제품을 전달하고자 합니다.
- AI 소프트웨어 개발은 데이터가 중요합니다. 데이터가 많을수록 좋지만, 그것보다 중요한 건 데이터를 얼마나 효율적으로 활용하는가입니다.
- 또한, 고객에게 단순히 기술을 공급하는 것이 아니라 반복적인 커뮤니케이션과 제품 전달 과정을 통해 고객의 문제를 같이 해결해 나가는 것을 지향합니다.
- 계획 단계에서 모든 것을 완벽하게 고려하기는 어렵습니다. 그래서 좀 더 변화에 유연하게 대응하는 것을 지향합니다.
이런 핵심 가치에 집중하기 위해, 반복적인 회고 프로세스로 옴니어스만의 애자일 프로세스를 차근차근 구성해 나가고 있습니다. 우선 주기적인 스크럼 방식의 Sprint Planning, Daily Standup Meeting, 리뷰 과정과 맞물려서 회고를 진행합니다. 이 회고 과정에서 해당 스프린트 기간 동안 잘 된 것들과 아쉬웠던 것들에 대한 팀원들의 의견을 수렴하여 다음 스프린트에 하나씩 개선 방안을 실험해 봅니다. What I Learned This Week라는 것도 그 과정 중 도출된 Action Item 중 하나입니다. 2주에 한 번씩 개발 팀원들 모두가 각자 업무를 하면서 배운 내용들을 공유합니다.
초반에 프로세스가 정착되기 전에는 혼란의 시기도 겪었지만, 욕심내지 않고 우리의 상황에 맞는 프로세스를 찾아나간다는 마음으로 회고를 진행해오고 있는데요. 지금은 제품의 배포 속도도 3배 향상되었고 팀원 개개인의 업무 만족도도 높은 상태입니다.
이렇게 업무 효율성을 높이는 과정에서 팀원 모두가 공감했던 의견이 하나 있습니다. 여러 사람이 모여 다소 시끄러울 수 있는 사무실이 일을 밀도 있게 하기에는 좋지 못한 환경이라는 점이었는데요.
저희는 창업 당시부터 리모트 근무 제도를 운영해 왔습니다. 저도 팀이 꾸려질 무렵부터 공동창업자로서 리모트 근무 운영을 함께했고, 이에 필요한 여건을 자연스레 갖춰나가게 되었는데요. 회사 내 Wiki에 사내 협업 툴 사용 가이드와 함께 리모트 근무에 대한 가이드가 마련되어 있습니다. 옴니어스에서 일하시는 모든 분 들은 주 1회 자유롭게 사무실 외의 공간에서 리모트 근무를 진행하실 수 있습니다. 구글 캘린더에 일정을 미리 올려두기만 하면 됩니다. 다른 팀원분들의 휴가 일정과 함께 리모트 일정도 캘린더를 통해 함께 공유가 되고, 사내 메신저 슬랙을 통해 매일 모두에게 알림이 갑니다.
옴니어스의 엔지니어들은 대부분 맥북을 사용하여 개발을 진행하고 있으므로 리모트 근무를 하더라도 사무실과 동일한 환경에서 개발이 가능하며, Bitbucket과 같은 중앙 git 저장소를 통해 코드가 공유되고 온라인으로 코드 리뷰가 진행됩니다. 리모트 근무 중 필요하다면 슬랙이나 구글 행아웃을 통해 바로 화상 회의를 진행함으로써 리모트 근무로 인한 의사소통의 제약은 최소화하고 있습니다. 실제로 올해 8월부터 9월까지 약 1달 동안 슬랙의 설문조사 App을 통해 사내 구성원들에게 익명으로 리모트 근무에 대해 설문을 진행했는데, 80% 이상의 응답자가 리모트 근무가 업무 생산성을 높인다고 답했으며 부정적으로 응답하신 분은 없었습니다.
리모트 근무가 효율적인 업무를 위해 만들어진 제도라면, 지금부터 소개해 드리는 제도들은 팀원 간 원활한 소통을 위해 만들어진 것들입니다.
옴니어스에서는 격주간 슬랙봇의 1:1 랜덤 매칭을 통한 미팅이 이루어집니다. 평소 업무가 겹치지 않는 등의 이유로 이야기를 나누기 어려웠던 팀원 분과 미팅을 진행하며 새로운 아이디어를 나누고, 팀워크를 돈독하게 하는 캐주얼 미팅입니다. 또한 매주 금요일 오전에 30분간 진행되는 스무디 미팅에서는 모든 팀원들이 근처 카페에 모여 맛있는 스무디, 혹은 커피를 마시며 대화를 나눕니다. 스무디 미팅이 시작되던 2017년 중순, 회사 근처의 스무디 카페에서 모임을 가졌기에 스무디 미팅이라는 이름이 붙었는데요.
리모트 근무로 인해 보통 화요일부터 목요일까지는 모든 팀원들이 한자리에 모이기 어렵습니다. 주 1회 스무디 미팅을 통해 팀원 전원에게 전달되어야 하는 회사의 이슈가 공유되기에 이로써 정보의 불균형이 방지됩니다. 종종 다양한 업계에서 활동하시는 유명인사들을 초청해 강연을 듣는 시간을 가지기도 합니다.
그 외에도 모든 팀원이 한자리에 모여 회사 전체의 비전을 공유하고 친목을 다지는 워크샵을 연간 1~2회 정도 다녀옵니다. 가끔 금요일 해가 떠 있을 때 다 같이 한강 공원으로 소풍을 가거나 볼링을 치는 등 다 같이 즐길 수 있는 놀이 활동도 하고 있고요.
불필요한 야근 강요는 당연히 없습니다. 일찍 출근을 하면 일찍 퇴근하는 자율 출퇴근 제도가 있어 실제 8시에 출근해 5시에 퇴근하시는 분들도 계실 정도입니다. 이 때문에 업무시간 중 집중도가 높은 편입니다. 개인의 업무 역량 발전을 위한 도서 구매, 외부 강연 및 컨퍼런스도 지원됩니다.
그리고, 저희는 함께 옴니어스만의 개발 문화를 만들어 갈 개발자분들을 찾는 중입니다.
세상에 없던 새로운 제품을 만드는 일은 분명 쉬운 일은 아닙니다. 그렇기에 우리는 최선의 성과를 위해 소통과 협업에 열려 있습니다. 또한, 새로운 제품을 만들기 위해 새로운 생각을 함께 만들어야 한다고 생각합니다. 세상을 바꿀 새로움을 함께 만들어 나갈 분들과 함께 할 수 있으면 좋겠습니다.
감사합니다.
많은 분들께서 현장 사진을 촬영하시느라 찰칵 소리가 끊이지 않았던 준철님의 강연! 강연이 끝나고 진행된 네트워킹 세션에서도 많은 분들께서 옴니어스에 큰 관심을 보여 주셨습니다. 오늘 강연 내용이 개발 문화 형성을 고민하고 계신 분들께 도움이 되었으면 하는 마음입니다. 좋은 개발자분께서 옴니어스를 선택하시는 데 참고가 되신다면 더 바랄 것이 없겠고요!