본문 바로가기

CS/CS Book

[Clean Code | 6장 객체와 자료구조] Day09

기억하고 싶은 부분

  • “변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다.”
    • private처리하는 목적으로 가져다 쓰는 입장에서는 내부가 어떻게 되어있든 혹은 특정 값에는 접근하지 못하게 하고 싶어서라고만 생각했었다.
    • 같은 것을 의미하는 것일수도 있지만 조금은 다른 관점에서 private를 바라보았다는 생각이 든다.
  • “변수를 private으로 선언하더라도 각 값마다 get함수와 set함수를 제공한다면 구현을 외부로 노출하는 셈이다”
  • “인터페이스와 get/set 함수만으로는 추상화가 이뤄지지 않는다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 아무 생각 없이 get/set 함수를 추가하는 방법이 가장 나쁘다.”
    • private로 선언한 경우 밖에서도 써야한다면 get,set을 넣어주었었다 이 글을 읽고보니 그 동안에 처리는 그다지 사려 깊은 방법은 아니었다 싶다

소감

  • 이번 장도 예시를 통해 설명되어서 이해하기 좋았다
  • private, getter, setter 그리고 더 나은 추상화에 대해 생각해볼 수 있어 의미 있었고 좀 더 깊은 생각을 위해 다시 한번 읽어봐야겠다