Community

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

← Go back
TIL 10장. 클래스
#clean_code
2년 전
616

오늘 TIL 3줄 요약

  • 클래스는 맡은 책임이 하나뿐이어야 한다

  • 클래스의 응집도를 '높게' 유지하자

  • 결합도를 낮춰 변경에 대한 위험성을 낮추자

TIL (Today I Learned) 날짜

2022. 03. 09

오늘 읽은 범위

10장. 클래스

-- 내용을 정리한 글

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

  • 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but") 을 사용하지 않고서 25단어 내외로 가능해야 한다. (p. 175)

  • 큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다. (p. 177)

  • 새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. (p. 188)

  • 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다. 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다. 시스템 요소가 서로 잘 격리되어 있으면 각 요소를 이해하기도 더 쉬워진다. (p. 190)

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

  • 처음 이 챕터를 읽기 시작할 때는 클래스를 작게 쪼개야한다는 말에 읽고도 어떻게 작게? 책임이 하나라는 것은 어떻게 판단하는거지 싶은 의문이 들었는데 오히려 챕터를 다 보고 나니 처음보다는 알 것도 같은 기분이 들었다. 단순히 함수명이나 변수명을 짓는 것보다 클래스를 잘 만드는 것은 좀 더 어렵고 아직은 프로젝트에 적용시키기에 살짝 어려운 감이 있지만 예전에 읽었을 때보다 훨씬 와 닿는것이 많았다. 또한 마지막에 테스트와 관련된 언급이 나오면서 지난 챕터부터 TDD 에 좀 더 관심이 가지는 것 같다. 앞으로 작성할 코드들은 여기서 배운 내용을 조금씩 적용하며 작성해봐야겠다.

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

  • 추상 클래스와 인터페이스의 차이,,? 자바를 주로 쓰고 있지 않다보니 약간 헷갈린다. 스위프트에서는 각각의 역할을 하는 것이 무엇인지(특히 추상 클래스) 확실히 와닿지 않았다.

오늘 읽은 다른사람의 TIL