Entity
엔티티는 데이터베이스나 소프트웨어 개발에서 사용되는 개념으로, 현실 세계의 개체. 데이터베이스에서는 엔티티는 테이블을 의미하며, 각 행은 해당 엔티티의 한 개체를 나타낸다. 예를 들어, '사용자'라는 엔티티가 있다면, 각 행은 개별 사용자를 의미한다. 소프트웨어 개발에서 엔티티는 애플리케이션에서 다루는 기본 개념이나 객체를 의미할 수 있다. 예를 들어, 온라인 쇼핑몰 애플리케이션에서 '제품' 엔티티가 있다면, 이 엔티티는 제품의 이름, 가격, 설명 등을 포함하는 객체를 나타낼 수 있다.
DTO
DTO는 주로 소프트웨어 개발에서 데이터를 전송하기 위한 객체를 나타내는 용어. 비즈니스 로직과 상관없이 데이터 전송을 위한 목적으로 사용된다. 주로 데이터베이스에서 가져온 데이터나 외부 시스템과의 통신을 위해 사용된다. DTO는 일반적으로 데이터만 가지고 있으며, 메서드나 비즈니스 로직을 포함하지 않는다. 이로 인해 데이터 전송의 효율성을 높일 수 있다. 예를 들어, 사용자 정보를 데이터베이스에서 가져와 웹 애플리케이션으로 전달해야 할 때, 사용자 정보를 가진 DTO 객체를 생성하여 사용할 수 있다.
VO
VO는 주로 소프트웨어 개발에서 값을 나타내는 객체를 의미. VO는 불변성(immutable)을 가지며, 주로 데이터의 변화가 없는 상황에서 사용된다. 주로 도메인 모델링에서 사용되며, 값의 특징을 나타내는 데 중점을 둔다. 예를 들어, 날짜 범위를 나타내는 VO 객체를 사용하면 해당 범위의 시작일과 종료일을 한 번에 다룰 수 있다.
VO는 개념적 정체성이 없는 도메인의 설명적 측면을 나타내는 객체로. 정체성보다는 속성이 특징이다. 고유한 ID가 없고 전체로 취급되는 작은 데이터 조각을 모델링하는 데 사용되며 변경 불가능한 것으로 간주됩니다. 즉, 생성 후 상태가 변경되지 않는 특징이 있다..주로 측정, 수량, 날짜 등과 같이 값 객체를 정의하는 고유 속성이 강조된다.
값 객체에 메서드를 추가하면 캡슐화를 강화하고 캡슐화하는 데이터와 관련된 동작을 강화할 수 있다고 볼 수 있지만, 값 개체를 가볍게 유지하고 데이터를 유지하고 나타내는 데에만 집중해야 한다는 원칙이 고수되어야 한다. 메서드를 추가하면 값 개체와 엔터티 간의 구분이 모호해질 수 있다. 엔터티는 일반적으로 ID와 변경 가능한 상태를 가지며 행동을 캡슐화하는 데 더 적합하다.
요약하자면, 값 개체에 메서드를 추가하면 일부 시나리오에서 캡슐화를 향상시킬 수 있지만 장단점을 신중하게 고려하고 디자인 목표와 모델링하는 특정 도메인에 가장 적합한 원칙을 준수하는 것이 중요하다. 값 객체의 주요 강조점은 복잡한 동작을 구현하기보다는 도메인 내에서 데이터 측면을 나타내는 데 있다.
'메모 > ETC' 카테고리의 다른 글
CS - 메모리 (1) | 2023.10.23 |
---|---|
CS - CPU, Scheduling (1) | 2023.10.21 |
CS - CPU와 메모리 (0) | 2023.10.20 |
TDD, 프로세스/쓰레드 (0) | 2023.09.25 |
클러스터, 클러스터링 (2) | 2023.08.08 |