Spring 2

[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..

스프링 2021.12.01

[Spring] directory 구성 (계층형/도메인형)

프로젝트를 진행하면 하나의 도메인에 따른 repository, controller, service가 늘어난다. 계층형: repository는 repository끼리 넣고, domain은 domain끼리 넣고.. 이런 프로젝트가 있는 반면. 도메인형: 하나의 도메인 아래 관련 controller, service, repository 등 패키지를 따로 만들어 각각 넣어둘 수도 있다. controller 패키지에 자바 파일이 열개만 넘어가도 알아보기는 힘들다. 패키지는 많아지겠지만, 도메인형으로 구성하면 파일이 많아져도 관련 코드가 모아져 있어 한 눈에 더 보기 쉽다고 느껴졌다. 다음 글이 좋아 메모해둔다. https://cheese10yun.github.io/spring-guide-directory/

스프링 2021.12.01