개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.03.02
오늘 읽은 범위
6장. 객체와 자료 구조
책에서 기억하고 싶은 내용을 써보세요.
절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다. (p122)
절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러려면 모든 함수를 고쳐야 한다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다. (p122)
디미터 법칙은 "클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다"고 주장한다. (p123)
기차 충돌은 일반적으로 조잡하다 여겨지는 방식이므로 피하는 편이 좋다. (p123)
자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(Data Transfer Object)라 한다. (p126)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
이번 장은 기존의 개념이 뒤집어지는 내용이 있어서 좀 어려웠다. 클래스를 쓰고 객체가 있으면 객체 지향 코드라고 생각했다. 객체로 메소드를 호출하는 것이라고 생각했다. 그 동안 나는 절차적인 코드를 많이 쓰고 있었다는 것을 알았다. 물론 그것이 잘못된 것이 아니라는 것도.
하지만 경우에 맞게 쓰고 있었다고 할 수도 없겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
디미터 법칙, f가 생성한 객체는 f를 호출할 수 있다는 건가? f인수로 넘어온 객체도? 어떤 형태인거지?
ctxt 객체에 임시 파일을 생성하라고 시키면 opts나 scratchDir 객체는 밖에서 호출하고 값을 인수로만 받겠다는 건가?