<aside> 1️⃣ 2가지의 관점설명

</aside>

<aside> 2️⃣ 2번 방법에 대한 내 생각

</aside>

<aside> 3️⃣ Request를 받아서 그걸로 바로 내부 로직을 처리하는 방식

</aside>

  1. Request를 바로 받아서 내부 로직을 수행
@PostMapping
public ResponseEntity<UserSaveResponse> createUser(@RequestBody UserRequest userRequest) {
    UserSaveResponse userSaveResponse = userService.saveUser(userRequest);
    ...
}
  1. 이때 서비스는 이렇게 적용되었다.
public UserSaveResponse saveUser(UserRequest userRequest) {
	
    // userRequest 사용하여 비즈니스 로직 수행
    ...
}
  1. 위의 코드를 UserCommand라는 dto를 따로 만들어서 서비스에서 사용하도록 개선했다.
@PostMapping
public ResponseEntity<UserSaveResponse> createUser(@RequestBody UserRequest userRequest) {

	  // UserRequest를 UserCommand dto 클래스로 변환한다.
    UserCommand userCommand = userRequest.toCommand(...);
    UserSaveResponse userSaveResponse = userService.saveUser(userCommand);
    ...
}
public UserSaveResponse saveUser(UserCommand userCommand) {
	
    // UserCommand를 사용하여 비즈니스 로직을 수행한다.
    ...

}

<aside> 4️⃣ 출처

</aside>