코드로 우주평화

깨끗한 코드야말로 더 빨리 가는 유일한 방법 본문

나는 이렇게 본다/Clean Code

깨끗한 코드야말로 더 빨리 가는 유일한 방법

daco2020 2022. 1. 23. 00:36

제목 : 클린 코드

저자 : 로버트 C. 마틴

범위 : 1장 깨끗한 코드

 

 


 

기억하고 싶은 것

  • 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다.
  • 우리 모두는 좋은 코드가 중요하다는 사실을 안다. 왜? 오랫동안 나쁜 코드에 시달려왔으니까.
  • 회사가 망한 원인은 바로 나쁜 코드 탓이었다.
  • 나중에 손보겠다고 생각한 경험이 있다. (중략) 나중은 결코 오지 않는다.
  • 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 그러다가 마침내 0에 근접한다.
  • 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
  • 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.
  • 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.
  • 깨끗한 코드는 한 가지를 제대로 한다.
  • 깨끗한 코드는 의존성을 최소화 한다.
  • 깨끗한 코드는 의도를 숨기지 않는다.
  • 깨끗한 코드는 다른 사람도 고치기 쉽다.
  • 깨끗한 코드는 중복되지 않는다.
  • 깨끗한 코드는 짐작한 대로 동작한다.
  • 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니라 프로그래머다.
  • 코드를 읽는 시간 대 코드를 짜는 시간 비율이 10대 1을 훌쩍 넘는다.
    비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다.
  • 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다.
  • 한꺼번에 많은 시간과 노력을 투자해 코드를 정리할 필요가 없다. 
    변수 이름 하나를 개선, 조금 긴 함수 하나를 분할, 약간의 중복을 제거, if 문 하나 정리하면 충분하다.

 

떠오르는 생각

  • 주체적으로 일하는 전문가라면 좋은 코드를 사수할 수 있어야 한다.
  • 깨끗한 코드야말로 더 빨리 가는 유일한 방법이라는 말이 인상 깊다.
    (그냥 돌아가게 만드는 것이 가장 빠른 거라고 생각했다.)
  • 작정하고 리팩토링할 필요는 없다는 것을 알게 되었다.
    클린 코드는 그저 습관처럼 눈에 보일 때마다 정리를 하면 된다!

 

궁금한 것

  • '메모리 누수', '경쟁 상태'는 무엇을 뜻하는가?
    메모리 누수 : 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상
    경쟁 상태 : 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태
  • 테스트 케이스는 무엇이고 어떻게 만드는가?
    테스트 케이스 : 입력값, 실행조건, 기대 결과로 구성되어 있는 테스트 항목의 명세서
  • 작게 추상화한다는 것은 무엇인가?
    추상화 : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것

 


 

깨끗한 코드 체크리스트

✅ 한 가지 기능만 수행하는가?

✅ 의존성을 줄여 유지보수가 쉬운가?

✅ 의도가 분명히 보이는가?

✅ 다른 사람도 고치기 쉬운가?

✅ 중복되지 않는가?

✅ 짐작한 대로 동작하는가?

 

 

레퍼런스

나무위키-메모리 누수 

나무위키-경쟁상태

테스트 케이스란?

추상화