| 구분 | 설명 |
|---|---|
| Spring | 기본 멀티스레드 환경 지원, 대규모 환경에 적합 |
| Node.js | 단일스레드 환경 지원, 소규모 환경에 적합 |
| 구분 | 설명 |
|---|---|
| 동기화 (Synchronous) | - 여러 스레드가 하나의 메서드를 호출할 때 요청 순서대로 처리 - 요청 순서 보장 O - 메서드가 완료될 때까지 대기 - 주로 기본 CRUD 처리에 사용 |
| 비동기화 (Asynchronous) | - 여러 스레드가 하나의 메서드를 동시에 실행 가능 - 요청 순서 보장 X - @Async 애노테이션으로 비동기 요청 처리- 메서드 반환 즉시 작업 시작, 백그라운드에서 실행 - 대량 데이터 연산, 이메일 전송, 푸시 알림 등에 적합 |
@EnableAsync를 메인 클래스에 추가하여 비동기 기능 활성화@Async 추가하여 비동기 처리Config 폴더 내 ThreadPoolConfig 클래스 생성@Configuration 애노테이션 추가하여 스프링 빈 등록Executor 설정 후 @Bean 애노테이션 부착| 단계 | 내용 |
|---|---|
| 1 | @EnableScheduling을 메인 클래스에 추가하여 스케줄링 활성화 |
| 2 | 자동 실행할 Service 메소드에 @Scheduled 추가 |
| 속성 | 설명 | 예시 |
|---|---|---|
cron | 크론 표현식 기준 서버 시스템 날짜/시간에 따라 실행 | @Scheduled(cron = "0 0 10 * * 0,6") (토/일 오전 10시) |
fixedRate | 이전 작업 시작 후 고정된 기간(밀리초)마다 실행 | @Scheduled(fixedRate = 10000) (10초마다) |
fixedDelay | 이전 작업 완료 후 고정된 기간(밀리초)마다 실행 | @Scheduled(fixedDelay = 10000) |