- Spring νλ μμν¬μμ μ 곡ν΄μ£Όλ λ©μλλ₯Ό λΉλκΈ°μ μΌλ‘ μ€νν μ μλλ‘ μ§μνλ μ΄λ
Έν
μ΄μ
- λΉλκΈ°μ μΌλ‘ λ©μλλ₯Ό νΈμΆνμ¬ μνλ μμ
μ λ³λ ¬λ‘ μ²λ¦¬ν μ μλ€.
@Async μ΄λ
Έν
μ΄μ
μ μ¬μ©νλ©΄ λ©μλμ νΈμΆμ΄ λ³λμ μ€λ λμμ λΉλκΈ°μ μΌλ‘ μ€νλλ€.
- Springμ λ΄λΆμ μΌλ‘
TaskExecutorλΌλ λΉμ μ¬μ©νμ¬ λΉλκΈ° μμ
μ κ΄λ¦¬νλ€.
- Spring Boot νλ‘μ νΈμ
@EnableAsync μ΄λ
Έν
μ΄μ
μ μΆκ°νμ¬ λΉλκΈ° κΈ°λ₯μ νμ±ννλ€.
- λΉλκΈ° λ©μλλ₯Ό νΈμΆνκ³ μ νλ ν΄λμ€μ
@Service λ±κ³Ό ν¨κ» @Async μ΄λ
Έν
μ΄μ
μ μ¬μ©νλ€.
- λ©μλ λ°ν νμ
μ
void λλ Future<T> ννμ¬μΌ νλ€.
@EnableAsync μ΄λ
Έν
μ΄μ
μ μ€μ ν΄λμ€μ μΆκ°νλ€.
@Configuration
@EnableAsync
public class AsyncConfig {
// μ€μ λ΄μ© (ThreadPool, κΈ°ν μ€μ λ±)
}
@Async μ΄λ
Έν
μ΄μ
μ μ¬μ©νμ¬ λ©μλλ₯Ό νΈμΆνλ€.
@Service
public class MyService {
@Async
public void asyncMethod() {
// λΉλκΈ°μ μΌλ‘ μ€νλ λ΄μ©
}
}
@Service
public class MyService {
@Async
public CompletableFuture<String> asyncMethod() {
return CompletableFuture.completedFuture("Async method completed.");
}
}
@Async μ΄λ
Έν
μ΄μ
μ΄ μ μΈλ λ©μλλ λ°λμ public μΌλ‘ μ μΈν΄μΌ νλ€.
- λΉλκΈ° λ©μλλ κ°μ ν΄λμ€ λ΄μμ νΈμΆν μ μλ€. λ©μλ νΈμΆμ μ€νλ§ νλ‘μλ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λ―λ‘ λΉλκΈ° λ©μλλ λμΌν ν΄λμ€ λ΄μμ νΈμΆλμ΄λ λΉλκΈ°λ‘ μ€νλμ§ μλλ€.
- λ©μλμ λ§€κ°λ³μλ μλμΌλ‘ 볡μ¬λμ΄ λΉλκΈ° μ€λ λμμ μ¬μ©λλ€. νμ§λ§ λ νΌλ°μ€λ 컨ν
μ€νΈμ λν μ²λ¦¬κ° νμν κ²½μ° λ³λμ μ‘°μΉκ° νμνλ€.