[Clean Code] 12장 | 창발성

Jiwoo Kim·2020년 11월 13일
0

Clean Code 정독하기

목록 보기
12/13
post-thumbnail
post-custom-banner

창발(創發) : 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상

🚩 소프트웨어 설계 품질을 높일 수 있는 단순한 규칙 네 가지

단순하지만 중요한 네 가지 규칙을 따라 설계를 하면, 창발성이 촉진되어 우수한 설계를 완성할 수 있게 된다.

💻 모든 테스트를 실행하라

  • 시스템이 의도한 대로 작동하는지 검증이 필요하다.
  • 테스트가 가능한 시스템을 만들려는 노력은 결국, 낮은 결합도와 높은 응집력이라는 결과를 낳는다.
  • 테스트 케이스를 작성함으로써 설계 품질을 자연스럽게 높일 수 있다.

💻 중복을 없애라

  • 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 의미한다.
  • 단 몇 줄이라도, 중복을 제거하는 것은 시스템 복잡도를 극적으로 줄일 수 있다.
  • TEMPLATE METHOD PATTERN은 고차원 중복 제거를 위한 기법이다.
    • 거의 동일한 두 메소드에서 중복되는 부분을 합치고, 차이가 있는 부분만 별도의 하위 클래스에 작성하는 방법

💻 의도를 표현하라

  • 타인, 혹은 심지어 미래의 나도 현재 쓴 코드를 100% 이해할 수는 없다.
  • 개발자가 코드를 명백하게 짤수록 코드를 이해할 수 있기 때문에 결함이 줄어들고 유지보수 비용이 적게 든다.
  • 주의 깊게 코드를 검토하고 개선하려는 노력이 필요하다.
1. 좋은 이름을 선택한다.
2. 함수와 클래스 크기를 가능한 줄인다.
3. 표준 명칭을 사용한다.
4. 단위 테스트 케이스를 꼼꼼히 작성한다.

💻 클래스와 메소드 수를 최소로 줄여라

  • 원칙과 정책을 너무극단적으로 적용하는 것도 비효율적일 수 있으니 주의해야 한다.
  • 수 자체에 매몰되는 것보다는, 실용적인 방식으로 가능한 선에서 규칙을 적용하는 것이 중요하다.

📝 느낀점

가장 분량이 짧은 챕터였던 것 같다. 하지만 중요한 규칙 네 가지를 정리해주어서 다시 한 번 머리에 새기고 넘어갈 수 있는 계기가 되었다. 코드는 나 혼자 짜고 나만 보는 것이 아니라, 남이 봤을 때도 이해가 잘 되어야 하기 때문에 항상 가독성을 염두에 두고 깨끗한 코드를 짜야 한다.

개발자로써 취업할 회사를 살필 때는 개발 문화가 어떤지, 코드 리뷰 문화가 활성화되어 있는지 꼭 살펴 보라는 말을 들었었다. 개발 문화가 잘 잡혀 있고 코드 리뷰를 열심히 하는 회사일수록 업무 만족도가 높다는 것이 그 이유였다. 책을 읽기 전에는 코드 리뷰의 필요성이 크게 와닿지 않았다. 하지만 책을 읽으면서, 내가 짠 코드를 활발하게 공유하고, 다른 사람 코드도 살피면서 함께 발전시키는 방식은 코드의 가독성을 높일 것이고 시스템의 통합도도 향상시킬 것 같다는 생각이 들었다. 비록 검토하는 게 번거롭고 상당한 시간이 소요되는 작업이겠지만, 결과적으로는 회사 뿐만 아니라 개발자 자신의 능력 발전에도 큰 도움이 될 것 같다는 것이다.

아무튼, 작은 프로젝트를 진행할 때도 네 가지 중요한 원칙을 바탕으로 깨끗한 코드를 위해 노력하고, 혼자 발버둥칠 것이 아니라 팀원들과 같이 이해하고 발전시킬 수 있도록 노력해야겠다고 다짐했다.

post-custom-banner

0개의 댓글