작성
·
113
답변 2
0
안녕하세요.개발자park입니다.
넵UserDTO하나로 통일하는게 정석입니다.
그러나 관리가 힘들어질 수 있습니다.
가령 Controller에서 2개의 Action(method)을 예로 들어보겠습니다.
=======================
정석대로
=======================
가령 GetUser라는 Action을 예로 들면
UserViewModel GetUser(UserDTO,string role)
{
...
}
UserViewModel DeleteUser(UserDTO)
{
...
}
ViewModel이 비대해지고 BLL에 전달시 파라미터도 증가되는 것을 확인하실 수 있습니다.
그렇기에 애초에 간단하게 DTO를 나눴다고 생각하시면 되겠습니다.
정석대로 하셔도 문제는 없겠습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 최봉석님께서 질문해주신 DTO 관련 내용에 대해 답변 드리겠습니다.
DTO(Data Transfer Object)는 애플리케이션 계층 간 데이터 전송을 위해 사용되는 객체로, 각기 다른 용도의 데이터를 담기 위해 여러 개의 DTO를 생성하는 것이 일반적입니다. 이는 데이터 전송 시 목적에 맞는 데이터만 포함되어 코드의 명확성을 높이고, 불필요한 데이터 노출을 방지하기 위함입니다.
용도에 맞춤화: 각 DTO는 특정 작업에 맞춤화되어 있습니다. 예를 들어, CreateUserDTO
는 사용자 생성 작업에 필요한 데이터만 포함하고, GetUserDTO
는 사용자 조회에 필요한 데이터만 포함합니다.
보안 및 데이터 보호: 필요한 데이터만 포함시킴으로써, 잘못된 데이터가 다른 계층으로 전달되는 것을 방지할 수 있습니다.
유지보수성: 각각의 작업에 맞는 DTO를 사용하면 코드의 일관성을 유지할 수 있어 유지보수가 용이합니다.
동일한 구조를 가지는 DTO로 통일하는 것도 가능하겠지만, 이는 데이터의 목적과 보안 측면에서 문제가 발생할 수 있습니다. 따라서 각 용도에 맞게 DTO를 설계하는 것이 바람직합니다.
현재 수강하시는 강의에서는 이러한 점을 고려하여 다양한 DTO를 정의하고 있는 것으로 보입니다.
참고로, 관련된 유사한 질문에 대한 더 많은 설명은 DTO에 대해 자세히 알고 싶습니다라는 게시글에서 확인하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.