[CLEAN CODE] TIL - #1 깨끗한 코드

Jean·2022년 2월 19일
0

TIL (Today I Learned)

🗓 2022.02.19

오늘 읽은 범위

📚 추천사 ~ 1장. 깨끗한 코드

책에서 기억하고 싶은 내용을 써보세요.

  • 나중은 결코 오지 않는다 (p4)
  • 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 그러다가 마침내 0에 근접한다 (p5)
  • 시간을 들여 깨끗한 코드를 만느는 노력이 비용을 절감하는 방범일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하라 (p6)
  • 깨끗한 코드는 한가지에 '집중'한다 (p10)
  • 중복을 피하라. 한가지 기능만 수행하라. 제대로 표현하라. 작게 추상화하라. (p14)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

코드를 짜면서 급하다는 핑계로 TODO:추후 리팩토링 예정 등의 주석을 달아 둔 적이 많았는데, 시간이 지나도 정리하지 않다가 결국, 시스템 장애가 난 후에야 부랴부랴 개선한 경험이 생각났다. 책에서 말한 것 처럼 결국 나중은 결코 오지 않는다는 사실을 몸서 경험한터라 해당 구절이 뼈아프게 다가왔다. 완벽한 코드를 짤 순 없지만, 적어도 나와 동료들이 납득이 가능한 범위 내에서 코드 구현을 하는 개발자로 거듭날 것이다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

객체 지향 설계의 다섯 가지 원칙

  • SRP(Single Responsibility Principle): 단일 책임의 원칙
    • 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.
    • 작성도니 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어 있어야 한다.
  • OCP(Open Closed Principle): 개방 폐쇄의 원칙
    • 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다.
  • LSP(Liskov Subsitution Principle): 리스코프 치환의 원칙
    • 하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다.
  • ISP(Interface Segregation Principle): 인터페이스 분리의 원칙
    • 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다
  • DIP(Dependency Inversion Principle): 의존성 역전의 원칙
    • 자신보다 변하기 쉬운 것에 의존하던 것을 추상화된 인터페이스나 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향받지 않게 하는 것이 의존 역전 원칙이다.
    • 상위 클래스일수록, 인터페이스일수록, 추상 클래스일수록 변하지 않을 가능성이 높기에 하위 클래스나 구체 클래스가 아닌 상위 클래스, 인터페이스, 추상 클래스를 통해 의존하라는 것이 바로 의존 역전 원칙이다.
profile
Software Engineer

0개의 댓글