폴링(Polling), 롱 폴링(Long polling) 그리고 스프링 예제


• 폴링(Polling)은 클라이언트가 일정 주기로 서버에게 필요한 데이터를 요청하는 방식이며, 롱 폴링(Long Polling)은 서버가 클라이언트 요청에 대해 즉시 응답하지 않고, 특정 이벤트 발생이나 타임아웃 시점에 응답을 전달하는 방식입니다.
• 스프링에서 롱 폴링 구현 시, HTTP 요청에 대한 응답 방식을 비동기식으로 처리하여 요청에 대한 처리를 수행하는 동안 블록킹되지 않고, 이벤트나 타임아웃이 발생할 때까지 응답을 미루는 방식을 사용합니다.
• 스프링 3.2부터 사용 가능한 DeferredResult 클래스는 롱 폴링 구현에 필요한 비동기 처리를 위해 등장했습니다. 이 클래스는 처리가 길어지는 연산을 http-worker 스레드가 아닌 다른 별도 스레드에게 분산하기 위해 사용됩니다.
• DeferredResultController 클래스 테스트는 롱 폴링을 이용한 2차 인증 대기 기능을 위한 컨트롤러 개발을 가정하여 작성되었습니다. 테스트 코드를 통해 기능을 정의하고, Given-When-Then 패턴에 맞춰 명명하였습니다.

북마크
공유하기
신고하기