IoC를 통해서 개발자가 비즈니스 로직에만 집중할 수 있도록 하겠다.
객체의 생명주기 관리를 스프링 컨테이너에 위임함-> 이를 통해 DI와 AOP(??)가 가능해짐.
스프링 프레임워크가 공통부분 관리를 다 해줌
스프링 프레임워크는 프락시 패턴을 이용한 방식으로 AOP 기능 제공
-> 비즈니스 로직에서 반복되는 부가 기능을 하나의 공통 로직으로 처리하도록 보듈화해 삽입하는 방식을 AOP라고 합니다.
어떤 기능을 구현할 때 그 기능을 핵심기능과 부가기능으로 구분해 각각을 하나의 관점으로 보는 것.
비즈니스 로직이 처리하려는 목적 기능
예시) 상품정보를 데이터베이스에 저장하고, 저장된 상품 정보 데이터를 보여주는 코드
예시) 핵심 기능인 비즈니스 로직 사이에 로깅 처리를 하거나 트랜젝션을 처리하는 코드 등
스프링 프레임워크는 20여개의 모듈을 제공함. 하지만 각 모듈을 사용하기 위한 설정 정보가 너무 많이 필요함 -> 이를 간략화한 것이 Spring boot
각 기능별로 서버를 둬서 기능끼리(서버끼리) 통신하도록 함(대표적으로 HTTP/HTTPS 방식, TCP/IP, SOAP등 다양하게 존재)
클라이언트 - Servlet 컨테이너 - Dispatcher Servlet - 핸들러 매핑 - RestController - MessageConverter - HTTP 응답
요청과 응답에 대해 Body값을 변환하는 역할을 수행함.
클라이언트의 요청을 해석하고 응답하는 역할
데이터 베이스에 접근하는 일련의 작업 수행
캬.... 지렸다...