9장. 체화: 비용이 0에 수렴하는 상태
이 책의 마지막 장이에요.
•
0장: 왜 추상화가 어려운가? → 비용 > 이익이니까
•
1-3장: 비용을 낮추는 방법 (What/How 분리, 쪼개기/비교하기, 연습)
•
4-6장: 코드에서 비용 낮추기 (Inside-Out, Wishful Thinking, 인터페이스, 함정)
•
7-8장: 코드 밖에서 비용 낮추기 (플랫폼, 학습, 커리어)
•
9장: 비용이 거의 0이 되는 상태 = 체화
0장에서 “비용이 이익보다 크면 뇌는 그 일을 안 한다”고 했어요. 그러면 해결책은 뭘까요? 비용을 낮추는 거예요. 1-8장은 그 방법이었어요.
그런데 궁극적으로 비용을 가장 낮추는 방법이 있어요. 의식적 노력 없이 자동으로 되는 것. 이게 체화예요.
9.1 체화: 뇌가 작동하는 방식이 바뀌는 것
체스 마스터 실험
체스 마스터와 초보자에게 실제 경기 중인 체스판을 5초간 보여주고 기억하게 했어요.
•
마스터: 20개 이상 말 위치를 정확히 기억
•
초보자: 4~5개만 기억
그런데 반전이 있어요. 체스 말을 무작위로 배치한 판을 보여주니, 마스터도 초보자와 똑같이 4~5개만 기억했어요.
왜 이런 차이가 날까요?
마스터는 기억력이 뛰어난 게 아니에요. 보는 방식이 다른 거예요. 초보자가 말 하나하나를 개별적으로 볼 때, 마스터는 전체 판을 몇 개의 의미 있는 ‘덩어리(chunk)’로 봐요. “시실리안 디펜스의 전형적 배치”, “킹사이드 공격 형태” 같은 패턴으로요. 무작위 배치에는 이런 패턴이 없으니 초보자와 같아져요.
Chase & Simon(1973)의 체스 연구가 발견한 것:
- 전문가는 정보를 의미 단위로 묶어서 기억해요
- 작업기억은 7±2개밖에 못 담지만, 청킹하면 더 많이 다룰 수 있어요
- 전화번호 010-1234-5678도 11개 숫자가 아니라 3개 청크예요
이게 체화예요. 뇌가 정보를 처리하는 방식 자체가 바뀌는 것.
운전을 생각해봐요
처음 운전을 배울 때는 모든 게 의식적이에요. “클러치 밟고, 기어 넣고, 사이드 브레이크 내리고, 클러치 천천히 떼면서 액셀 밟고…” 한 동작 한 동작 생각하면서 해요.
1년쯤 지나면? 차에 타면 그냥 출발해요. 생각하지 않아요. 그냥 돼요.
추상화도 똑같아요:
단계 | 비용 상태 | 뇌에서 일어나는 일 | 예시 |
한다 | 비용 높음 (System 2) | 의식적으로 절차 수행 | “What/How 분리해야지…” 생각하며 코딩 |
안다 | 비용 중간 | 패턴을 청킹해서 인식 | “이건 What/How가 섞인 코드네” |
본다 | 비용 최소 (System 1) | 지각 자체가 변화 | 자연스럽게 분리된 코드가 나옴 |
체화 = 의식적 노력 → 자동 = 비용 최소화
글 읽기처럼
글을 읽을 때를 생각해봐요.
지금 이 문장을 읽을 때, “ㄱ, ㅡ, ㄹ” 하나씩 보면서 “글”이라고 조합하지 않잖아요. 단어가 바로 들어와요. 더 나아가면 문장 전체의 의미가 바로 들어와요.
처음 글을 배울 때는 자모를 하나씩 읽었어요 (한다). 그 다음엔 단어 단위로 인식했어요 (안다). 지금은 문장을 보면 의미가 바로 들어와요 (본다).
한다 → 안다 → 본다
자모 조합 단어 인식 의미 직접 지각
Plain Text
복사
추상화의 체화도 똑같은 구조예요.
9.2 세 단계의 실제 모습
“한다” 단계 (의식적 절차)
어떤 상태인가
처음 추상화를 배우면 의식적으로 적용해야 해요. “이 코드에서 What과 How를 분리해보자”라고 스스로에게 지시해요. 절차를 하나씩 따라가요.
// "한다" 단계에서의 코드 작성
// "음... What은 뭐지? How는 뭐지? 일단 분리해보자..."
// (의식적 노력 필요 — System 2 가동 중)
JavaScript
복사
이 단계에서는 느리고 피곤해요. 체크리스트를 보면서 하는 것과 비슷해요. 인지 자원이 많이 들어요.
흔한 실수
1.
절차를 외우지 않아요. “매번 다시 찾아보면 되지”라고 생각해요. 이러면 체화가 안 돼요. 절차가 머릿속에 있어야 반복하면서 자동화돼요.
2.
너무 빨리 포기해요. “의식적으로 하니까 너무 느려요.” 느린 게 정상이에요. 이 단계가 충분히 쌓여야 다음으로 가요.
“안다” 단계 (패턴 인식)
어떤 상태인가
반복하면 패턴이 보이기 시작해요. 코드를 보면 “아, 이거 그거네. 여러 조건이 하나로 수렴하는 패턴.” 절차를 따르지 않았어요. 그냥 알아챘어요.
// "안다" 단계에서 다른 코드 리뷰
// "아, 이 함수는 What과 How가 섞여 있네. 분리하면 좋겠다"
// (패턴 인식, 설명 가능)
JavaScript
복사
체스 마스터가 판을 청크로 보듯이, 코드도 덩어리로 보여요. 예전에 30분 걸리던 게 5분 만에 돼요.
특징
•
빠르지만 설명이 어려워요. “왜 이게 그거인 줄 알았어요?” “음… 그냥 봤는데 그래 보여서요.” 무의식적으로 패턴 매칭이 일어나서 설명하기 어려워요.
•
새로운 건 여전히 느려요. 익숙한 패턴은 빠르지만, 처음 보는 건 여전히 “한다” 단계로 가야 해요.
흔한 실수: 익숙한 패턴만 하고, 새로운 도메인을 피해요. 성장이 멈춰요.
“본다” 단계 (지각 변화)
어떤 상태인가
“안다” 단계에서는 “이거 그거네”라는 인식 과정이 있었어요. “본다” 단계에서는 이 과정이 사라져요. 코드를 보면 본질이 그냥 보여요. 분석하지 않아요.
// "본다" 단계에서의 코드 작성
// (생각 없이 자연스럽게 잘 분리된 코드가 나옴)
// "왜 이렇게 짰어요?" → "음... 그냥 이게 자연스러워서요"
JavaScript
복사
바둑 고수는 바둑판을 보면 “형세”가 보인다고 해요. 돌 하나하나를 분석하는 게 아니라, 전체 그림이 바로 들어와요. 초보자는 돌 하나하나가 보이지만, 고수는 관계와 흐름이 보여요.
코드도 마찬가지예요. 초보자는 코드 라인 하나하나가 보여요. 고수는 구조와 의도가 보여요.
중요: 단계를 건너뛸 수는 없어요. “한다”를 충분히 반복해야 “안다”가 되고, “안다”를 충분히 반복해야 “본다”가 돼요. 뇌의 시냅스 연결이 물리적으로 바뀌어야 해서, 시간이 필요해요.
9.3 체화를 가속하는 방법
의도적 수련 (Deliberate Practice)
그냥 반복하는 것과 성장하는 반복은 달라요.
“의도적 수련이란 잘하지 못하거나 아예 할 수 없는 것을 상당한 노력과 구체적인 방법으로 지속적으로 시도하는 것이다.”
— 안데르스 에릭손 (Ericsson, 1993)
10년간 경력이 있어도 실력이 늘지 않는 사람이 있어요. 같은 작업을 10년간 반복했을 뿐, 의식적으로 자신의 한계를 넓히려는 시도를 하지 않았기 때문이에요.
핵심은 불편함이에요. 이미 잘하는 것을 반복하면 편해요. 하지만 늘지 않아요.
추상화에 적용하면:
- 익숙한 패턴만 리팩토링하지 마세요. 아직 못 보는 패턴을 찾아보세요.
- 쉬운 코드만 정리하지 마세요. 어려운 코드에 도전하세요.
- 잘 되는 방식만 쓰지 마세요. 다른 방식도 시도해보세요.
3장의 연습법 복습
3장에서 이미 다룬 방법들이 체화를 위한 것이었어요:
방법 | 내용 | 체화와의 관계 |
클린 | 환원 → 재구성 → 검증 | “쪼개기” 체화 |
저크 | 구조를 다른 분야에서 찾기 | “비교하기” 체화 |
의도적 수련 | 그냥 반복 | 메타인지 활용 |
구조 사전 | 발견한 패턴 기록 | 이해 고정 |
메타인지: 체화를 가속하는 도구
“지금 내가 뭘 하고 있는지”를 아는 것이 메타인지예요.
코드를 짜다가 문득 이런 생각 해본 적 있나요?
“어? 나 지금 30분째 같은 고민 하고 있네”
이 순간이 메타인지예요. 모니터링(현재 상태 인식)과 조절(방향 수정)로 나뉘어요.
(모니터링)
"음, 이 함수 이름을 30분째 고민하고 있네."
"코드가 점점 복잡해지고 있어."
(조절)
"이름은 일단 두고 로직 먼저 완성하자."
"함수를 분리해야겠다."
Plain Text
복사
추상화할 때 이런 질문이 자연스럽게 떠오른다면, 체화되고 있는 거예요:
•
지금 나는 구체에서 추상으로 가고 있나, 추상에서 구체로 가고 있나?
•
What과 How를 제대로 분리하고 있나?
•
이게 의미 있는 추상화인가, 그냥 형식적인 추상화인가?
9.4 전문가는 뭐가 다른가
체화되면 무슨 일이 일어날까요?
인지 자원이 남아요.
전문가가 되는 과정은 의식적 처리를 자동화된 처리로 옮기는 과정이에요. 자동화되면 인지 자원이 남아요.
그 남은 자원을 어디에 쓸까요?
- 더 큰 그림을 보는 데 써요
- 창의적 해결책을 떠올리는 데 써요
- 전략적 판단을 하는 데 써요
초보자가 기본 동작에 모든 주의를 쏟을 때, 전문가는 기본 동작을 자동으로 처리하면서 더 높은 수준의 사고를 해요.
9.5 마무리: 끝없는 나선
추상화 학습은 끝이 없어요
이 책을 다 읽었다고 추상화가 끝나지 않아요. 오히려 시작이에요.
체화되면 이 책을 다시 읽을 때 새롭게 보여요. 처음엔 못 보던 게 보여요. 이게 나선형 학습이에요. 같은 곳을 지나지만, 매번 한 층 더 깊어져요.
9장 → 1장 다시 읽기 (새롭게 보임)
→ 실제 코드에 적용 (새로운 이해)
→ 9장 다시 읽기 (더 깊은 이해)
→ 다시 1장 (또 새롭게)
Plain Text
복사
자가 진단
이 책을 덮기 전에:
□ What/How 분리가 무엇인지 설명할 수 있나요?
□ 코드에서 추상화 문제를 발견할 수 있나요?
□ 일상에서 추상화를 의식적으로 적용해봤나요?
□ "지금 나는 어떻게 추상화하고 있지?"라고 자문할 수 있나요?
□ 처음보다 추상화할 때 의식적 노력이 줄어들었나요?
Plain Text
복사
모든 항목에 Yes라면, 당신은 이미 “안다” 단계 이상이에요.
다음 단계
"한다" 단계라면:
→ 3장의 연습을 반복하세요. 매일 5분.
"안다" 단계라면:
→ 남에게 설명해보세요. 설명하면 더 명확해져요.
"본다" 단계에 가까워지고 싶다면:
→ 불편한 것에 도전하세요. 새로운 도메인, 새로운 문제.
Plain Text
복사
마지막으로
이 책을 읽는 행위 자체가 추상화였어요.
•
글자(구체)에서 의미(추상)를 추출했고
•
그 의미를 자신의 맥락(구체)에 적용하려 했어요
당신은 이미 추상화하고 있었어요. 이제 그것을 의식할 수 있게 됐어요.
훈련을 시작하세요. 느린 게 정상이에요. 반복하세요. 어느 순간 빨라져요. 더 반복하세요. 어느 순간 보여요.
