개요데이터를 다루는 객체를 설계하다 보면 VO(Value Object)와 DTO(Data Transfer Object)를 자주 마주하게 됩니다. 얼핏 보면 비슷해 보이는 이 두 객체는 각각의 특성과 사용 목적이 명확히 다릅니다. 이번 글에서는 VO와 DTO의 차이점에 대해 정리하고자 합니다. VO(Value Object)란❓VO는 도메인에서 한 개 또는 그 이상의 속성들을 묶어서 특정 값을 나타내는 객체입니다. 또한 VO(Value Object)는 값을 표현하는 객체로, 불변(immutable) 특성을 가지며, 동일한 값을 가지면 같은 객체로 취급됩니다.VO 예시// VO: 값 자체를 표현, 불변public class Money { private final int amount; // 불변(fina..
개요Spring Boot 애플리케이션에서 DTO(Data Transfer Object)와 Entity 간의 변환은 시스템 설계와 아키텍처에서 중요한 결정 사항 중 하나입니다. DTO는 주로 클라이언트와의 데이터 교환을 목적으로 하고, Entity는 데이터베이스와 상호작용하는 도메인 객체로 사용됩니다. 이 두 가지 객체의 변환은 애플리케이션의 데이터 흐름에서 필수적인 과정이지만, 변환을 어디에서 수행할지에 따라 코드의 가독성, 유지보수성, 그리고 성능에 큰 영향을 미칩니다. 이 블로그 포스트에서는 DTO와 Entity 간 변환을 어느 Layer에서 수행하는 것이 가장 적절한지 살펴보겠습니다. DTO를 사용하는 이유는❓Entity는 종종 민감한 정보나 불필요한 정보를 포함하고 있습니다. DTO를 사용하..
일반적인 DTO 클래스일반적인 DTO 클래스를 정의할 때는 여러 메서드를 수동으로 작성해야 합니다. 예를 들어, 사용자 정보를 담는 UserDto 클래스를 살펴보겠습니다.public class UserDto { private final UUID id; private final String name; private final String email; public UserDto(UUID id, String name, String email) { this.id = id; this.name = name; this.email = email; } public UUID getId() { return id; } public S..
이번 포스팅은 프로젝트를 하다가 Dto에 대해서 공부한 지식을 정리하고자 작성한 글입니다. DTO란 ❓ DTO(Data Transfer Object)는 애플리케이션의 다양한 레이어나 시스템 간에 데이터를 전송하기 위해 사용하는 단순화된 데이터 구조입니다. DTO는 데이터 전송에 필요한 필드만 포함하며, 비즈니스 로직이나 메서드는 포함하지 않아 데이터의 효율적 전송과 관리가 용이합니다. DTO와 Entity를 분리하는 이유관심사의 분리Entity는 데이터베이스와의 상호작용을 관리하고, 데이터의 저장, 조회, 업데이트, 삭제를 처리합니다.DTO는 클라이언트와 서버 간의 데이터 전송을 처리하며, 사용자 인터페이스와 애플리케이션의 내부 로직 간의 데이터를 매핑합니다.유연성 향상DTO와 Entity를 분리하면,..