3. 체이닝(메서드 이어쓰기)
WebClient는 빌더 패턴처럼 설계되어 있어서,
리턴된 객체가 다시 새로운 기능을 이어갈 수 있게 만들어져 있어.
val result = client.get() // RequestHeadersUriSpec<*>
.uri("/users") // UriSpec 객체 리턴
.retrieve() // ResponseSpec 객체 리턴
.bodyToMono(MyDto::class.java) // Mono<MyDto> 객체 리턴
.block() // MyDto 객체 리턴
각 단계마다 “객체가 나온다”는 말은 곧 리턴 타입의 객체가 만들어져서 다음 단계로 넘어간다는 뜻이야.