개발자를 희망하는 초보의 자기개발 이야기

클린코드 Assignment #08 : 객체와 자료구조 본문

도서/클린코드(Clean Code)

클린코드 Assignment #08 : 객체와 자료구조

클라우드아실 2024. 12. 9. 04:46
반응형

 

 

💡TIL (Today I Learned)

2024.12.08

📖 오늘 읽은 범위

7장. 오류처리

✔ 책에서 기억하고 싶은 내용

 

  • 객체(Object)는 데이터를 캡슐화하여 동작(메서드)을 통해서만 접근하도록 하며, 복잡성을 감추고 유연성을 제공한다.
  • 자료구조(Structure)는 데이터를 외부에 노출하며, 데이터를 처리하는 비즈니스 로직과 구조를 분리한다.
  • 객체는 디미터 법칙을 준수하여 불필요한 의존성을 줄이고, 객체 내부의 데이터를 무분별하게 노출하지 않아야 한다.
  • 복잡한 비즈니스 로직이 포함된 데이터는 객체로 감싸고, 단순히 데이터를 전달하는 역할만 필요한 경우 자료구조를 사용한다
  • 객체와 자료구조는 상호 보완적이며, 상황에 따라 적절히 선택하여 사용해야 한다.

 

📝 오늘 읽은 소감은?

짧지만 어려운 내용이다. 정리하면 일단 둘 다 클래스를 통해서 생성한 결과물을 두고 이야기 하는 것임을 나중에서야 알았다. 비즈니스 로직의 유무에 따라 객체와 자료구조로 나뉘어 지는데 객체는 디미터 법칙을 준수해야하고, 자료구조에 대해서는 DTO와 빈 구조에 대해 한번 더 설명한 것이었다. 책만으로는 이해가 잘 안되서 관련한 영상을 보고 한번 더 정리했는데 이건 추후에 실제 코드를 만들어보면서 한번 더 정리해야 할 것 같다.

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

  • 휴리스틱 : 경험에 의한 법칙. ex) 출퇴근 시간, 특히 월요일에는 차가 막힌다.
  • 디미터 법칙(law of Demeter) : '객체는 자신의 가까운 친구(직접적으로 연관된 객체)와만 대화해야 하며, 친구의 친구와는 대화하지 말아야 한다'는 원칙. 즉 ex) obj.a().b().c().d(); 와 같이 함수가 반환하는 객체의 함수를 소환하는 객체의 함수를 소환하는 식의 연쇄작용이 생겨서는 안된다.
  • DTO(Data Transfer Object) : 공개 변수만 있고 함수가 없는 클래스 형태. 대표적인 자료구조다.
  • 빈(bean)구조 : 비공개(private) 변수를 조회/설정 함수로 조작한다. 자료구조.
반응형