1. 객체지향에서의 본질적인 구분1-1. 왜 두 개념이 필요한가? 소프트웨어 설계에서 모든 객체를 동일하게 취급하면, 코드가 복잡해지고 유지보수성이 떨어진다. 그래서 객체의 ‘역할’에 따라 개념적으로 구분하는 것이 중요하다. Value Object와 Entity의 구분은 바로 이 설계 명확성을 높이기 위한 핵심적인 전략이다. Value Object는 그 값 자체가 중요한 객체이고, Entity는 고유한 정체성을 가진 객체다. 동일한 데이터를 가진 두 객체라도, Value Object라면 하나로 취급되지만, Entity라면 각각 별개의 존재다. 이 구분이 없다면 동일성, 식별, 변경 추적 등의 이슈가 설계 전반에 영향을 미치게 된다. 이러한 구분은 단지 철학적 개념이 아니라, 모델링의 의도와 코딩 구현 ..