GitBook
클린코드

1장 깨끗한 코드

깨끗한 코드

#책

#클린코드

2023년 08월 15일

코드는 사라지지 않는다


코드는 요구사항을 상세히 표현하는 수단이다
기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업이 프로그래밍이다

우리는 시키는대로 움직이는 기계를 만드는 것이지
원하는 대로 돌아가는 기계를 만들 수 없다.

나쁜 코드


우리모두 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다 생각한 경험이 있다.

하지만 Later equals never 나중은 결코 오지 않는다

나쁜 코드의 대가


나쁜 코드는 개발 속도를 크게 떨어뜨린다.
코드를 고칠 때마다 엉뚱한 곳에서 문제가 발생하며
매번 얽히고 설킨 코드를 해독해서 얽히고 설킨 코드를 더한다

생산성이 떨어지면 관리층은 나름대로 인력을 추가로 투입하지만
새 인력은 시스템 설계에 대한 조예가 깊지 않고
새 인력과 팀은 생산성을 높여야 한다는 극심한 압력에 시달려 결국 나쁜 코드를 더 많이 양산하게된다.

원대한 재설계의 꿈


팀이 반기를들어 재설계를 진행 하더라도
기존 시스템 기능을 모두 제공하는 새 시스템을 내놓아야하며
기존 시스템에 가해지는 변경도 모두 따라잡아야한다.

새 시스템이 기존 시스템을 따라잡을 즈음
새로운 팀원들이 새 시스템을 설계하자고 나선다
왜? 현재 시스템이 너무 엉망이라서

우리의 태도


좋은 코드를 사수하는 일은 바로 우리들의 책임이다.
나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르지 말자

오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고 결국 기한을 놓친다
빨리가는 유일한 방법은 언제나 코드를 최대한 깨끗하게 유지하는 습관이다

깨끗한 코드란 무엇인가?


노련한 프로그래머들이 말하는 깨끗한 코드란 무엇일까?

  • 비야네 스트롭스트룹
    • 보기에 즐거운코드
    • 세세한 사항까지 꼼꼼하게 처리하는 코드
    • 한 가지를 잘하는 코드
  • 그래디 부치
    • 가독성이 좋은 코드
    • 코드는 추측이 아니다
  • 데이브 토마스
    • 다른 사람이 고치기 쉬운 코드
    • 큰 코드보다 작은코드
  • 마이클 페더스
    • 고치려고 살펴봐도 딱히 손댈 곳이 없는코드
    • 시간을 들여 깔끔하고 단정하게 정리한 코드
  • 론 제프리스
    • 모든 테스트를 통과하는 코드
    • 중복이 없는 코드
    • 하나의 기능만 수행하는 코드
    • 제대로 표현한 코드
  • 워드 커닝햄
    • 읽으면서 놀랄일이 없는코드
    • 읽느라 머리를 쥐어짤 필요가 없는 코드

나쁜 코드는 의도가 뒤섞이고 목적이 흐려진다
우리는 저자다 코드를 짜는 시간보다 코드를 읽는 시간이 10배 더 많다
그러므로 읽기쉬운 코드가 매우 중요하다

결론


클린코드에 대한 책을 읽는다고 클린코드를 짤 수 있는 프로그래머가 된다는 보장은 없다
단지 뛰어난 프로그래머가 생각하는 방식과 도구를 소개할 뿐이다

연습하자!