Dev books

[Clean Code] Chapter 1. Clean Code

NillK 2017. 1. 10. 01:08

Chapter 1. Clean Code

여러분이 이 책을 읽고 있다면 이유는 두 가지다. 첫째, 프로그래머라서. 둘째, 더 나은 프로그래머가 되려고. 다행이다! 우리 업계는 더 나은 프로그래머가 필요하니까. 우앙! *_*

1.1 코드가 존재하리라

코드는 요구 사항을 상세히 표현하는 수단이다. 코드는 기계가 이해할 정도로 엄밀하고, 정확하고, 상세하고, 정형적이어야 한다. 그렇기에 코드 자동 생성이라는 말은 불가능한 말이다. 코드는 사라지지 않는다.

1.2 나쁜 코드

좋은 코드는 중요하다. 조금이라도 프로그래밍을 해봤다면, 나쁜 코드에 고생해본 기억이 있을 것이다. 우리는 모두 자신이 짠 쓰레기 코드를 나중에 고치리라고 생각해봤을 것이다. 안 돌아가는 프로그램보단 돌아가는 쓰레기가 낫다고 스스로를 위로해 본 경험이 있을 것이다.

나중은 결코 오지 않는다 (^_^)

1.3 나쁜 코드로 치르는 대가

기한을 맞추려면 나쁜 코드를 양산할 수밖에 없다고 느낀다. 하지만 틀렸다. 나쁜 코드로 속력이 즉각 늦어져서 결국은 기한은 놓친다. 기한을 맞추는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.

클린 코드란?

  • 클린 코드는 한 가지를 제대로 한다. 집중
  • 단순하고 직접적. 명쾌한 추상화와 단순한 제어문. 잘 쓴 문장처럼 읽힌다. 가독성
  • 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. 문학적
  • 누군가가 주의 깊게 짰다는 느낌. 고칠 궁리를 하다 보면 제자리로 돌아온다. 다시 말하자면 클린 코드는 주의 깊게 작성한 코드다. 시간을 들여 깔끔하고 단정하게 정리한 코드다. 세세한 사항까지 꼼꼼하게 신경 쓴 코드다. 주의
  • 모든 테스트를 통과한다. 중복이 없다. 시스템 내 설계 아이디어를 표현한다. 클래스, 메소드, 함수 등을 최대한 줄인다.
    • 중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화 하라. (이 책의 내용을 요약했다고 해도 과언이 아니다.)
  • 코드를 읽으며 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린 코드라 불러도 되겠다. 코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다.

우리는 @author
읽기 쉽게 짜라. 새 코드를 짜려면 기존 코드를 읽을 수밖에 없다.
그리고 깨끗한 코드를 유지하기 위해 노력하라.

이 모든 걸 이루기 위해 연습해, 연습!




오래전 공부했던 Clean Code를 정리해보려고 한다. 내가 썼던 메모는 거의 나만 알아들을 수 있는 수준이어서 다시 책을 보며 살을 좀 붙였다. 책 자체에 비유가 많아 책의 늬앙스를 완벽하게 담을 수는 없겠지만, 요약본 정도의 느낌으로. 그리고 내가 정리하는 글에 별로 필요 없다고 생각하거나, 요약하기엔 너무 긴 세부챕터는 빼버렸다. 이 책이 말하는 전반적인 내용 이해에는 무리가 없을 것으로 생각한다.



'Dev books' 카테고리의 다른 글

[Clean Code] Chapter 3. 함수  (0) 2017.03.23
[Clean Code] Chapter 2. 의미있는 이름  (0) 2017.01.26
[Clean Code] Chapter 1. Clean Code  (0) 2017.01.10