*아래 내용은 PPSS《전 웨이브 CTO, 아마존코리아 이사, 34년 경력의 개발자가 세특에 합류한 이유: 세탁특공대 CTO 필릭스 인터뷰》에서 발췌했습니다. 전 웨이브 CTO, 아마존코리아 이사를 거쳐 세탁특공대를 고른 이유 필릭스: 세탁특공대 CTO로 새롭게 합류한 필릭스입니다. 이전에는 아마존코리아에서 국내 IT 대기업 C레벨들을 컨설팅했으며 OTT 서비스 웨이브의 CTO로 일하기도 했습니다. 요즘은 나는 Java 개발자다, 나는 C# 개발자다, 나는 프론트다… 다들 이렇게 뚜렷한 전문 영역과 언어를 가지려고 해요. 예전에는 그렇지 않았어요. 제 경우 웹과 앱은 물론, 교통 시스템, 카드 결제, OTT 전체 총괄에, 아마존에서는 대기업 기술 컨설팅까지 했으니까요. 합류하게 된 이유는 세탁특공대는 다양한 분야의 개발자가 필요한 곳이고, 그런 다양한 분들을 키울 수 있을 곳이라 생각했습니다. 사용자들은 앱만 보겠지만, 세특은 다양한 개발 영역이 함께 합니다. 앱 서비스는 B2C, 보이는 뒤편의 배송 관리 등은 물류 B2B, 여기에 스마트팩토리 공장은 IoT(사물인터넷)이 필요합니다. 세탁 과정에서 트래킹한 데이터는 클라우드와 딥러닝에 접목시킬 수 있고요. 단순히 한두 가지 영역에 집중하는 게 아니라, 이들 서비스가 잘 맞물려야 하지요. 국내에 이런 서비스는 많지 않습니다. 일례로 기존 공장을 IoT로 전환하려면 굉장히 큰 투자를 필요로 해요. 하지만 세탁특공대는 처음부터 스마트팩토리로 지어서, 유연한 실험이 가능하다는 게 장점이죠. 배송된 세탁물은 IoT 기술에 의해 분류되어 세탁된다. 모든 과정에서 다양한 개발이 필요하다. 실험을 통해 정교한 클라우드를 만들 수 있습니다. 공장에서 일어나는 모든 실시간 액션이 클라우드로 올라가요. 1분 동안 몇 벌의 셔츠를 다 릴 수 있는지, 이 셔츠는 각각 무슨 색인지, 공장 내부 온도는 몇 도인지 등을 측정해서 계속 클라우드로 전송하죠. 또 서버는 데이터에 기반해, 계속해서 기계와 소통해요. 예를 들어 건조기 내부의 온도가 평소보다 20도 높다고 측정된다면 기존에 쌓아온 데이터 중 온도가 높을 때는 어떻게 처리했나, 이런 걸 불러와서 적용하게 되죠. 이게 딥러닝으로 쌓이고 쌓일수록 정교해집니다. 새로운 것을 열린 마음으로 습득하는 능력을 가지는 것의 중요성 필릭스: 제가 30년 넘게 업무를 해올 수 있었던 건, 제가 ‘java개발자다’ 식으로 어떤 개발자인지 정의하지 않았기 때문이에요. 특정 언어의 개발자가 아닌 IT 엔지니어라고 스스로를 생각해 왔죠. 개발도, 엑셀을 쓰다가 구글 스프레드시트를 쓰는 것에 가깝다고 생각해요. 이렇게 다양한 기술과 언어, 플랫폼 공부를 일하며 배워나가는 분이 세탁특공대와 함께 했으면 좋겠어요. 저만 해도 웨이브에서 ‘카산드라’라는 NoSQL서버를 국내에서 거의 최초로 도입했어요. 당연히 혼자 할 수는 없으니 동료 엔지니어들과 함께 공부해서 도입했죠. 또 아마존에서 한국 지역에 kubernetes를 제공하기도 전에 직접 구축해서 시작했고요. 함께 공부할 의지만 있으면 얼마든지 잘하는 것은 가능합니다. 처음에는 새로운 걸 배우는 게 힘들긴 합니다. 하지만 여러 새로운 것을 접하다 보면, 점점 다른 걸 배우기 쉬워져요. 그러면서 다른 개발자와 격차가 생기는 거고요. 제 인생을 돌아봐도, 처음에는 내가 왜 단말기 하드웨어까지 해야 하나 고민할 때도 있었어요. 하지만 제 기술과 경험이 다양해질수록 가능성도 커졌고, 결국에는 원했던 웨이브, 당시 푹의 CTO로 가게 됐죠. 그 당시 푹의 문제는 무한도전 실시간 서비스만 하면 서버가 죽는 거였어요. 옛날 서비스니 3계층(3-tier)으로 돌아가고 있었는데, 한계에 부딪힌 거죠. 저는 이를 클라우드화 하고, 모노리스(monolith; 단일구조)를 마이크로 서비스(MSA; Microservice Architecture)로 바꾸어 나갔어요. 이후 인기 드라마가 나올 때마다 동시접속자 수가 역대 최고를 찍었는데도, 흔들림 없는 튼튼한 플랫폼이 됐죠. 푹을 거치고 최근에는 아마존 코리아에서 ETP를 담당했습니다. Executive Technology Partner. 아마존 고객사의 C 레벨을 대상으로, 고객사의 기술적인 문제를 컨설팅해드렸어요. 예로 국내 대기업이 영상 서비스를 만들면, 고객사 CTO님께 글로벌 영상 서비스가 아마존의 기술을 어떻게 썼는지 적절한 활용 사례를 알려주는 기술 컨설턴트였죠. 국내에서는 총 6분이 각자에게 맞는 카테고리를 맡았어요. 덕택에 아마존의 최신 기술을 빠르게 습득할 수 있었죠. 아마존은 거대한 생태계니, 정말 온갖 어플리케이션이 있거든요. 이럴 때 이런 기술을 써야 한다, 이걸 최전선에서 배우고 적용할 수 있는 기회였습니다. 모노리스 구조를 MSA로 전환하는 시도가 개발자 경력에 더해줄 장점 필릭스: 현재 세특의 개발 상황은 많이 부족합니다. 하지만 그렇기에 도전할 과제가 정말 많기도 합니다. 당장 MSA로 마이그레이션해야 하는 상황이에요. 현재는 모노리스 상태인데, 아직까지는 효율이 나쁘진 않아요. 하지만 점점 시스템이 복잡해지면서 뭔가를 수정했을 때 다른 기능에 영향을 주는 경우가 생겨나고 있습니다. 그래서 모두 분리되어 있는 마이크로 서비스로 개편할 계획입니다. 완전히 레거시를 걷어내는 데 시간이 필요할 거예요. 웨이브의 경우는 한 4개월 만에 끝냈는데, 이때는 팀원들이 오래 같이 일한 상태라서 합이 잘 맞았거든요. 세특은 그보다는 좀 더 걸리지 않을까 싶습니다. 레거시를 마이크로 서비스로 전환하고 운영하는 경력이 지금 시장에서는 굉장히 핫합니다. 어느 정도냐면 헤드헌터가 저에게 “웨이브 다니다 그만둔 사람 있으면 다 소개해 달라”는 말을 한 적도 있어요. MSA 전환 경험이 그만큼 가치가 있는 거죠. 또한, 트래픽 총량을 늘어난 경험에서도 가치 있습니다. 포털처럼 자주 접속하는 서비스는 아니니, 클라이언트 트래픽이 높지는 않죠. 하지만 세탁공장에서 오는 실시간 트래픽과 수거/배송을 담당하시는 분들의 데이터 액세스가 아주 많아요. 이분들은 새벽 특정 시간대에 몰아서 접속합니다. 이 시간 트래픽을 잘 버텨야 하죠. 세탁특공대는 새벽에 수거하고 배송한다. 이때의 트래픽을 버티는 것이 중요하다. 세탁특공대 공장과 배송을 체험한다는 것은, 정말 고도화된 물류센터의 IT를 경험할 기회이기도 합니다. 들어오는 세탁물을 규격화하는 게, 입고되는 제품을 규격화하는 것과 비슷하거든요. 보통 물류센터는 입고된 물건 여럿을 패키징해서 출고하면 끝인데, 세탁공장은 옷의 종류에 따라 다양한 공정이 나뉘잖아요? 여기에 공산품보다 훨씬 섬세하게 다뤄야 한다는 점도 포함됩니다. 이 과정이 실시간으로 트래킹되고, 이를 토대로 공정을 개선해나가는 건 어느 회사에서도 경험하기 힘든 일입니다. 규모도 크고 세탁물의 종류도 많은 스마트 팩토리. 여기의 공정을 디벨롭 시킨 경력은 중요한 포트폴리오가 될 것이다. 세탁특공대 개발팀의 구성 필릭스: 세특의 개발팀은 앱을 담당하는 프론트엔드, 클라우드 비즈 플랫폼을 담당하는 백엔드, 클라우드를 구축하고 운영하는 옵스, QA로 나뉘어져 있습니다. 저는 직접 개발하기보다 조직을 운영하고, 사용하는 기술의 방향성을 관리하면서 전체 아키텍처를 그리고 있어요. 아마존에서 했듯 기술적 조언을 주로 맡고 있고요. 옵스란 새로운 클라우드 플랫폼을 서버 설치부터 만드는 게 아니라, 아마존 클라우드의 기능을 선택하고 운영하는 사람들입니다. 클라우드 기술은 너무 빨리 발전하고 있어요. 매년 라스베가스에서 ‘Re:Invent’라는 이벤트가 있는데, 여기서만 새로운 기술이 300개 이상 쏟아져 나와요. 이 기능은 우리 플랫폼에 적용해봐야겠다, 이 기능은 아직은 안정성이 모자라니 조금 더 봐야 하겠다, 이런 걸 판단하는 역할이지요. 아마존에서는 이 역할을 ‘베스트 프랙티스’라고 해요. 그런데 어느 분야든 베스트 프랙티스가 나오려면 1년 가까이 걸립니다. 그래서 옵스 엔지니어는 베스트 프랙티스가 나오기 전에도 항상 새로운 기술에 관심을 기울이고 있어야 해요. 옵스 엔지니어의 선택에 따라 운영 비용이 크게 왔다 갔다 합니다. 기능은 비슷한데 훨씬 싼 서비스가 나오고는 하니까요. 아마존의 자격증이 있거나, 그 수준만큼 공부한 분이라면 대환영입니다. 스포티파이로 유명해진 트라이브 모델. 좋은 모델이지만 만병통치약은 아니다. 요즘 개발문화처럼 기능별로 트라이브를 짜는 것은 좋은 구조이지만 모든 상황에 맞지는 않아요. 각 스쿼드별로 명확하게 업무 정의가 되고, 또 일감도 비슷하면 문제가 없죠. 그런데 회사에 일이 늘어나다 보면, 특정 스쿼드에 일이 몰리게 되거든요. 그러면 다른 일을 하고 있던 엔지니어 일손을 빌리게 돼요. 그러다 보면 또 옵스 따로 데브 따로 일을 해요. 업무 흐름도 헷갈리고 효율도 떨어지더라고요. 그래서 우선은 전통적인 방식으로 가려 합니다. 개발이 잘 되려면? 잘 '놀게' 만들면 된다 필릭스: 개발이 잘 되려면 개발자와 관련 부서 사람들끼리 친한 겁니다. 제가 웨이브에 있을 때 프로젝트가 하나 생기잖아요? 그러면 슬랙 채널에 있는 사람들한테 회식비도 주고, 해외 출장도 보내고, 심지어 몇일 동안 외국으로 놀러 보내기까지 했어요. 확실히 효과가 있더라고요. 때에 따라 마케팅, 인사팀이 같이한 적도 있었죠. 중요한 건 한 팀에서 한 명만 뽑는 거예요. 개발자 한 명, 디자이너 한 명… 이렇게 하면 팀간교류가 훨씬 쉬워지거든요. 개발에서 서로 잘 어울리는 것보다 중요한 건 없습니다. 그래서 저는 지라보다 슬랙을 강조해요. 지라를 쓰면 커뮤니케이션이 느리고 딱딱해지더라고요. 직급 상관없이 어울리는 세특 팀원들의 모습 학습과 코칭은 남들 하는 건 다 합니다. 교육이 필요하다고 하면 교육비 대주고… 개인적으로는 해외 컨퍼런스에 많이 보내 주려 노력해요. 확실히 컨퍼런스에 다녀오면 모티베이션이 생겨요. 게다가 외국에 나가보는 것만으로 시야가 넓어지거든요. 그밖에는 일하면서 수시로 코드를 봐주고 이야기하는 게 중요한 것 같습니다. 딱 각 잡힌 스터디보다 효과가 좋은 것 같아요. ‘개발자들이 일하기 좋은 환경’에 대한 정의는 사람마다 다 달라요. 제가 이야기하는 것도 정답이 아니에요. 바뀔 수 있겠죠. 저는 사실 스타트업에서 ‘우리 문화는 이래요’라고 말할 때마다, 정말 그대로 돌아가는지 의문이에요. 제 역할도 ‘세탁특공대 개발팀은 이렇다’라고 공표하는 게 아니라, ‘함께 문화를 만들어 나갈 수 있도록 노력할게요’에 가깝습니다. 그래도 제가 웨이브 때 5명이던 개발팀을 7년간 50명까지 키웠고, 퇴사자는 몇 명 없었다는 자부심이 있습니다. 중요한 것은 자유도, 젊은 개발자를 믿고 맡길 것 필릭스: 세특에서 선택한 이유중 가장 큰 부분은 예상욱 대표님이었어요. 개발자 출신이라 기술 이해도가 굉장히 높습니다. 회사가 커지고 업무 범위가 커지니 개발 상황도 하나하나 손보기 어려운 상황이었어요. CEO가 이 상황을 명확하게 인지하고 있더라고요. CEO가 상황 이해도가 높으면 해결하는 게 훨씬 수월해지고, 다양한 실험도 가능해요. 그래서 회사를 조사해 보니 앱, B2B, 물류를 넘어 IoT, 딥러닝까지 확장할 수 있겠더라고요. 다양한 체험이 가능하다는 점도 매력적이었습니다. 앞으로의 목표는 직접 개발을 안 하는 것입니다. 개발하는 동안에는 머릿속이 CTO가 아니라 개발자가 되거든요. 하루라도 그렇게 보내면, 우리 회사는 CTO가 없는 상태로 하루를 보내는 거죠. 어차피 실무는 젊고 똑똑한 개발자들이 충분히 잘할 수 있으리라 생각합니다. 웨이브 초기에는 개발 인원이 부족해 전체 코드의 60%까지 짠 적도 있었는데, 이번에는 최대한 믿고 맡기려 해요. 결국 궁금해서 몰래 소스를 보기는 할 테지만(웃음) 야 너 이거 잘못했어, 이렇게 하라면 해. 이렇게 구체적으로 요구하지는 않을 거예요. 그건 좋은 방법이 아니에요. 좀 더 좋은 길을 함께 이야기하고 찾아보는 게 제 역할이라 생각합니다. 그렇게 계속 새로운 걸 할 수 있게 독려하는 거죠. ☞ 세탁특공대 채용 페이지 바로가기