delpho

Spring에 대하여 - 1 본문

CS

Spring에 대하여 - 1

delpho 2022. 6. 2. 01:08

1. Spring DI/IoC는 어떻게 동작하나요?

 

# IoC 

  •  객체 지향 언어에서 Object간의 연결 관계를 런타임에 결정하는 것 
    • 일반적으로는 객체 생성이 필요한 위치에서 개발자가 직접 new를 통해 생성 
      • 런타임이 아닌 컴파일 시 결정됌

IoC 분류 및 유형

 

# DI

  • 객체간의 의존관계를 의존 관계를 컨테이너가 설정할 수 있도록 지정해주는 방식
  • 객체간의 연결 관계가 느슨해짐 (기존의 생성 방법은 결합도가 높음)

 

 

 

2. Spring Bean이란 무엇인가요?

  • sclass를 생성하고 new를 통해 생성한 객체가 아닌, Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 부름
  • 주의! java Bean이랑은 다름
    • java bean
      • jsp에서 주로 사용되는 것, 데이터 전달을 위해 사용 (DTO 랑 비슷한 역할)
      • 클래스는 패키지화 되어야한다.
      • 멤버변수는 property(프로퍼티)라고 부른다.
      • 접근제한자는 private
      • 외부접근은 getter, setter로 접근한다.
      • 프로퍼티가 boolean이면 get이 아니라 is사용해도 된다.

 

 

 

3. 스프링 Bean의 생성 과정을 설명해주세요.

 

# Spring Bean의 생성 주기

  • 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존 관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료
    • 스프링 컨테이너가 생성되고 초기화 할 때, 설정 정보에 따라 Bean 객체를 생성한 후, 의존관계 설정
    • 그 후, Bean 객체가 지정한 메소드를 호출하여 초기화 진행
    • 스프링 컨테이너가 종료될 때, Bean 객체가 지정한 메소드를 호출하여 Bean 객체 소멸을 처리.

 

 

 

4. 스프링 Bean의 Scope에 대해서 설명해주세요.

 

# Bean Scope

  • 스프링 컨테이너는 singleton 화 시킨 Bean을 관리하는데, 이 때 Bean이 관리되는 범위를 Bean Scope라고 함.

+ Applicaiton : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프

 

 

 

5. IoC 컨테이너의 역할은 무엇이 있을까요?

  • 객체 생성, 관계설정, 사용, 제거 등의 작업을 담당

 

'CS' 카테고리의 다른 글

Java에 대하여 - 3  (0) 2022.06.10
Java에 대하여 - 2  (0) 2022.06.08
Java에 대하여 - 1  (0) 2022.06.08
Spring에 대하여 - 3  (0) 2022.06.04
Spring에 대하여 - 2  (0) 2022.06.03