DTO3 Kotlin에서 기존 객체를 다른 객체로 변환하는 다양한 방법 백엔드를 개발하다 보면 기존 객체를 DTO(Data Transfer Object)로 변환하거나 다른 클래스 형태로 매핑해야 하는 일이 자주 발생한다예를 들어, 클라이언트 요청에 맞춘 데이터 포맷 변경, API 응답을 위한 직렬화 객체 변환, 또는 엔티티와 DTO 간 데이터 매핑 등...이 글에서는 Kotlin에서 객체를 변환하는 다양한 방법을 소개하고, 각 방법의 장단점을 비교해 보려한다목표Person -> PersonDto기본적으로 동일한 필드 구조를 가진 클래스 간 변환Person -> PersonExtraDto추가 필드가 포함된 클래스에 데이터를 매핑PrivatePerson(private 필드) -> PersonDto접근제어자가 설정된 필드를 매핑성능 테스트예제 클래스먼저, 예제에서 사용할 간단한 .. 2024. 11. 27. 협업을 위한 DTO Response Custom 뭐 기본적으로 Entity가 아닌 DTO를 Response로 내려보내야 하는 것은 다들 알 것이다 우리 회사의 Entity Spec을 외부에 노출하지 않으며, Setter가 열린 채로 Entity를 내려보내고, 아직 메모리에 올라와 있는 채로 어딘가에서 누군가가 수정을 하고, 업데이트나 머지가 일어난다면(영속성인 객체상태에서) 끔찍한 일이 아닐 수 없다 static으로 내부클래스로 구현할지 말지는 본인 선택이다. 깔끔해진다는 장점이 있으나 OuterClass.InnerClass이렇게 인자나 반환값이 바뀌게 되어 오히려 이게 안예쁘게 보일 수 있다 프로젝트 브라우저 내에서 이쁘게 보일것이냐 => static(inner) 코드 레벨에서(함수 인자나 반환값으로 쓸 때) 참조를 깊게 안할것이냐 => non st.. 2022. 10. 23. DTO instantiate (feat. Lombok, GET/POST) 여러분들은 아마 DTO에 값이 어떻게 채워져서 컨트롤러 메서드 내부의 인스턴스화된 오브젝트로 넘어오는지 궁금하지않나요? 제가 완벽히는 아니더라도 아는만큼 써놓겠습니다 오브젝트(객체)가 메모리에 올라와서 접근 가능하고, 처리 가능하게 되는 것을 인스턴스화된 객체, 인스턴스라고 합니다. 그럼 DTO는 언제 인스턴스화가 될까요? 기본적으로 Get 방식과 Post 방식은 스프링에서 처리 방식이 다릅니다 (이 밑부터는 반..말체 ㅎ) 1. Get Request + DTO Get요청에서의 DTO들은 모두 다 QueryString으로 들어간다 QueryString이란 ?{Key}={Value}&[Key}={Value} 방식으로 들어간다는 것이다 어차피 스프링에서 DTO로 만들어도 포스트맨 등에서는 Query Para.. 2022. 3. 10. 이전 1 다음