03장. 스프링 프레임워크의 핵심 기능 알아보기

정빈·2023년 6월 4일
0

1. 스프링 프레임워크의 핵심 기능

  • 의존성 주입(Dependency Injection)
    - 의존하는 부분을 외부에서 주입하는 것
  • 관점 지향 프로그래밍(Aspect Oriented Programming)
    - 중심적 관심사 : 실현해야 할 기능을 나타내는 프로그램
    - 횡단적 관심사 : 본질적인 기능은 아니지만 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램
    -> 횡단적 관심사를 추출해 개발자는 실현해야 할 기능인 중심적 관심사에만 집중하도록 하는 구조

2. DI 컨테이너

  • 의존성
    - 클래스 의존(구현 의존) : 사용되는 객체 클래스를 변경할 경우 사용하는 객체 클래스에서 수정이 요구됨
    - 인터페이스 의존 : 인터페이스만 수정하면 되기에 클래스 의존에 비해 수정을 줄일 수 있음

  • DI 컨테이너
    - 임의로 구현한 클래스를 인스턴스로 만들어주는 기능을 제공

  • 규칙
    -인터페이스를 이용하여 의존성 생성
    -인스턴스를 명시적으로 생성하지 않기
    -어노테이션을 클래스에 부여
    -스프링 플레임워크에서 인스턴스 생성
    -인스턴스를 이용하고 싶은 곳에 어노테이션 부여

    어노테이션개요
    @Controller인스턴스 생성 지시, 스프링 MVC를 이용할 때 컨트롤러에 부여
    @Service인스턴스 생성 지시, 트랜잭션 경계가 되는 도메인 기능에 부여
    @Repository인스턴스 생성 지시, 데이터베이스 액세스 기능에 부여
    @Component위 용도 이외의 클래스에 부여

3. 어노테이션의 역할

  • 어노테이션
    -주석을 의미하는 영어 표현
    -'@xxx' 형태로 작성
    -외부 SW에 필요한 처리 내용 전달

  • 레이어

    레이어개요어노테이션
    애플리케이션 레이어클라이언트와 데이터 입출력 제어@Controller
    도메인 레이어업무 처리 수행@Service
    인프라스트럭처 레이어데이터 베이스에 대한 데이터 영속성 등을 담당@Repository

4. AOP(관점 지향 프로그래밍)

  • 고유 용어
    용어내용
    Advice횡단적 관심사 구현(메서드), 로그 출력, 트랜잭션 제어 등
    - 종류: Before, After Returning, After Throwing, After, Around
    AspectAdvice 를 정리한 것(클래스)
    JoinPointAdvice를 중심적 관심사에 적용하는 타이밍, 메서드(생성자) 실행 전후 등
    PointcutAdvice를 삽입할 수 있는 위치
    Interceptor처리의 제어를 인터셉트하기 위한 프로그램
    TargetAdvice가 도입되는 대상
  • 주요 사항
    -프로그램은 2개의 요소인 중심적 관심사와 횡단적 관심사로 구성
    -중심적 관심사란 구현해야 할 기능을 나타내는 비즈니스 로직
    -횡단적 관심사란 본질적인 기능 외 꼭 필요한 프로그램
    -횡단적 관심사를 분리하여 기존 코드를 수정하지 않아도 프로그램 중에 특정 기능 추가 가능
    -다양한 특정 기능(공통 기능)을 스프링 AOP에서 제공

0개의 댓글