나는 왜 3배 빨라졌는가
작년 10월, 채용 과제 앞에서 6시간 동안 허덕였습니다. "어디서부터 손대야 하지?" 코드는 점점 엉켜갔고, 시간은 흘렀어요. 결국 완성하지 못했습니다.
그간 <클린 아키텍처>, <리팩토링>, <DDD> 같은 책도 열심히 읽었어요. 강의도 들었고, 회사 코드에도 적용해왔어요. 그런데 막상 제한된 시간 내에 바닥부터 짜려니 막막했습니다. 자존심이 상했어요.
올해 5월 토스에 입사한 후 반년이 지났습니다. 같은 과제를 다시 풀어봤어요. 이번엔 2시간 만에 끝났어요. 코드 퀄리티도 훨씬 좋았고요.
더 놀라운 건 이거예요. 물론 코드를 많이 칠 수 있었다면 더 좋았겠지만, 코드를 예전보다 덜 쳤는데도 실력이 확 늘었습니다. 자신감도 생겼고요.
새로운 지식을 배운 게 아니에요. 단 하나만 바꿨습니다. 토스 전문가들이 "어떻게" 생각하는지 관찰했어요.
사고의 순서가 핵심이다
예전의 저는 코드를 볼 때 이렇게 생각했어요.
•
"변수명부터 정리해야지"
•
"함수가 너무 길어, 쪼개야겠어"
•
"중복 코드를 찾아야지"
지금의 저는 이렇게 생각합니다.
•
"요구사항이 뭐지?"
•
"요구사항이랑 코드가 1:1로 매칭되나?"
•
"복잡한데 일단 인라인 해놓고 생각해볼까?"
지식의 양은 비슷해요. 하지만 사고의 순서가 완전히 달라졌습니다.
왜 순서가 중요할까요? 건축학자 크리스토퍼 알렉산더가 이런 얘기를 했어요.
부엌을 만들 때 냉장고 위치를 먼저 정하면? 나중에 식탁이 안 들어가요. 식탁을 먼저 정해야 해요. 식사가 부엌의 핵심 활동이니까요. 식탁 위치가 정해지면 냉장고, 싱크대는 자연스럽게 정해지죠.
코드도 똑같아요. 변수명(표면)부터 보면 요구사항(본질)을 놓쳐요. 요구사항부터 보면 나머지가 보이기 시작하고요.
책과 강의는 "무엇"을 가르쳐요. 단일 책임 원칙, 의존성 역전, 추상화. 그런데 전문가가 "어떻게" 생각하는지는 안 가르쳐주거든요. 시니어는 5초 만에 "책임이 섞였네" 봐요. 어떻게? 고수는 버그를 30분 만에 잡습니다. 무슨 순서로?
이 "어떻게"를 모르면, 아무리 많이 배워도 써먹을 수가 없어요.
전문가의 암묵지를 배워야 합니다
인지과학에서는 인간의 기억을 두 가지로 구분해요. 서술기억과 절차기억.
서술기억은 "파리가 프랑스의 수도다" 같은 거예요. 말로 표현할 수 있죠. 책과 강의는 이것만 전달해요.
절차기억은 자전거 타는 법처럼요. 의식하지 않아도 몸이 알아서 해요. 말로 설명하기 어렵죠.
개발도 똑같아요. 초보자는 코드 리뷰할 때 머리가 복잡해요. "변수명 체크... 함수 길이... 중복 찾기... 책임 분리..." 동시에 여러 가지를 의식적으로 생각하죠. 작업기억이 꽉 차요.
시니어는 다릅니다. 코드를 보는 순간 "어? 책임이 섞였네" 바로 보여요. 의식하지 않아도요. 변수명, 함수 구조, 의존성 방향... 무의식적으로 패턴을 인식하는 거죠.
그런데 계속 하다 보면 변화가 생겨요. "변수명 체크"가 자동화돼요. 의식하지 않아도 이상한 변수명이 눈에 띄기 시작해요. 그럼 작업기억에 공간이 생겨요. 이제 더 높은 차원을 볼 수 있죠. "이 함수들의 관계는? 도메인 구조는?" 또 시간이 흐르면 이것도 자동화돼요. 더 고차원적인 것을 볼 수 있고요.
시니어는 수천 번의 경험을 통해 복잡한 판단 과정들이 절차기억으로 저장되고, 하나의 즉각적 인식으로 압축된 거예요. 이게 바로 암묵지입니다. 말로 표현하기 어려운 전문성이요.
그래서 시니어한테 "어떻게 하는 거예요?" 물으면 "그냥... 하면 되는건데?" 이런 대답이 나와요. 진짜로 설명하기 어려운 거예요. 수백 개의 미세한 판단들이 이미 하나의 "느낌"으로 통합되었거든요.
암묵지를 배우는 게 가장 빠른 길이에요. 책 100권 읽으면 10년 걸릴 수도 있어요. 하지만 시니어의 사고과정을 직접 관찰하고 따라하면 3개월 만에 비슷해질 수 있습니다.
