Spring 환경에서 역사가 깊고 가장 흔하게 사용되는 @Async 를 생각해보자. 우리는 이를 통해 논블로킹/비동기 로직을 만들 수 있다. 사실 비동기라는 표현이 대중적으로 사용되지만 논블로킹이라는 표현도 적지 않게 사용된다. 일반적으로 블로킹==동기, 논블로킹==비동기 공식은 성립하지만 용어가 다른만큼 각각이 의미하는 바도 다르므로 이를 정확하게 이해하고 넘어갈 필요가 있다. 일반적으로 어떠한 test_1(), test_2(), test_3() 이라는 메소드를 순차적으로 호출하면 직전 메소드의 실행이 종료된 뒤에야 다음 메소드가 실행되고 이를 블로킹 방식이라 한다. 하지만 @Async를 사용하면 별도의 스레드에서 작업을 처리하기 때문에 직전 메소드의 종료와 무관하게 곧바로 다음 메소드가 실행되도록 할..