본문 바로가기
CS

[CS] 클린 코드 책 요약

by nozee 2024. 12. 27.
반응형

 

클린 코드(Clean Code)는 소프트웨어 개발자와 프로그래머를 위한 필독서로, 로버트 C. 마틴(Robert C. Martin, '아저씨'라는 애칭으로도 불림)이 집필한 책이다. 이 책은 유지보수 가능하고 효율적인 소프트웨어 개발을 위한 원칙과 실천법을 다룬다.

 

1. 클린 코드란?

클린 코드는 읽기 쉽고, 이해하기 쉬우며, 변경에 용이한 코드를 의미한다. "코드는 읽히기 위해 작성된다"라는 철학을 중심으로, 다른 개발자가 쉽게 이해할 수 있도록 작성된 코드는 장기적으로 생산성을 높이고, 유지보수 비용을 줄일 수 있다.

 

2. 클린 코드를 위한 원칙

로버트 마틴은 클린 코드를 작성하기 위한 여러 가지 원칙과 가이드를 제시한다. 

2.1 가독성

  • 의미 있는 이름 사용: 변수, 함수, 클래스 이름은 그 목적을 명확히 전달해야 한다.
  • 함수는 작게, 한 가지 작업만 수행: 함수는 한 가지 작업을 명확하게 하고, 이름은 그 작업을 정확히 반영해야 한다.

2.2 중복 제거

  • 중복은 코드 품질을 떨어뜨리는 주요 요인 중 하나입니다. 중복을 줄이기 위해 공통 로직을 함수로 추출하거나, 설계를 개선한다.

2.3 코드 간소화

  • 불필요한 복잡성을 제거하고, 간단하고 명확하게 작성해야 한다.
  • 조건문이나 루프는 가능한 간단하게 표현한다.

2.4 주석 사용

  • 주석은 최소화하고, 코드 자체가 의도를 전달하도록 작성해야 한다.
  • 주석은 "왜"를 설명하는 데 초점을 맞추고, "어떻게"는 코드로 표현한다.

2.5 에러 처리

  • 에러 처리는 명확하고 간결해야 하며, 프로그램의 주요 로직을 방해하지 않아야 한다.
  • 예외를 사용하여 에러를 관리하고, 에러 발생 시 가능한 빠르게 감지하고 대응한다.

 

3. SOLID 원칙

로버트 마틴은 클린 코드를 작성하기 위한 설계 원칙으로 SOLID 원칙을 강조한다.

  • S: 단일 책임 원칙(Single Responsibility Principle)
    • 각 클래스는 단 하나의 책임만 가져야 한다.
  • O: 개방-폐쇄 원칙(Open-Closed Principle)
    • 기존 코드를 변경하지 않고 기능을 확장할 수 있어야 한다.
  • L: 리스코프 치환 원칙(Liskov Substitution Principle)
    • 서브타입은 언제나 자신의 기반 타입으로 대체할 수 있어야 한다.
  • I: 인터페이스 분리 원칙(Interface Segregation Principle)
    • 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.
  • D: 의존성 역전 원칙(Dependency Inversion Principle)
    • 고수준 모듈은 저수준 모듈에 의존해서는 안 된다. 둘 다 추상화에 의존해야 한다.

4. 테스트 주도 개발(TDD)

클린 코드를 유지하기 위해 테스트 주도 개발(TDD, Test-Driven Development)을 활용하는 방법도 강조된다.

  • 코드를 작성하기 전에 테스트 코드를 먼저 작성한다.
  • 테스트는 개발자가 코드를 올바르게 작성했는지 확인하는 역할을 한다.
  • "실패하는 테스트 -> 코드 작성 -> 테스트 통과"의 반복을 통해 클린 코드를 유지한다.

5. 나쁜 코드와의 차별화

  • 나쁜 코드는 읽기 어렵고, 유지보수 비용이 높으며, 결국 소프트웨어 프로젝트를 실패로 이끌 수 있다.
  • 클린 코드는 초기에는 작성하는 데 시간이 더 들 수 있지만, 장기적으로는 유지보수와 확장에서 큰 이점을 제공한다.

6. 실천법

  1. 리팩터링: 기존 코드를 개선하여 클린 코드의 원칙에 맞게 수정한다.
  2. 코드 리뷰: 팀원들과의 코드 리뷰를 통해 코드 품질을 유지한다.
  3. 일관성: 팀 내 코딩 스타일을 통일하여 일관성을 유지한다.

 

결론

《클린 코드》는 좋은 소프트웨어 개발의 핵심은 가독성과 유지보수성을 갖춘 코드를 작성하는 데 있다고 강조한다. 이를 위해 작은 단계에서부터 시작하여 코딩 습관을 개선하고, 설계 원칙을 준수하며, 코드 품질을 꾸준히 관리하는 것이 중요하다.

이 책은 초보 개발자부터 숙련된 개발자까지 모두에게 유익한 가이드이며, 프로그래밍에 대한 사고방식을 변화시키는 데 큰 영향을 줄 수 있다.

긴 글 읽어 주셔서 감사합니다.
반응형

'CS' 카테고리의 다른 글

[CS] REST API 성숙도가 있어?  (0) 2025.01.03
[CS] CORS는 무엇일까?  (0) 2024.12.26
[CS] Test Double  (0) 2024.12.19
[OAUTH] OAuth 2.1  (2) 2024.12.14
[CS] JOSE  (1) 2024.12.11