inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

Response 데이터 형식 변환 - XML format

API 개발에대한 질문

351

hp

작성한 질문수 31

0

도원님 안녕하세요.
강의를 통해 API 개발하는데 많은 도움을 받고있습니다.
 
개발중 궁금한게 생겨서 질문드립니다.
 
한 api가 클라이언트에 응답하는데 필요한 모든 데이터를 처리하는데 시간이 많이 소요돼서 사용자 입장에서 품질이 떨어진다고 생각돼서 개선을 하고싶은데요
 
제가 하고싶은 방향은 응답 dto에서 처리가 빨리 끝나는 값은 넣고 나머지는 빈상태로 클라이언트에 우선 응답을 내려주고,
서버는 뒷단에서 나머지 필요한 작업을 한뒤 최종 데이터를 내려주고싶습니다.
제 경우 응답 dto의 특정 필드를 처리하는데 시간이 많이 소요되나, 중요 데이터는 아니라 이런 방향으로 하려고 합니다.
 
이렇게 개발하려면 어떤 개발 패턴이나 기술을 사용해야하는지 모르겠어서 질문드립니다. 키워드를 알려주시면 구글링해서 좀 찾아보고싶습니다.
아니면 이런 경우 실무에서 많이 사용되는 다른 방향이 있을까요?
 
답변 부탁드립니다.
감사합니다.

spring-boot rest-api

답변 1

1

Dowon Lee

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

문의하신 내용처럼 특정 로직을 처리하는데에 시간이 오래 걸리는 작업을 동기화 상태에서 작업해 놓으면, 클라이언트 사이드에서는 작업이 완료될 때까지 기다리게 됩니다. 예를 들어 대시보드를 만들고, 해당 대시보드에서 동시에 5~6개의 그래프를 보여주는 작업이 있다고 가정해 보겠습니다. 각각의 그래프에 필요한 데이터를 API로 만들어 놓은 상태에서, 해당 API를 순차적으로 호출하게 되면, 각각의 API 처리가 끝나야 다음 단계를 API를 호출하게 되고, 모든 API 호출이 끝난 상태에서 화면에 그래프가 표시될 것입니다. 그래서 이러한 부분을 처리할 때는 각 그래프의 API를 호출할 때 비동기 방식으로 사용하고, 해당 API처리가 끝나지 않아도 다른 API를 처리할 수 있도록 작업하시면 좋을 것 같습니다. 최근 Frontend 기술로 많이 사용되는 React, Angular, Vue 등은 각 필요한 요청을 비동기로 처리하면서 화면의 부분만을 변경해 주도록 작업할 수 있습니다. 추가로, 하나의 API에서 여러 로직을 처리하는 과정에 특정 부분만 먼저 결과를 반환하고, 일부는 말씀하신 것처럼 비어있는 데이터로 반환하는 경우라면, 필요한 부분과 부가적인 부분의 API를 분리해서 사용해 처리하는 것이 좋을 것 같습니다. 자주사용되는 API와 그렇지 않은 API를 하나의 호출로 처리할 필요는 없다고 생각됩니다. 

추가 질문사항 있으시면 글 남겨 주세요. 

감사합니다. 

JPA

0

71

1

jpa dependency를 추가하고 SecurityConfig클래스에서 오류가 납니다.

0

84

1

웹 브라우저 400 bad request

0

84

1

@Size는 되는데 @Past는 안 됩니다.

0

76

1

pdf 자료는 없나요?

0

92

2

locale 정보가 null 이면 무조건 messages_ko.properties이 호출 되는 문제

0

99

2

Swagger 강의, Unable to infer base url 이거 뜨시는 분들 도움되시라고

0

133

1

강의에서나온 화면 피피티

0

169

1

HelloWorldBean 관련 에러

0

194

2

Swagger API 3.x 오류..

0

230

1

java: variable message not initialized in the default constructor 에러는 어찌하면 좋을까요?

1

288

1

현재 GIT에 올리신 소스를 실행해봤습니다.

0

203

2

고양이 소리가 귀엽네요 !!

0

149

2

git에서 소스받고 실습중인데

0

127

1

post가 안되요

0

116

1

한국어 같은 경우 언어코드인 messages_ko.properties 로 생성하는게 더 좋지 않나요?

0

176

2

리턴타입으로서 EntityModel<User> 와 ResponseEntity질문

0

113

1

예외처리쪽 관련 질문있습니다.

0

165

2

엔티티가 바로 응답으로 나가도 되나요??

0

239

2

안녕하세여 Cannot invoke "co.kr.joneconsulting.resfulservice.repository.PostRepository.save(Object)" because "this.postRepository" is null

0

150

2

사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.

0

146

2

ApplictionContext 질문

0

199

2

롬북이 안먹히는것같아요

0

161

1

인텔리제이에서스프링부트 파일 실행하면

0

244

1