OKKY | DTO, POJO, VO 의 차이점이 무엇인가요?
DTO : Data Transfer Object
POJO: Plain Old Java Object, 간단히 POJO는 말 그대로 해석을 하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 마틴파울러가 만든용어라고한다.
POCO: POCO 는 Plain Old CLR Objects 라고 MS 측에서 공식명칭을 사용
data class Person (val name: String, var email: String?)
fun main() {
val personA = Person("SeungMin", "[email protected]")
val personB = Person("DaBin")
val personC = personA.copy(
println(personA) // Person(name=SeungMin, [email protected])
println(personA.toString()) // Person(name=SeungMin, [email protected])
println(personA.equals(personB)) // false
println(personA.equals(personC)) // ture
println(personA.hashCode()) //-54204568
personA.email = "[email protected]"
println(personA.toString()) // Person(name=SeungMin, [email protected])
}