Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
Assignment #14 (10장.클래스)
#clean_code
2년 전
834
1

오늘 TIL 3줄 요약

  • 클래스는 작고 단일 책임 원칙(SRP)를 따라야 한다. 따라서 클래스를 변경할 이유는 하나여야 한다.

  • 클래스는 응집도가 높아야 한다. 응집도를 높게 유지하면 작은 클래스 여럿이 나온다.

  • 인터페이스와 추상 클래스를 사용해 구현이 미치는 영향을 격리해야 한다.

TIL (Today I Learned) 날짜

2022. 03. 08

오늘 읽은 범위

10장.클래스

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

  • 클래스는 작아야 한다

    • 단일 책임 원칙(SRP)를 따라야 한다. = 모듈을 변경할 이유가 하나 뿐이어야 한다.

    • 문제는 우리들 대다수가 프로그램이 돌아가면 일이 끝났다고 여기는 데 있다. ‘깨끗하고 체계적인 소프트웨어’라는 다음 관심사로 전환하지 않는다.

    • 큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.

  • 응집도

    • 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미.

    • 응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다.

  • 변경이 쉬운 클래스

    • OCP : 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한

    • 새 기능을 추가하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다.

    • 인터페이스와 추상 클래스를 사용해 구현이 미치는 영향을 격리해야 한다.

    • 시스템 결합도를 최소로 줄이면 자연스럽게 DIP를 따르는 클래스가 나온다.

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

  • 클래스의 크기가 작아야 한다는 의미를 단순히 코드양으로 생각하고 있었는데, 해당 장을 통해서 클래스의 크기가 작다는 기준은 갖고 있는 책임이 하나만 있어야하고 변경할 때 그 이유가 하나 뿐이어야 한다는 것을 알게 되었다.

  • OCP, SRP, DIP 모두 객체 지향 원칙 SOLID의 원칙들인데, 책에서 소개하는 코드들도 자바라 그런지 Spring 프레임워크의 구조가 많이 생각났고, 노드 진영에서의 프레임워크 중에서는 Nest.js가 해당 내용을 충실하게 지키면서 애플리케이션 개발을 할 수 있을꺼 같다는 생각을 했다.

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

오늘 읽은 다른사람의 TIL

1 comment