경력보다 실력에 자신있는, 토스팀 개발자를 만나다
ㆍby 이지영
토스팀 3년차 이하 개발자는 어떻게 일할까?
몇 년 차세요? 나이가 어떻게 되세요? 토스팀에서 좀처럼 듣기 힘든 질문입니다. 토스팀에는 주니어도, 시니어도 없어요. 오로지 ‘동료’만 있을 뿐이죠.
다양한 연차와 배경을 가진 팀원이 모여있지만, 토스팀은 개인의 역량과 실력에 따라 신뢰를 쌓고 스스로 책임과 권한을 강화합니다. 그렇다면 연차가 상대적으로 낮은 팀원은 일하기 힘들지 않을까, 궁금하신 분들을 위해 준비했습니다. 토스팀 3년 차 이하 개발자들의 이야기를 들려드릴게요. 박서진 님, 장한솔 님, 황길수 님, 방성원 님, 조유성 님. 다섯 분의 개발자는 토스팀에서 어떻게 신뢰를 쌓고, 스스로의 역할을 넓혀가고 있을까요?
chapter 1. 토스팀을 선택한 이유
Q. 안녕하세요. 토스팀에서 어떤 일을 하고 있는지 소개 부탁드립니다.
서진 : 안녕하세요. Frontend Developer 박서진입니다. 재난지원금, 카드값 돌려받기 등의 제품을 만들었습니다. 지금은 웹서비스 배포와 관련된 시스템을 만들고, 유지보수하는 일을 하고 있습니다.
한솔 : Android Developer 장한솔 입니다. 인증 절차나, 알림서비스 등 토스 서비스 전반에 공통으로 쓰이는 기능들을 개발하고 있어요. 토스팀에 합류한 지 이제 갓 3개월이 지났네요.
길수 : Server Developer 황길수입니다. 한솔님과 함께 토스인증서와 전자서명 등을 이용해 본인인증, 간편로그인 등 사용자가 안전하고 편하게 토스를 이용할 수 있는 서비스를 만들고 있어요
성원 : iOS Developer 방성원입니다. 예전에는 토스 앱 내 ‘내소비’ 서비스를 꽤 오랫동안 만들었고요. 최근에는 클라이언트 플랫폼 팀으로 옮겨 개발자의 편의를 증진하는 일을 주로 하고 있어요.
유성 : Internal Product Developer 조유성입니다. 저는 토스 팀원들이 사용하는 내부 제품을 만들고 있습니다. 보통 행정업무에 필요한 제품을 만든다고 생각하면 되는데요. 토스팀은 승인이나 반려 절차가 거의 없기 때문에 토스팀의 속도와 문화에 최적화된 업무툴을 만들고 있습니다
Q. 토스팀에 오기 전, 각자 다양한 분야에서 개발을 해오셨습니다. 토스팀 합류를 결정한 이유가 궁금합니다.
서진 : 저는 토스가 첫 직장인데요. 기업 경험은 없었지만 다양한 외부활동을 했어요. D2 CAMPUS FEST, HACKDAY 같은 개발 행사에 참여했었고, 수상경력이 있었습니다. 토스팀에는 개발을 잘하는 사람들이 많고, 개발자가 일하기 좋은 환경이라는 이야기를 듣고 지원했었는데요. 기업 경험이 없었기 때문에 채용 과정에서는 대외활동을 통해 어떤 기술을 어떻게, 왜 사용했는지 등에 대한 질문을 많이 주셨던 걸로 기억합니다.
한솔 : 이전에는 핀테크 스타트업에서 안드로이드 개발을 했었어요. 작은 조직이라서 개발부터 배포, 유지 보수까지 모두 맡아 진행했었는데요 혼자 일 하다 보니 1개월이면 할 수 있는 일을 3개월 동안 하는 기분이 들더라고요. 규모가 큰 팀에서 효율적으로 일하고 싶어 토스팀에 합류하게 됐습니다.
길수 : 저는 대기업에서 서버 개발을 했었습니다. 이전 직장도 성장 가능성은 충분히 있었지만, 개발자로서 개인의 성장에는 한계가 있다고 판단했어요. 쉽게 적응하고 안주할 수 있는 환경이었거든요. 토스팀에 와보니, 이전 직장에서는 오랫동안 몰랐을 기술과 인프라가 많더라고요. 그리고 무엇보다 ‘사람들과 밀접한 서비스’를 만들고 싶었어요. 이전에는 대부분 B2B 사업이었거든요. “무슨 일 하세요?”라는 질문을 받으면 대답하기 굉장히 어려웠어요. 지금은 심플하게 ‘토스’ 만든다고 말해요.
성원 : 저도 사람들이 많이 쓰는 서비스를 만들고 싶어서 토스팀에 합류했어요. 국내 서비스 중에 MAU(월간 활성 사용자 수)가 1,000만 명이 넘는 서비스가 많지 않았고, IOS 유저 비율이 다른 서비스 대비 높았던 점도 매력으로 다가왔어요. 이전에는 웹툰 회사에서 일했었는데요. 규모가 작은 회사다보니 풀스택 개발자로 여러 가지 일을 해봤지만, 기술적으로 도전적인 일이 많지는 않았어요. 개발 역량을 키울 수 있는 환경을 찾아서 토스팀에 오게 됐습니다.
유성 : 토스팀 합류 직전에는 대학원 연구실에 있었어요. 컴퓨터 과학과 대학원 연구실이었는데요. 주어진 문제를 이론과 실험으로 해결하는 것보다는, 실용적인 제품을 통해 해결하는 데에서 더 큰 매력을 느꼈습니다. 예를 들어서, 똑같이 자연어 처리가 필요해도 state-of-the-art 기술을 비교연구하는 것보다 팀원의 구매요청 메시지를 분석해서 요청된 제품의 이름과 수량을 자동으로 뽑아주는 웹 어플리케이션을 만드는 것에 더 많은 관심이 있었어요. 스스로 연구보다는 제품을 만드는 게 적성에 맞다고 느껴서 토스팀에 합류하게 되었어요.
chapter 2. 토스팀에는 주니어도 시니어도 없다.
Q. 토스팀은 주니어와 시니어 개발자 구분 없이 모두 같은 ‘동료’로 통합니다. 실제 업무도 연차에 따른 구분이 없나요?
성원 : 저는 얼마 전에 ‘토스 보험 파트너‘ 서비스를 개발했는데요. 프로젝트 세팅부터 개발, 로깅, 보안 모듈 적용, 심사 후 앱스토어에 출시되기까지 전 과정을 책임지고 진행했어요. 정말 놀라운 경험이었던 게, 이전 회사에서는 앱 심사를 넣을 수 있는 권한 자체가 저한테 없었거든요. (웃음) 토스팀에서는 신규입사자도 앱 배포 권한을 갖게 돼요. 서비스를 개발하면서 기존 토스 앱과 공통으로 사용할 코드를 잘 분리하고 공유할 수 있도록 구조를 잡는 데 많은 힘을 쏟았던 것 같아요. 서비스를 맨 처음부터 만들어 보니 연락처나 푸시 알림 관련 로직들도 깊이 공부할 수 있었고요. 개발자로서 큰 경험이 됐죠.
한솔 : 저는 규모가 작은 스타트업에 있었을 때 앱 배포를 해본 경험이 있어요. 그런데 토스팀은 ‘도움을 줄 수 있는 사람이 가까이에 있다’는 게 큰 장점인 것 같아요. 어떤 동료는 뷰를 그리는 걸 잘하시고, 어떤 분은 플랫폼 적으로 자동화 구축을 잘하시고요. 개발자 개개인의 장점이 뚜렷하다 보니까 도움이 필요할 때 언제든지 동료한테 물어볼 수 있어요. 물어보면, ‘아, 이렇게까지 자세한 설명을 기대한 건 아니었는데…’ 싶을 정도로 친절하게 설명해주세요.(웃음)
서진 : 저는 토스가 첫 직장이지만, 작년 8월부터 챕터* 리드를 맡고 있는데요. 토스팀에 합류한 지 6개월 정도 지났을 때, 프론트엔드의 서비스 배포 환경을 전면적으로 개선하겠다고 의견을 냈었어요. 당시 웹 구조가 조금 단순했거든요. A서비스에서 오류가 나면, B서비스에 영향을 끼칠 수 있는 구조였어요. MAU 1,000만 명 이상 서비스를 경력이 2년도 안 된 개발자가 ‘바닥부터 바꿔보겠다’라고 했을 때 흔쾌히 기회를 주는 회사는 드물 거라고 생각해요. 그런데 팀원들은 저를 믿어주고 지지해줬거든요. 물론 다른 팀원들의 도움도 많이 받았죠. 제가 잘못 판단하는 것들은 명확히 조언을 주시기도 했고요. 지금은 구조가 고도화된 웹 인프라를 1년 정도 안정적으로 운영하고 있습니다. 팀원들도 불편을 겪고 있던 지점이었기 때문에 제가 개선안을 냈을 때 공감을 얻을 수 있었던 것 같아요. 저도 팀원들의 도움을 받으며 많이 성장할 수 있었고요. 챕터(Chapter) : 같은 종류의 일을 하는 팀원들이 모인 조직
길수 : 토스팀에는 DRI* 라는 개념이 있는데요. 어떠한 업무에 대한 최종 의사 결정권자가 되는 거예요. 연차나 경력과 상관없이, 특정 업무에 대한 책임과 권한이 생기는데요. 얼마 전 저도 DRI를 가지고 ‘토스간편로그인’ 기능을 개발했었습니다. API 설계부터 구현까지 진행하며 저를 신뢰해주는 동료들을 생각하니 스스로 책임감이 더 높아지더라고요. 이게 토스 문화라고 생각해요. 제가 만든 기능을 많은 사용자분이 찾아주셔서 개인적으로 보람차기도 했습니다. DRI(Directly Responsible Individual) : 팀원에게 독립적 의사결정을 보장하는 것
Q. 뛰어난 동료 개발자들 사이에서 부담을 느낄 때도 있을 것 같은데, 어떤가요?
유성 : 모든 개발자가 똑같은 퍼포먼스를 내야 한다는 압박은 없어요. 일단 토스팀은 탑다운 방식도 아니고, 서로 잘하는 분야를 알고 있기 때문에 누군가에게 무리한 요구를 하거나, 누구로부터 무리한 요구를 받지 않거든요. 그렇기 때문에 스스로의 역량을 높이고 싶은 욕심이 있을 뿐이지 압박을 느끼진 않는 것 같아요.
길수 : 제게 토스팀 합류를 추천했던 지인이 이런 말을 하더라고요. ‘최고의 복지는 최고의 동료’라고요. 그 말을 듣고 합류를 결심했어요. 개인적으로는 뛰어난 동료들을 보며 부담보다는 ‘자극’을 받는 것 같아요. 저도 함께 성장하는 느낌이라서요. 그리고 무엇보다 뛰어난 동료들과 항상 ‘원팀’으로 일하고 있다는 생각이 들어요. 매주 진행되는 ‘위클리 미팅’이나 반기마다 진행되는 ‘얼라인먼트 데이‘를 통해 팀의 목표와 계획, 상황들을 자세히 공유하거든요. 또 ‘러닝쉐어’ 세션을 통해 자발적으로 실패를 통한 배움을 공유하는 자리도 있고요. 공동의 목표를 향해 함께 나가는 문화가 아니면 어려운 일들이라고 생각해요.
chapter 3. 만드는 걸 하고 싶은 사람 vs 하고 싶은 걸 만드는 사람
Q. 토스팀에서는 ‘메이커’라는 단어도 많이 사용하는데요. 개발자와 메이커, 어떤 차이가 있다고 생각하세요?
성원 : 개발자는 ‘만드는 걸 하고 싶은 사람’이라고 생각하고요, 메이커는 ‘하고 싶은 걸 만드는 사람’이라고 생각해요. 주어진 조건과 요구사항을 구현하는 게 일반적인 개발자의 역할이라고 생각하잖아요. 그런데 메이커는 주어진 것들을 너머 ‘무엇을 만들지’를 고민하는 사람인 것 같아요. 토스팀의 모든 개발자는 메이커라고 생각해요.
길수 : ‘메이커’라는 말이 아직도 어렵고 신기한데요. 그 의미를 조금 알 것 같은 경험을 최근에 했어요. 토스 앱 내에서 사용자에게 토스의 다양한 서비스를 안내해 주는 영역을 만들었거든요. 작업하면서 사용자 입장에서 고민을 정말 많이 했었어요. 데이터를 기반으로 다양한 실험을 진행해보기도 하고요. 앱에 노출되는 문구 하나하나 순서도 바꿔보고요. 데이터에 근거해 가장 효율적인 구조가 결정되는 과정이 재밌고 인상적이었어요.
서진 : 저도 길수님 말에 완전 동의해요. 일단 데이터가 투명하게 공개되어있으니까, 작업한 서비스가 배포되었을 때 결과를 확인할 수 있어요. 버튼의 문구를 조금 바꿨더니 일어나는 지표의 변화까지 실시간으로 살펴볼 수 있죠. 팀이 설정한 OKR*에 내가 얼마나 기여하고 있는지 보이니까 일이 재밌는거죠. 목표를 설정할 때는 ‘이걸 정말 달성할 수 있을까?’ 싶지만 반기가 지나면 실제로 목표를 달성하기도 해요.
OKR(Objectives and key results) : 목표 및 핵심 결과지표
Q. 토스팀에서 개발자가 일하기 좋은 이유는 뭘까요?
성원 : 내가 진짜 하고 싶은 일을 회사에서 할 수 있어요. 이전 회사에서는 퇴근하고 따로 사이드 프로젝트를 진행 했었거든요. 그 이유를 곰곰이 생각해보니까, 내가 정말로 하고 싶은 일을 회사에서 못했던 게 큰 것 같아요. 누군가 시키는 일을 하다보니 퇴근 후 사이드 프로젝트로 평소 부족한 부분을 채워나간거죠. 그런데 토스팀은 하고 싶은 일을 할 수 있기 때문에 열심히 하는 만큼 나에게도 도움이 되고 팀에도 도움이 되니까 좋죠. 저는 요즘 빌드 시간을 단축하기 위한 작업을 하고 있어요.
유성 : 어디에서도 할 수 없는 일을 토스팀에서 하고 있다는 생각이 들어요. 제 경우는 토스 채용 사이트를 처음부터 끝까지 만들었거든요. 전 과정을 책임지고 진행한 것도 좋은 경험이었는데, 제 연차에 쉽게 만날 수 없는 트래픽까지 경험할 수 있어서 좋았어요. 다들 퇴근 후 토스 채용 페이지를 방문하시는지 저녁 8-9시쯤 페이지 뷰가 확 오르더라고요. (웃음) 토스 이벤트가 열리는 날이면 공지사항 페이지의 초 당 요청 수가 40-50으로 크게 뛰기도 하고요. 높은 트래픽을 마주하면 짜릿하죠.
서진 : 개발 환경이 좋아요. 예를 들면, 공통적인 컴포넌트는 디자인 플랫폼 팀에서 구축한 TDS*를 사용해요. TDS를 이용하면 개발자는 화면의 디자인 스타일코드를 일일이 작성할 필요 없이, 배치만 신경 쓰면 되고요. 웹 경우에는 배포의 상당 부분이 자동화가 되어있고요. 토스 앱에서 자주 발생하는 상황은 라이브러리에 없는 게 거의 없을 정도로, 유틸리티가 잘 정리되어있거든요. 개발자의 시간을 단축시켜주고 더 좋은 개발에 집중할 수 있는 환경이 구축되어 있죠.
TDS(Toss Design System) : 토스 제품을 만들 때 공통적으로 사용하는 디자인 시스템, 개발과 연결되어 토스 제품을 구성하는 하나의 언어로 사용
한솔 : 일을 위한 일이 매우 적다는 것이 큰 장점입니다. 업무 관리를 ‘지라’라는 툴로 하는데 업무 배정부터 개발, 배포에 이르기까지 개발자는 지라를 들어가 볼 일이 없어요. 모든 것이 자동화되어 있거든요. 비효율을 지나치지 않고 문제의 근본을 찾아 빠르게 해결한다는 점에서도 개발자가 성장할 수 있는 좋은 환경이라고 생각해요.
Q. 같은 종류의 일을 하는 팀원들이 모인 ‘챕터’는 토스팀 개발자에게 어떤 역할을 하나요?
유성 : 브레이킹 체인지(이전 버전과 호환성이 없는 기술적 변화를 만드는 일) 할 때도 굉장히 편해요. 내가 특정 기술을 변경하면, 토스팀이 다같이 기술적인 변화를 만들어야 하잖아요. 챕터 조직이 있어서 빠른 대응이 가능해요. 챕터가 없었다면 일하기 굉장히 답답했을 거예요.
서진 : 챕터 구성원 끼리 정말 많은 걸 공유해요. 예를 들면 캐싱을 걸었는데 뭔가 잘 안된다던지, 너무 잘 먹어서 캐시 날리는 게 힘들다던지, 누구나 겪는 흔한 사소한 문제잖아요. 이런 작은 문제 해결법부터, 큰 기술적인 러닝까지 공유해요. 챕터 구성원이 모인 슬랙(사내 메신저) 채널 에서 TIL(Today I Learned)라고 각자 알게 된 새로운 내용을 일상적으로 공유하기도 하고요.
한솔 : 챕터 구성원들과 친근하게 이야기를 많이 나누는 편인데요. 일을 대하는 태도에도 좋은 자극을 받습니다. 최근에 특히 감동한 일이 있어요. 모든 사일로, 팀마다 안드로이드 개발자가 있지 않다 보니까, 챕터 단위로 들어오는 일이 있어요. 지난주에는 3개 정도의 일이 들어왔는데, 정말 5분도 안 돼서 지원자가 나오더라고요. 토스팀은 정말 원팀이라는 걸 몸소 느꼈죠. 네 일 내 일 가르지 않고, 모두 함께 만들어가는 서비스라는 걸 느끼고 있습니다.
chapter4. We’re here to make history
Q. 토스팀 개발자들은 왜 열심히, 치열하게 일하는 걸까요? 원동력이 궁금합니다.
한솔 : 우선 토스팀이 가고자 하는 큰 방향을 팀원 모두가 명확히 인지하고 있어요. 뚜렷한 목적에서 나오는 책임감과 토스에 대한 애정이 일을 더 즐겁게 만들어주는 것 같아요. 내가 아무리 작은 일을 하더라도 팀에 기여하고 있다는 만족감을 얻을 수 있고요. 또 하나는 제 가치관과 토스팀의 가치관이 일치하는 것도 큰 원동력이 되는 것 같아요. 장애에 투명하게 대응하는 것부터, 이번에 마련한 ‘고객 피해 전액 책임제’와 같은 부분요. 사실 금융혁신에 대해 조금 막연했는데, 토스팀에서 정말 금융혁신을 이룰 수 있을 것 같은 생각도 점점 뚜렷해지고 있어요.
서진 : 저는 동료에 대한 ‘존경심’이요. 동료가 엄청난 속도로 업무를 한다거나, 놀라운 책임감을 보여줄 때 ‘나도 저렇게 하고 싶다’ 라는 생각이 들거든요. 특히, 서비스 장애 상황에서 동료에 대한 존경심이 많이 들죠. 서비스 장애가 나면 정말 순식간에 슬랙 채널에 많은 분들이 모여 해결을 위해 애써주세요. 밤이고 낮이고, 당장 문제 해결에 도움을 줄 수 있으면 누구든지 자원하는 거죠. 심지어 본인이 짠 코드가 아닌데도 장애가 나면 코드를 하나하나 뜯어보고 문제 해결을 위해 성심성의껏 애써주세요.
유성 : 맞아요. 저도 앱 전체에 영향을 주는 장애를 낸 적이 있거든요. 그런데 장애 상황에서 책임이나 잘잘못을 따지는 게 아니라 ‘일단 롤백(오류가 발생할 때, 이전 상태로 되돌리는 것)부터 하자’ ‘일단 고쳐보자’, 문제를 해결하는데 모두가 집중하거든요. 문제 해결 후에도 ‘누가, 왜, 코드를 이렇게 짰냐’가 아니라 어떤 이유로 장애가 생겼는지를 꼼꼼히 함께 살펴보고요. 동일한 장애가 나지 않도록 해결책까지 마련하는 과정이 고맙고 존경스럽더라고요.
Q. 토스팀에서 이루고 싶은 목표는 무엇인가요?
한솔 : 저는 뷰뿐만 아니라 구조적인 것에 관심이 많은데요. 다른 곳에서 경험할 수 없는 트래픽을 경험하면서, 더 효율적이고 안정적인 구조를 설계하는 법을 배우고 싶어요.
서진 : 앞으로 토스에서 기술적인 어려움에 도전해 나가고 싶어요. 웹이라고 하면 앱과 비교해서 사용자와의 인터랙션이 떨어진다고 생각하는 분들도 많은데요. 토스 웹 제품인지 토스 앱인지 헷갈릴 정도로 인터랙션이 대단한 웹을 만들고 싶습니다.
길수 : 메이커로서의 성장을 하고 싶습니다. 주어진 기능을 잘 개발하는 것뿐만 아니라, 어떤 기능을 만들어야 할지부터 고민할 수 있는 경험과 통찰력을 기르고 싶어요. 성장하고 싶은 만큼 성장 할 수 있다는 게 토스팀에서 누릴 수 있는 가장 큰 혜택이라고 생각합니다.
성원 : 저는 최근에 팀을 옮겼어요. 타임라인 사일로에서 클라이언트 플랫폼팀으로요. 사일로에서 제품 개발을 해봤으니까, 일하면서 개발자가 어떤 부분에서 불편함을 겪는지 잘 알고 있거든요. 제가 직접 겪었던 불편함을 해소해서 개발자들이 본인이 맡은 서비스에 더 집중할 수 있도록 하고 싶어요.
유성 : 저는 여러 명의 몫을 해낼 수 있는 사람이 되고 싶어요. 제가 속해 있는 인터널 팀의 경우, 풀스택 개발자를 채용하고 있어요. 누군가는 ‘토스가 작은 회사도 아닌데 왜 풀스택 개발자를 뽑지?’라고 궁금해하실 수도 있을 것 같은데요. 오히려 특정 제품을 만들 때 넓은 영역을 혼자 끌고 갈 수 있다는 건 큰 힘이고, 경쟁력인 것 같아요.
Q. 어떤 분들이 토스팀에 합류하면 즐겁게 일할 수 있을까요?
유성 : 일을 좋아하는 사람에게 정말 좋은 팀이라고 생각해요. 제가 속한 인터널 팀의 특성상, 일하는 방식과 UX에 관심이 있는 분에게도 추천을 드립니다. 저희 팀은 다른 팀원의 “업무 경험”에 끊임 없이 관심을 가져야 하기 때문이에요.
성원 : 스스로 본인의 목표를 설정하고, 목표를 성취하기 위해 노력하는 분이라면 즐겁게 일할 수 있을 것 같아요. 토스팀은 누군가가 업무를 정해주지 않거든요. 누구나 충분히 목소리를 낼 수 있고, 해야 할 일을 스스로 결정해 나간다는 표현이 딱 맞는 것 같아요.
한솔 : 안드로이드 개발자로 지원하신다면, 앱이 사용자 접점에 있는 만큼 사용자에게 최고의 경험을 주고 싶은 분이라면 즐겁게 일할 수 있을 것 같아요. 경력이 없더라도, 능동적으로 일을 하는 분이라면 토스팀에서 그 누구보다 빠르게 성장할 수 있다고 생각해요. 저 또한 모르는 게 있으면 함께 고민하고, 알아갈 수 있는 동료가 되어드리고 싶고요.