2장 스프링 특징과 의존성 주입

suu1006·2022년 7월 17일
0
  • 프레임워크 = 뼈대나 근간을 이루는 코드들의 묶음.
    일정한 품질이 보장되는 결과물을 얻을 수 있고, 개발 시간을 단축시킬 수 있음.

경량 프레임워크

간단한 jar 파일을 이용해서 모든 개발이 가능하도록 구성된 프레임워크

1. 스프링의 주요 특성

  1. POJO 기반의 구성
  2. 의존성 주입을 통한 객체 간의 관계 구성
  3. AOP 지원
  4. 편리한 MVC 구조
  5. WAS 의 종속적이지 않은 개발 환경
  • POJO 기반의 구성
    - 일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있음.
    - 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미.
    - 생산성에서도 유리하고, 테스트 작업도 유연하게 가능.

  • 의존성 주입(DI)와 스프링
    - A객체가 B객체 없이 동작이 불가능한 상황을 A가 B에 의존적이다라고 표현.
    - 주입= 밀어넣는 것

    • 의존성과 주입을 결합해서 생각해보면 어떤 객체가 필요한 객체를 외부에서 밀어넣는다!라는 의미가 됨.

    ex > 음식점으로 대행업체 배송 : 편리하다, 장사에만 집중할 수 있다.
    코드 >>> 어떤 객체인지 신경쓸 필요가 없다. 어떤 객체에 의존하든 자신의 역할은 변하지 않는다.

  • 의존성 주입 방식을 사용하려면 바깥쪽 도형처럼 추가적인 하나의 존재가 필요하게 됨. = 이 존재는 의존성이 필요한 객체에 필요한 객체를 찾아서 주입하는 역할을 하게 됨.

  • 스프링에서는 ApplicationContext 라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해주는 구조.

  • 개발자들은 기존의 프로그래밍과 달리 객체와 객체를 분리해서 생성하고, 이러한 객체들을 엮는 작업을 하는 형태의 개발을 하게 됨.

  • 스프링에서는 ApplicationContext 가 관리하는 객체들을 빈(Bean)이라고 부르고, 빈과 빈 사이의 의존관계를 처리하는 방식으로 XML 설정, 어노테이션 설정, Java설정 방식을 이용할 수 있음.

2. AOP 지원

좋은 개발환경의 주요 원칙 = 개발자가 비즈니스 로직에만 집중할 수 있게 한다.
이 목표를 이루기 위한 원칙 = > 반복적인 코드의 제거

비즈니스 로직은 아니지만, 반드시 처리가 필요한 부분 = 횡단 관심사
AOP는 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임.

스프링은 AOP를 AspectJ 문법을 통해서 작성할 수 있음.

  • 트랜잭션의 지원
    - 스프링은 어노테이션이나 xml로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계됨.

  • 의존성 주입 테스트

      1. 생성자를 이용한 주입
      1. setter 메소드를 통한 주입
  • 스프링은 클래스에서 객체를 생성하고 객체들의 의존성에 대한 처리작업까지 내부에서 모든것이 처리됨.

  • 스프링에서 관리되는 객체 = 빈(Bean)

  • XML과 Java 를 이용해서 처리할 수 있음.

0개의 댓글