안녕하세요. 글로벌 프리미엄 웹툰 플랫폼 태피툰입니다.
어느덧 인사이드 태피툰 네 번째 시간입니다. 멋진 서비스는 '뚝딱'하고 하루아침에 나오기 쉽지 않죠. 여러차례의 담금질을 거쳐서야 명검이 탄생하듯, 태피툰 초창기 시절부터 현재에 이르기까지, 그 자리를 든든하게 지켜주신 태피툰의 대장장이이자, 리드 개발자이신 라온과 제임스를 만나볼께요.
'인사이드 태피툰' 네 번째 순서, 라온과 제임스를 만나다
안녕하세요! 태피툰에서 각자 어떤 업무를 담당하고 계시는지 소개 부탁드려요 :)
[라온] 안녕하세요! 서비스개발팀 백엔드파트 리드 개발자 Raon입니다. 저는 서버 애플리케이션 개발과 배포, 정산이나 운영 등에 지원 업무를 비롯하여 데이터베이스의 관리를 담당하고 있어요
[제임스] 반갑습니다. 태피툰 서비스개발팀 프론트엔드파트 리드 개발자 James입니다. 저는 주로 디자인시스템 개발 및 관리, 프론트 파트 코드리뷰 그리고 네이티브 프레임워크에 관련된 개발 업무를 맡고 있어요
태피툰 개발팀은 어떻게 나눠져 있으며 각각 어떤 일을 하세요?
개발팀은 플랫폼 개발과 서비스 개발 두 팀으로 나누어져 있어요.
첫 번째, 플랫폼 개발팀에서는 인프라라고 부르는 서비스 애플리케이션을 가동하기 위한 환경을 구성하고 관리하는 업무를 맡고 있어요. 태피툰의 경우 AWS(아마존 웹 서비스)를 통해 클라우드 컴퓨팅 환경을 구축하여 서비스를 제공하고 있거든요. 최적의 비용으로 안정적인 서비스를 구성하기 위해 많은 고민을 하는 팀입니다.
두 번째, 서비스 개발팀에서는 데이터를 저장하고 관리하며 프론트엔드 애플리케이션에서 사용자들이 취하는 행동의 일체를 처리하는 서버 애플리케이션을 개발하고 관리하는 부서에요. 백엔드 애플리케이션은 실제로 화면으로 보이거나 상호작용을 할 수 있지는 않습니다만, 웹이나 앱 상에서 접하는 정보와 기능 대부분은 결국 간접적으로 뒤쪽에 자리 잡고 있는 백엔드 서비스를 액세스하죠. 서비스 개발팀에서는 인프라 환경 내 제한된 리소스를 기반으로, 사용자의 안정적인 서비스를 구축해요.
서비스 개발팀 내에, 프론트엔드 파트의 역할을 추가적으로 간단히 설명드리자면, 태피툰에서 사용자에게 보이는 모든 영역의 개발을 맡고 있어요. 가장 대표적으로 태피툰의 iOS, AOS, 그리고 Web의 개발뿐 아니라, 내부 직원들이 사용하시는 CMS, 외부 홍보용으로 만들어진 Static Site와 Career Page를 관리합니다
태피툰에 합류하기 전에는 어떤 일을 하셨나요?
[라온] 쇼핑몰 백오피스에서 가장 오랜 시간을 보냈었죠. 외부 쇼핑몰에 상품 데이터를 전달하고, 판매된 주문 내역을 내부로의 수신을 위한 시스템을 개발하고 관리하는 업무를 주로 진행했었어요. 시스템 자체에 대한 개선의 영역보다도 실제 데이터의 정확성을 요하는 일이었기 때문에, 개발자로서의 욕구가 충분히 해소되지 못했었죠. 무척 아쉬웠어요. 하지만, 신규 계약 업체 시스템 연동 기획과 누락된 데이터의 개선점을 찾는 등 여러 소통을 통해 성장을 할 수 있는 계기였었죠. 그러던 중, 태피툰의 Co-Founder이신 Sun과 우연한 기회에 연락이 닿아, 인터뷰 자리가 마련이 되었어요. 인터뷰를 진행하면서, 좋았던 포인트는 일단 회사가 AWS 기반의 인프라로 운영이 되고 있었던 것이었어요. 두 번째로는 웹툰 플랫폼이 일상에서 많은 사람들이 쉽게 접근할 수 있는 콘텐츠라고 생각이 들었죠. 현실 세계에서 누구나 쉽게 접근성에 용이한 점이 특히 매력적이었어요. 그렇게 태피툰에 합류하게 되었습니다
[제임스] 정보통신 관련 전공인 미디어학과로 학사 졸업 후, 저의 첫 사회생활의 학부 전공과는 달랐던 사업 개발 분야에서 시작했어요. 현재 저의 포지션인 개발과는 다른 업이었죠. 이후, 스타트업 창업을 하게 되는데, 본래의 전공을 살려서 개발자의 길로 전향하게 되었어요. 다양한 경험들을 쌓아보았지만, 결국엔 개발이 가장 적성에 잘 맞았습니다. 주로 iOS, Android 등의 네이티브 개발을 하였고, 여러 경험을 통해 개발자로서 성장을 거둔 뒤, 태피툰에 합류하게 되었습니다
개발팀 멤버 중, 두분이 가장 초창기 멤버라고 들었어요. 서비스 초기 단계부터 글로벌 웹툰의 선두주자인 지금의 위치에 이르기까지 간단한 소회 부탁드려요
리드 서버개발자, Raon(이찬규)
[라온] 태피툰에 합류할 시점에는 이미 좋은 콘텐츠가 하나 둘 늘어가고 있었어요. 하지만, 당시의 불완전한 시스템으로는 더 많은 사용자를 감당할 수 있을지에 대해서는 확신이 없었죠. 업무의 효율성과 시스템 운영 등에 있어서 안팎으로 생각할 것들이 너무 많았던 시절이었죠. 불확실한 것들이 구체화되던 계기는 바로 현) CTO이신 Justin의 합류였습니다. 그때부터 본격적으로 가속이 붙었던 것 같아요. 계획은 하나씩 현실이 되었고, 그로부터 시작된 변화는 오늘까지도 계속되고 있어요. 무엇보다도 큰 변화의 시기 속에서 한 명의 멤버로서 참여했다는 점, 그리고 저의 손으로 기여를 할 수 있었던 점이 무척 영광이었어요. 이 인터뷰를 빌어서, 오늘의 지금을 함께 만들어 준 동료들에게 감사 인사를 전하고 싶습니다.
리드 프론트엔드 개발자, James(육형찬)
[제임스] 가끔 '태피툰의 성장세는 사무실 평수와 같다' 라는 농담을 하곤 했는데요. 15평 남짓한 작은 사무실에 Raon과 함께 입사한 게 불과 엊그제 같아요. 그 후 약 3년 사이에 3번의 이사를 겪었고, 현재는 초창기의 20-30배가 넘는 역삼동 사무실에 앉아서 인터뷰를 진행하고 있어요. 더 많은 멤버들을 모시고, 더 큰 성장을 위해 올가을에는 더 큰 공간으로 움직일 예정이라니... 무척 감회가 새롭습니다. 입사 당시 가파른 서비스 성장세 대비, 부족한 개발 인력과 불안정한 legacy 코드 등, 여러 가지 이슈로 발 빠른 대응이 어려웠어요. 저와 Raon 그리고 Justin과 함께 프론트 뿐만 아니라 백엔드까지 처음부터 다시 서비스를 설계하고 개발했어요. 마침내 React (-Native)를 통해 iOS, Android, Web, 모두 한 번에 개발할 수 있는 환경을 구축하고 나서는 적은 인원으로도 빠르고 안정적인 서비스를 제공할 수 있는 기반을 마련했다는 점에 있어서 엄청 감격스러웠어요
업무 환경은 어떤가요? 이전 직장과 비교했을 때 태피툰 개발팀의 문화가 특별한 점이 있다면?
[라온] 많은 직장에서 방어적인 태도를 고수하는 개발자들을 겪었지만, 태피툰에서는 단 1도 없다고 자신 있게 말씀 드릴 수 있습니다. 이러한 부분은 타 팀과의 협업과 소통 과정에서 흔히 발생하기 쉬운데요… 서로 다른 직무를 담당하고 있다 보니, 서로의 모든 상황을 이해할 수 없다는 것은 당연한 것 같아요. 하지만 아무래도 신뢰가 뒷받침이 되지 않으면 누구나 쉽게 방어적인 태도를 취하게 되죠. 이것은 비단 개발팀만의 문화라고 하기엔 그 범주가 넓을 수 있지만, 대부분 개발팀에서 타팀에게 방어적인 상황을 취하게 되는 경우가 (환경적으로 어쩔 수 없는 경우도 많기에…) 문득 떠올랐어요. 방어적인 태도가 아닌 협조적인 애티튜드를 갖춤으로써, 자신의 본업에서도 고집스러움을 고수하는 것이 아닌, 수용하는 자세를 갖출 수 있게 된다고 생각합니다. 그러한 점에서, 태피툰은 이미 훌륭한 문화를 갖고 있다고 자부해요
[제임스] 조직문화라는 것은 결국 사람이 만들잖아요. 저희 개발팀에 합류하시는 한 분 한 분의 공통점은 개발에 대한 애정을 바탕으로, 본인의 성장과 회사의 성장이 동등하게 중요하다고 믿는 분들인 것 같아요. 그래서 다들 어떻게 하면 좀 더 개발에 집중할 수 있을지, 즐겁고 행복하게 개발할 수 있을지 고민하고 있어요. 저희 회사는 업무시간에 대부분 조용하고 차분해요. 지루하고 따분한 것과는 다른 조용함이에요. 다들 공과 사를 확실히 구분하여, 서로의 업무 시간을 존중하고 집중하게끔 배려하고 있음을 느껴요. 하지만 점심시간이나, 그 외 쉬는 시간에는 너도나도 서로 즐겁고 유쾌한 멤버들입니다.ㅎㅎ 이러한 보이지 않는 각자의 노력이 결국 개발에 집중할 수 환경을 만들어주는 것 같아요. 처음 합류하시는 분들은 조용한 분위기가 낯설 수도 있을 거라고 생각하지만, 조용하고 차분한 분위기 속에서 얻는 선택과 집중의 시간은 엄청 소중하다고 생각합니다
"조직문화라는 것은 결국 사람이 만들잖아요. 저희 개발팀에 합류하시는 한 분 한 분의 공통점은 개발에 대한 애정을 바탕으로, 본인의 성장과 회사의 성장이 동등하게 중요하다고 믿는 분들인 것 같아요"
코드 리뷰는 어떻게 진행하시나요?
코드 리뷰에서 중점적으로 보는 부분은 다음과 같습니다. 우선, 결과입니다. 의도한 결과가 나오지 않는다면 사실상 코드의 완성도는 아무런 소용이 없겠죠. 그 다음으로 그 결과를 도출하는 과정의 간결성입니다. 흐름 상 반복적으로 거치는 단계에 대한 취합이 잘 되었는지, 복잡도가 높을 수밖에 없는 논리는 어떤 식으로 풀어냈는지 확인하게 됩니다. 이 단계에서는 읽기 편한 코드인지도 함께 체크하고 있습니다. 많은 사람이 함께 작성하고 있고, 내가 개발한 것이 아닌 다른 사람의 코드를 읽는다는 것은 쉬운 일이 아니죠. 마지막으로는 개발팀에서 지향하는 컨셉에 부합하는지를 리뷰합니다. 이 단계는 배포 이전 단계에서 필수 단계는 아니지만, 최대한 완성형에 가까운 코드가 나오도록 지향하고 있습니다. 그리고 태피툰의 코드 리뷰에 절대적인 원칙이 하나 있는데, 바로 '코드 품질과는 타협하지 않는다'입니다. 보통은 개발자가 각자의 서비스를 스스로 개발하는 것이 대부분인데, 빠르게 진행하다 보면 나중에 리팩토링을 해야하는 상황이 쉽게 발생합니다. 이러한 상황이 반복되다 보면 부채가 발생하게 되고, 한걸음 앞서다가도 나중에 오히려 두~세 걸음 뒤로 후퇴하게 되는 경우를 저희 개발팀 모두가 동의하고 겪었던 일입니다. 그러기에 약간의 딜레이가 발생하더라도 Merge는 다른 개발팀 조직과 비교하여 상대적으로 꼼꼼하게 진행되는 편입니다.
개발자마다 기술적 시각이 다를텐데, 그 문제를 해결하기 위한 방식이 있으신가요?
[라온] 세상에는 많은 종류의 문제가 있고 그 다양성으로 인해 딱히 정해진 방식은 없다고 봅니다. 제 경우에는 문제 상황과 해결 과정 자체를 손으로 직접 많이 그리는 편입니다. 플로우 차트라던가 각종 다이어그램들 등 형식에 구애받지 않고 그냥 편하게 슥슥 그리는 그런 그림이요. 형식적 제약을 고려하지 않고 흐름을 그린다는 점에서 문제 자체에 더욱 집중할 수 있고, 초안은 늘 수차례의 퇴고를 거치게 됩니다. 그렇게 나온 결과물을 바탕으로 코드를 설계하면 대부분 실패하지 않았습니다
[제임스] 코드나 기술을 바라보는 시각은 다를 수 있다고 생각해요. 결국 프로그래밍도 언어이기 때문에 이를 표현할 수 있는 방법은 수백 가지가 될 수 있잖아요. 다만 저희 같은 스타트업에서는 속도도 매우 중요하기 때문에 코드에서는 태피툰 개발자 간의 합의된 컨벤션 내에서 코딩하도록 권고하고 있습니다. 그리고 React라는 자바스크립트 라이브러리를 중심으로 프론트앤드 서비스가 전부 구성되어 있는 것도 개발자 간의 시각 차이를 조금이나마 줄일 수 있는 부분이라고 생각해요
태피툰은 글로벌 서비스인 만큼, 다른 국가의 데이터나 트래픽 관련 경험도 많이 할 수 있을 것 같은데요. 소개해주세요.
[라온] 인프라를 서비스 주요 지역에서 구성했기 때문에, 직접 진행하는 테스트 수준에서는 트래픽 이슈에 대한 모니터링이 상당히 까다로운 편입니다. 즉, 서울에서 미국 지역 내 인프라를 액세스하고 있다 보니 당연히 동일 리전 대비 트래픽 체감이 있을 수 밖에 없는 상황이라고 보시면 될 것 같습니다. 다만 대한민국의 네트워크 인프라가 상당히 우수한 편이라는 점을 감안하고 생각했을 때, 보다 열악한 환경에서도 빠른 구동을 위한 최적화는 늘 고민하는 주요 주제 중에 하나입니다
[제임스] 태피툰은 현재 영어, 프랑스어, 독일어로 제공되고 있는데요. 다양한 언어로 서비스가 제공되고 있는 만큼 서비스의 UI 에서 다루는 텍스트를 적절하게 표시해 줘야 해요. 이를 위해 구축된 스트링 서버를 바탕으로 실시간에 가까운 UI 텍스트 핸들링을 클라이언트에서 적용하고 있어요. 또한 국내에서는 보기 힘든 정말 다양한 기기를 통해 유저가 태피툰을 사용하고 있는 것을 확인할 수 있어요. 예를 들면, 국내에서 사용되는 디바이스는 대부분 애플 아이폰과 삼성 갤럭시죠. 하지만, 해외에서는 정말 다양한 기종의 디바이스들이 사용되는 것을 경험할 수 있어요. 그렇기 때문에 정보가 상대적으로 적거나, 경험해보지 못한 디바이스 들에 대한 연구와 고민을 해야 하는 것도 저희의 숙제이자 임무입니다.ㅎㅎ
개발자에게 중요한 역량이 있다면 무엇일까요?
[라온] 본인이 개발자고, '왜(why)'에 집착하는 경향이 있다면 좋은 개발자로 성장할 수 있는 한 가지 중요한 조건을 이미 갖추고 있다고 생각이 듭니다. 사실 '왜' 에 집착한다는 것은 스스로에게 굉장한 피로를 누적 시키는 일이기도 하지만, 개발자에게 있어서 틀림없이 그 이상의 성장하는 큰 원동력이 될 수 있습니다. 알고 있는 것과 이해하고 있는 것의 차이라고 생각해 보신다면 좀 더 이해가 쉬울 거 같아요
[제임스] 문제를 대하는 태도가 중요하다고 생각해요. 특히 프론트앤드에서는 급격하게 변화하는 생태계와 다양한 라이브러리 등을 다루다 보면, 정말 예상치 못한 부분에서 문제가 발생하거나 해결되지 않는 경우가 너무 많거든요. 그래서 문제가 발생했을 때, 종합적으로 원인을 파악해본 후 설마?라고 생각하는 부분까지 의심하고 접근하는 태도가 중요하다고 생각해요
새로운 동료가 들어온다면 어떤 동료와 일하고 싶으신가요?
[라온] 위에서 언급 드린 '중요한 역량', 궁금한 것을 참기 어려우신 분들이라면, 꼭 업무 적인 부분이 아니라고 해도, 충분합니다.
[제임스] 소프트웨어 개발이라는 업에 대해 충분한 고민을 해보신 분, 개발에 대한 애정 있으신 분과 함께 일하고 싶어요. 단순히 학과나 배운 내용이 코딩이라서 개발을 하신 분과, 왜 이 일을 하는가에 대해 의미를 부여하신 분과의 차이는 비교하기 어렵다 생각해요. 그러한 고민과 애정이 있으신 분들과 함께 일하면, 같은 일을 하더라도 생산성과 스스로의 성장은 2~3배 차이 나는 것 같아요(태피툰 개발팀 분들은 놀랍게도 이런 분들이 모두 모인 곳이에요!)
"본인이 개발자고, '왜(why)'에 집착하는 경향이 있다면 좋은 개발자로 성장할 수 있는 한 가지 중요한 조건을 이미 갖추고 있다고 생각이 듭니다"
<여기서 잠깐! 보너스 질문 >
질문 : 태피툰 개발팀은 꾸준히 성장하고 변화하는가요?
답은 : YES, 우리는 트렌드에 민감해요
라온 : CTO이신 Justin께서 꾸준히 트렌드에 대한 도전을 심어주고 공유해주는 경향이 있어요. 개발자에게 좋은 영향을 줄 수 있는 매력적인 포인트죠. 도전을 통해, 평소 성향이 변화에 대해 거부감을 갖고 있는, 그리고 도전에 대한 방어적인 사람들을 자연스럽게 파악할 수 있습니다. 그 계기를 통해서 오히려 주어진 도전과 성장을 즐기는 동료들을 자연스럽게 발견할 수 있었어요
제임스 : 프론트엔드 분야가 트렌드와 시장의 흐름에 깨어있어야 할 영역이다보니, 우리를 이끌어 주는 리더의 역할이 굉장히 중요하다고 생각해요. Justin께서는 꾸준히 업계의 소식을 전달 해주시고, 외부의 업계 관련자 분들과의 미팅을 통해서 받은 정보들을 공유해주시고 계세요. 실무에 지친 실무자들에게는 수고로움을 크게 덜을 수 있고, 자연스럽게 성장을 위한 도전을 받게 되는 것 같아요
마지막으로 태피툰에서 꼭 이뤄내고 싶은 목표와 비전을 소개해주세요
라온과 제임스. 제임스와 라온 은 동료 이전에, 서로에게 든든한 버팀목이다
[라온] 서비스의 성장은 결국 사용자와, 사용자의 활동량에 따른 데이터 증가로 이어지게 마련입니다. 결국 시스템의 안정성과 효율성은 지금보다 점점 더 요구될 것으로 판단됩니다. 백엔드는 프론트엔드의 화려함은 고사하고 도리어 문제가 발생하지 않는다면 겉으로 드러나지 않는 영역일 수 있습니다. 그럼에도 우리는, 지금까지 성능의 개선과 모듈 구조의 효율성을 고민하고 개선을 위한 도전을 멈추지 않았습니다. 앞으로도 태피툰의 백엔드 개발팀은 내면적인 완성도를 추구하며, 안정적이고 효율적인 서비스를 위해 노력할 것입니다
[제임스] 태피툰은 정말 놀랍도록 빠르게 성장하는 서비스에요. 서비스 성장 속도와 개발 아웃풋의 싱크가 잘 맞물려 돌아가는 프론트엔드 팀이 될 수 있도록 개인 역량 강화는 물론, 팀원 분들 성장을 온전히 서포트 해드릴 수 있는 개발자가 되는 것이 목표입니다
글로벌 프리미엄 웹툰 플랫폼, 태피툰
Raon 처럼, James 와 함께,
개발에 대한 애정을 성장으로 함께 이루어 갈
새로운 다음 주인공을 찾습니다!
인사이드 태피툰 다른 이야기도 보러 가실 분~? 링크
2023 Tappytoon/Contents First. All Rights Reserved