11. 코드를 작성하는 행위
#
11.1 프로그래밍 중 이루어지는 다양한 활동- 활동을 어렵게 만드는 요인은 다음과 같습니다.
활동 | 작엄 | 부하를 가하는 기억 공간 | ||||
---|---|---|---|---|---|---|
실행 | 코딩 | 테스트 | 읽기 | 리팩터링 | ||
검색 | ㅇ | ㅇ | STM | |||
이해 | ㅇ | ▵ | ㅇ | ▵ | 작업 기억 공간 | |
검색 | ㅇ | LTM | ||||
검색 | ㅇ | ㅇ | ㅇ | ㅇ | ▵ | 세 곳 모두 |
검색 | ㅇ | ㅇ | ㅇ | ㅇ | ▵ | 세 곳 모두 |
#
11.1.1 검색- 검색은 코드베이스를 살펴보고 특정 정보를 검색하는 작업입니다.
- 특정 작업으 쉽게 하기 위해 코드를 일시적으로 변경하는 것이 유익합니다.
- 검색 단계를 적어두면 나중에 완료하는 데 도움이 됩니다.
#
11.1.2 이해- 이해 활동을 수행할 때는 코드를 읽고 실행해봄으로써 그 기능을 이해하게 됩니다.
- 이해는 작업 기억 공간에 부담을 주는 활동이기 때문에 코드를 이해하기 쉽게 리팩터링하는 것이 도움이 됩니다.
#
11.1.3 전사- 전사란 '단순히 코딩'하는 활동입니다.
- 구현하려면 문법 구조를 떠울릴 수 있어야 하기 때문에 전사 작업은 LTM에 부하를 유발합니다.
#
11.1.4 증가- 증가는 검색, 이해, 전사가 합쳐진 활동입니다.
- 새 기능을 추가하는 것은 코드가 늘어나는 것입니다.
- 가능하다면 증가 작업을 여러 개의 작은 작업으로 분할하면 좋습니다.
#
11.1.5 탐구- 탐구 활동의 본질은 코드를 사용하여 스케치하는 것과 같습니다.
- 탐구 활동 역시 다른 활동에 의존하므로 3가지 기억 공간 모두 어려움을 겪습니다.
- 계획을 문서화하면, 설계의 방향이나 결정 사항을 대략 적어두면 아주 유용하고 문제를 더 깊이 생각할 수 있는 마음의 여유를 확보할 수 있습니다.
#
11.1.6 디버깅은 어떤가?- 디버깅은 탐구, 검색, 이해, 코드 작업의 순서이며, 다섯 가지 활동이 혼합된 것으로 묘사할 수 있습니다.
#
11.2 프로그래머의 업무 중단- 프로그래머에게는 업무 중단이 흔합니다.
- 하루에 두시간 동안 업무에 집중할 수 있는 시간이 하루에 평균 한 번 정도에 불과합니다.
#
11.2.1 프로그래밍 작업에는 워밍업이 필요하다- 프로그램 이해 과정에서 일종의 워밍업 및 냉각 단계가 있습니다.
#
11.2.2 중단 후에는 어떻게 되는가?- 업무 중단 후 발생하는 상황을 보면 생산성에 상당히 지장을 초래한다고 판단했습니다.
#
11.2.3 중단에 잘 대비하는 방법- 세가지 방법이 있습니다.
#
정신 모델 저장- 정신 모델에 대한 메모를 주석문으로 남기는 것도 도움이 됩니다.
- 코드로는 표현이 안되는 부분을 기억합니다.
#
미래 기억 향상- 미래 기억은 미래에 무언가를 할 것에 대한 기억입니다.
to-do
가 대표적인 예시입니다.
#
하위 목표 라벨 붙이기- 문제를 어떤 작은 단계로 나눌 수 있는지 명시적으로 기록합니다.
- 하위 목표는 일부는 주석으로 남아 나중에 설명서의 역할을 할 수도 있습니다.
#
11.2.4 프로그래머를 방해할 때- 업무 중단이 일어나는 것을 피할 수는 없더라도 프로그래머가 보다 편리한 시간에 중단되는 것이 도움이 될 수 있습니다.
#
11.2.5 멀티태스킹에 대한 고찰#
멀티태스킹 및 자동화- 대부분의 실험결과에서 깊은 인지 작업을 하는 사람은 여러 가지 일을 할 수 없다는 증거가 많습니다.
- 정보를 저장하는 세 단계는 인지, 연상, 자율인데 자율 단계에 도달하지 않은 경우 두 개 이상의 작업을 동시에 수행할 수 없습니다.
#
멀티태스킹에 관한 연구- 멀티테스킹을 한 사용자들이 약 50%의 시간을 더 사용합니다.
#
요약- 프로그래밍을 할 때 검색, 이해, 전사, 증가, 탐구 등 다양한 프로그래밍 활동을 함께 수행합니다.
- 각각의 활동은 서로 다른 기억 체계에 부담을 줍니다. 따라서 여러 다른 기법을 사용해 이 활동들을 지원해야 합니다.
- 프로그맹 중 중단은 성가실 뿐만 아니라 코드에 대한 정신 모델을 재구성하는 데 시간이 걸리기 때문에 생산성에 나쁜 영향을 미친다.
- 중단에 잘 대처하려면 정신 모델을 노트, 문서 또는 주석문으로 작성합니다.
- 작업을 완료할 수 없다면 계획은 문서화해서 미래 기억을 의도적으로 도와주어야 합니다.
- 방해를 받더라도 가급적이면 인지 부하가 나증에 중단이 일어나도록 합니다.
- 예를 들어, 작업이 끝난 후.