본문 바로가기

공부 기록/Spring

(10)
[Spring] AOP AOP(Aspect Oriented Programming) - 관점 지향 프로그래밍 - 관점 지향 => 핵심적인 관점, 부가적인 관점으로 나누어서 그 관점을 기준으로 각각 모듈화한다. MVC 웹 어플리케이션에서는 대부분 Web Layer, Business Layer, Data Layer로 정의된다. - Web layer : REST API를 제공, 클라이언트 중심의 로직 적용 - Business layer : 내부 정책에 따른 로직 개발 - Data layer : DB 및 외부와의 연동 처리 - 특정한 함수 호출 전이나 후에 공통적인 처리가 필요할 때 유용하다. => 로깅, 트랜잭션, 인증 - OOP로 처리하기에는 다소 까다로운 부분을 AOP를 도입하여 공통 기능을 쉽게 추가/수정/삭제할 수 있도록 한다..
[Spring] IoC(Inversion of Control, 제어의 역전), DI IoC(Inversion of Control, 제어의 역전) - 스프링에서는 일반적인 자바 객체를 new로 생성하여 개발자가 관리하지 않고 스프링 컨테이너에게 맡긴다. (싱글톤의 형태로 관리된다.) - 즉, 객체나 메서드에 대한 제어의 관리 권한을 제3자인 프레임워크로 넘긴다. 이를 "제어의 역전"이라고 한다. - 스프링 프레임워크의 가장 큰 특징이다. - IoC의 주된 목적: 의존 관계를 제거 => 느슨한 결합을 제공 => 클래스의 재사용성을 높임( => 중복 코드 제거) DI(Dependency Injection) 외부(스프링 컨테이너)로부터 사용할 객체를 주입 받는다. DI의 장점 의존성으로부터 격리시켜(의존하고 있는 객체와 분리하여), 코드 테스트에 용이하다. 불가능한 상황을 Mock와 같은 기술..