inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

다중화된 서버일 경우 비동기 처리 관련 문의

435

장선희

작성한 질문수 1

0

안녕하세요! 비동기 프로그래밍을 해야되는데 너무 어려워서 강의를 등록했습니다!

개인적인 궁금증인데 다중화된 서버일 경우, 비동기 호출하게 되면 리턴을 호출한 서버가 받게 되는걸까요?

아니면 다른 서버가 받을 수도 있는걸까요?

혹시 호출 서버가 받는게 보장된다면 그건 어디서 보장을 해주는 걸까요?

java 동시성 multithread synchronisation

답변 2

0

정수원

비동기 호출은 프론트에서 하는 건가요 아니면 백엔드 에서 하는 건가요?

비동기 호출이라 해서 동기 호출과 반환되는 주체가 다르지는 않습니다.

클라이언트가 비동기 호출하게 되면 다중화 서버의 한 서버로부터 호출한 클라이언트가 즉시 응답을 받게 됩니다.

질문을 조금 더 자세하게 주시면 좋을 것 같습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

다중 서버 환경에서 비동기 호출을 했을 때, 호출한 서버가 결과를 받는지에 대한 질문이시군요.

일반적으로 하나의 애플리케이션 내에서 비동기 메서드를 호출하면, 그 호출 결과는 같은 애플리케이션 내의 다른 스레드에서 처리되게 됩니다. 따라서 호출을 시작한 서버 내에서 비동기 작업의 결과를 받게 됩니다.

비동기 작업은 자바에서 Future이나 CompletableFuture을 사용하여 처리할 수 있는데, 이들은 메서드가 바로 반환되고, 실제 작업은 서버 내에서 별도의 스레드 혹은 스레드 풀에서 실행되도록 합니다. 그 결과는 동일 서버 내에서 처리됨이 보장됩니다.

Spring 프레임워크에서 비동기 메서드를 실행하는 데 사용되는 기능에 대한 추가 정보는 아래의 문서에서 찾아볼 수 있습니다.

Spring Data JPA - 비동기 쿼리 처리:
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-async

Spring Data JDBC - 비동기 쿼리 처리:
https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#repositories.query-async

여기서 언급된 @Async 어노테이션을 사용한 메서드는 Spring의 TaskExecutor에 의해 실행됩니다. 이러한 비동기 작업은 서버 간에 결과가 이동하는 것이 아니라, 호출을 시작한 해당 서버 내에서의 스레드 풀 내에서 처리된다는 것을 의미합니다.

다만, 분산 시스템에서 외부 서버로의 비동기 호출과 같은 경우에는 메시지 큐, 이벤트 스트림, 혹은 다른 메커니즘이 사용되어야 하고, 호출한 서버와 결과를 받는 서버가 다를 수 있습니다. 이 경우는 다른 방식의 보장 메커니즘이 필요하며, 이는 별도의 컴포넌트나 인프라를 통해 관리됩니다.

당장은 내부적인 비동기 처리에서는 호출한 서버 내에서 결과를 받는 것이 보장된다고 이해하시면 됩니다.

멀티스레드 단일스레드

0

56

0

new Condition 부분 질문

0

83

1

13:00 강의 내용 이해 질문

0

99

1

강의 출시 질문 있습니다.

0

117

1

InterruptedExceptionThreadStopExample 질문입니다.

0

94

2

instance.getMyField()의 값이 왜 다른가요?

0

115

1

해당 강의 내용 무단 도용 신고

0

211

2

Thread Waiting 상태 관련 질문 드립니다.

0

185

1

단일연산변수 api

0

125

0

synchronized 블럭과 메인메모리 반영

0

146

0

실무에서 자바가 제공하는 락을 사용하는 경우

1

243

1

뮤텍스나 세마포어는 busy waiting이 없는 게 맞을까요?

0

159

1

16:50부분에서 타입락 질문드립니다.

0

110

2

16분 7초 뮤텍스 코드 관련해 질문드립니다.

0

160

2

동기화가 보장된다고 하더라도 스레드간 데이터 불일치가 발생할 수 있지 않나요??

0

199

2

리액티브-part2

0

180

2

문자열 풀 값을 이용한 String 변수

0

207

2

스레드 라이브러리는 커널과 같은 역할을 하지 못하나요?

0

173

1

자식 프로세스를 쓰는 이유

0

186

1

커널 모드 전환시 질문이 있습니다!

0

146

1

[공유] setName 시 threadName이 1부터 시작하는 이유

0

177

1

synchronized = 모니터

0

285

2

Thread의 Context Switching 문의드립니다.

1

256

1

동기 & 논블록킹 질문 드립니다.

0

232

2