Spring AOP 학습 이전에 필수로 알고 있어야 할 스프링 지식들을 확인하는 시험입니다. 24시간 안에 답을 적어서 저에게 메일로 제출해주세요.

1.    FactoryBean에 대해서 설명하세요.
2.    FactoryBean에서 getObject()가 돌려주는 객체 말고, FacotryBean 자체를 받아오려면 어떻게 해야 하나요?
3.    BeanFactory와 ApplicationContext의 공통적인 Life-cycle 클래스들의 나열하고 각자의 역할들을 설명하세요.
4.    Bean을 생성하고 소멸시킬 때 특정 메소드를 호출하는 방법에는 어떤 것들이 있으며, 그 방법 들 중에 어떤 방법이 더 좋을지, 이유와 함께 설명하세요.
5.    Bean들 사이에서 Circular Dependency가 있을 경우 어떤 일이 발생하는지, 그리고 해결할 수 있는 방법들을 나열해 주세요.
6.    Autowiring을 사용하여 byType으로 빈을 주입할 때, 같은 타입의 빈이 두 개 이상일 때 어떤 현상이 발생하나요?
7.    Lookup method injection과 Arbitrary method replacement가 무엇인지 설명하세요.
8.    @Autowired는 빈의 타입을 사용하여 종속성을 주입합니다. 이 때, 같은 타입의 빈이 여러 개라면, 어떻게 해야 하나요?
9.    <context:component-scan> 설정을 등록해보세요. 기본 패키지는 me.whiteship 이며, 단, org.springframework.stereotype.Controller 애노테이션이 붙어있는 것들은 컴포넌트 스캔 대상에서 제외합니다.
10.    <tx:annotation-driven transaction-manager="transactionManager"/> 이 빈 설정에는 불필요한 설정이 있습니다. 그 설정이 무엇이며 이유가 뭔가요?

다음은 OX 퀴즈입니다.

11.    웹 서버에서 동작할 스프링의 Singleton Scope 빈은 반드시 Thread-Safe 해야 한다.
12.    스프링에서 선언적인 트랜잭션 관리를 할 때는 반드시 Proxy(CGLib이던 JDK의 Proxy건)를 사용해야 한다.
13.    ApplicationContext는 모든 Singleton 스코프의 빈을 초기에 생성한다.
14.    JtaTransactionManager는 nested transactions을 지원한다.
15.    ApplicationContext – B가 ApplicationContext – A를 상속하고 있을 때, 즉 A가 부모, B가 자식 관계일 때, A에 있는 빈이 B에 있는 빈을 참조할 수 있다.

마지막으로 Spring Masters에서 스프링 AOP 학습을 하려는 이유와 목적이 무엇인지 말씀해주세요. 수고하셨습니다.

시험을 치르고자 하시는 분들은 저에게 메일을 주시면 위와 동일한 문제를 담고 있는 워드 파일을 보내드립니다. 시험 방식은 오픈북이며, 시간 제한은 24시간입니다. 오늘 보내드리면, 적어도 내일 저녁까지는 제 메일 함으로 와야 합니다. 그럼 제가 답변들을 검토한 다음 피드백과 함께 참가 가능 여부를 메일로 보내드리겠습니다.

위 문제들이 너무 쉽다고 스터디도 쉽게 보시면 안 됩니다. 위 문제들을 풀 수 있느냐가 중요 한 게 아닙니다. 이 시험은 스프링 AOP 스터디 참가 조건 중 하나 일 뿐이라는걸 알아주세요.

본 글에 댓글로 질문에 대한 답변이나 또 다른 질문을 하시는 건 자제해주세요. 경우에 따라서는 삭제할 수도 있습니다. ;)