의도적 수련(Deliberate Practice)

[!tldr] 한줄 요약 단순 반복이 아닌, 실력 개선을 목표로 즉각적 피드백을 받으며 수련해야 전문가가 될 수 있다.

핵심 내용

왜 경험만으로는 전문가가 되지 못하는가

김창준은 "양치질의 달인"이라는 비유를 든다. 수십 년간 매일 양치질을 해도 양치질의 달인이 되지는 못한다. 프로그래밍도 마찬가지다. 10년차 개발자라고 해서 자동으로 전문가가 되는 것이 아니다.

심리학자 안데르스 에릭슨(K. Anders Ericsson)의 말:

"특정 영역에서 개인이 성취할 수 있는 최고 수준의 퍼포먼스는 경험을 오래한다고 해서 자동으로 획득되지 않습니다"

의도적 수련의 정의

"자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련"

일반적인 반복과 의도적 수련의 차이:

단순 반복의도적 수련
목적업무 완수실력 향상
피드백없거나 느림즉각적, 구체적
난이도편한 수준 유지현재 실력 경계에서 도전
결과정체(plateau)지속적 성장

2가지 필수 조건

1. 실력을 개선하려는 동기

기본 수준에 도달하면 "이 정도면 됐지"라는 안주가 찾아온다. 에릭슨의 인터뷰에 따르면 "자신이 즐기는 걸 한다고 해서 더 뛰어나게 될 것이라고 믿는 것은 미신"이다. 의식적으로 "더 나아지겠다"는 목표를 설정해야 한다.

2. 적절한 시기의 구체적 피드백

양치질 직후 치면착색제로 확인하면 즉시 개선이 가능하지만, 1년 후 치과에서 듣는 피드백은 너무 늦다. 소프트웨어 개발에서는 코드 리뷰, 테스트 결과, 짝 프로그래밍(Pair Programming)이 즉각적 피드백 루프(Feedback Loop)를 제공한다.

몰입과의 관계

의도적 수련이 효과적이려면 몰입(Flow) 상태가 필요하다. 과제 난이도와 실력이 비슷해야 몰입에 들어갈 수 있다:

소프트웨어 개발에서의 적용

김창준이 분석한 프로그래밍 언어를 빠르게 배우는 달인들의 공통점:

  1. 능동적 읽기 - 튜토리얼을 읽으면서 "이걸로 뭘 만들 수 있을까?" 구상
  2. 표준 라이브러리 소스 분석 - 코드 스타일과 관례를 직접 학습
  3. 실무에 즉시 적용 - 기존 코드에 새 기능을 추가하며 학습

이들의 공통점은 피드백 주기가 짧다는 것이다. 10분, 1시간, 하루 단위로 자신의 학습 결과를 확인한다.

실수 관리

의도적 수련에서 실수는 예방이 아닌 관리가 핵심이다. 실수 관리 문화가 높을수록 조직의 혁신 정도가 높다. 실수를 통해 배우려면 실수가 드러났을 때 안전하다고 느낄 수 있는 심리적 안전감(Psychological Safety)이 전제되어야 한다.

예시

[!example] 양치질 vs 의도적 수련

  • 단순 반복: 매일 같은 방식으로 3분 양치 → 수십 년이 지나도 실력 변화 없음
  • 의도적 수련: 양치 후 치면착색제로 확인 → 놓친 부분 파악 → 다음 양치에 반영 → 실력 향상

[!example] 개발자의 의도적 수련

  • 단순 반복: 익숙한 패턴으로 기능 구현만 반복
  • 의도적 수련: TDD로 테스트 먼저 작성, 코드 리뷰에서 피드백 수용, 새로운 언어/패러다임에 도전

참고 자료

관련 노트