Community

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

← Go back
클린 코드 TIL #9
#clean_code
2년 전
1,336
1

오늘 TIL 3줄 요약

  • 클래스는 작아야 한다.

  • SRP : 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다.

  • 응집도를 유지하고 시스템의 결합도를 낮춰야 한다.

TIL (Today I Learned) 날짜

2022.03.09

오늘 읽은 범위

10장. 클래스

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

  • 클래스 체계

    • 클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. 적정 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며, 이어서 비공개 인스턴스 변수가 나온다. 공개 변수가 필요한 경우는 거의 없다.

    • 변수 목록 다믕에는 공개 함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.

  • 클래스는 작아야 한다.

    • 클래스 이름은 해당 클래스 책임을 기술해야 한다.

    • 클래스 설명은 만일, 그리고, -하며, 하지만을 사용하지 않고서 25단어 내외로 가능해야 한다.

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

      • 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙이다.

    • 응집도

      • 몇몇 메서드만이 사용하는 인스턴스 변수가 아주 많아진다면 새로운 클래스로 쪼개야 한다는 신호다.

    • 응집도를 유지하면 작은 클래스 여럿이 나온다.

  • 변경하기 쉬운 클래스

    • 깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위험을 낮춘다.

    • 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장 할 뿐 기존 코드를 변경하지는 않는다.

    • 변경으로부터 격리

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

      • 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다.

      • 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.

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

  • 전공 수업시간에 배웠던 응집도, 결합도를 내가 되게 추상적으로 개념만 배운거같다는 생각이 들었다. 10장을 보면서 개념은 내가 배웠던 내용이 맞는데 이게 쓰이는 이유 같은걸 자세하게 들은 것 같달까. 책을 읽는다고 10-5를 10-6~8 으로 리팩터링 하거나 처음 작성 자체를 바로 잘 만들 수는 없을거고 책 초반의 말 처럼 연습이 많이 필요 할 것 같다.

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

  • -

오늘 읽은 다른사람의 TIL

1 comment