TIL (2024.02.04)
📖 오늘 읽은 범위: 6장. 객체와 자료 구조
✍️ 책에서 기억하고 싶은 내용
- 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다.
- 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다.
- 자료/객체 비대칭
- 객체 - 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다.
- 자료 구조 - 자료를 그대로 공개하며 별다른 함수를 제공하지 않는다.
- 분별 있는 프로그래머는 모든 것이 객체라는 생각이 미신임을 잘 안다. 때로는 단순한 자료 구조와 절차적인 코드가 가장 적합한 상황도 있다.
- 디미터 법칙 - 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙.
| 객체 | 자료구조 |
---|
공개 | 동작 | 자료 |
비공개 | 자료 | 동작 |
쉬움 | 기존 동작을 변경하지 않으면서 새 객체 타입 추가 | 기존 자료 구조에 새 동작 추가 |
어려움 | 기존 객체에 새 동작 추가 | 기존 함수에 새 자료 추가 |
💭 오늘 읽은 소감과 떠오르는 생각
- 객체와 자료 구조를 비교하면서 깊게 생각해본 적은 없었는데, 이번 챕터를 읽으면서 그 차이에 대해 고민해볼 수 있었다.
- '모든 것은 객체로 볼 수 있다'고 배웠었고, 그래서 절차 지향 프로그래밍보다 객체 지향 프로그래밍이 당연히 더 나은 것이라고 생각해왔던 것 같다. 모든 것은 경우에 따라 다를 수 있다는 점을 간과하지 말자.
🤨 궁금한 내용 또는 잘 이해되지 않는 내용
public
이나 private
같은 키워드가 존재하지 않는 자바스크립트에서는 오늘 읽은 내용을 어떻게 적용할 수 있을까?