서적/클린코드(Clean Code)

클린코드 - 1장 깨끗한 코드(Clean Code)

yhyuk 2023. 8. 28. 17:26
728x90
반응형

1장 깨끗한 코드(Clean Code)

1장은 어떤 코드가 깨끗한 코드인지 왜 깨끗한 코드를 작성해야 하는지 원인과 해결방법을 설명하고 있다.

나쁜 코드란?

  • 읽기 어려운 코드

    단순히 로직이 복잡해서 읽기 어려운 코드를 말하는 것이 아닌,

    어떤 의도로 코드를 작성했는지 이해하기 어려운 코드를 말한다.
  • 수정하기 어려운 코드

    코드 한 줄만 수정하면 되는 간단한 로직이라고 생각했는데,

    참조하고 있는 곳이 수십개여서 수정하는데 한참 걸리는 경우를 떠올려보자.

 

나쁜 코드를 왜?

빠듯한 개발 일정, 잘못된 기획, 설계 미스 등
우선 빨리 개발을 하고 나중에 리팩토링하자라는 생각을 해본적이 있을 것이다.

나중은 결코 오지 않는다. (르블랑의 법칙)

  • 르블랑의 법칙으로 나중은 결코 오지 않으며 리팩토링 하기로한 코드들이 쌓이고 쌓여서 나쁜코드가 생긴다.

 

나쁜 코드 문제?

  • 나쁜 코드는 이해하기 어렵고 수정하기도 어렵기에 업무 생산성이 낮아진다.
  • 나중으로 미뤘던 나쁜 코드 리팩토링을 위해 일정이 필요하기에 당장 필요한 업무를 진행하지 못한다.

 

나쁜 코드 예방?

나쁜 코드를 짜지않는 방법으로 책에 적절한 비유가 적혀있다.

의사인데 환자가 수술 전에 손을 씻지 말라고 요구한다. 의사가 그 요구를 들어줄까?
개발자도 마찬가지로 일정에 쫓겨서, 여러가지 타협으로 나쁜 코드를 개발하는것은 말이 되지 않는다.

우리(개발자)는 항상 작성하는 코드에 고민하고 시간을 더 들여서 깨끗한 코드를 만들려고 노력해야한다.

 

유명 개발자들이 정의한 깨끗한 코드란?

우아하고 효율적인 코드는 한 가지를 제대로 한다. - 비야네 스트롭스트룹(C++ 창시자)

  • 보기에 즐거운 코드는 한가지를 제대로 해야한다.

 

단순하고 직접적이며 잘 쓴 문장처럼 읽힌다. - 그래디 부치(OOADA 저자)

  • 코드를 봤을 때 어떤 의도인지 위에서 부터 막힘없이 읽히는 그런 코드가 꺠끗한 코드이다.

 

읽기 쉽고 고치기도 쉬우며 테스트 케이스가 잘 작성되어 있다. - 데이브 토마스(OTI 창립자, 이클립스 전략의 대부)

  • 아무리 코드가 우아하고 가독성이 높아도 테스트 케이스가 없으면 깨끗한 코드라고 할 수 없다.

 

손댈 곳 없이 주의 깊게 짰다는 느낌을 준다. 고칠 궁리를 하면 계속 다시 제자리로 들어온다. - 마이클 페더스(WELC 저자)

  • 주의 깊게 짰다는 느낌을 주는 코드들을 리팩토링 하다보면 결국 제자리로 돌아오는 경우가 많은데, 그런 코드가 깨끗한 코드이다.

 

중복이 없고 표현력이 높다. - 론 제프리스 (EPI, EPA 저자)

  • 해당 개발자는 중복을 없애고, 표현력있는 변수, 함수, 클래스명을 짓기 위해 많은 시간을 고민한다고 한다.

 

짐작했던 기능을 각 루틴이 그대로 수행하는 코드 - 워드 커닝햄(위키 창시자)

  • 코드를 봤을 때 생각나는 그 '기능'을 수행하는 그런 코드가 깨끗한 코드이다.

 

깨끗한 코드의 공통점

  1. 한가지를 하는 코드
  2. 읽기, 고치기 쉬운 코드
  3. 테스트 코드가 있는 코드
  • 개발하는 사람들 모두가 알고 있는 사실이지만, 막상 개발을 하게 되면 많이 간과하는 부분인 것 같다.

 

보이스카우트 규칙

캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라

잘 짠 코드가 전부는 아니다. 시간이 지나도 언제나 깨끗하게 유지할 수 있도록 보이스카우트 규칙을 생각하면서 개발하도록 노력하자.

 

느낀점

개발자라면 클린한 코드를 짜기 위해서 많은 생각과 노력을 하고있을 것이다. 하지만 나도 그렇듯 실제로 개발을 하게되면
많이 놓치는 부분이 있는거 같다고 생각들었다. 1장을 읽으면서 공감되는 부분도 있었지만 놓치고 있던 부분들을 다시 알게 된 것 같다.

728x90
반응형