Community

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

← Go back
TIL 6장. 객체와 자료 구조
#clean_code
2년 전
507


TIL (Today I Learned)

2022.03.02

오늘 읽은 범위

6장. 객체와 자료 구조

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

  • 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다. (p122)

  • 절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러려면 모든 함수를 고쳐야 한다. 객체 지향 코드는 새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다. (p122)

  • 디미터 법칙은 "클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다"고 주장한다. (p123)

  • 기차 충돌은 일반적으로 조잡하다 여겨지는 방식이므로 피하는 편이 좋다. (p123)

  • 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(Data Transfer Object)라 한다. (p126)

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

  • 이번 장은 기존의 개념이 뒤집어지는 내용이 있어서 좀 어려웠다. 클래스를 쓰고 객체가 있으면 객체 지향 코드라고 생각했다. 객체로 메소드를 호출하는 것이라고 생각했다. 그 동안 나는 절차적인 코드를 많이 쓰고 있었다는 것을 알았다. 물론 그것이 잘못된 것이 아니라는 것도.

    하지만 경우에 맞게 쓰고 있었다고 할 수도 없겠다.

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

  • 디미터 법칙, f가 생성한 객체는 f를 호출할 수 있다는 건가? f인수로 넘어온 객체도? 어떤 형태인거지?

  • ctxt 객체에 임시 파일을 생성하라고 시키면 opts나 scratchDir 객체는 밖에서 호출하고 값을 인수로만 받겠다는 건가?