[클린 코드] 객체와 자료 구조

nn·2022년 5월 3일
0

clean-code

목록 보기
7/9

오늘 TIL 요약

  • 모든 것이 객체라는 것은 미신이다!

6장. 객체와 자료구조

책에서 기억하고 싶은 내용

  • 변수를 priavte로 정의하는 이유는 남들이 변수에 의존하지 않게 하기위해서다. 그런데 왜 조회/설정함수는 당연히 public하게 해서 비공개 변수를 외부에 노출할까?

  • 변수를 private로 하더라도 각 값마다 조회/설정함수가 있으면 구현을 외부로 노출하는 것이다.
    구현을 외부로 노출하지 않기 위해서 추상화가 필요하다.

  • 자료/객체 비대칭(p.119)
    객체는 동작을 공개하고 자료를 숨긴다.
    즉, 객체지향 코드는 기존함수를 변경하지 않으면 새 클래스를 추가하기 쉽다(= 새로운 함수를 추가하려면 모든 클래스를 고쳐야한다. )

    자료구조는 별다른 동작 없이 자료를 노출한다.
    즉, 자료구조를 변경하지 않고도 새 함수를 추가하기 쉽다. (= 자료구조를 변경하려면 모든 함수를 고쳐야한다.)

  • 잡종구조(p.124)
    상황에 따라 객체지향이 더 효율적이기도하고, 절차지향이 더 효율적이기도 할 것이다.
    하지만 이런 혼란으로 절반은 객체, 절반은 자료 구조로 짜여진 것을 잡종구조라고한다.
    이런 상황은 피하는 것이 좋다.

소감

책에서 예시로 나온 좋은 소스와 좋지 않은 소스코드 모두 여러번 작성 해본 경험이있다.
또한 좋지 않은 코드를 작성하면서 은근히 남아있던 찝찝함이 이 책을 읽음으로서 해소되었다.
개발자라면 최적의 해결책대로 구현을 해야한다.
결국 최적이 아닌 방법으로 구현을 해서 생긴 찝찝함이었다.

회사에 다닐때, private으로 변수를 선언하는 이유와 그것을 끝까지 어떻게 private하게 사용해야하는지에 대한 설명을 어렴풋이 들은 기억이난다.
하지만 구현을 하면서 다양하고 깊게 고민을 하지 않았던것같다.
안좋은 습관은 오랫동안 남는 다는 것을 기억하자.

profile
내가 될 거라고 했잖아

0개의 댓글