- 프로그래밍 언어나 알고리즘 혹은 업무 영역에 대한 지식이 없는 경우 혼란이 생길 수 있다.
- 두뇌의 장기 기억 공간(long-term memory, LTM)에 해당 내용이 없음.
- 코드를 이해하기 위해 필요한 정보를 충분히 가지고 있지 못하는 경우
- 단기 기억 공간(short-term memory)에 해당 내용이 없음.
- 코드가 너무 복잡해서 혼란이 생기는 경우
- 두뇌의 처리 용량 부족
- 작업 기억 공간(working memory)의 문제
연구에 의하면 프로그래머의 시간 중 거의 60%를 코드를 '작성'하는 게 아니라 '이해'하는 데 사용한다고 한다.
관련 정보를 신속하게 찾는 능력을 향상하면 코드를 다시 찾아보는 횟수를 줄일 수 있다. 코드를 읽는 기술의 수준이 높아지면 추가 정보를 찾기 위해 코드 여기저기를 살피는 횟수 역시 줄어들게 된다. 좀 더 효과적인 프로그래머가 되면 코드를 찾는 데 허비할 시간에 보그를 고치거나 새로운 기능을 추가할 수 있다.
- 코드가 무슨 일을 하는지 알지 못하면 기억이 나지 않는 부분을 LTM에 저장된 지식을 사용해서 추측할 수 없다.
- 생소한 변수명을 사용하면 패턴을 찾고 기억하는 것이 어려워진다.
코드에 있는 정보를 모두 다 STM에 저장하고 처리하는 것은 물리적으로 불가능하다.
STM은 정보를 저장하는 시간뿐만 아니라 크기 또한 제약된다.
최근의 연구에서는 STM의 용량이 2개에서 6개 사이로 심지어 더 적다고 추정한다. 이 용량은 거의 대부분의 사람에게 해당하고, 과학자들은 STM의 용량을 향상하는 방법을 아직 찾지 못했다.
이 작은 용량을 극복하기 위해 STM은 LTM와 협업하여, 읽거나 기억한 정보를 이해한다.
특정한 주제에 대해 두뇌가 더 많은 정보를 저장하고 있다면 입력된 정보들을 효율적으로 청크로 묶는 것이 수월해진다. .... 앞의 연습 문제에서 문자와 단어를 기억하려 했을 때 생소한 문자로 된 문장보다 우리가 이미 아는 단어로 된 문장이 훨씬 쉬웠음을 기억할 것이다. 단어의 의미를 LTM으로부터 인출하기 때문에 기억하기 쉬운 것이다.
LTM에 지식이 많으면 기억을 쉽게 한다는 사실은 프로그래밍에도 해당한다.
초보 프로그래머들이 숙련된 프로그래머보다 훨씬 적은 줄을 처리한다.
새로운 팀원을 교육할 때나 새로운 프로그래밍 언어를 배울 때 이 점을 기억해야 한다. 심지어 다른 프로그래밍 언어를 잘 아는 뛰어난 프로그래머조차, LTM에 아직 저장되지 않은 익숙하지 않은 키워드, 구조, 도메인 개념을 기억하는 데 어려움을 겪는다.
좋은 이름을 사용하면 LTM을 활성화하여 코드 도메인에 대해 이미 알고 있는 관련 정보를 찾을 수 있다. 반면, 나쁜 이름은 코드에 대한 잘못된 추측을 하게 하고 오개념을 유발할 수 있다.
- 이름은 코드베이스의 상당 부분을 차지한다.
- 코드 리뷰 시 이름의 역할
- 이름은 문서화의 가장 쉬운 형태
- 이름이 표식 역할을 할 수 있음
이름은 코드베이스 내에서 일관성이 있어야 한다.
코드베이스 전반에 걸쳐 유사한 객체에 동일한 단어를 사용하면 뇌가 LTM에 저장된 관련 정보를 더 쉽게 찾을 수 있다.