프로그래머의 뇌
펠리너 헤르만스 지음 / 차건희 옮김
JPub
코드 읽기 기술의 중요성
연구에 따르면 프로그래머의 시간 중 거의 60% 시간을 작성하는데 쓰는게 이해하는 데 사용한다고 한다. 따라서 정확도를 유지하면서 코드를 빨리 이해하도록 향상한다면 프로그래밍 기술이 크게 개선되는 것이다.
프로그램은 사람이 읽을 수 있도록 작성해야만 한다. 기계가 실행하는 것은 부차적인 일이다.
- 컴퓨터 프로그램의 구조와 해석, 인사이트
정보를 신속하게 찾는 능력을 향상하면 코드를 다시 찾아보는 횟수를 줄일 수 있고, 읽는 기술의 수준이 높아지면 추가 정보를 찾기 위해 여기저기를 살피는 횟수를 줄일 수 있다. 결국 더 효과적인 프로그래머가 될 수 있는 것이다.
코드를 읽기 힘든 이유
STM은 읽거나 들은 정보를 짧은 시간만 저장한다. 연구에 의하면 이 시간은 30초를 넘지 않는다. 또한 크기도 제약이 있는데 2 ~ 6개의 정보만 기억한다고 추정한다.
STM은 LTM과 협업하여 읽거나 기억한 정보를 이해한다. STM의 크기를 극복하는것이 읽기의 기술을 향상시키는데 중요하다.
STM을 향상시키는 방법
STM은 2 ~ 6개의 정보만을 기억한다. 그러면 이 정보를 어떻게 늘릴수 있을까?
책에서는 갯수를 늘리는 것보다는 한번에 기억해야 하는 정보의 크기를 늘리는 방향을 제시하고 있다. 이 방법은 Chunk라는 개념이다.
Chunk
Chunk는 몇 개의 그룹으로 묶은 정보를 Chunk라고 설명한다. 예를 들면 특정 디자인 패턴, 비슷한 개념을 묶은 것을 Chunk라고 말하는데, 이 Chunk는 하나의 STM 갯수만을 차지한다.
Chunk를 묶을 수 있는 코드를 작성하는 법
-
디자인 패턴을 사용하라.
- 디자인 패턴을 학습하고 이를 사용하면 코드의 이해가 훨씬 빨라진다는 연구결과를 설명하였다.
- 아무래도 디자인 패턴을 학습하면 해당 정보는 LTM에 저장될 것이고 코드를 읽을 때 STM에서는 해당 패턴 전체를 하나의 공간만 쓸거라서 이해도가 높아질 것으로 생각된다.
-
주석문을 작성하라.
- 쓸데없는 주석문 자체는 여전히 불필요하다고 저자는 말하지만, 주석문 자체가 쓸모 없는 것은 아니라고 말한다. 고수준 주석문은 코드를 청크단위로 쪼개는데 도움이 된다고 한다.
-
표식을 남겨라.
- 푝식은 코드 내에서 사용하는 특정 자료구조, 알고리즘 혹은 접근 방식을 보여주는 라인을 말한다. 변수명이나 클래스명, 메서드명 같은 식별자도 표식이 될 수 있고, 주석이나 Tree, for와 같은 키워드도 표식이 될 수 있다.
- 표식은 단순 표식과 복합 표식 2가지가 존재한다.
- 단순 표식은 의미 있는 변수명같이 코드의 문법을 통해 의미가 자명한 표식이다.
- 복합 표식은 단순 표식으로 이루어진 좀 더 큰 단위의 코드로, 단순 표식들이 모여 함께 실행되는 기능에 대해 알려준다.