TIL (Today I Learned)
2022.03.01
오늘 읽은 범위
6장. 객체와 자료 구조
책에서 기억하고 싶은 내용을 써보세요.
- 변수를 private으로 선언하고 get, set 함수를 제공한다고 그 내부 구현이 감춰지는 것은 아니다. 내부 구현을 감추기 위해서는 추상 인터페이스를 만들어줘야 한다. (p.118)
- 자료 구조를 사용하는 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다. (p.122)
- 객체는 자료를 숨기고 함수를 공개한다. 하지만 자료구조는 내부 구조를 당연히 노출하므로 디미터 법칙이 적용되지 않는다. (p.123)
- 디미터 법칙 : 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다. (p.123)
- 객체와 자료 구조의 특성을 한 번에 보유하는 잡종 구조는 새로운 함수 혹은 새로운 자료 구조를 추가하기 어렵다. 따라서 잡종 구조는 되도록 피하는 편이 좋다. (p.124)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 여태까지 읽어본 챕터 중에서 제일 나에게 어려운 챕터였다. 이미 훨씬 전부터 객체 지향이 절대신이 아니라는 사실은 드러났다. 결국 객체지향 프로그래밍 역시 써야할 때 '잘' 쓰는 것이 중요한 것이다. 객체지향 프로그래밍에 대해 공부하긴 했지만 나에게 자료구조와 클래스를 비교해보는 경험은 매우 색달랐다. 아직 배워나가야할 분야들이 참 많은 내가 단순히 그것들을 익히는 것이 아니라 그것들 중에서 선택할 수 있는 능력을 기를 수 있다는 것은 참 값진 경험이라고 생각된다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
- 자료 전달 객체 (DTO, Data Transfer Object) : 계층 간 데이터 교환을 하기 위해 사용하는 객체로 변수만을 가지고 함수는 가지지 않는 클래스이다. (get 함수, set 함수 제외)
'독서 > 클린코드' 카테고리의 다른 글
[클린코드] 2022-03-05 TIL (0) | 2022.03.07 |
---|---|
[클린코드] 2022-03-04 TIL (0) | 2022.03.05 |
[클린코드] 2022-02-28 TIL (0) | 2022.03.01 |
[클린코드] 2022-02-25 TIL (0) | 2022.02.26 |
[클린코드] 2022-02-22 TIL (0) | 2022.02.22 |