Skip to content

Latest commit

 

History

History
67 lines (39 loc) · 3.97 KB

프로그래머의-뇌.md

File metadata and controls

67 lines (39 loc) · 3.97 KB

프로그래머의 뇌

1부

1. 코딩 중 겪는 혼란에 대한 이해

  1. 프로그래밍 언어나 알고리즘 혹은 업무 영역에 대한 지식이 없는 경우 혼란이 생길 수 있다.
    • 두뇌의 장기 기억 공간(long-term memory, LTM)에 해당 내용이 없음.
  2. 코드를 이해하기 위해 필요한 정보를 충분히 가지고 있지 못하는 경우
    • 단기 기억 공간(short-term memory)에 해당 내용이 없음.
  3. 코드가 너무 복잡해서 혼란이 생기는 경우
    • 두뇌의 처리 용량 부족
    • 작업 기억 공간(working memory)의 문제

2. 신속한 코드 분석

연구에 의하면 프로그래머의 시간 중 거의 60%를 코드를 '작성'하는 게 아니라 '이해'하는 데 사용한다고 한다.

2.1 코드를 신속하게 읽기

관련 정보를 신속하게 찾는 능력을 향상하면 코드를 다시 찾아보는 횟수를 줄일 수 있다. 코드를 읽는 기술의 수준이 높아지면 추가 정보를 찾기 위해 코드 여기저기를 살피는 횟수 역시 줄어들게 된다. 좀 더 효과적인 프로그래머가 되면 코드를 찾는 데 허비할 시간에 보그를 고치거나 새로운 기능을 추가할 수 있다.

  • 코드가 무슨 일을 하는지 알지 못하면 기억이 나지 않는 부분을 LTM에 저장된 지식을 사용해서 추측할 수 없다.
  • 생소한 변수명을 사용하면 패턴을 찾고 기억하는 것이 어려워진다.

2.1.4 생소한 코드를 읽는 것은 왜 어려운가?

코드에 있는 정보를 모두 다 STM에 저장하고 처리하는 것은 물리적으로 불가능하다.

STM은 정보를 저장하는 시간뿐만 아니라 크기 또한 제약된다.

최근의 연구에서는 STM의 용량이 2개에서 6개 사이로 심지어 더 적다고 추정한다. 이 용량은 거의 대부분의 사람에게 해당하고, 과학자들은 STM의 용량을 향상하는 방법을 아직 찾지 못했다.

이 작은 용량을 극복하기 위해 STM은 LTM와 협업하여, 읽거나 기억한 정보를 이해한다.

2.2 기억의 크기 제한을 극복하기

특정한 주제에 대해 두뇌가 더 많은 정보를 저장하고 있다면 입력된 정보들을 효율적으로 청크로 묶는 것이 수월해진다. .... 앞의 연습 문제에서 문자와 단어를 기억하려 했을 때 생소한 문자로 된 문장보다 우리가 이미 아는 단어로 된 문장이 훨씬 쉬웠음을 기억할 것이다. 단어의 의미를 LTM으로부터 인출하기 때문에 기억하기 쉬운 것이다.

LTM에 지식이 많으면 기억을 쉽게 한다는 사실은 프로그래밍에도 해당한다.

2.2.2 전문가는 초보자보다 코드를 더 잘 기억한다.

초보 프로그래머들이 숙련된 프로그래머보다 훨씬 적은 줄을 처리한다.

새로운 팀원을 교육할 때나 새로운 프로그래밍 언어를 배울 때 이 점을 기억해야 한다. 심지어 다른 프로그래밍 언어를 잘 아는 뛰어난 프로그래머조차, LTM에 아직 저장되지 않은 익숙하지 않은 키워드, 구조, 도메인 개념을 기억하는 데 어려움을 겪는다.


3부

8. 명명을 잘하는 방법

좋은 이름을 사용하면 LTM을 활성화하여 코드 도메인에 대해 이미 알고 있는 관련 정보를 찾을 수 있다. 반면, 나쁜 이름은 코드에 대한 잘못된 추측을 하게 하고 오개념을 유발할 수 있다.

명명이 중요한 이유

  • 이름은 코드베이스의 상당 부분을 차지한다.
  • 코드 리뷰 시 이름의 역할
  • 이름은 문서화의 가장 쉬운 형태
  • 이름이 표식 역할을 할 수 있음

버틀러의 명명 규약 목록

이름은 코드베이스 내에서 일관성이 있어야 한다.

코드베이스 전반에 걸쳐 유사한 객체에 동일한 단어를 사용하면 뇌가 LTM에 저장된 관련 정보를 더 쉽게 찾을 수 있다.