- 내가 성장하려면 어떤 환경이 더 필요할까?
- 개발을 잘 하는 것을 넘어서, 임팩트를 만드는 개발자가 되려면?
- 어떤 회사들에서 일하면 실력이 더 좋아질까?
장인정신
먼저 언급하고 싶은 첫 번째 주제가 있는데, 장인 정신입니다. 풀어서 설명하자면 언뜻 사소해 보일 수 있는 그런 디테일까지 집중해서 탁월하게 풀어내는 정신이라고 할 수 있겠습니다.
사람마다 다를 수는 있을 것 같은데요, 저는 소프트웨어를 사용할 때 그 소프트웨어가 주는 품질에 민감한 편입니다. 켜자마자 로딩을 굉장히 오랜 시간 동안 기다려야 되거나, 갑자기 덜컹해가지고 잘못된 영역을 클릭하는 것 같은 경험을 하면 마음속 깊은 곳에서 한숨이 나오기도 합니다. 많은 앱들을 사용하시면서 경험하셨을 거라고 생각해요. 아무리 버튼을 눌러도 화면이 넘어가지가 않는다거나, 화면이 출렁인다거나, 앱에 접속을 하자마자 갑자기 거대한 배너가 뜨면서 제가 보려고 했던 걸 막는다거나, 이런 것들에 좀 민감한 편인데요.
코드에 대해서도 저는 비슷하게 생각하는 편입니다. 개발을 하다보면 아름다운 코드보다는 안좋은 코드를 보는 경우가 더 많은데요. 처음에 하나의 if문이 어느새 다섯 개가 넘어가있는 모습, 아니면 처음에는 함수가 인자 하나만 받았는데 어느새 다섯 개의 인자를 받는 모습을 심심치 않게 보곤 해요. 처음에는 작았던 코드의 냄새들이 쌓여가면서 결국 뚜껑을 덮어야만 하는 그런 상황을 저는 굉장히 싫어합니다.
이런 영역들은 사람마다 민감한 정도가 각자 다른 것 같아요. 쉽게 고칠 수 있는 마법 같은 해결책이 있으면 좋겠습니다만, 해결하는데 깊은 고민과 여러 차례 시도가 필요할수록 해결하는 걸 꺼리게 되는 경우도 많아지는 것 같아요. 저는 그렇게 생각하지 않지만 주변에서 이 정도는 그냥 넘어가자고 말하면 사실 '아, 그것도 그렇지', '이번에 꼭 고칠 필요는 없지' 하고 마음이 약해지고는 합니다.
그런데 제 기억으론 토스 안에서는 반대로 '이거 도대체 어떻게 고칠 수 있을까요?'라는 말을 더 많이 들어왔던 것 같아요. 그래서 제가 '다음에 고칠까'하면서 마음이 약해질 때도 '이건 이번에 고칠 수 없냐'는 말을 자주 들었던 것 같습니다.
이렇게 주변 사람들이 어떤 말을 더 자주 하냐가 사실 개발자 개인의 마음가짐에 큰 영향을 주는 것 같습니다. 그래서 토스에서의 문화를 보여주는 예시 하나를 소개드리고 싶어요. 토스에는 ATM 현금 찾기라고 하는 제품이 있습니다. 처음에 진입을 하면 얼마를 찾을지를 입력해야 되는데요, 금액을 입력하기 위해 아이폰에서 금액 입력 인풋을 누르면 이상한 일이 벌어지고는 했습니다. 원래 화면에 가장 아래에 있던 '확인'이라고 하는 버튼이 갑자기 키보드에 가려져 사라지는 거죠. 그래서 금액을 입력하고 확인 버튼을 보려면 없고, 버튼을 보려고 하면 화면을 탭해서 키보드를 내려야 됩니다.
그래서 사용자는 이렇게 확인 버튼이 가려져 있는 상태를 보면 저는 충분히 헷갈릴 수 있다고 생각합니다. 왜냐면 3만원을 입력했는데 돈을 찾으려고 하면 다음에 어떻게 해야되는지가 명확하지 않으니까요. 그래서 이런 화면을 저도 쓰면서 많이 답답해서 문제를 풀고 싶었는데, 사람마다 이 문제에 반응하는 모습이 제각각이었던 것 같아요.
저는 너무 불편하다 말씀드렸는데, 사실 다른 앱들을 보면 다 비슷한 이슈들이 있었던 것 같습니다. 아무래도 이런 UI가 앱에서 많이 보이는 UI다보니 비슷한 이슈들이 있을 수 밖에 없죠. 그래서 지인들에게 물어보거나, 인터넷에 이슈트래커 여러 개를 찾아보니 이런 이슈가 존재한다는 것을 아시는 분들은 좀 계십니다. 그런데 이건 iPhone, iOS의 어쩔 수 없는 한계다 보니까 이건 인정하고 넘어가야된다 라고 하시는 경우들이 많더라고요.
근데 제가 토스 주변에 있던 분들과 일할 떄의 경험은 좀 달랐던 것 같아요. 어떻게 보면 ATM 화면 이전에도 여러 차례 보였던 현상인데, 좋은 제품을 만들고 싶어하고 허접한 제품들을 보면서 아쉬워하는 분들이 많았다고 생각하거든요. 그래서 원하는 수준의 사용적 경험이 되기까지 몇 번, 수백 번 넘게라도 계속해서 개선해 나가려고 하는 분들이 계셨습니다.
단적인 예로 토스의 송금 제품이라고 하면요, 토스의 대표 제품이고 천만 명이 넘는 사람들이 매일매일 사용하고 있지만 여전히 더 편리한 사용성을 위해 새로운 시도들을 이어가고 있습니다. 그래서 이런 환경 속에서 이런 문제에 대해서 이슈를 던지니까 오래 걸려서라도 해결할 수 있는 시간이 주어졌습니다.
막상 해보니까 사람들이 왜 안된다고 하는지에 대해선 알겠더라고요. 뻔하고, 쉬운 해결책은 당연히 없고, 웹개발자였지만 iOS의 사파리 소스코드까지 찾아볼 수밖에 없었습니다. 그 중간에 고비들이 굉장히 많았는데, 크게 2~3개가 있었던 것 같아요. 어떨 때는 버튼이 움직이는데 애니메이션이 너무 이상하다든지, 위치가 틀리다든지, 근데 그런 고비들을 하나씩 넘겨가면서 새로운 고비를 만날 때마다 사실 기뻤다가 슬펐다가 했던 그런 경험들이 떠오르는데 사실 일주일 정도는 이 문제를 해결하려고 되게 많이 온종일 몰입했다고 생각해요.
그런데 iOS 사파리 브라우저에서 fixed라는 속성이 어떻게 처리되는지 깊이 있게 이해하고 나니 문제가 겨우 풀리더라고요. 개발자들이라면 다들 아시잖아요, 딱 완벽하게 동작하는 걸 보고, 딱 키보드 탁 치고 일어나가지고 바로 옆에 계셨던 CDO분께 달려가서 바로 보여드렸던 기억이 생생합니다.
사실 문제를 푸는 과정이 재밌었냐하면 전혀 아니었고, 지난하고 힘들었다고 생각하는데요. 그 이후에 동료들의 반응이 뜨겁고 굉장히 뭉클했던 것 같습니다. 디자이너분들도 굉장히 많이 칭찬을 해주셨어요. 어떻게 보면 사소한 버튼의 위치인데도 불구하고 너무 편해졌다는 피드백을 많이 들었고, 문제를 푸는 과정 속에서도 깊이 있는 내용이다보니 제가 알게 된 내용을 발표했을 때 프론트엔드 개발자들의 반응도 굉장히 뜨거웠습니다. 그리고 무엇보다 이런 기술적인 움직임이 토스 앱 전체에 적용이 되니, 저도 쓰는 내내 편하고, 지표도 일정 부분 개선되면서 기쁘더라구요.
그래서 이런 모습을 토스의 코어 벨류에선 'Go the extra-mile' 이라고 합니다. 뇌에 힘을 빼고도 할 수 있는, 안전하게 할 수 있는 일에서 벗어나서, 기존의 스탠다드를 넘어서 실질적인 문제 해결을 위해 아무도 안해봤던 일들에 도전하는 것입니다.
토스 앱의 곳곳에서 개발자와 디자이너 그리고 메이커 전 직군의 노력들을 발견할 수가 있는데요. 언급했던 송금 화면도, 가입 과정도 그렇고 디테일 넘치는 인터랙션의 한땀 한땀을 만드는 과정 속에서도 노력을 발견할 수 있습니다.
그래서 저는 토스에서 더 좋은 경험에 도전한 사례 중에 기술적인 부분 하나를 언급하고자 합니다. 토스에서는 빠르게 개발하기 위해 웹뷰를 많이 사용합니다. 그런데 웹뷰를 아무렇게나 사용하면 로딩 속도가 3초 정도 걸려 화면들이 한 박자 늦게 뜨게 됩니다. 그런데 토스에서는 3초나 1초의 로딩속도가 굉장히 큰 차이로 다가온다고 생각해요. 그래서 그 로딩 속도를 1초 미만으로 줄이기 위해 3년 전 당시에 흔하지 않던 서버 사이드 렌더링 도입에 도전을 했어요. 하지만 이걸 하려면 코드의 근간을 바꿔야해서 사실 많이 어려웠습니다. 그런데 그런 작업들을 진행해서 깊이 몰입하고, 3년 전 기준으로 봤을 때도 어떻게 보면 1년에 사용자들이 아낀 로딩 시간을 합치면 100년 이상의 로딩 시간을 감축하기도 했고요.
그리고 우리가 매일매일 봐왔던 관성적인 약관 동의 화면도 토스 메이커들은 계속해서 질문을 던집니다. 사용자가 내용을 이해하지 않고 단순히 체킹만 하고 넘어가는게 아니라 더 직관적으로 내용을 이해하고 동의하게 하는 새로운 동의 화면을 몇 달간의 고민을 거쳐 만들었습니다. 그래서 이 경우는 사용자 동의율이 63% 상승하기도 하였습니다. 아주 일반적인 화면이 완전히 다른 유저 플로우가 되는 과정이 사실 디자인부터 개발까지 많은 시간이 소요됐지만 결국엔 집중해서 풀어냈고 좋은 결과를 가져왔다고 볼 수 있었습니다.
그래서 토스는 매일매일 수십 번 라이브 배포를 하면서 매일매일 1%의 개선이 쌓여가는 조직이라고 생각을 하는데요.
이런 유명한 수식이 있듯이 작은 개선점들이 모이고 모여서 차별화된 사용자 경험을 제공할 수 있다고 생각합니다. 사용자 중심 가치와 디테일에 집중하는 팀원들과 함께 치열하게 일하면서 지금까지 없었던 가치를 제공하는 제품을 만들 수 있어 의미가 있었다고 저는 생각해요.
근데 사실 이렇게 한계에 도전하는건 저는 결과물도 멋지지만 과정에서도 훨씬 재미있고 동기부여가 된다고 생각합니다. 지금까지 개발이 돼왔던 뻔한 제품만 만드는 건 재미가 없잖아요. 누구도 반복적인 작업을 하고 싶어하진 않는다고 생각합니다. 해봤던 일보다는 안해봤던 일. 그리고 사람들이 매일매일 하는 일보다 아무도 안해봤던 일을 하는게 더 재밌다고 저는 생각해요. 그 과정이 항상 재미있지만은 않고 힘들기도 했지만 돌이켜보면 해이해지지 않고 항상 도전하는 자세로 임하게 만들어준 가치관이었던 것 같아요.
다르게 말하자면 장인 정신 없이 일하는 것은 1년 차의 경험을 계속 반복하는 것이라 생각합니다. 처음에 비해 좀 더 숙련된 상태가 될 수 있겠습니다만 지식의 넓이나 깊이는 비슷할 것입니다. 처음엔 새로웠을지라도 어느새 익숙해진 일을 반복하는 것이죠. 반대로 장인 정신을 가지고 일하는 건 늘 새로운 경지에 도전하는 일이라고 저는 생각하거든요. 새로운 것을 알고, 새로운 것을 적용하고. 내가 할 수 없었지만 할 수 있게 되는 것들이 늘어나고, 결과물도 훨씬 의미있어지는 것이죠.
이 글을 쓴 이유
토스 채용 공고 6개를 지원하고 서탈 3번을 받은 시점에서 이 글을 쓴다
영상을 보면서 정말 많은 생각이 들었다. 채용 공고에 적혀있는 토스에서 중요하게 생각하는 가치들과, 내가 왜 이직을 알아보기로 결심했는지
내가 여태껏 이력서조차 관리하고있지 않다가 갑자기 이력서를 쓰고 지원했던 이유가 무엇이었는가?
이력서를 쓸 때까지만해도 내 생각은 '일이 작년만큼 재미없다. 작년만큼 몰입할 일이 없어진 것 같다'는 생각이었다. 내가 다른 곳에서 푸념했듯 실제로 우리 개발팀은 큰 변화를 겪었다. 규모가 두 배가 되었고, 업무의 세분화가 일어났다. 전 단계에 개입할 수 있었던 첫 해와 달리 영향력을 행사할 수 있는 범위가 좁아졌다는 느낌을 받았다. 이것을 자각하자마자 일이 재미없어졌다. 나에게 할당된 태스크들이 일주일 단위의 숙제처럼 느껴졌다.
그래서 그 때부터 위기감을 느끼고 나의 외적 모습에 신경쓰기 시작했다. 멈춰있던 블로그도 급히 가동시키고, 디스크 조각 모음을 하듯이 지난 1년 반의 내 흔적들을 찾아 정리하기 시작했다. 나름 치열하게 일했기 때문에 쓸 거리들은 넉넉했다. 프론트엔드 개발자라면 모두가 꿈꿀 토스가 나한테도 역시 이상향이었기 때문에 토스의 공고만 분석하고 이력서를 썼다. 친구들의 피드백을 두 번 받고 3장의 이력서를 제출했다.
제출하고나서 뒤늦게 '토스 서류 메일'이라는 키워드로 인터넷 서핑을 시작했다. 아무리 바빠도 이틀 내엔 온다던데. 하던 순간에 두 개의 메일이 꽂혔다. 토스에 지원해주셔서 감사합니다. 아쉽게도 모시지 못하게 되었습니다.
나름 기대하고 있었던지라 작은 충격을 받았다. 그런데 이내 납득할 수 있었다. 쓸 땐 인지하지 못했는데, 내 이력서 내용이 이들이 원하는 '무언가를 스스로 찾아서 개선해본' 경험과는 거리가 멀었음을 깨달았다. 쓰면서도 조금 불안했다. 내가 한 경험은 모두 팀장님이 시켜서 한 일들인데, 아무리 열심히 비틀어도 그 맨 앞 단은 채울 수가 없었다. 하 씨 이것도 결국엔 기획팀이 잘 정리해주신걸 내가 UIUX만 개선한 것 뿐인데. 그럼 내가 역할과 주제넘게 나도 실무 미팅에 참석하고 싶다고 해야하나? 그건 아닌 것 같은데...
바로 그 채울 수 없는 '주체성'에 대한 해답을 찾지 못하고 있다가, 위 토스 프론트엔드 헤드의 발표 영상을 접하면서 가슴의 울림과 부끄러움 양가 감정을 얻게 되었다.
가장 핵심적인 부분을 속기했듯 키워드는 '장인 정신'이었다. 회사 제품을 내 것처럼 여겨 아무도 하려고 하지 않은 것들을 하기. '아무도 하려고 하지 않은 것들'에서 부끄러움을 느꼈다. 면도 대충하고 외출해서 고고한 척하고 있다가 거울 안의 내 엉성한 모습을 마주했을 때의 그 부끄러움이랄까?
현재 프론트엔드 팀에서 가장 오래 살아남은 사람으로써 그간 마주해왔던 '이정도면 됐지'하고 넘겼던 수많은 하자들이 머릿 속을 스쳐지나갔다. 그리고 언젠가부터 이제는 팀장님이 되신 리드님이 나머지 셋이 태스크를 붙잡고 있을 동안 소리도 없이 하나 둘 씩 고쳐놓고 계셨다.
나도 저렇게 해야하는데...생각하면서도 난 내 눈앞에 있는 태스크를 쳐내기로 집중하고 일단 생각하지 않기로 했다. 그러고 태스크가 끝나면 다음 태스크를 받기만을 기다리고, 그 사이 시간엔 나름 개발 아티클들을 찾아보긴 했지만 무언가 뚜렷한 목적에서 비롯한 행동이 아닌 그저 시간을 채우기 위한 필러로 시간을 버렸다.
이러면서 더이상 할 게 없다고, 내가 알던 빠릿한 작년의 개발팀이 아니라고 마음 속으로 힐난했다. 그리고 점점 열정이 식어갔다. 퇴근하고 나면 운동하고 밥먹고. 그 남는 짧은 시간은 정말 의미 없이 보냈다. 자취 생활에 적응한다는 핑계로도 이제 충분한 시간이 지났고, 여전히 그 관성대로 자기 전까지 뭉갰다.
토스를 가면 다시 돌아올거야. 토스는 작은 스타트업 여러개가 뭉친 회사랬으니까. 라는 생각만 가득찼었는데, 정작 이들이 가장 중요하게 내세우는 DRI, 즉 모든 권한이 나에게 있다는 정신은 왜 표방하는건지 이해하지 못했다. 당연히 앱이 크고 사용자가 많으니까 직원 개개인에게 경각심을 주기 위한 장치겠거니 하고 말았다. 그런데 저 영상을 보고 아니라는 생각이 들었다. 얘네는 말로만 하는게 아니라 진심이구나. 진짜 저렇게 생각하는 사람들만 뽑고 저렇게 행동하는 사람들만 회사에 있구나.
이 부분이 나에게 큰 깨달음을 주었다. 모든 권한과 책임이 나에게 있다는 정신은 토스에 가면 생기는 특별한 정신이 아니다. 어디에서나 누구나 가질 수 있는 생각이다. 나도 그런 생각을 가지고 일할 수 있고 단지 토스는 그런 정신을 가지고 이미 일해오고 있는 사람들을 골라서 뽑는 것일 뿐이다.
이 생각이 드니까 정신이 차려졌다. 사실 내가 지금 팀을 떠나야할 필수적인 이유는 하나도 없다. 나를 직접적으로 위협하는 사안도 없고, 우리 개발팀이 조금 흔들린다고 내가 흔들려야할 필요도 없는 것이다. 내가 내 생각 없이 팀에 기대있으니까 팀이 조금만 흔들리더라도 나도 같이 흔들렸던 것이다.
박서진 토스 프론트 헤드가 말했던 '장인 정신'을 가지고 우리 회사의 제품을 살펴보면 정말 뜯어먹을 것이 산더미다. 당장 내가 붙잡고 있는 서버사이드 렌더링도 그렇고, 우리가 매일 입버릇처럼 달고 사는 '우린 B2B라 디자인이 그렇게 안중요해'라는 명목 하에 방치돼있던 유려하지 못한 UX들. 할려면 정말 개선할 수 있는 부분들이 많고 발표에서처럼 '아무도 하려하지 않지만 하면 분명히 좋을' 것들인데 정작 성장 거리들을 눈 앞에 두고 그림의 떡에만 침을 줄줄 흘리고 있던 것이었다.
그래서 결심했다. 토스에 가려고 아둥바둥하지 않고, 이 회사에 남아서 우리 개발팀을 토스로 만들기로. 우리 제품을 토스 제품처럼 유려하고 미친 듯이 예쁜 제품으로 만들기 전까지 나가지 않기로 결심했다. 이렇게 목표가 정해져버리니까 그 뒤의 고민과 상심은 눈 깜빡할 새에 사라졌다. 내가 실제로 이 목표를 달성할 때쯤이면, 진짜로 우리 회사가 토스가 돼있거나 적어도 나는 토스의 인재상에 부합하다 못해 토스 그 자체가 돼 물흐르듯 토스에 합류할 수 있게 될 것이다.
나는 이 목표가 현실적으로 불가능한 것이 아니라고 생각한다. 객관적으로 우리 개발팀은 규모가 커졌다고는 하지만 여전히 수평적이고, 구분이 확실해졌다고는 하지만 여전히 자유도가 높다. 심지어 나는 내 지난 첫 해의 노력에 대한 가치도 높게 평가받았다. 그리고 우리 회사 제품은 토스와 마찬가지로 시장에서 독보적인 존재다. 그래서 내가 노력만 한다면 충분히 제품에 기여할 수 있는 여지가 많고, 그 노력을 제대로 인정받을 수 있다는 믿음이 있다. 그리고 이러한 노력의 시작은 거창하게 중요한 프로젝트들을 내가 독식해서 이력서에 쓸 것들을 채우려는 흑심이 아닌, 순수히 프론트엔드 개발자로서 할 수 있는 제품에 대한 고민과 아주 사소한 개선일 것이다. 단지 내가 팀을 떠나려고 한다면 그 이유는 다음과 같을 것이다. 내가 몰입할 수 없게 환경이 안좋아졌다거나, 내 노력에 응당한 대가를 받지 못했다거나.
나는 토스에 들어갈 수 있는 사람이 되고자 하지 않는다. 틀을 정해두고 그 틀에 맞게 능력치를 채우려고 하지 않는다. 나는 그 자체로 완성된 개발자가 되려고 한다. 어디에서 일하든, 무엇을 개발하든 관통하는 진리를 찾았다. 이 진리를 체화하게 된다면 내가 원하던 게임 개발도 손쉽게 해낼 수 있을 것이다.