단기 기억(Short-Term Memory)은 한 번에 몇 개(대략 2~6개)의 항목만 붙잡을 수 있다. 뇌는 이 한계를 넘기 위해 여러 정보를 의미 있는 덩어리, 곧 청크(chunk)로 묶는다(Chunking). 무엇을 하나의 덩어리로 볼 수 있는지는 장기 기억(Long-Term Memory)에 쌓인 지식이 정한다.
코드에서
for i in range(len(xs)):
for j in range(len(xs) - 1 - i):
if xs[j] > xs[j + 1]:
xs[j], xs[j + 1] = xs[j + 1], xs[j]- 초보자는
for,range, 인덱스, 비교, 교환을 하나하나 따로 붙잡아야 해서 금방 단기 기억이 찬다 - 경험자는 "버블 정렬"이라는 덩어리 하나로 기억한다
읽기 쉬운 코드가 돕는 것
- 익숙한 디자인 패턴과 관용구는 그 자체로 큰 청크가 된다. 이름만 보고 구조를 짐작할 수 있다
- 주석과 일관된 표식(이름 규칙, 파일 구조)은 덩어리의 경계를 알려 준다
- 반대로 거의 같지만 조금씩 다른 중복 코드는 묶기 어렵게 만든다 → DRY 원칙
자기 진단
낯선 코드를 몇 분 보고 덮은 뒤 기억나는 대로 다시 써 본다. 잘 떠오르는 부분은 내가 이미 아는 패턴이고, 떠오르지 않는 부분이 공부할 곳이다. 문법을 외워 두면 청킹이 쉬워지는 이유도 여기에 있다 → 인출 연습과 간격 반복
덩어리가 크게 묶일수록 작업 기억의 부담이 줄어든다 → 인지 부하. 전문가가 코드를 도메인 개념 단위로 생각하는 방식은 상호 참조 전략와 이어진다.
출처: 『프로그래머의 뇌』 펠리너 헤르만스 (원서 The Programmer's Brain)