Skip to main content

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%의 시간을 더 사용합니다.

요약#

  • 프로그래밍을 할 때 검색, 이해, 전사, 증가, 탐구 등 다양한 프로그래밍 활동을 함께 수행합니다.
    • 각각의 활동은 서로 다른 기억 체계에 부담을 줍니다. 따라서 여러 다른 기법을 사용해 이 활동들을 지원해야 합니다.
  • 프로그맹 중 중단은 성가실 뿐만 아니라 코드에 대한 정신 모델을 재구성하는 데 시간이 걸리기 때문에 생산성에 나쁜 영향을 미친다.
  • 중단에 잘 대처하려면 정신 모델을 노트, 문서 또는 주석문으로 작성합니다.
  • 작업을 완료할 수 없다면 계획은 문서화해서 미래 기억을 의도적으로 도와주어야 합니다.
  • 방해를 받더라도 가급적이면 인지 부하가 나증에 중단이 일어나도록 합니다.
    • 예를 들어, 작업이 끝난 후.
Last updated on