일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- EC2
- gitActions
- 파일업로드
- JPA
- webflux
- R2DBC
- @async
- 백업스크립트
- mono
- SUbmodule
- ci/cd
- 백업
- CompletableFuture
- 비동기
- programmers
- TaskExecutor
- 백준
- Infra
- 스왑메모리
- mysql
- 알고리즘
- 프로그래머스
- swapmemory
- GoogleCloudStorage
- actions
- GCS
- Java
- AWS
- github
- Algorithm
- Today
- Total
목록비동기 (2)
쿵야지식떨이
이전 글에서 정리한 것처럼 비동기 처리를 할 수 있는 방법은 다양하다. 이번 글에서는 내가 진행하고 있는 프로젝트에 어떤 비동기 처리 기법을 적용할 것인지, 이유는 무엇인지 정리해보려 한다. 고민했던 두 가지는 @Async와 WebFlux의 Mono였고 최종적으로 선택한 것은 @Async이다. 둘의 공통점과 차이점, 현재 진행하고 있는 프로젝트에 더 적합한 것을 선택하여 정리해보려 한다. @Async와 WebFlux Mono의 공통점과 차이점 @Async Mono 공통점 - 비동기 처리 - 블로킹하지 않고 비동기 작업의 결과를 반환할 수있다. 차이점 - 별도의 스레드에서 메서드 실행 - 일반적인 비동기 처리에 사용 - Future를 통해 비동기 작업의 결과를 가져온다. - 리액티브 스트림을 통해 데이터를..
팀 프로젝트를 진행하면서 ai 서버와 통신을 하는 부분들이 많아졌다. npc에게 채팅을 요청하고, scenario를 받고, intro 요청을 하는 등등.. 요청하고 받아야 하는 것들이 늘어나면서 하나의 요청이 끝날 때까지 아무것도 못하는 동기 처리보다는 결과가 나오는데 시간이 걸리더라도 다른 작업을 할 수 있는 비동기 방식을 적용하는 게 좋겠다는 생각이 들었다. 동기 처리와 비동기 처리에 대한 부분부터 spring Boot에서 적용할 수 있는 @Async를 프로젝트에 실 적용하는 과정과 공부한 내용을 모두 기록해보려고 한다. 동기, 비동기란? 동기(Synchronous) 작업이 순차적으로 진행된다. → 한 작업이 끝나야 다음 작업이 시작된다. 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주..