Contents
- DTO가 뭐임!
- VO가 뭐임!
- 뭔 차이임?
세상에 코드 블럭 줄맞춤 진짜 잘했는데 자동으로 망가짐...
DTO가 뭐임!
- Data Transfer Object 의 약자로 데이터를 전달하기 위해 사용하는 객체이다.
- 계층 간 데이터를 전달하기 위한 객체이다
특징
오직 getter / setter 메서드 만을 갖는다.
다른 로직을 가지지 않는다.
보내는 쪽에서 setter를 사용해 DTO에 데이터를 담아 보내고 받는 쪽에서 getter로 전달받은 DTO로부터 데이터를 꺼내쓰는 방식이다.
예시
class
public class HumanDto {
private String name;
public String getName() {
return name;
}
public void setName(String name){
this.name = name;
}
}
service
public HumanDto createNewHuman(){
String newName = "LeeShin"
HumanDto humanDto = new HumanDto();
humanDto.setName(newName); // 얘 왜이럼;;
return humanDto;
}
칸이 안맞춰지는데요...ㅠㅜ
web
public String createNewHuman(){
HumanDto newHumanDto = exService.createNewCrew(); // ㅇ_ㅇ!
String nameOfNewHuman = newHumanDto.getName();
return nameOfNewHuman;
}
원하는 곳에 값을 보내기 위해 주섬주섬 포장해서 가져가는 느낌...
VO가 뭐임!
- Value Object의 약자
- 값 자체를 표현하는 객체이다. 값 자체로 의미가 있는 것이 VO이다.
(값 자체로 객체가 표현되기 때문에 값의 변경이 없다)
예를 들면, 10000원짜리 지폐는 각각 일련 번호가 다르지만 다 동일한 만원으로 취급한다.
VO는 이처럼 어느 상황에도 동일하게 취급된다.
아래는 예시 코드이다.
public class HumanVO {
private final int id;
private final String name;
public Human(int id, String name){
this.id = id;
this.name = name;
}
public int getId(){
return this.id;
}
public String getName(){
return this.name;
}
}
뭔 차이임?
그러게...
VO는 변하지 않는 값, DTO는 데이터를 담는 상자인 것 같다.
DTO랑 VO랑 구분하는게 의미가 있나 싶다.
사람들 마다 정의하는게 약간씩 다르고 그렇다고 쓰임이 막 그렇게 다른 것도 아니고...
그냥 필요한 형태로 사용하는게 좋을 것같다.
반응형
'아 이게 뭐임!' 카테고리의 다른 글
NULL은 특별하다...! (0) | 2021.07.27 |
---|---|
제어의 역전이 뭐임!! [Inversion of Control] (0) | 2021.07.26 |
Cache(캐시)가 뭐임!!! (0) | 2021.07.24 |
세션이 뭐임!! (2) | 2021.07.23 |
쿠키가 뭐임!! (0) | 2021.07.22 |