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