본문 바로가기

서평/코딩, 개발

읽기 좋은 코드가 좋은 코드다

반응형
int a = 3;
int x = 8;
int limit = 10;

 

 

초보 프로그래머들은 프로그래밍을 할 때 그저 코드를 '구현'하는데 집중한다.

최대한 빨리 문제를 해결하기 위해 변수명은 a, x 같은 것으로 설정한 후,

머리 속으로 해당 변수에 대한 내용을 기억해두고, 그 기억을 바탕으로 문제를 해결한다.

위는 그 프로그램의 예시이다.

 

그리고 한달 후, 내가 전에 작성한 코드를 응용해서 문제를 해결해야 하는 순간이 왔다.

그래서 코드를 열어보았지만.. 응용해야할 코드를 알아볼 수 조차 없다!

'a는 뭐지? x는 또 뭐고? limit는 10이하인 숫자를 말하는거야? 10미만인 숫자를 말하는거야?'

당장 응용해서 문제를 해결해야 할 코드가 전혀 기억이 나지 않는다.

처음부터 거의 코드를 다시 짜는 수준으로 코드를 점검해야 문제가 해결 될지도 모른다.

내가 짠 코드였어도 기억나지 않는 것이 당연하다.

1달전에 내가 작성한 코드는 나의 코드가 아니다

 

 

 

 

에빙하우스의 망각곡선에 의하면, 1달이 지나면 기억의 80%를 망각한다고 한다.

특히 강렬한 기억이 아니거나 특별한 기억이 아니면 더 잊기 쉬운데,

a와 x와 limit같은 변수들은 프로그래밍을 하면서 특별한 기억이라고 보기 어려울 것이다.

겨우 1달 지난 코드만 봐도 이런데, 6개월이나 1년전 혹은 그보다 더 오래된 코드를 볼때는 어떨까?

어쩌면 자신이 과거에 쓴 코드를 전부 기억하려는 시도 자체가 의미없는 행동일지도 모른다.

기억하지 못해도 좋다. 읽는 순간 쉽고 빠르게 이해할 수 있는 코드를 작성하면 되니까.

만약 자신과 함께 일하는 사람이 자신이 작성한 코드도 이해하지 못한다고 생각하면 끔찍할 것이다.

어떻게 해야 내 코드를 처음 보는 사람도 내용을 쉽게 이해하고 편하게 같이 일 할 수 있을까?

정답은 읽기 좋은 코드를 작성하면 된다.

 

 

 


 

 

초보 프로그래머는 물론 모든 프로그래머들을 위해

읽기 좋은 코드를 작성하고 싶은 사람들을 위한 책을 소개한다.

 

 

 

읽기 좋은 코드가 좋은 코드다 - 교보문고

이 책은 코드를 작성할 때 언제나 적용할 수 있는 기본적인 원리와 실전적인 기술에 초점을 맞추고 있다. 누구나 쉽게 이해할 수 있는 코드를 예제로 사용하고, 각 장은 코딩과 관련한 다양한 측

www.kyobobook.co.kr

 

삼성 SDS, 삼성 상무 출신의 프로그래머 '임백준'님이 번역하시고,

프로그래밍 관련 커뮤니티에서 책 추천해달라고하면 매우 높은 확률로 나오는

한국의 프로그래머들이 인정하고, 또 많이 공부하는 책이다.

이 책을 관통하는 핵심 아이디어는 코드는 이해하기 쉬워야 한다는 것이다.

특히 자신의 코드를 다른 사람이 읽고 이해할 때 걸리는 시간을 최소로 만들어야 한다고 말한다.

이 책은 크게 4가지 파트로 나뉘어져 있다.

1부, 표먼적인 수준에서의 개선

- 이름짓기, 설명문, 미학, 코드베이스의 모든 줄에 적용될 수 있는 간단한 조언들

2부, 루프와 논리를 단순화하기

- 프로그램에서 사용되는 루프, 논리, 변수를 개선하여 더 이해하기 쉽게 만드는 방법

3부, 코드를 재작성하기

- 코드의 커다란 블록을 높은 수준(higher-level)에서 재조직하고 주어진 문제를 함수 수준에서 해결하는 방법

4부, 선택된 주제들

- '이해하기 쉬운'이라는 원리를 테스트와 코드 예제를 통해 커다란 데이터 구조에 적용

 

1부부터 4부까지, 코드의 질을 올리는데 필요한 내용들을 난이도 별로 정말 잘 구성했다는 생각이 들었다.

읽기 어려운 코드에서 가장 손대기 쉬운 부분은 '변수 이름과 주석'

그 다음엔 위에서 손댄 변수들을 이용하는 '루프와 논리'

그 다음엔 그 루프와 논리들이 포함되있는 '함수 와 코드 그 자체'

마지막으로 이 코드를 이용할때 필요한 '테스트와 최적화'

작가는 각 장은 독립적이기 때문에 별도로 읽어도 상관 없다고 말하지만,

나는 자신이 읽고싶은 파트가 정해져 있더라도 책의 처음부터 읽어보는 것을 추천한다.

가능하다면 쉽고 빠르게 개선할 수 있는 부분부터 읽어보는게 더 의욕을 불타오르게 하기 때문이다.


 

반응형