Skip to content
Published on

내공의 깊이 — 2500점과 3000점의 차이

Authors

들어가며: 한 게임이면 드러난다

저는 탁구를 칩니다. 동호회에 나가다 보면 점수표라는 게 있습니다. 가령 2500점과 3000점. 숫자만 보면 차이가 그리 커 보이지 않습니다. 500점, 20퍼센트 정도니까요. 그런데 막상 코트에 서서 한 게임만 쳐보면, 그 500점이 얼마나 까마득한 심연인지 온몸으로 느끼게 됩니다.

2500점인 사람과 3000점인 사람이 붙으면, 점수는 11대 3, 11대 4로 끝나는 경우가 흔합니다. 분명 같은 라켓, 같은 공, 같은 규칙인데 말이죠. 더 신기한 건, 두 사람이 공을 주고받는 모습을 옆에서 보면 처음 몇 번은 비슷해 보인다는 겁니다. 차이는 결정적인 순간, 한 끗에서 갈립니다. 그리고 그 한 끗이 매번 반복됩니다.

이 글은 그 '한 끗', 즉 내공의 깊이에 관한 이야기입니다. 탁구에서 출발하지만, 결국 하고 싶은 말은 코드와 일과 배움에 관한 것입니다. 겉보기엔 작은 차이가 어떻게 실력의 심연이 되는지, 그리고 그 깊이에 어떻게 다가갈 수 있는지를 함께 들여다보겠습니다.

핵심 통찰: 작은 점수 차가 심연인 이유

왜 500점 차이가 11대 3이라는 일방적인 결과로 나타날까요. 핵심은 실력이 선형이 아니라는 데 있습니다.

탁구의 한 랠리는 수많은 작은 판단과 동작의 연쇄입니다. 공의 회전을 읽고, 발을 움직여 위치를 잡고, 라켓 각도를 미세하게 조정하고, 다음 공을 예측합니다. 각 단계에서 2500점이 80퍼센트의 정확도를, 3000점이 90퍼센트의 정확도를 낸다고 해봅시다. 단계 하나만 보면 10퍼센트 차이입니다. 그런데 한 랠리에 다섯 단계가 있다면, 2500점은 0.8의 다섯 제곱, 즉 약 33퍼센트의 확률로 그 랠리를 완벽히 처리합니다. 3000점은 0.9의 다섯 제곱, 약 59퍼센트입니다. 단계당 10퍼센트 차이가 랠리 단위에서 거의 두 배 차이로 증폭됩니다.

이것이 내공이 무서운 이유입니다. 작은 정확도의 차이는 곱해지면서 기하급수적으로 벌어집니다. 그래서 겉보기엔 비등해 보여도, 실제 승부에서는 일방적인 결과가 나옵니다.

고수와 하수의 차이는 한 번의 화려한 기술이 아니라, 수백 번 반복되는 평범한 동작의 미세한 완성도에 있다.

이 통찰은 코드에도 그대로 적용됩니다. 평범해 보이는 함수 하나, 변수 이름 하나, 예외 처리 하나의 미세한 완성도가, 수백 번 곱해지면서 시스템 전체의 품질을 가릅니다.

내공은 어떻게 드러나는가

내공의 또 다른 특징은, 숨기기 어렵다는 것입니다. 점수표를 보지 않아도, 대화 몇 마디나 게임 몇 번이면 그 사람의 깊이가 드러납니다.

탁구에서

2500점과 3000점은 워밍업 랠리만 봐도 다릅니다. 3000점은 공을 받는 자세가 안정적이고, 발이 먼저 움직이고, 몸의 중심이 흔들리지 않습니다. 화려하지 않습니다. 오히려 단조로워 보입니다. 그런데 그 단조로움이야말로 깊이의 증거입니다. 어려운 공을 쉬워 보이게 처리하는 것, 그것이 내공입니다.

코드 리뷰에서

개발도 똑같습니다. 시니어 개발자의 코드 리뷰를 받아보면, 깊이가 드러납니다. 주니어는 "이 변수 이름이 이상해요" 수준에서 멈추지만, 깊이 있는 리뷰어는 "이 함수는 두 가지 책임을 지고 있어서, 나중에 요구사항이 바뀌면 여기가 깨질 겁니다"라고 미래의 문제를 봅니다. 같은 코드를 보고 다른 것을 읽어내는 것, 그것이 내공입니다.

대화에서

질문의 깊이도 내공을 드러냅니다. 얕은 사람은 "그거 어떻게 해요?"를 묻고, 깊은 사람은 "이 방식은 이런 트레이드오프가 있을 것 같은데, 어떻게 보세요?"를 묻습니다. 질문 하나에 그 사람이 문제를 얼마나 구조적으로 이해하는지가 담깁니다.

영역2500점(중수)의 모습3000점(고수)의 모습
평소 동작화려하지만 들쭉날쭉단조롭지만 일정함
위기 상황흔들리고 무너짐평소대로 처리함
질문방법을 묻는다트레이드오프를 묻는다
설명자기가 아는 만큼 말함듣는 사람 수준에 맞춤

깊이 있는 전개: 그 수준에 이르는 길

그렇다면 2500점에서 3000점으로 가는 길은 무엇일까요. 단순히 시간을 더 쓰는 것만으로는 부족합니다. 핵심은 연습의 질입니다.

의도적 연습 (Deliberate Practice)

심리학자 안데르스 에릭슨(Anders Ericsson)이 정리한 의도적 연습 개념은 여기서 결정적입니다. 그냥 많이 하는 것과, 의도를 가지고 약점을 공략하며 하는 것은 전혀 다릅니다. 의도적 연습의 특징은 이렇습니다.

  1. 명확한 목표가 있다. "오늘은 백핸드 드라이브의 안정성만 본다"처럼 구체적입니다.
  2. 편안한 영역을 살짝 벗어난다. 너무 쉬우면 늘지 않고, 너무 어려우면 무너집니다. 가장자리에서 연습합니다.
  3. 즉각적인 피드백이 있다. 무엇이 잘못됐는지 바로 알아야 교정이 됩니다.
  4. 반복하며 미세하게 조정한다. 같은 동작을 수백 번, 매번 조금씩 고쳐가며 합니다.

코드로 치면, 그냥 기능을 많이 만드는 게 아니라 "이번엔 의존성을 최소화한 설계만 본다"처럼 한 가지 역량을 집중적으로 단련하는 것입니다.

고수와 겨루기

자기보다 높은 사람과 부딪히는 것만큼 빠른 성장도 없습니다. 2500점끼리만 치면 영원히 2500점입니다. 3000점과 계속 지면서, 자기가 어디서 무너지는지를 몸으로 배워야 합니다. 비고츠키(Vygotsky)의 근접발달영역(ZPD) 개념도 같은 맥락입니다. 혼자서는 못 하지만 도움을 받으면 할 수 있는 그 경계에서 가장 크게 자랍니다.

70-20-10의 균형

기업 학습에서 자주 인용되는 70-20-10 모델도 참고할 만합니다. 성장의 70퍼센트는 실제 도전적인 경험에서, 20퍼센트는 다른 사람과의 상호작용에서, 10퍼센트는 정식 교육에서 온다는 경험칙입니다. 책만 읽어서는 3000점에 못 갑니다. 실전과 고수와의 교류가 대부분을 차지합니다.

눈빛과 집중: 측정되지 않는 차이

점수표로 잡히지 않는 차이도 있습니다. 고수에게는 묘한 집중의 결이 있습니다. 탁구대 앞에 선 3000점의 눈빛은 다릅니다. 공 하나하나에 완전히 들어가 있습니다. 산만하지 않고, 한 점을 잃어도 다음 공에 바로 돌아옵니다.

이건 미하이 칙센트미하이(Mihaly Csikszentmihalyi)가 말한 몰입(flow)과 닿아 있습니다. 실력이 높을수록 더 깊은 몰입에 들어가기 쉽고, 깊은 몰입 속에서 더 빠르게 성장합니다. 선순환입니다.

개발에서도 마찬가지입니다. 깊이 있는 개발자는 문제 하나를 붙잡으면 끝까지 파고듭니다. 표면에서 "어 안 되네" 하고 멈추지 않고, 왜 안 되는지의 근본까지 내려갑니다. 그 집요함의 차이가, 1년 뒤 2년 뒤 거대한 격차를 만듭니다.

측정과 피드백: 깊이를 키우는 시스템

내공은 막연한 노력으로 자라지 않습니다. 무엇이 부족한지를 알아야 메울 수 있습니다.

자기 경기 기록하기

탁구 고수들은 자기 경기를 영상으로 찍어 복기합니다. 그 순간엔 잘 친 것 같았는데, 영상으로 보면 발이 안 움직이고 있는 게 보입니다. 개발자라면 자기 코드를 일주일 뒤에 다시 읽어보는 것이 비슷한 효과를 냅니다. 그땐 최선이라 믿었던 설계의 허점이 보입니다.

피드백 루프를 짧게

피드백은 빠를수록 좋습니다. 테스트 자동화, 짧은 코드 리뷰 주기, 빠른 배포는 전부 피드백 루프를 줄이는 장치입니다. 루프가 짧을수록 교정의 횟수가 늘고, 교정의 횟수가 늘수록 내공이 빨리 쌓입니다.

약점 일지 쓰기

저는 탁구든 코드든, 무너진 지점을 짧게 기록합니다. "오늘 긴장된 순간에 서브 리시브가 흔들렸다." "이 버그는 경계 조건을 안 봐서 났다." 이 일지가 쌓이면 자기 약점의 패턴이 보이고, 그 패턴이 의도적 연습의 다음 목표가 됩니다.

함정과 균형: 깊이만 좇을 때의 위험

내공을 키우자는 이야기에도 그늘이 있습니다. 균형 잡힌 관점을 위해 짚어둡니다.

  • 완벽주의의 함정. 깊이에 집착하다 보면, 80점이면 충분한 일에도 200점을 쏟아붓게 됩니다. 모든 영역에서 3000점일 필요는 없습니다. 어디에 깊이를 쏟을지 고르는 것 자체가 실력입니다.
  • 비교의 독. 항상 고수와 비교하면 자기 성장이 안 보이고 의욕만 깎입니다. 비교는 과거의 자신과 하고, 학습은 고수에게서 하는 것이 건강합니다.
  • 번아웃. 의도적 연습은 본질적으로 힘듭니다. 편안한 영역을 계속 벗어나야 하니까요. 그래서 회복이 반드시 필요합니다. 쉬는 것도 훈련의 일부입니다.
  • 넓이의 가치. 깊이만 좇다 보면 시야가 좁아질 수 있습니다. 한 분야의 깊이와 여러 분야의 넓이는 함께 갈 때 가장 강력합니다.

실천법: 내공을 쌓는 루틴

체크리스트

  • 이번 주에 집중할 약점 한 가지를 정한다.
  • 그 약점을 공략할 의도적 연습 시간을 캘린더에 박는다.
  • 나보다 한 수 위인 사람과 정기적으로 겨루거나 배운다.
  • 자기 결과물(경기, 코드)을 시간을 두고 다시 본다.
  • 무너진 지점을 약점 일지에 한 줄로 남긴다.

분기별 점검

항목질문
깊이지난 분기보다 어려운 문제를 다루고 있는가
피드백내 약점을 솔직히 말해주는 사람이 있는가
도전편안한 영역에만 머물러 있지 않은가
회복충분히 쉬며 지속 가능하게 가고 있는가

자주 묻는 질문

Q. 재능이 없으면 3000점은 못 가나요? 재능은 출발점과 속도에 영향을 주지만, 도달 가능한 지점을 정하지는 않습니다. 대부분의 영역에서 평범한 사람이 의도적 연습으로 도달할 수 있는 수준은, 본인의 예상보다 훨씬 높습니다. 문제는 재능이 아니라 대개 연습의 질입니다.

Q. 시간이 없는데 어떻게 의도적 연습을 하나요? 양보다 질입니다. 산만하게 두 시간 하는 것보다, 명확한 목표로 집중해서 30분 하는 것이 낫습니다. 짧아도 의도가 있으면 충분합니다.

Q. 내가 지금 어느 수준인지 모르겠어요. 자기보다 확실히 위인 사람에게 솔직한 피드백을 청하세요. 그리고 자기 결과물을 시간을 두고 다시 보세요. 이 두 가지면 자기 좌표가 꽤 또렷하게 보입니다.

마치며: 단조로움 속의 깊이

탁구장에서 3000점들을 보면, 화려하지 않습니다. 오히려 지루할 만큼 단조롭습니다. 그런데 그 단조로움이 곧 깊이입니다. 어려운 것을 쉬워 보이게 만드는 능력, 그것이 내공의 본질입니다.

2500점과 3000점의 500점 차이는, 한 번의 도약으로 메워지지 않습니다. 매일의 평범한 반복 속에서, 미세한 완성도를 1퍼센트씩 끌어올리며 쌓이는 것입니다. 코드든, 일이든, 무엇이든 마찬가지입니다. 오늘 당신이 하는 평범한 한 번의 동작이, 1퍼센트 더 정교해진다면, 그 1퍼센트가 곱해져 언젠가 누군가에게 심연으로 느껴질 깊이가 됩니다.

고수가 보는 것 vs 하수가 보는 것

같은 장면을 봐도, 보이는 것이 다릅니다. 이것이 어쩌면 내공의 가장 본질적인 정의일지도 모릅니다. 하수는 표면을 보고, 고수는 구조를 봅니다. 하수는 지금을 보고, 고수는 다음을 봅니다.

상황하수가 보는 것고수가 보는 것
상대의 서브공이 어디로 오는가상대의 어깨와 손목이 만드는 회전의 방향
한 점을 잃었을 때운이 없었다두 수 전에 위치 선정이 어긋났다
버그 리포트이 줄을 고치면 된다이 버그를 가능하게 한 설계의 결함
느린 쿼리인덱스를 추가하자이 데이터 접근 패턴 자체가 잘못됐다
회의의 침묵할 말이 없구나누군가 반대하지만 말하지 못하고 있다
새 라이브러리기능이 많아 좋다유지보수 주기와 의존성 부담을 본다

탁구대 앞에서 고수가 보는 것은 공이 아닙니다. 공이 떠나기 전, 상대의 몸이 만드는 신호입니다. 라켓이 공에 닿는 순간엔 이미 늦습니다. 그래서 고수는 공보다 0.2초 빠르게 움직입니다. 그 0.2초가 평생의 단련에서 나옵니다.

코드도 똑같습니다. 깊이 있는 개발자는 함수 하나를 읽으면서 그 함수가 6개월 뒤 어떻게 변형 요청을 받을지를 미리 봅니다. 그래서 지금 당장은 과해 보이는 추상화를, 혹은 지금은 불필요해 보이는 단순함을 선택합니다. 그 선택의 근거가 미래에 있다는 것, 그것이 하수와 고수를 가릅니다.

정체기: 깊이가 멈추는 구간과 뚫는 법

성장은 직선이 아닙니다. 계단입니다. 한참을 평평하게 가다가, 어느 순간 한 칸 올라섭니다. 그 평평한 구간이 정체기(plateau)입니다. 그리고 거의 모든 사람이 이 정체기에서 그만둡니다.

정체기가 무서운 이유는, 노력의 양과 결과가 비례하지 않는 것처럼 보이기 때문입니다. 어제와 똑같이 두 시간을 연습했는데, 어제와 똑같습니다. 한 달을 그렇게 보내면, 자신에게 재능이 없다는 결론으로 도망치기 쉽습니다. 그런데 사실 정체기는 실력이 멈춘 구간이 아니라, 한 단계 위로 올라서기 위한 재배선이 일어나는 구간입니다.

정체기를 뚫는 방법은 대개 다음 중 하나입니다.

  • 연습의 종류를 바꾼다. 같은 연습을 반복하면 같은 회로만 강화됩니다. 정체기에 들어섰다면, 그동안 피해온 약점을 정면으로 공략할 때입니다. 포핸드만 연습해온 사람은 백핸드를, CRUD만 짜온 개발자는 동시성 문제를 붙들어야 합니다.
  • 제약을 건다. 일부러 조건을 좁히면 새로운 회로가 강제로 열립니다. 탁구라면 "이번 게임은 백핸드만 쓴다", 코드라면 "이 기능을 if문 없이 짜본다"처럼요.
  • 속도를 늦춘다. 빠르게 반복하면 익숙한 실수가 굳습니다. 일부러 느리게, 동작 하나하나를 의식하며 하면 잘못된 습관이 드러납니다. 슬로우 모션 연습은 거의 모든 분야의 고수가 쓰는 방법입니다.
  • 외부의 눈을 빌린다. 자기 객관화에는 한계가 있습니다. 정체기에선 코치, 시니어, 동료의 시선이 자기가 못 보던 한 칸을 보여줍니다.

저는 탁구에서 2년 가까이 같은 점수에 머문 적이 있습니다. 매주 나가서 똑같이 졌습니다. 돌파구는 의외로, 코치가 제 백스윙을 영상으로 찍어 보여준 순간이었습니다. 저는 제가 몸을 충분히 쓴다고 믿고 있었는데, 영상 속의 저는 팔로만 치고 있었습니다. 그 한 장면이 1년 치 연습보다 강력했습니다. 정체기를 뚫는 건 더 많은 노력이 아니라, 정확한 한 번의 자각인 경우가 많습니다.

개발에서도 비슷한 경험이 있습니다. LINE에서 일하던 시절, 한동안 제가 짠 코드가 "동작은 하는데 리뷰가 잘 안 통과하는" 구간에 있었습니다. 정체기였죠. 돌파구는 제 PR이 아니라, 제가 존경하던 시니어의 PR을 줄 단위로 따라 읽으며 "왜 여기서 이 선택을 했을까"를 매번 자문한 데서 왔습니다. 답을 보는 게 아니라, 답의 이유를 재구성하는 연습이 저를 한 칸 올려줬습니다.

만 시간의 법칙, 그리고 그 오해

"만 시간을 투자하면 누구나 전문가가 된다." 널리 퍼진 이 말은, 사실 원전을 상당히 왜곡한 표현입니다.

이 숫자의 뿌리는 안데르스 에릭슨의 1993년 연구입니다. 그런데 에릭슨이 강조한 것은 시간의 양이 아니라 연습의 질, 즉 의도적 연습이었습니다. 그는 오히려 "단순히 시간을 채우는 것으로는 전문성에 이르지 못한다"고 분명히 했습니다. 같은 일을 20년 해도 늘지 않는 사람이 흔한 이유가 여기 있습니다. 의도 없는 반복은, 1년 차의 실수를 20년 동안 정교하게 보존할 뿐입니다.

핵심 구분을 정리하면 이렇습니다.

구분단순 반복의도적 연습
목표일을 끝내는 것특정 약점을 고치는 것
난이도편안한 수준가장자리의 불편함
주의자동화, 멍한 상태완전한 집중
피드백모호하거나 없음즉각적이고 구체적
결과시간이 가도 제자리시간에 비례해 깊어짐

그러니 "얼마나 오래"가 아니라 "어떻게"를 물어야 합니다. 하루 30분이라도 가장자리에서, 집중해서, 즉각적인 피드백과 함께 한다면, 멍하니 보낸 세 시간을 압도합니다. 만 시간이 거짓말은 아닙니다. 다만 그 만 시간이 어떤 시간이냐가 전부입니다.

측정 가능한 자가 진단 루브릭

내공은 막연합니다. 그래서 자기 좌표를 잡기 어렵습니다. 아래는 제가 쓰는 거친 자가 진단표입니다. 탁구든 코드든, 각 항목을 1점에서 5점으로 솔직하게 매겨 보세요. 점수의 절대값보다, 어느 항목이 낮은지를 보는 것이 핵심입니다.

항목1점 (입문)3점 (중수)5점 (고수)
예측일이 벌어진 뒤 반응한다한 수 앞을 본다여러 수 앞의 분기를 본다
안정성컨디션에 결과가 크게 출렁인다보통은 일정하다위기일수록 평소대로 한다
자각왜 틀렸는지 모른다틀린 뒤에 안다틀리는 순간 안다
설명직관으로만 안다설명할 수 있다상대 수준에 맞춰 가르친다
단순화어려운 걸 어렵게 한다어려운 걸 해낸다어려운 걸 쉬워 보이게 한다
회복한 번 무너지면 끝까지 무너진다다음 판에 회복한다그 자리에서 돌아온다

대부분의 사람은 어떤 항목은 4점인데 어떤 항목은 2점입니다. 내공을 키운다는 것은, 평균을 올리는 것이 아니라 가장 낮은 항목을 끌어올리는 것입니다. 가장 약한 고리가 전체 사슬의 강도를 결정하기 때문입니다. 다음 분기에 무엇을 연습할지 모르겠다면, 이 표에서 가장 낮은 숫자를 찾으면 됩니다.

워크드 예제: 한 가지 약점을 분기 동안 공략하기

추상적인 조언은 잘 작동하지 않습니다. 구체적인 예제 하나가 열 마디 원칙보다 낫습니다. 제가 "예외 처리"라는 약점을 한 분기 동안 의도적으로 공략했던 과정을 그대로 옮깁니다.

  • 1주차 — 측정. 먼저 제 코드에서 예외 처리가 어떻게 되어 있는지를 정직하게 봤습니다. 대부분 try로 감싸고 로그만 찍고 넘어가는 패턴이었습니다. 약점이 분명해졌습니다.
  • 2주차 — 목표 좁히기. "모든 예외를 잘 처리한다"는 목표는 너무 넓어 실패합니다. "외부 API 호출의 실패를 호출자가 의미 있게 다룰 수 있도록 설계한다" 하나로 좁혔습니다.
  • 3주에서 6주차 — 가장자리 연습. 매주 작은 코드를 일부러 실패하게 만들었습니다. 타임아웃, 부분 실패, 잘못된 응답. 그리고 그 실패가 시스템에 어떻게 번지는지를 관찰했습니다. 편안하지 않았습니다. 그게 가장자리라는 증거였습니다.
  • 7주에서 9주차 — 고수의 코드. 같은 문제를 잘 다룬 오픈소스의 에러 처리 부분만 골라 읽었습니다. 그들이 어디서 실패를 삼키고 어디서 위로 던지는지의 경계를 관찰했습니다.
  • 10주에서 12주차 — 가르치기. 배운 것을 팀 내 짧은 공유 세션으로 정리했습니다. 남에게 설명하려는 순간, 제가 아직 모호하게 알던 부분이 적나라하게 드러났습니다. 가르치기는 가장 잔인하고 가장 효과적인 점검입니다.

분기가 끝났을 때, 제 예외 처리 점수는 한 칸 올라가 있었습니다. 흥미로운 건, 이 한 가지를 깊게 파고들자 인접한 역량들, 가령 로깅 설계나 장애 대응 감각까지 함께 따라 올라왔다는 것입니다. 깊이는 종종 인접한 넓이를 끌고 옵니다.

작은 차이가 곱해지는 곳들

처음에 곱셈의 비유를 들었습니다. 단계당 작은 차이가 곱해져 거대한 격차가 된다는 것이죠. 이 곱셈은 탁구와 코드를 넘어, 거의 모든 영역에서 작동합니다.

  • 언어 학습. 저는 영어와 일본어를 공부합니다. 단어 하나의 뉘앙스를 90퍼센트 아는 것과 99퍼센트 아는 것의 차이는, 한 단어에선 사소합니다. 그런데 한 문단에 그런 단어가 스무 개 있다면, 그 문단 전체에서 느껴지는 자연스러움은 완전히 달라집니다. 원어민이 "어색하다"고 느끼는 건 대개 한 군데의 큰 실수가 아니라, 여러 군데의 미세한 어긋남이 쌓인 결과입니다.
  • 글쓰기. 문장 하나의 명료함은 작은 차이입니다. 그런데 그 작은 차이가 천 문장에 곱해지면, 읽다 마는 글과 끝까지 읽히는 글로 갈립니다.
  • 운영. 장애 대응에서 1분의 차이는 작아 보입니다. 그런데 그 1분이 알림 인지, 원인 추적, 롤백 판단마다 곱해지면, 5분 복구와 50분 복구로 갈립니다.

이 곱셈의 구조를 이해하면, 왜 고수가 사소해 보이는 기본기에 그토록 집착하는지가 보입니다. 그들은 곱해지는 자리를 알고 있는 것입니다. 화려한 한 방이 아니라, 천 번 반복될 평범한 동작 하나의 완성도를 0.01만큼 올리는 것. 그것이 곱셈의 세계에서 가장 큰 수익을 내는 투자입니다.

자주 묻는 질문 (확장)

Q. 정체기에 들어선 것 같은데, 더 노력해야 하나요 아니면 방법을 바꿔야 하나요? 대개는 방법입니다. 정체기는 보통 노력이 부족해서가 아니라, 같은 노력을 같은 방식으로 반복해서 옵니다. 연습의 종류를 바꾸거나, 제약을 걸거나, 외부의 눈을 빌려 보세요. 양을 늘리는 건 그다음입니다.

Q. 넓게 여러 가지를 잘하는 사람과 한 가지를 깊게 파는 사람, 어느 쪽이 맞나요? 둘 다 필요합니다. 다만 순서가 있습니다. 한 분야에서 한 번이라도 3000점에 가까이 가보면, 깊이라는 것이 어떤 감각인지를 몸이 기억합니다. 그 감각을 알면, 다른 분야로 넓힐 때도 빨리 깊어집니다. 그래서 처음엔 하나를 깊게, 그다음에 넓게가 대체로 유리합니다.

Q. 피드백을 줄 고수가 주변에 없으면 어떻게 하나요? 세 가지 대안이 있습니다. 첫째, 자기 결과물을 시간을 두고 다시 보는 것. 일주일 뒤의 나는 꽤 객관적인 타인입니다. 둘째, 고수의 결과물을 분해하며 그 이유를 재구성하는 것. 셋째, 자기 영역을 측정 가능한 지표로 바꿔 그 지표를 피드백 삼는 것입니다.

Q. 나이가 들면 늦은 건가요? 도달 속도는 느려질 수 있지만, 깊어지는 능력 자체가 사라지지는 않습니다. 오히려 나이가 들수록 쌓인 경험이 새 패턴을 빨리 알아보게 돕습니다. 늦었다는 생각이야말로 가장 흔한 정체기의 핑계입니다.

Q. 의도적 연습은 너무 힘들어서 즐겁지가 않습니다. 의도적 연습이 매 순간 즐겁기를 기대하면 안 됩니다. 그건 본질적으로 불편한 활동입니다. 다만 깊어지는 감각, 어제 안 되던 게 오늘 되는 그 순간의 보상은 분명히 있습니다. 그리고 즐거운 자유 연습과 힘든 의도적 연습을 섞는 것이 지속 가능합니다. 전부를 가장자리에서 보낼 필요는 없습니다.

Q. 측정하기 어려운 분야는 어떻게 깊이를 키우나요? 측정이 어려울수록, 결과물을 외부에 노출하는 빈도를 높이세요. 글이라면 발행하고, 코드라면 리뷰를 받고, 발표라면 사람들 앞에 서세요. 직접적인 점수가 없어도, 외부의 반응이 거친 좌표가 됩니다. 그리고 좌표가 거칠수록 더 자주 측정해야 합니다.

기본기라는 역설

초보일수록 화려한 기술에 끌립니다. 고수일수록 기본기에 시간을 씁니다. 이건 모순처럼 보이지만, 깊이의 구조를 알면 당연한 일입니다.

탁구에서 가장 많이 반복되는 동작은 화려한 스매시가 아니라, 평범한 받아넘기기와 위치 잡기입니다. 한 게임에서 스매시는 몇 번 나오지 않습니다. 그런데 발 움직임은 수백 번 일어납니다. 그러니 발 움직임을 0.01 개선하는 것이, 스매시를 0.1 개선하는 것보다 결과적으로 더 큰 점수를 만듭니다. 곱해지는 횟수가 다르기 때문입니다.

코드도 같습니다. 신입은 멋진 디자인 패턴을 외우고 싶어 합니다. 시니어는 이름 짓기, 함수 분리, 경계 조건 처리 같은 지루한 기본에 집착합니다. 왜냐하면 그 기본기들이 모든 코드에서 수천 번 반복되기 때문입니다. 한 프로젝트에 화려한 아키텍처 결정은 몇 번 없지만, 변수 이름은 수천 개입니다.

기본기는 지루해서 무시되고, 무시되기 때문에 격차를 만든다.

기본기의 또 다른 역설은, 잘할수록 안 보인다는 것입니다. 고수의 기본기는 너무 자연스러워서 기술처럼 보이지 않습니다. 그래서 초보는 고수를 보며 "별거 안 하는데 왜 이기지"라고 생각합니다. 그 "별거 안 하는 것"이 바로 수만 번 다듬어진 기본기입니다.

깊이의 세 가지 층위

내공을 한 덩어리로 보면 막연합니다. 저는 깊이를 세 층으로 나눠 생각합니다.

층위무엇인가탁구의 예코드의 예
1층: 동작개별 기술의 정확도포핸드 한 번의 안정성함수 하나의 완성도
2층: 연결동작들을 잇는 흐름서브에서 3구 공격까지의 연계모듈 간 인터페이스 설계
3층: 판단상황을 읽고 선택하는 감각언제 공격하고 언제 참는가무엇을 만들고 무엇을 안 만드는가

초보는 1층에서 막힙니다. 동작 하나하나가 불안하니, 연결을 생각할 여유가 없습니다. 중수는 1층이 안정되어 2층을 다룹니다. 고수는 3층에서 놉니다. 동작과 연결은 이미 몸에 배어 무의식으로 돌아가고, 의식은 오로지 판단에 쓰입니다.

흥미로운 건, 위층은 아래층 없이 쌓이지 않는다는 것입니다. 판단(3층)이 아무리 뛰어나도, 동작(1층)이 받쳐주지 못하면 머릿속의 좋은 선택이 손에서 무너집니다. 그래서 고수도 끊임없이 1층 기본기로 돌아갑니다. 깊이는 위로만 쌓는 탑이 아니라, 바닥을 계속 다지며 올리는 건물입니다.

가르치며 배우기: 깊이를 두 배로

내공을 키우는 가장 저평가된 방법은, 가르치는 것입니다. 저는 탁구 동호회에서 저보다 낮은 분에게 서브를 설명하다가, 정작 제 서브가 왜 들어가는지를 처음으로 언어화했습니다. 손목의 각도, 임팩트의 타이밍 같은 것을 말로 옮기려는 순간, 제 안에서 흐릿하던 감각이 또렷한 지식이 되었습니다.

이걸 학습 과학에서는 프로테제 효과라고 부르기도 합니다. 가르칠 것을 예상하면 더 깊게 이해하고, 실제로 가르치면 이해가 한 번 더 정리됩니다. 개발에서도 동료에게 코드를 설명하거나, 블로그에 글을 쓰거나, 사내 세션을 여는 것이 같은 효과를 냅니다.

가르치기가 강력한 이유는 세 가지입니다.

  • 모호함이 드러난다. 혼자 알 때는 "대충 이런 느낌"으로 넘어가던 부분이, 설명하려는 순간 막힙니다. 그 막히는 지점이 정확히 내가 모르는 곳입니다.
  • 구조를 강제한다. 남에게 전하려면 순서와 인과를 짜야 합니다. 그 과정에서 흩어져 있던 지식이 구조로 묶입니다.
  • 질문을 받는다. 듣는 사람의 질문은 내가 못 보던 각도를 비춥니다. 좋은 질문 하나가 내 이해의 빈틈을 정확히 찌릅니다.

그러니 무언가를 깊이 배우고 싶다면, 배운 직후에 누군가에게 설명할 자리를 만드세요. 가르칠 대상이 없다면, 글로 써서 미래의 자신에게 가르치면 됩니다.

환경을 설계하기: 의지력에 기대지 않기

내공은 의지로만 쌓이지 않습니다. 의지력은 한정된 자원이고, 피곤하거나 바쁘면 가장 먼저 바닥납니다. 그래서 고수들은 의지 대신 환경을 설계합니다.

  • 마찰을 줄인다. 탁구 라켓을 현관에 두면 연습 빈도가 올라갑니다. 코드라면, 테스트 한 번이 한 번의 클릭으로 돌아가게 만들면 자주 돌립니다. 좋은 습관은 쉽게, 나쁜 습관은 어렵게 만드는 것이 핵심입니다.
  • 신호를 심는다. 정해진 시간, 정해진 장소가 행동의 방아쇠가 됩니다. "수요일 저녁 8시는 무조건 탁구"처럼 고정하면, 매번 결심할 필요가 없어집니다.
  • 사람을 고른다. 누구와 시간을 보내느냐가 기준선을 정합니다. 3000점들과 어울리면 3000점이 평범한 기준이 되고, 그 기준이 나를 끌어올립니다. 환경 중 가장 강력한 것은 함께하는 사람입니다.
  • 기록을 자동화한다. 매번 손으로 기록하려면 안 하게 됩니다. 가능한 한 측정을 자동으로 흐르게 만들면, 피드백이 의지와 무관하게 쌓입니다.

저는 LINE 시절, 좋은 동료들 사이에 있다는 것 자체가 가장 강력한 성장 장치였음을 뒤늦게 깨달았습니다. 매일 보는 코드의 수준이 높으면, 그 수준이 내 기본값이 됩니다. 환경을 잘 고르는 것은 의지력을 아끼는 가장 영리한 방법입니다.

마지막으로: 깊이는 친절이다

이 글을 닫으며 한 가지를 덧붙이고 싶습니다. 깊이는 단지 이기기 위한 것이 아닙니다. 진짜 깊은 사람은 어려운 것을 쉽게 만들어, 옆 사람의 짐을 덜어줍니다. 복잡한 코드를 단순하게 정리하는 시니어, 어려운 개념을 한마디로 풀어주는 선생, 까다로운 공을 편하게 받아주는 파트너. 이들의 깊이는 결국 타인에게 친절로 도착합니다.

그러니 내공을 쌓는 일은 자기만을 위한 수련이 아닙니다. 내가 1퍼센트 더 깊어질 때, 나와 함께 일하고 함께 배우는 사람들의 세계가 1퍼센트 더 단순해지고 명료해집니다. 그것이 어쩌면, 깊이를 좇아야 할 가장 좋은 이유일지도 모릅니다.

깊이의 흔한 가짜 신호들

깊이를 좇다 보면, 깊이처럼 보이지만 깊이가 아닌 것들에 속기 쉽습니다. 가짜 신호를 구분하는 것 자체가 하나의 안목입니다.

  • 빠른 손. 탁구에서 손이 빠른 사람은 멋져 보입니다. 그런데 손이 빠른 것과 공을 정확히 보내는 것은 다릅니다. 진짜 고수는 빠를 때 빠르고, 느려야 할 때 느립니다. 코드에서 타이핑이 빠른 것이 좋은 설계와 무관한 것과 같습니다.
  • 어려운 단어. 어려운 용어를 많이 쓰는 사람이 깊어 보입니다. 그런데 진짜 깊은 사람은 어려운 것을 쉬운 말로 풉니다. 용어 뒤에 숨는 것은 종종 이해의 빈틈을 가리는 행동입니다.
  • 바쁨. 늘 바쁜 것이 열심의 증거처럼 보입니다. 그런데 바쁨은 깊이가 아니라 우선순위의 부재일 때가 많습니다. 고수는 적게 하고 깊게 합니다.
  • 도구 수집. 새 장비, 새 프레임워크를 많이 아는 것이 실력처럼 느껴집니다. 그런데 도구는 1층의 보조일 뿐입니다. 도구를 바꾼다고 3층의 판단이 자라지는 않습니다.

가짜 신호의 공통점은, 측정하기 쉽고 눈에 띈다는 것입니다. 그래서 우리는 측정하기 쉬운 것을 좇느라, 정작 중요한 것을 놓칩니다. 진짜 깊이는 대개 조용하고 단조롭고 눈에 잘 안 띕니다. 그 점을 기억하면, 자기 자신과 남을 평가할 때 덜 속습니다.

30일 실험: 작게 시작하기

큰 결심은 대개 사흘을 못 갑니다. 그래서 저는 깊이를 키우고 싶을 때 30일짜리 작은 실험으로 시작합니다. 거창한 계획 대신, 측정 가능한 한 가지를 30일만 해보는 것입니다.

주차할 일측정
1주차공략할 약점 하나를 정하고 기준선을 잰다지금 수준을 한 줄로 기록
2주차매일 15분, 그 약점만 가장자리에서 연습연습한 날 수
3주차고수의 사례를 분해하며 이유를 재구성발견한 패턴 수
4주차배운 것을 한 명에게 설명하거나 글로 정리설명하며 막힌 지점 수

30일이 끝나면, 처음의 기준선과 지금을 비교합니다. 대개 두 가지 중 하나가 보입니다. 눈에 띄게 늘었거나, 아니면 무엇이 진짜 문제인지가 더 또렷해졌거나. 둘 다 성공입니다. 깊이는 한 번의 30일로 완성되지 않지만, 30일이 쌓이는 방향을 정해줍니다.

작게 시작하는 것의 진짜 힘은, 시작의 마찰을 없애는 데 있습니다. "오늘부터 매일 두 시간 수련"은 압도적이라 미루게 됩니다. "오늘 15분만 백핸드"는 거절할 핑계가 없습니다. 그리고 일단 시작하면, 대개 15분을 넘깁니다. 깊이로 가는 문은 늘 작은 첫걸음 뒤에 있습니다.

두 사람의 1년: 같은 시간, 다른 깊이

같은 1년을 보내도 결과가 갈리는 이유를, 두 가상의 인물로 그려 봅니다. A와 B는 같은 날 탁구를 시작했고, 둘 다 주 3회, 한 번에 두 시간씩 칩니다. 시간만 보면 완전히 같습니다.

항목A의 1년B의 1년
연습 방식늘 잘되는 포핸드 랠리만 즐겁게매주 못하는 한 가지를 정해 공략
피드백거의 받지 않음코치와 영상으로 매주 점검
상대비슷한 수준끼리만일부러 한 수 위와 자주 붙음
기록없음무너진 지점을 짧게 일지에
1년 뒤시작과 거의 같음한 단계 또렷이 올라섬

같은 시간, 같은 노력의 양인데 깊이가 갈립니다. 차이는 전부 질에 있습니다. A는 편안한 영역에서 즐겼고, B는 가장자리에서 불편을 견뎠습니다. A는 곱셈이 일어나지 않는 자리에 시간을 썼고, B는 곱해지는 자리에 썼습니다. 1년이라는 시간은 공평하게 주어지지만, 그 시간이 깊이로 환전되는 비율은 사람마다 전혀 다릅니다.

이 비유에서 잔인한 점은, A가 게으른 사람이 아니라는 것입니다. A도 성실히 나왔고, 땀도 흘렸습니다. 다만 그 성실함이 향한 곳이 달랐을 뿐입니다. 그래서 깊이의 질문은 "얼마나 열심히"가 아니라 "어디에 열심히"입니다.

무의식적 능숙함까지의 네 단계

기술 습득을 네 단계로 나누는 오래된 모델이 있습니다. 깊이가 어떻게 자라는지를 이해하는 데 유용합니다.

단계상태탁구의 예느낌
1. 무의식적 무능못하는 줄도 모름자세가 틀린 줄 모름근거 없는 자신감
2. 의식적 무능못하는 걸 앎영상을 보고 충격받음답답함과 좌절
3. 의식적 능숙집중하면 됨신경 쓰면 자세가 나옴피곤하지만 가능
4. 무의식적 능숙생각 안 해도 됨몸이 알아서 움직임자연스러움, 단조로움

대부분의 좌절은 2단계에서 옵니다. 못하는 걸 알게 되는 순간, 이전의 편안함이 깨지기 때문입니다. 그런데 이 2단계야말로 성장의 진짜 시작입니다. 못하는 걸 모르는 1단계에서는 늘 수가 없으니까요. 그러니 영상을 보고 좌절했다면, 그건 후퇴가 아니라 1단계에서 2단계로 올라선 증거입니다.

3단계에서 4단계로 넘어가는 데는 반복이 필요합니다. 의식적으로 되던 동작이 무의식으로 내려갈 때, 비로소 의식은 더 높은 층의 판단에 쓰일 여유를 얻습니다. 고수의 단조로움은 바로 이 4단계의 모습입니다. 어려운 것이 무의식으로 내려가, 더 이상 힘들어 보이지 않는 상태입니다.

한 문장 요약

이 긴 글을 한 문장으로 줄이면 이렇습니다. 깊이는 화려한 도약이 아니라, 곱해지는 자리에서 평범한 동작의 완성도를 1퍼센트씩, 가장자리에서, 피드백과 함께, 오래 끌어올린 결과다. 2500과 3000을 가르는 그 심연도, 결국은 이 한 문장이 매일 반복되며 파인 골입니다.

오늘 할 수 있는 한 가지

글을 다 읽고 아무것도 바뀌지 않으면, 그 글은 시간 낭비입니다. 그래서 마지막으로, 오늘 당장 할 수 있는 가장 작은 행동 하나를 제안합니다.

  • 지금 하는 일에서, 수백 번 반복되는 평범한 동작 하나를 떠올리세요. 탁구라면 받아넘기기, 코드라면 이름 짓기 같은 것입니다.
  • 그 한 가지를, 오늘 딱 한 번만 1퍼센트 더 정성껏 해보세요. 평소보다 0.5초 더 보고, 평소보다 한 번 더 고쳐보세요.
  • 그리고 그 차이가 어떻게 느껴졌는지를 한 줄로 적어두세요.

이게 전부입니다. 거창한 결심도, 두 시간의 수련도 필요 없습니다. 곱해지는 자리에서의 단 한 번의 1퍼센트. 그 한 번이 내일도, 모레도 반복되면, 1년 뒤 당신은 지금의 당신이 심연으로 느낄 깊이에 서 있을 것입니다. 깊이는 그렇게, 조용히 시작됩니다.

핵심 요점 정리

  • 작은 정확도 차이는 곱해져 기하급수적으로 벌어진다. 그래서 작은 점수 차가 심연이 된다.
  • 내공은 숨기기 어렵다. 워밍업, 코드 리뷰, 질문의 깊이에서 드러난다.
  • 시간의 양이 아니라 연습의 질이 깊이를 가른다. 가장자리에서, 즉각적인 피드백과 함께.
  • 정체기는 실력이 멈춘 구간이 아니라 재배선이 일어나는 구간이다. 방법을 바꿔 뚫는다.
  • 깊이는 동작, 연결, 판단의 세 층으로 자라며, 위층은 아래층 없이 쌓이지 않는다.
  • 가르치기와 환경 설계는 의지에 기대지 않고 깊이를 두 배로 만드는 지렛대다.
  • 진짜 깊이는 조용하고 단조롭다. 어려운 것을 쉬워 보이게 만드는 능력, 그것이 내공이다.

참고 자료