Toss Frontend Accelerator 5기를 수료하며
방황
개인적인 사정으로 휴직을 마치고 돌아왔을 때, 나는 협업보다는 1인 개인 사업자처럼 움직여야 하는 목적조직에 합류하게 되었다. 그곳에서의 1년 반은 꽤나 역설적인 시간이었다. 인프라, 번들러, 패키지 매니저 등 다양한 영역을 다루며 넓게 성장하긴 했지만 스스로가 이른바 코딩 잡부가 되어간다는 묘한 갈증을 지울 수 없었다.
코드 설계 측면에서 연속성이 결여된 회색 지대 영역의 개발만 반복하다 보니 실력적인 밀도가 채워지지 않는 느낌이었다. 무엇보다 성향상 다양한 동료들과 하나의 목표를 향해 달리고, 장기적인 구조를 고민하며 밀도 높은 코드 리뷰를 주고받는 것을 즐기는 편인데, 파편화된 작업만 하다 보니 내가 짜는 코드에 아무도 큰 관심을 두지 않는 환경에 관종력(?)을 해소할 곳이 없었던 나는 회한이 들 정도로 깊은 번아웃에 빠지고 말았다.
다행히 연말에 운 좋게 다시 제품을 만드는 팀으로 합류하게 되었고, 길었던 번아웃의 터널 끝에서 다시금 ‘코딩을 제대로 잘하고 싶다’는 욕망이 꿈틀거리기 시작했다.
GO!
이 무렵, 전 직장 동료 오종택님을 만났다. 처음 코스(ACC)를 설계하실 때 제안을 주셨지만 거절했었다. 내가 코드를 짜는 날것의 과정을 한 시간 동안 녹화해서 평가를 받아야 한다니. 초면도 아니고 오랜 시간 함께 일했던 동료에게 나의 밑바닥을 보여준다는 건 어쩐지 더 아찔하고 벌거벗겨지는 기분이었기 때문이다.
어느정도 시간이 지나 다시 얘기를 들었을 때, 마침 나 스스로 코딩에 대한 갈증이 극에 달했던 시기였으니 더 이상 알량한 자존심을 부릴 때가 아니라는 결론에 도달했다. 결론부터 적어보자면, 이때 눈 딱 감고 코스에 지원한 것은 내 개발 커리어를 통틀어 가장 잘한 선택 중 하나가 되었다.
과정
프리코스 선발을 위한 사전 과제로 라이브 코딩을 녹화하며 마주한 내 민낯은 꽤나 충격적이었다. 스스로 깊이 고민하기보다 습관적으로 AI에게 사고를 외주 주고 있는 모습, 재사용성이라는 명목하에 컴포넌트를 맥락 없이 무지성으로 쪼개버리는 습관. 영상을 제출하며 쥐구멍에라도 숨고 싶었지만 역설적으로 코스의 필요성에 대한 확신이 서는 순간이었다.
그렇게 부끄러움과 간절함을 안고 합류하게 된 6일간의 프리코스. 굳어버린 나의 작업 관성을 단번에 깨부수는 건 역시나 쉽지 않았다. 하지만 다행히도 매일 새벽까지 밤을 지새우며 몰입했던 그 치열한 시간 속에서 뭉치기라는 낯선 개념을 접하게 되었다. 맹목적인 코드 분리를 멈추고 무엇이 진짜 좋은 인터페이스인지에 대한 고민의 물꼬가 트였다.
운 좋게 최종 6인에 선발되었다. 코스를 진행하면서 기수 내 다이내믹스를 신경 써줄 기장과 부기장을 선출하는 시간이 있었는데 감사하게도 투표를 통해 내가 기장 역할을 맡게 되었다. 사내에서 꾸준히 회고를 리드해 오기도 했고, 크고 작은 리더 역할을 경험해 본 짬이 있던 터라 속으로는 맡아도 좋고, 아니어도 그만이라는 편안한 마음이었는데 어쩌다 보니 기분 좋게 완장을 차게 되었다.
나를 드러내기
결국 코딩도 사람이 하는 일이라 내면의 멘탈리티가 전부를 좌우하곤 한다. 이 코스에서 배운 가장 중요한 태도는 나를 드러내기 였다. 나름 연차가 쌓이다 보니 모르는 걸 들키기 싫어 아는 척으로 포장하기 쉬운 위치가 되었지만, 모르면 모른다, 힘들면 힘들다고 덤덤하게 인정할 때 비로소 심리적 안전감이 생기고 진짜 배움이 시작된다.
코스 종료를 불과 일주일 앞두고 멘탈이 문자 그대로 바닥을 친 적이 있다. 이유인즉슨 코드 추상화라는 한쪽 영역에만 너무 매몰된 나머지 코스의 또 다른 핵심축인 작업 흐름 개선의 끈을 아예 놓고 있었다는 사실을 뒤늦게 깨달았기 때문이다. 남들은 한 달 내내 두 가지를 밸런스 있게 훈련하고 있었는데, 나 혼자 절반을 완전히 놓치고 있었던 것이다. 그 사실을 인지한 순간 밀려온 무력감은 모든 의욕을 앗아갔다.
이런 자기 파괴적인 상태를 기민하게 알아챈 멘토님과 진한 심리 상담을 진행하게 되었다. 대화를 나누며 느낀 건, 내가 그동안 스스로의 성취를 전혀 인정해주지 않고 끝없는 자책의 굴레에 빠져 있었다는 점이다.
인간의 행동은 아래와 같은 수식으로 설명된다.
나는 끝없는 자기검열과 완벽주의로 심리적 저항값을 무한대로 높이고 있었다. 스스로 성장의 근거를 찾아야 할 내 궤도에, 자꾸만 남의 시선과 외부의 평가 기준을 끼워 넣고 있었다.
가장 먼저 짚고 넘어간 건 사실과 해석을 분리하는 것이었다. 한 달 동안 작업 흐름 훈련을 놓쳤다는 건 그저 명백한 팩트일 뿐인데 그걸 굳이 자책으로 연결 짓고 있었다. 내 멘탈리티 알고리즘에 심각한 버그가 있었던 셈이다. 과거의 실수에 얽매여 끊임없이 자책하는 반추적 사고를 멈추고 이제라도 미래를 향한 성찰로 방향을 틀면 될 일이었다.
코스가 끝이 아닌 시작이니 지금이라도 깨달은 게 천만다행 아닌가.
코드 잘 짜기
개발자는 왜 코드를 잘 짜고 싶어할까 생각해보면 결국 고객에게 가치를 빠르고 저렴하게 전달해야 하는 의무가 있기 때문이다. 가치 전달은 새로운 기능을 배포하는 것일 수도 있고 버그를 수정하는 것일 수도 있다. 이를 빠르게 해내려면 결국 유연하게 수정하고 추가할 수 있는 코드 베이스가 필요하다. 리팩토링을 할 때마다 예측 불가능한 사이드 이펙트가 터지거나 간단한 기능 하나 추가하는데 일주일이 걸린다면 제대로 가치를 전달하지 못하는 셈이다. 그렇기에 우리는 예측 가능하고 결합도는 낮으면서 응집도는 높은 인지 부하가 적은 코드를 작성해야 한다.
이번 코스의 핵심 축은 전문가의 무의식적인 판단 과정을 의식의 영역으로 끄집어내어 내 것으로 만드는 CTA(Cognitive Task Analysis) 훈련이었다. 매주 코딩 테스트를 치르고 전문가가 동일한 코드를 리팩토링하는 과정을 관찰하며 내 사고 흐름과 철저히 비교해보는 시간을 가졌다. 당장 코드를 고치려는 해결책으로 직진하기 바쁜 초보와 달리 전문가는 섣부른 수정을 멈추고 진짜 문제를 정의하는 데 집중했다. 코드를 개별 구문이 아니라 의미 있는 패턴으로 파악하고 그렇게 확보한 뇌의 여유 공간을 고차원적인 설계 고민에 온전히 내어주는 행동을 반복해서 의미있는 가치 전달을 꾸준히 반복하는 것이 전문가의 코딩 방식이었다.
이런 전문가의 멘탈 모델은 잘 정립된 추상화에서 나왔다. 여기서 추상화란 본질(What)을 드러내어 이름을 붙이고 세부사항(How)은 숨기는 행위라고 정의해볼 수 있다. 시작은 코드가 보내는 불편한 신호에 반응하는 것이었다. 코드를 읽다 묘한 긴장감을 느끼거나 이름을 짓기 고통스러운 순간이 오면 비로소 추상화가 필요한 때가 온 것이다. 잘 세워진 추상화 벽에서 안에서 밖으로 기획의 언어를 빌려 잘 이름 지어진 코드를 UI와 매칭되는 형태로 다듬어 나간다. 이 점진적인 과정을 반복하다 보면 어느새 뇌를 짓누르던 인지 부하가 낮아지고 코드가 한 편의 글처럼 자연스럽게 읽히는 경험을 하게 된다. 이 과정을 통해 짜여진 코드베이스는 고객에게 가치를 빠르고 저렴하게 전달할 수 있게 하는 토대가 되어준다.
남겨진 과제
일하는 방식에 있어서는 Ship Value First의 대원칙 아래 한 번에 하나씩만 집중하는 훈련을 반복했다. 코스 후반부에 아차 싶어 다시 부여잡았던 바로 그 작업 흐름이다.
인간의 작업 기억 용량은 생각보다 초라해서 멀티태스킹을 하려다 보면 필연적으로 인지 과부하가 온다. 이를 방지하기 위해 10분 타이머를 맞춰두고 오직 하나의 목표만 달성하기 위해 수단과 방법을 가리지 않는 훈련을 했다.
솔직히 말해 이 부분은 여전히 내게 큰 숙제다. 도파민과 숏폼에 절여진 세대라 그런지 자꾸만 시선이 다른 곳으로 분산되는 몹쓸 멀티플레이 습관을 완전히 버리진 못했다. 하지만 작은 단위의 액션 아이템을 정하고 예전 같으면 일주일씩 미루던 일을 만 하루도 안 되어 실행에 옮기며 조금씩 나아짐을 경험하고 있다. 코스의 끝이 진짜 훈련의 시작이니 앞으로도 의식적인 노력을 계속해 볼 참이다.
마무리하기
이번 코스는 오랫동안 방치되어 켜켜이 녹슬어 있던 나의 자아를 대면하는 시간이었다. 6주간 부단히 닦고 광을 내다 보니 삐그덕 거리던 소음들이 점점 잠잠해지는 것이 느껴진다. 추상화와 설계 패턴을 배운 것도 컸지만, 사실 이 코스가 나에게 남긴 진짜 본질(What)은 진짜 문제가 무엇인지 파악하는 해상도를 높인 것이 아닐까 싶다.
더 나은 내가 될 수 있었던 참으로 밀도 높고 값진 시간이었다. 지금 이 글을 적으며 느끼는 열정을 유지하며 나아갈 수 있기를 바라본다. 부단히 노력해보자 앞으로도.
🍪쿠키
감동의 롤링페이퍼를 잊지 못한다.