내가 읽은 책

[노개북_클린코드] 6장. 객체와 자료구조

코딩걈자 2022. 5. 3. 23:02
반응형

TIL (Today I Learned)

2022.05.03

 

오늘 읽은 범위

6장. 객체와 자료구조

책에서 기억하고 싶은 내용

  • 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. (p.119)
  • 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. (p.119)
  • 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다. (p.119)
  • 디미처 법칙은 잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. (p.123)
  • 허용된 메서드가 반환하는 객체의 메서드는 호출하면 안 된다. (p.123)
  • 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(DTO)라 한다. (p.126)
  • 객체는 동작을 공개하고 자료를 숨긴다. 그래서 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기는 쉬운 반면, 기존 객체에 새 동작을 추가하기는 어렵다. 자료구조는 별다른 동작없이 자료를 노출한다. 그래서 기존 자료 구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새 자료 구조를 추가하기는 어렵다. (p.127)
  • 우수한 소프트웨어 개발자는 편견없이 이 사실을 이해해 직면한 문제에 최적인 해결책을 선택한다. (p.128)

오늘의 소감

  • 그동안 배운 부분중에 가장 어렵게 느껴진 내용이었다. 자바의 특징과 객체에 대한 이해 부족으로 인해 조금 어려웠지만 큰 틀이라도 이해한 것에 뿌듯함을 느꼈다.
  • 특히 '기차충돌' 코드는 자주 사용하던 형식의 코드였기 때문에 , 그것이 좋지 않은 습관이라는 걸 처음 알 수 있었다.

🔔추가적으로 공부한 내용

  • 다형성(polymorphism): 하나의 객체가 여러 가지 타입을 가질 수 있는 것
  • 디미터 법칙: 다른 객체가 어떠한 자료를 갖고 있는지 속사정을 몰라야 한다는 것을 의미
  • 휴리스틱: 불충분한 시간이나 정보로 인하여 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편추론의 방법