inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - 사용자 추가 구현 (JPA)

vo 활용에 대해 궁금합니다.

846

wofjeiong2ewg23

작성한 질문수 15

0

 

안녕하세요, 선생님.

조금 덜 중요한 질문일 수 있습니다.

이전에 vo를 사용해서 application.yml에 있는 데이터를 받아와 사용했는데 이게 사실 dto랑 구분되어 사용되는기준이 명확하지 않은 것 같더라구요.(누구는 이럴때 dto, 누구는 vo.. 등등)

보통 어떤 경우에 dto를 사용하고, 어떤 경우에 vo를 사용하나요? dao도 있던데.. 그건 또 어떤 경우에 사용하는지 궁금합니다.

간단한 경험 예시를 들면 저는 예전에 vo마다 검증을 하고 사용할 땐 Controller에서 dto로 변환해서 사용했는데 주변에서 왜 그렇게 사용하냐고 하더라구요.. 구분 개념이 잘 안 잡히는 것 같습니다. 

spring-boot architecture spring-cloud JPA msa Kafka

답변 1

4

Dowon Lee

안녕하세요, 이도원입니다. 

DAO, VO, DTO 이러한 부분은 디자인 패턴에서 사용되는 개념입니다. 

먼저 VO와 DTO는 사용하는 용도에 맞춰 설계하시면 될 것 같습니다. 사용자로부터 어떤 요청 데이터(Request Body)를 전달받았을 때, 그 데이터는 온전하게 백엔드에서 사용하는 경우도 있고, 중간 부분에 다른 형태로 변경해서 사용해야 하는 경우도 있습니다. 서비스나 레이어 간에 데이터가 이동될 때는 해당하는 단계에 맞도록 DTO를 전달하는 것이 효율적일 수 있습니다. 불필요한 데이터를 전달할 경우, 불필요하게 데이터가 공개되는 경우도 있기 때문에, 사용 목적에 받도록 데이터의 포맷을 정의하는게 필요하다고 생각됩니다. 그리고, VO 같은 경우에도 사용자에게 데이터를 반환(Response Body)할 때, 백엔드에서  처리된 데이터를 그대로 노출하는 것보다는 필요한 부분만 공개하는 것이 좋을 수 있습니다. 

정리해 보면, VO(Value Object)는 데이터를 상태를 저장하여 전달하는 용도로, DTO(Data Transfer Object)는 데이터를 이용하기 위한 용도로, DAO(Data Access Object)는 VO, DTO하고는 약간 다른 객체이며, 영속적인 데이터 처리를 위한 부분을 담당하는 객체로 이해하시면 좋을 것 같습니다. 

감사합니다. 

0

wofjeiong2ewg23

감사합니다.!

rabbitmq에 configservice 연결에 대해 질문있습니다.

0

17

1

kafka 업데이트 강의 듣고 시포요

0

118

2

강의 교안

0

108

2

마이크로서비스간 통신 시, 인증 처리

0

120

2

api gateway 에서 인증 처리

0

77

1

섹션 19 질문드립니다

0

87

2

강의 자료 업데이트

0

106

2

부하분산 강의 섹션

0

67

1

강의자료는 어디에서?

0

99

2

강의 자료는 어디서 다운 받을 수 있나요?

0

133

2

전체 사용자 조회시 오류

0

66

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

123

2

학습 방향

0

107

2

카프카 커넥터 사용 목적 문의

0

93

2

kafka 강의

0

119

2

서비스 디스커버리 종류

0

91

2

강의 자료에 대해서 궁금해요

0

126

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

97

2

Kafka Source Connect 버전 에러

0

98

2

소스커넥터는 사용안한 거 맞죠?

0

87

2

강의자료 업데이트 문의

0

101

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

64

1

강의 업데이트 계획이 궁금합니다.

0

122

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

169

2