본문 바로가기

개발/백엔드

spring boot - 비동기 작업 처리

서버를 만들다 보면 비동기로 처리해야 하는 일들이 있습니다. 이 경우 Async를 이용해서 비동기로 작업을 처리할 수 있습니다.

동기와 비동기

동기와 비동기의 차이점을 간단히 짚고 넘어가겠습니다. 보통 프로그램은 위에서부터 아래로 순서대로 명령을 처리합니다. 이것을 동기(syncronous)적으로 처리한다고 합니다. 이 경우 작업이 오래 걸리는 일이 있으면 그 일을 처리할 때 까지 다음 일을 진행할 수 없습니다.

서버에서 메일을 보낸다고 가정해 봅시다. 보통 메일을 보내면 메일을 수신하는 데 5초 정도의 시간이 걸립니다. 이것을 동기로 처리하면 서버가 작업을 완료하고 응답을 보내는 데 5초 정도의 시간이 걸린다는 것입니다. 그럼 유저들은 5초 동안 서버가 멈춘 것 같은 느낌이 들 것입니다.

 

하지만 메일은 보통 잘 보내집니다. 그러니 5초 동안 굳이 기다리지 말고 미리 보냈다고 말해도 되지 않을까요? 이것을 비동기를 이용해서 해결할 수 있습니다.

 

이렇게 동시에 두 작업을처리하는 것을 비동기하고 합니다.

Async

비동기로 처리할 함수에 Async 어노테이션을 붙입니다.

 

그리고 그 클래스에 EnableAsync 어노테이션을 넣어서 async를 사용할 수 있게 합니다.

 

이렇게 하면 간단하게 비동기를 사용할 수 있습니다.

'개발 > 백엔드' 카테고리의 다른 글

spring boot - DTO  (0) 2024.10.15
spring boot - intercepter  (2) 2024.09.28
spring boot - 1 : N 관계 만들기  (0) 2024.09.25
spring boot - 환경 변수  (2) 2024.09.22
spring boot - 메일 전송  (4) 2024.09.18