'프로그래머의 뇌'를 읽으며, 정리한 내용입니다.
1.1 코드가 초래하는 세 가지 종류의 혼란
1) 지식의 부족
- 프로그래밍 언어, 업무 영역에 대한 지식이 없는 경우이다.
ex) 1960년대의 수학자가 사용하는 APL코드는 1960년대 수학자가 아니면 이해하기 어렵다.
2) 정보의 부족
- 코드를 이해하기 위한 필요한 정보를 충분히 가지고 있지 못하는 경우이다.
ex) 어떤 코드인지에 대해 이해할 수는 있지만, 특정 메서드가 어떻게 동작하는지 알기 위해서는 내부 코드를 따로 살펴봐야 한다.
3) 처리 능력의 부족
- 코드가 너무 복잡해서 혼란이 생기는 경우이다.
1.2 코딩에 영향을 주는 인지 과정
- 앞의 세가지 종류의 혼란은 서로 다른 종류의 인지 과정을 가지고 있으며, 이는 기억과 관련이 있다.
1) 지식의 부족 = 장기 기억 공간의 문제 (Long-Term Memory, LTM 문제)
2) 정보의 부족 = 단기 기억 공간의 문제 (Short-Term Memory, STM 문제)
3) 처리 능력의 부족 = 작업 기억 공간의 문제 (작업 기억 공간: 우리가 사고할 때 사용하는 영역)
1.2.1 LTM과 프로그래밍
- LTM에 있는 기억은 오랜 시간 동안 저장한다.
- 말로 된 설명을 읽을 필요도 없고, 각 단계별로 어떻게 동작하는지 이해하지 않아도 된다.
- 컴퓨터의 하드 드라이버와 비슷하다.
1.2.2 STM과 프로그래밍
- STM은 들어오는 정보를 잠시 보관하기 위해 사용된다.
- 대부분의 학자들은 STM이 기억할 수 있는 항목의 최대치가 12개를 넘지 않는다.
- 일시적으로 저장하는 컴퓨터의 캐시나 메인 메모리와 비슷하다.
1.2.3 작업 기억 공간과 프로그래밍
- 생각, 아이디어, 해결책 같은 실제 사고 작용은 작업 기억 공간에서 이루어진다.
- 트레이스를 하거나 인지적으로 복잡한 작업을 할 때 사용되는 공간이다.
( 트레이싱은 추적으로, 코드를 이해하기 위해 머리속에서 컴파일하거나 실행하는 과정을 의미한다. )
- 컴퓨터에서 계산을 수행하는 프로세서와 비슷하다.
1.3 인지 과정들의 상호작용
1.3.1 인지 과정들이 어떻게 상호작용하는지에 대한 간단한 설명
- LTM, STM, 작업 기억 공간은 서로 밀접하게 연관되어 있다.
ex) 아래와 같이 java 코드를 읽을 경우
n이 정수형이라는 정보는 STM에 저장되고, 동시에 정수 그 자체에 대한 정보는 LTM에서 인출된다.
STM과 LTM에서 처리된 것을 바탕으로 프로그램이 무엇을 하는지 파악하는 일은 작업 기억 공간에서 이루어진다.
public class BinaryCalculator{
public static void main(Integer n) {
System.out.println(Integer.toBinaryString(n));
}
}
1.3.2 프로그래밍 업무와 관련한 인지 과정
- 코드를 읽는 동안 LTM, STM, 작업 기억 공간 등의 3가지 인지 과정이 발생하며 서로 보완적으로 작용한다.
- 고객으로 부터 Bug 리포트를 받은 상황
1) STM : 이전에 작성한 코드를 이해하기 위해, 분석한 코드 내용을 저장한다.
2) LTM : 이전에 구현한 코드 내용과 bug에 대한 오류 해결법 같은 정보를 가져온다. (STM과 동시에 진행)
3) 작업 기억 공간 : STM, LTM에서 획득한 정보가 작업 기억 공간에 들어오고, 이를 이용하여 문제에 대해 생각하고 처리한다.
'CS' 카테고리의 다른 글
Chapter3. 프로그래밍 문법 빠르게 배우기 (0) | 2025.04.19 |
---|---|
Chapter 2. 신속한 코드 분석 (0) | 2025.04.16 |