4. SpringFramework(스프링 프레임워크) - SOLID 원칙(2)

한승록·2024년 9월 8일
0

스프링 기초

목록 보기
4/9
post-thumbnail
  • 인프런 김영한님 강의를 본인의 이해를 바탕으로 작성한 글이므로 틀린 부분이 존재할 수 있습니다.
  • 구체적인 예시를 함께 보시면 이해가 더 빠를 수 있습니다.

1. 적용 원칙

1 - 1. IoC(Inversion of Control, 제어의 역전)

  • SOLID 방식을 적용하기 이전에는 클라이언트 코드에서 프로그램 제어 흐름을 조종하는 역할도 동시에 수행
  • ex)

@Service
public class BuisinessService() {
	
    @Autowired
    BuisinessServiceImpl bussinessService = new 구현객체();
}
  • AppConfig와 같은 클라이언트 코드와 구현 객체 생성을 분리하는 클래스를 활용하게 되면 제어의 역전을 구현 가능

  • 구체적 예시

  • 부연 설명

    • 프레임 워크 vs 라이브러리
      • 프레임워크 : 프레임워크가 개발자의 코드를 대신 실행하고 제어
      • 라이브러리 : 개발자가 직접 실행 및 제어를 하는 경우

1 - 2. DI(Dependency Injection, 의존관계 주입)

1) 선제 조건

  • 추상화를 통한 구현 객체 제어
  • 각 클래스 별 단일 원칙 책임 준수

2) 정적 클래스 의존 관계

  • 애플리케이션을 실행하지 않은 경우에도 분석 가능
  • Impl에서 인터페이스를 호출하여 의존 관계 성립
    • 해당 의존관계에서 실제 어떤 구현 객체가 주입되는지 확인은 불가능
  • ex)

3) 동적 객체 인스턴스 의존 관계

  • 의존관계 주입 : 실행 시점에서 외부에서 구현 객체를 생성하고 클라이언트에 전달하여 서버와의 실제 의존관계가 연결되는 것을 의미
    • 의존관계 주입 방식을 통해 클라이언트 코드를 변경하지 않고 호출하는 대상의 인스턴스 변경 가능

1 - 3. 컨테이너

  • AppConfig와 같이 객체 생성과 의존관계를 연결해 주는 것을 IoC 컨테이너 혹은 DI 컨테이너라고 지칭
    • 최근에는 의존관계 주입에 초점을 두고 DI 컨테이너라고 주로 지칭
profile
개발 학습

0개의 댓글