@Scope("singleton")
@Scope("prototype") // 매번 새로운 bean 객체 할당

문제점) 싱글톤이기에 쇼핑카트가 공유되고 있음
→bean을 싱글톤이 아니게 설정할 수 있다.
Product 3개(붕어빵/우유/물)는 상품 진열대처럼 한 번 만들어 두고 계속 씀ShoppingCart는 손님마다 새 카트를 주려 함
@Bean public Product carpBread() { ... } // 기본: singleton
@Bean public Product milk() { ... } // 기본: singleton
@Bean public Product water() { ... } // 기본: singleton
@Bean
@Scope("prototype") // 요청(getBean)마다 새 인스턴스
public ShoppingCart shoppingCart() { ... }
ShoppingCart cart1 = context.getBean("shoppingCart", ShoppingCart.class);
ShoppingCart cart2 = context.getBean("shoppingCart", ShoppingCart.class);
cart1과 cart2는 다른 객체(prototype) → 손님마다 다른 카트carpBread/milk/water는 같은 객체(singleton) → 재고 하나씩 공유되는 개념⇒ 스코프로 빈의 수명/개수를 결정한다.
singleton: 컨테이너당 1개prototype: getBean() 호출할 때마다 새 인스턴스