
Caller에서 호출하면 메서드가 스프링이 개입하여 순수한 메서드 호출이 아닌 Wrapping된 메서드를 사용하게 만든다.
프록시 객체로 랩핑을 하여 어싱크하게 동작이 가능하게 한다.
순수한 빈이 아니라 랩핑된 것을 받아오고 여기서 스프링이 개입한다는 것을 기억하자.

이 케이스는 스프링의 컨테이너라든지 그런 것을 사용하는 것이 아니라 개발자가 클래스 선언하고 사용하는 것이라 스프링이 도와줄 여지를 주지 않아서 1개의 쓰레드가 모두 처리한다.

이 케이스도 내부 메서드를 호출하였기에 스프링 빈 컨테이너의 도움이나 프록시로 감싸는 과정이 없어서 하나의 쓰레드로 동작하게 된다.

기본적으로 어싱크하게 동작하기 위해서는 스프링의 도움이 필요하다.
그래서 스프링의 도움을 받아 어싱크로 동작할 수 있게 도와줘야한다.
만약에 스프링 컨테이너의 빈을 사용하지 않거나 인스턴스를 생성하는 케이스(asyncCall_2)이나 내부 메서드 호출(asyncCall_3)의 케이스는 어싱크하게 동작하지 못하게 된다.
그래서 테스트 코드로 연습을 하거나 로그를 찍어서 확인하는 습관을 가지자