less than 1 minute read

AOP, IOC, DI

  1. Dependency
    • implementation ‘org.springframework.boot:spring-boot-starter-aop’
  2. AOP
    • 스프링은 대부분 MVC 웹 어플리케이션에서는 3가지 Layer로 정의
    • Web Layer : RestAPI 제공 Client 중심의 로직 적용
    • Business Layer : 내부 정책에 따른 로직을 개발, 주로 해당 부분 개발
    • Data Layer : 데이터 베이스 및 외부 연동 처리
  3. Annotation
    • Aspect : 부가 기능 모듈화
    • JoinPoint : 메소드의 정보
    • Before : 메소드 실행 전
    • After : 메소드 실행 후
    • After-returning : 메소드가 정상적으로 실행된 후
    • After-throwing : 예외가 발생한 후
    • Around : 메소드 호출 이전, 이후, 예외발생 등 모든 시점
    • Component : 직접 작성한 Class를 Bean으로 등록
이해도 낮음
  1. Ioc
    • 스프링에서 일반적인 자바 객체를 new 로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에 모두 맡긴다.
    • 즉 개발자에서 프레임워크로 객체 관리의 권한이 넘어감(제어의 역전)
  2. DI
    • 스프링이 알아서 객체의 생명주기 관리
    • 객체를 관리하기위해 주입 받음
  3. 장점
    • 의존성으로 부터 격리시켜 코드 테스트 용이
    • DI 통해 불가능한 상황을 Mock와 같은 기술로 안정적 테스트
    • 코드를 확장, 변경 시 영향 최소화(추상화)
    • 순환참조를 막음