spring ioc, di, psa 개념

Simple is Best·2021년 4월 2일
0

Spring

목록 보기
1/6

1. IOC

1.1 배경

  • 자바 플랫폼이 어플리케이션 개발에 관련된 풍부한 기능을 제공하더라도 기본적으로 이러한 기능들을 하나의 큰 구조로 만드는 기능은 부족하다.
  • 스프링 프레임워크 제어의 역전 (IoC) 컴포넌트는 이러한 관심사에 접근한다.
  • 즉, 서로 다른 기능들을 하나의 커다란 프레임워크로서 관리하는 것에 초점을 두고 있다.

1.2 개념

  • 인스턴스 생성의 제어를 개발자 본인이 아닌 다른 누군가 처리.
  • 즉 IOC 란 인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너가 대신 관리해준 다는 것이다.
  • POJO (bean) 을 관리
    • POJO 란 컴포넌트 등의 의존성이 없는 자바 오브젝트 객체를 말한다.
  • IOC Container 는 BeanFactory, ApplicationContext 를 말한다.
  • 정확히는 BeanFactory 내부에서 ResourceLoader 를 가지고 있고, 이를 getBean 등을 통해서 접근할 수 있다.

2. DI

  • DI는 Dependency Injection(의존성 주입)의 약자로, 객체들 간의 의존성을 줄이기 위해 사용되는 Spring IOC 컨테이너의 구체적인 구현 방식이다.
  • 설정 파일을 통해 객체간의 의존관계를 설정함으로써 Ioc Container 가 객체간의 의존 관계를 정의

3. PSA

  • Portable Service Abstraction
  • 환경의 변화에 상관없이 일관된 방식으로의 접근 방식 제공
  • 예를 들면, MyBatis 나 Jpa 를 단독 모듈로 사용할 때랑, 스프링에서 사용할 때 사용 방식에 큰 차이가 없는 것이 한 예시임.
  • 이것이 Spring 이 지향하는 사상이며, 그렇게 하기 위해 중간 interface 에서 조절하는거지.
profile
Simple is best

0개의 댓글