[프로그래머의 뇌] 2. 신속한 코드 분석

윤남주·2022년 2월 20일
0
post-thumbnail

2.1 코드를 신속하게 읽기

프로그램은 사람이 읽을 수 있도록 작성해야만 한다. 기계가 실행하는 것은 부차적인 일이다.

코드를 읽는다 = 코드에 존재하는 우리가 원하는 특정 정보를 찾는다
코드 읽기 능력의 향상 → 시간 허비 ⬇️


2.1.1 코드를 읽는 과정

STM

  1. 코드를 읽으며 얻은 정보들

LTM

  1. 프로그래밍 언어 문법에 대한 지식
    : for loop문에 대한 지식 등

  2. 이 코드가 어떤 기능을 하는 코드라는 지식
    : STM에 코드를 다 담지 못했어도, 이 코드는 이 동작을 해야하니까 이렇게 쓰였겠지... 하는 짐작이 가능해짐

→ 이 둘이 함께 사용되어 코드를 재현해낼 수 있음


2.1.4 생소한 코드

두번쨰 코드가 훨씬 어려운 이유

  1. 코드가 무슨 일을 하는지 알지 못함 : LTM에서 참조하여 추측할 수 없어짐
  2. 이상한 변수명들을 사용하여 기억하는 것을 어렵게 만듦

→ 우리의 STM의 용량에 제한이 있기 때문에 기억이 어려움 😭

- STM의 시간 : 30초
- STM의 용량 : 2개 ~ 6개

2.2 STM의 제한 극복 : Chunk

Chunk
각각을 기억하는 것이 아닌, 어떠한 그룹으로 묶어 기억하는 것
🚨 이렇게 그룹으로 묶을 때엔 LTM에 있는 지식이 필요함 (아무런 지식이 없으면 단위/패턴으로 묶을 수도 없음)

코드에서의 Chunking
LTM에 지식이 많을수록 Chunking이 쉽고 기억을 쉽게 만든다.
→ 전문가는 초보보다 더 코드를 잘 기억한다 (당연히도...)

💡 하지만 무작위 코드의 경우 전문가와 초보의 차이가 없다 (LTM을 활용할 수 없었으므로...)


2.3 읽는 것보다 보는 것이 더 많다

정보 → 감각(오감) → 감각 기억 공간(sensory memory) → STM
코드 → 감각 👀 → 영상 기억 공간(iconic memory) → STM

우리가 STM에 기억하는 것보다 더 많은 정보가 순간적으로 영상 기억 공간에 저장되었다가 휘발된다.


2.3.2 기억하는 방식/순서

코드를 어떤 순서로 기억했는지도 중요한 요소 → 정보의 연관성
전문가 집단이 초보자 집단보다 더 이미 있는 지식을 가지고 순서를 정함

더 읽기 좋은 코드를 작성하는 방법

= 디자인 패턴을 사용

디자인 패턴에 대한 지식 ⬆️
→ 코드 청킹 능력 향상
→ 더 빠른 코드 읽기 / 수정 가능

➕ 디자인 패턴에 따른 차이도 있음!!!

주석문 쓰기

주석문이 포함되어있으면 코드 읽기 속도가 늘어남 → 주석문을 유의미하게 읽고있다는 증거

  1. 주석문이 있으면 새로운 팀원이 코드를 더 쉽게 읽을 수 있음!
  2. 개발자가 코드를 청킹할 때 주석문의 도움을 받을 수 있음 (고수준 주석문의 경우에만!)

표식 beacon 남기기

: 코드를 읽다가 '아 이거구나'라고 생각하게 되는 부분
주석문, 변수명, 필드명, 도출되는 문자열의 값 등이 표식이 될 수 있음!

1️⃣ 단순 표식
코드의 문법을 통해 의미가 자명한 표식
변수명, 연산자, if 구조문 등...

2️⃣ 복합 표식
단순 표식들이 모여 실행되는 기능에 대해서 알려주는 표식


2.3.3 청킹 연습

청킹을 의도적으로 연습하는 방법
: 적극적으로 코드를 기억해내는 훈련

  1. 코드 선정 (~50줄)

  2. 코드 파악 (2분)

  3. 코드 재현

  4. 회고

  5. 다른 사람과 비교 (생략 가능)


내가 왜 리액트 클래스형 컴포넌트만 보면 길 잃었는지, 클래스형 컴포넌트를 조금이나마 공부하고 나니 (LTM에 넣으니) 스택 오버플로우에 클래스형으로 적혀있어도 조금은 도움되는 코드를 파악할 수 있었는지 알게 되었다.

디자인 패턴의 중요성이 부각되는데, 나도 최근에 배운 Custom Hooks를 사용하여 + Styled-Component를 더 제대로 사용하여 올바른 디자인 패턴, 읽기 쉬운 디자인 패턴을 구현해내야겠다.

profile
Dig a little deeper

0개의 댓글