Clean Code 책 요약. 프롤로그

작성 : 2021-04-01수정 : 2021-04-01

목차 펼치기

 출처 : yes24

출처 : yes24


개발자로 일하며 로버트 C.마틴의 Clean Code는 자주 눈에 띄고 자주 귀에 들리는 책이다. 로버트 C.마틴은 Agile 개발 방법론과 S/W 설계 및 패턴, 프로그래밍 실천 방법에 대한 유명 컨설턴트로 1970년대부터 S/W 전문가로 활동하셨다고 한다.

좋은 코드에 대한 갈증에 더해 수학의 정석과도 같은 교과서적인 책이니만큼 어떤 도움이 되어주지 않을까 하며 읽어보기를 시작했고, 각 챕터를 내 기준으로 정리하기로 했다. 또한 최고가 무엇인지 꼽기 힘들 듯이, 이 책이 말해주는 게 절대적으로 ‘옳다’라고 단정지어 생각하지는 않기로 했다. 저자의 의견과 생각일 뿐이며, 최초 발행년도인 2008년 이후 십수년의 시간이 흐른 만큼 그 때는 맞고 지금은 틀린 이야기도 충분히 있을 수 있다고 생각한다. 이 책에서 말하는 내용을 토대로 좋은 코드란 무엇인가에 대한 나름의 답을 조금이라도 내릴 수 있다면 기쁠 것이고, 설령 그렇지 않다 하더라도 좋은 코드에 대한 고민을 더 할 수 있는 기회를 제공해줄테니 충분히 읽어봄직 하지 않나 싶다.



프롤로그


  • 진정 책임 있는 개발자는 제품 생명주기까지 고려해야 한다.

  • 본질보다 모양새를 중시하는 가치체계는 결국 문제를 일으킨다.

  • 품질은 하늘에서 뚝 떨어지는 방법론이 아니라 사심 없이 기울이는 무수한 관심에서 얻어진다.

  • 아키텍처도, 깨끗한 코드도, 완벽을 주장하지는 않는다. 단지 최선을 다해 정직하라 요구할 뿐이다.

  • 코드 품질을 측정하는 유일한 척도는 분 당 내지르는 욕설의 횟수다.

  • 장인 정신

    1. 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득한다.

    2. 열심히 일하고 연습해 몸과 마음으로 체득한다.

  • 코드를 정리하면서 내린 각 결정과 휴리스틱 사이의 관계가 중요하다.


5S

  • 정리 (Seiri) = 조직 = 정렬
    적절한 명명법과 같은 것으로 무엇이 어디에 있는지 알아야 한다.

  • 정돈 (Seiton) = 단정함 = 체계화
    누구나 예상하는 위치에 있어야 한다.

  • 청소 (Seiso) = 정리 = 광내기
    과거 이력, 미래 바람을 기억한 주석 및 주석 처리된 코드들은 제거한다.

  • 청결 (Seiketsu) = 표준화
    그룹 간 일관적인 구현 스타일과 기법에 동의한다.

  • 생활화 (Shutsuke) = 규율
    관례를 따르고, 자기 작품을 돌아보고, 기꺼이 변경하는 규율이다.


SOLID 원칙

SRP

(Single Responsibility Principle) : 단일 책임 원칙

OCP

(Open Close Principle) : 개방 폐쇄 원칙

LSP

(Liskov Substitution Principle) : 리스코브 치환 원칙

  • 파생 클래스는 기본 클래스로 대체 가능해야 한다.

  • 상속을 통해 자동적으로 적용되는 부분

ISP

(Interface Segregation Principle) : 인터페이스 분리 원칙

  • 사용하지 않는 부분은 구현하지 말아야 한다.

    • 백미러에 브레이크 기능이 있는 것은 불필요하다.

DIP

(Dependency Inversion Principle) : 의존성 역전 원칙

  • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.

Contact Me

All Icons byiconiFy