스프링 프레임워크(Spring Framework)의 특징(1)

Jonyuuuk·2022년 10월 12일
0

스프링

목록 보기
2/7

스프링이 가지는 특성


  • POJO(Plain Old Java Object) : Java로 생성하는 순수한 객체

    • 순수 Java 객체가 다른 기술이나 환경에 종속되지 않도록 하기 위한 프로그래밍 기법
    • 특정 환경이나 기술에 종속적이지 않으며, 확장 가능한 유연한 코드 사용
    • 저수준 레벨의 기술과 환경에 종속적인 코드를 제거함으로써 코드가 간결해짐
      - 객체지향적인 설계를 제한없이 적용할 수 있음
  • 스프링과 POJO 와의 관계

    • 스프링은 POJO 프로그래밍을 지향하는 프레임워크
    • 이를 위해서 지원하는 세 가지 기술이 존재
    • 이 세가지가 상단의 그림에 해당하는 IoC/DI, AOP, PSA

IoC/DI

  • 제어의 역전(Inversion of Control)

    • 메서드나 객체의 호출작업이 개발자가 결정하는 것이 아닌, 외부에서 결정되는 것

    • 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성함으로써 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있음

      • 기존의 객체 생성 및 실행 과정
        1) 객체 생성
        2) 의존성 객체 생성(클래스 내부에서)
        3) 의존성 객체 메서드 호출
      • 스프링에서의 객체 생성 및 실행 과정
        1) 객체 생성
        2) 의존성 객체주입(DI)
        3) 의존성 객체 메서드 호출
  • 의존성 주입(Dependency Injection)

    • 객체 간에 의존성을 객체 내부에서 해주는 대신, 외부에서 객체를 생성해서 넣어주는 방식
      • 기존의 객체 간 의존성 설정 방법
        • A 클래스 내에서 B 객체를 new B()를 통해 생성해서 넣어줌
        • B 클래스에서 싱글톤 패턴을 이용해서 자신의 객체를 생성해둔 것을 A 클래스 내에서 getInstance() 등의 메서드를 통해 받아서 넣어줌
        class A {
        B b = new B();
        }
        
        class B {}

하지만 위와 같은 방식은 객체 간의 높은 결합도를 가지게 되어 유지보수에 어려움이 존재하게 됨
(만약 클래스 B가 아닌 D로 설정해야 할 경우, 코드를 일일이 뜯어 고쳐야 함)

따라서 Spring에서는 객체 간의 관계 설정을 클래스 내부에서 하는 것이 아닌, Spring container 를 통해 외부에서 객체를 생성한 뒤 주입해주는 방식을 채택하였고, 이를 의존성 주입(IoC)이라고 한다.

profile
열쩡맨이 되고싶습니다

0개의 댓글