KARIU의 IT 블로그

클린 코드 - 6장 객체와 자료 구조 본문

책 리뷰/클린코드(노개북 2기)

클린 코드 - 6장 객체와 자료 구조

카리우 2022. 3. 1. 14:32
반응형

클린코드 TIL(Today I Learned) - Day6 (2022.03.01)

오늘 읽은 범위

6장. 객체와 자료 구조

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

  • 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. (p.119)
  • 복잡한 시스템을 짜다 보면 새로운 함수가 아니라 새로운 자료 타입이 필요한 경우가 생긴다. 이때는 클래스와 객체 지향 기법이 가장 적합하다. 반면, 새로운 자료 타입이 아니라 새로운 함수가 필요한 경우도 생긴다. 이때는 절차적인 코드와 자료 구조가 좀 더 적합하다. (p.122)
  • 객체는 조회 함수로 내부 구조를 공개하면 안 된다는 의미다. (p.123)
  • 때때로 절반은 객체, 절반은 자료 구조인 잡종 구조가 나온다. 이런 잡종 구조는 새로운 함수는 물론이고 새로운 자료 구조도 추가하기 어렵다. 양쪽 세상에서 단점만 모아놓은 구조다. 프로그래머가 함수나 타입을 보호할지 공개할지 확신하지 못해(더 나쁘게는 무지해) 어중간하게 내놓은 설계에 불과하다. (p.125)
  • 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(Data Transfer Object, DTO)라 한다. DTO는 굉장히 유용한 구조체다. (p.126)
  • (어떤) 시스템을 구현할 때, 새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다. (p.128)

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

  • 객체 지향, 절차 지향.. 대강 개념만 숙지하고 있었다. 그런데 "객체는 조회 함수로 내부 구조를 공개하면 안 된다." 라던가 "잡종 구조는 단점만 모아놓은 구조다." 라는 내용을 보고 머릿 속에는 "!!?" 글자가 그려졌다. 객체와 자료 구조에 대해 더 자세히 공부해야 겠다는 계기가 되었다.

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

  • 자료 전달 객체(DTO) - 데이터 전송 객체라고도 불리우며, 프로세스 간에 데이터를 전달하는 객체이다. 그저 계층간 데이터 교환이 이루어 질 수 있도록 하는 객체이기 때문에, 특별한 로직을 가지지 않는 순수한 데이터 객체여야 한다.
반응형
Comments