웹 환경에서만 동작.
프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 매서드가 호출된다.
아래처럼 각 HTTP 요청 하나마다 컨트롤러가 빈 두개 만들고 서비스 로직도 그에따른 빈에 로직 적용해주고 반환해줌

아래는 request 관련 예제인데 되게 유용할 거 같아서 남겨 놓음.

위 그림처럼 한번의 http요청마다 빈의 생성과 어떤 요청을 했고 언제 닫혔는지 UUID(사용자 고유 id)와 함께 나타내주면 로그를 볼 수 있어 유용할 듯!!


보면 uuid는 생성자로 초기화 안하고, 빈 생성할때(@PostConstruct)로 init()으로 해당 빈의 멤버변수를 고유id처럼 uuid를 만들어준다. UUID.randomUUID().toString(); 이 함수는 글로벌적으로 절대 안겹치는 유저의 고유 아이디를 생성해준다.
그리고 http 요청 당 하나씩 빈이 생성되므로, uuid만 저장해두면 http 요청을 구분할 수 있다~!