Spring MVC 전체 과정
클라이언트로부터 요청이 들어오면 디스패처서블릿은 해당 요청을 처리할 해들러 이름을 알아내기 위해
핸들러 매핑에 해당 요청을 전달해줍니다.
핸들러 매핑은 핸들러이름과 핸들러 전 후에 필요한 인터셉터를 디스패처 서블릿에 전달해줍니다.
디스패처 서블릿은 핸들러명과 함께 제어권을 핸들러에게 넘기고, 해당 핸들러는 사용자 요청에 대한 로직을
수행한 결과값과 View 이름을 디스패처 서블릿에 전달하고 이 과정에 Model이 같이 생성됩니다.
처리한 결과값과 View이름을 전달받은 디스패처서블릿이 다시 ViewResolver에 해당 이름을 전달하고
ViewResolver에서 View를 통해 View를 검색 한 후 해당 결과 값을 다시 디스패처서블릿에게 전달해주면
디스패처서블릿이 사용자에 출력값을 반환해줍니다.
IOC
인스턴스의 생성부터 소멸까지 개발자가 아닌 컨테이너가 대신 관리해주는 것을 말합니다.
DI
외부(IOC 컨테이너)에서 객체 생성후 주입시켜주는 방식입니다. 앱 실행 시점에 객체를
생성하고 관계를 결정하고 객체 간 의존성을 줄이는 것이 특징입니다.
생성자 주입
setter 주입
AOP
기존 OOP 에서 기능별 클래스로 분리했음에도 트랜잭션, 자원해제, 성능테스트 메서드와 같이 공통되는
중복코드가 발생하는 단점이 생기는데 이를 해결하기 위해 비즈니스 로직 앞 뒤에서 공통 관심사를 수행
할 수 있게 중복 코드를 줄이
는 방식이 AOP입니다.