[Spring] Spring Inner class DTO

고병갑·2025년 2월 6일

Inner class DTO

🤔 API의 모든 요청/응답마다 DTO를 생성?

API 개발 중 API 마다 return 해주는 데이터가 달라 각각의 DTO를 생성하다보면 많은 DTO가 생성되어 소스들이 아주 정신없을 때가 있다

각각의 DTO를 생성하다보면 수정사항이 있어도 다른 API에 영향이 가지 않는다는 장점이 있지만 클래스가 너무 많아져 관리가 힘들어 질수 있음

👉 Inner class를 사용해보자

User 도메인에 관련된 API에서 각각 사용되는 DTO를 하나의 파일로 묶어보았다

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;


public class UserDto {
	
	@Data
    @NoArgsConstructor
    @AllArgsConstructor
	public static class CommonInfo {
		private String userId;
		private String userNm;
        private int userAge;
		private String userNickNm;
		private String userGender;
	}
	
	
	@Data
	@Builder
    public static class Create extends CommonInfo {
		private String userPw;
    }
	
    @Data
    @Builder
    public static class Info extends CommonInfo {
		private int userNo;
		private Date regTm;
    }

    @Data
    @Builder
    public static class Update extends CommonInfo {
		private int userNo;
    }
	
	@Data
    public static class Delete {
		private int userNo;
    }

}

CommonInfo 를 통해서 공통적으로 사용하는 field를 묶은 뒤 각각의 용도에 맞는 DTO를 생성해 CommonInfo 상속받는 형태로 만들어보았다

이런 형태로 하나의 DTO에 각각의 목적에 맞는 inner class를 넣어 간결하게 프로젝트를 유지 할 수 있다

profile
노력 naver 배신🔥

0개의 댓글