백엔드분들과 소통을 하다보면 자연스럽게 DTO라는 이야기를 많이 하게됩니다.
뭐..데이터... 뭐... 그런거.. 어... 그래요... 대충 느낌은 알것같습니다
하고 넘어가긴했는데 마침 클린 코드에서도 DTO에 대한 이야기가 나와서
DTO 이야기를 좀 정리해볼까 합니다.
디미터 법칙(LoD)
디미터 법칙은 휴리스틱으로 모듈은 자신이 조작하는 객체의 속사정을 몰라야한다는 법칙입니다.
반대로 말하면 객체는 자신의 내부 구조를 외부에 노출(공개)시켜서는 안된다는 의미로도 볼 수 있습니다.
Law of Demeter라고 표기하며 "최소한의 지식 원칙"으로도 알려져있다고하네요
이러한 디미터 법칙은 어떤 객체가 다른 객체에 대해 지나치게 많은 정보를 알고 있는 경우
서로에 대한 결합도가 높아지며 이로 인해 좋지 못한 설계를 야기한다는 문제가 있다고합니다.
이것을 클린코드에서는
클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다.
- 클래스 C
- f가 생성한 객체
- f의 인수로 넘어온 객체
- C 인스턴스 변수에 저장된 객체
라고 설명합니다.
자료 전달 객체 (Data Transfer Object)
이제 DTO에 대한 이야기입니다.
DTO는 자료 전달 객체의 줄임말로 자료구조체라고도 부릅니다.
자료구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스입니다.
클린코드에서는 DTO를 굉장히 유용한 구조체라고 표현하는데요
데이터베이스와 통신하거나, 소켓에서 받은 메시지의 구문을 분석할 때 매우 유용합니다.
흔한 용례는 데이터베이스에 저장되어 있는 러프한 정보를
애플리케이션 코드에서 사용할 형태의 객체로 변환하는 단계에서
가장 먼저 사용하게 되는 구조체입니다.
DTO는 순수하게 데이터를 저장하고 / 데이터에 대한 getter, setter만 가져야한다.
DTO는 어떠한 비즈니스 로직도 가져서는 안된다.
DTO는 저장, 검색, 직렬화, 역직렬화 로직만 가져야 한다.
참고한 레퍼런스
클린코드
https://dkswnkk.tistory.com/687
디미터 법칙 (Law of Demeter)이란?
최근 클린코드를 읽던 중 디미터 법칙에 대해 알게 되었습니다. 용어 자체는 생소하긴 한데 법칙의 내용 자체는 크게 어렵지 않고, 평상시 개발에서 흔히 마주칠 수 있는 내용을 다룬 법칙이기
dkswnkk.tistory.com
https://hudi.blog/data-transfer-object/
DTO의 개념과 사용범위
DTO는 우테코 과정 중 정말 많이 들어봤고, 나름 사용도 많이 했지만 이상하게 바람직하게 사용하고 있다는 확신이 들지 않는 개념이다. DTO에 대한 내용은 항상 새롭게 알아가는데, 이러다간 DTO
hudi.blog
DTO(데이터 이동 객체)
TypeScript는 데이터타입에 대한 룰을 적용한다. 백엔드에서 API를 보내주는 데이터 객체 모델링에 대해서 오늘을 얘기해보자. DTO의 설계는 협업에서 매우 중요한 단계이다. URL과 DTO 모델이 어떤 모
valtwo94.medium.com
'취업준비' 카테고리의 다른 글
Jira는 왜 써야할까... (0) | 2023.07.28 |
---|
백엔드분들과 소통을 하다보면 자연스럽게 DTO라는 이야기를 많이 하게됩니다.
뭐..데이터... 뭐... 그런거.. 어... 그래요... 대충 느낌은 알것같습니다
하고 넘어가긴했는데 마침 클린 코드에서도 DTO에 대한 이야기가 나와서
DTO 이야기를 좀 정리해볼까 합니다.
디미터 법칙(LoD)
디미터 법칙은 휴리스틱으로 모듈은 자신이 조작하는 객체의 속사정을 몰라야한다는 법칙입니다.
반대로 말하면 객체는 자신의 내부 구조를 외부에 노출(공개)시켜서는 안된다는 의미로도 볼 수 있습니다.
Law of Demeter라고 표기하며 "최소한의 지식 원칙"으로도 알려져있다고하네요
이러한 디미터 법칙은 어떤 객체가 다른 객체에 대해 지나치게 많은 정보를 알고 있는 경우
서로에 대한 결합도가 높아지며 이로 인해 좋지 못한 설계를 야기한다는 문제가 있다고합니다.
이것을 클린코드에서는
클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다.
- 클래스 C
- f가 생성한 객체
- f의 인수로 넘어온 객체
- C 인스턴스 변수에 저장된 객체
라고 설명합니다.
자료 전달 객체 (Data Transfer Object)
이제 DTO에 대한 이야기입니다.
DTO는 자료 전달 객체의 줄임말로 자료구조체라고도 부릅니다.
자료구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스입니다.
클린코드에서는 DTO를 굉장히 유용한 구조체라고 표현하는데요
데이터베이스와 통신하거나, 소켓에서 받은 메시지의 구문을 분석할 때 매우 유용합니다.
흔한 용례는 데이터베이스에 저장되어 있는 러프한 정보를
애플리케이션 코드에서 사용할 형태의 객체로 변환하는 단계에서
가장 먼저 사용하게 되는 구조체입니다.
DTO는 순수하게 데이터를 저장하고 / 데이터에 대한 getter, setter만 가져야한다.
DTO는 어떠한 비즈니스 로직도 가져서는 안된다.
DTO는 저장, 검색, 직렬화, 역직렬화 로직만 가져야 한다.
참고한 레퍼런스
클린코드
https://dkswnkk.tistory.com/687
디미터 법칙 (Law of Demeter)이란?
최근 클린코드를 읽던 중 디미터 법칙에 대해 알게 되었습니다. 용어 자체는 생소하긴 한데 법칙의 내용 자체는 크게 어렵지 않고, 평상시 개발에서 흔히 마주칠 수 있는 내용을 다룬 법칙이기
dkswnkk.tistory.com
https://hudi.blog/data-transfer-object/
DTO의 개념과 사용범위
DTO는 우테코 과정 중 정말 많이 들어봤고, 나름 사용도 많이 했지만 이상하게 바람직하게 사용하고 있다는 확신이 들지 않는 개념이다. DTO에 대한 내용은 항상 새롭게 알아가는데, 이러다간 DTO
hudi.blog
DTO(데이터 이동 객체)
TypeScript는 데이터타입에 대한 룰을 적용한다. 백엔드에서 API를 보내주는 데이터 객체 모델링에 대해서 오늘을 얘기해보자. DTO의 설계는 협업에서 매우 중요한 단계이다. URL과 DTO 모델이 어떤 모
valtwo94.medium.com
'취업준비' 카테고리의 다른 글
Jira는 왜 써야할까... (0) | 2023.07.28 |
---|