[Spring] Entity, DTO, VO 비교하기
스프링을 처음 접할 때 Entity, DTO, VO, Dao, Repository 등등의 용어가 굉장히 헷갈렸다. 그 중에서도 데이터와 가까이(?) 있는 Entity, DTO, VO 세 가지를 비교해보려고 한다. 일단 가장 구분이 쉬운 것은 Entity이다. Entity는 DB와 가장 가깝다. 테이블과 매핑되는 객체이다. 각 id를 통해 entity를 구분한다. entity에는 @Getter와 @Setter가 없다. 대신 메소드를 활용해 변경할 수 있다. 다음으로 VO는 객체의 불변성을 보장하는 객체이다. 서로 다른 이름을 가지고 있는 객체더라도 모든 속성 값이 같다면 두 인스턴스는 같다고 할 수 있다. 따라서 VO는 Object 클래스의 equals()와 hashCode()를 오버라이딩 해야한다. (I..