독서/클린코드

[클린코드] 2022-02-20 TIL

콘요맘떼 2022. 2. 20. 00:55

TIL (Today I Learned)

2022.02.20

 

오늘 읽은 범위

1장. 깨끗한 코드

 

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

  • 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다. 깨끗한 코드는 한 가지에 '집중'한다. (p.10)
  • 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. (p.12)
  • 모든 테스트를 통과한다. 중복이 없다. 시스템 내 모든 설계 아이디어를 표현한다. 클래스, 메서드, 함수 등을 최대한 줄인다. (p.13)
  • SRP (The Single Responsibility Principle) : 클래스에는 한 가지, 단 한 가지 변경 이유만 존재해야 한다. (p.19)
  • OCP (The Open Closed Principle) : 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다.
  • LSP (The Liskov Substitution Principle) : 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다.
  • DIP (The Dependency Inversion Principle) : 추상화에 의존해야 하며, 구체화에 의존하면 안 된다.
  • ISP (The Interface Segregation Principle) : 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다.

 

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

  • 나쁜 코드는 척 보면 알 수 있지만 좋은 코드는 쉽게 정의내릴 수 없다는 부분이 많이 공감되었다. 코드 스타일에 대해서 신경을 써야겠다고 결심한 올해 초 이후로 많은 클린코딩 관련 영상을 시청했고 코드를 작성할 때도 많은 고민을 하고 또 그 코드들을 다듬기 위해서도 많은 시간을 투자하지만 어떤 코드가 최선의 코드일지 답을 찾아가는 것이 참 어려운 문제인 것 같다. 추상화와 구체화 안에서도 적절한 균형점을 찾는 것이 중요하면서도 쉽지 않은 문제라는 생각을 종종 한다. 이 고민을 계속 이어나가고 다른 사람들과 더 많은 이야기를, 코드를 나눈다면 조금씩이라도 더 예쁘고 단순한 코드를 짜는 데 다가설 수 있지 않을까 생각해본다.

 

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

  • ISP에서 '밀접하게 작게 쪼개진 인터페이스'라는 표현이 와닿지 않아서 더 찾아본 결과 ISP (인터페이스 분리 원칙)은 클라이언트가 자신이 이용하지 않는 메소드에 의존해서는 안 된다는 의미를 가진다. 즉 하나의 인터페이스에서 필요한 부분만을 가지는 작은 인터페이스들을 뽑아낸 뒤 해당 인터페이스를 통해 클라이언트가 접근하게 한다면 ISP가 충족된다.

'독서 > 클린코드' 카테고리의 다른 글

[클린코드] 2022-03-01 TIL  (0) 2022.03.02
[클린코드] 2022-02-28 TIL  (0) 2022.03.01
[클린코드] 2022-02-25 TIL  (0) 2022.02.26
[클린코드] 2022-02-22 TIL  (0) 2022.02.22
[클린코드] 2022-02-21 TIL  (0) 2022.02.21