Dto와 Vo
DTO
레이어를 오갈때 오버헤드 없이 빠른 데이터 전달을 위해 model에서 분리해서 만드는 클래스.
비즈니스 로직이 들어가서는 안되고 데이터 전달을 위한 메소드만 허용한다.
자바빈즈 규약을 따라 필드에 대한 get set 메소드를 담아 만든다.
- Client에서 Controller 부분으로 데이터를 넘겨줄 때
- Model에게 전달할 때
User의 정보를 넘겨준다고 했을때String name String password
이렇게 일일이 쓰기에는 가독성이 좋지 않으니 한번에 담아 넘겨주면 좋다.
VO(Value Object)
값 그 자체를 의미하고 당연히 immutable한 클래스다.
한번 초기화되면 값을 바꿀 수 없고 (final과 비슷한?) setter가 없는것과 동일한 의미는 아니다!
ex) Color.green