본문 바로가기
코딩 필독서/클린코드

클린코드9

by 티코딩 2023. 1. 26.

스프링 진도를 따라가느라 너무 급급해 블로깅도 하지 못했다. 내가 게으른거겠지? 하루에 적어도 10분씩은 클린코드를 읽으며 블로깅을 하기로했다. 어차피 아무도 안보겠지만 그래도 해보자.

 

자료 전달 객체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료구조체를 때론 Data Transfer Object 줄여서 DTO라고 한다. DTO는 엄청 유용한 구조체고, DB와의 통신, 소켓에서 받은 메시지의 분석에 유용하다. 흔히 DTO는 DB에 저장된 가공되지 않은 정보를 애플리케이션 코드에서 사용할 객체로 변환하는 단계중 가장 처음사용하는 구조체다. 좀더 일반적인것은 Bean구조다. 빈은 private 변수를 조회함수로 조작한다. 

활성 레코드는 DTO의 특수한 형태로, public변수가 있거나, private변수에 조회함수가 있는 자료구조지만, save나 find같은 탐색함수도 제공한다. 이런 활성 레코드에 비니지스 규칙 메서드를 추가해 이런 자료구조를 객체로 취급하는것은 좋지 않다. 고로 활성 레코드는 자료구조로 취급한다. 비지니스 규칙을 담으며 내부자료를 숨기는 객체는 따로 생성한다.

저자는 이렇게 말했다. 시스템 구현에 있어, 새로운 자료타입을 추가하는 유연성이 필요하면 객체, 새로운 동작을 추가하는 유연성이 필요하면 자료구조와 절차적인 코드가 더 적합하다고 한다.

'코딩 필독서 > 클린코드' 카테고리의 다른 글

클린코드11  (0) 2023.01.29
클린코드10  (0) 2023.01.26
클린코드8  (0) 2022.12.14
클린코드6  (0) 2022.12.05
클린코드5  (0) 2022.11.30