September 01, 2021
ApplicationContext를 상속
ServletContext에 접근할 수 있는 기능이 추가된 ApplicationContext
여러 서블릿이 공유가 가능한 정보를 ServletContext에 담는다. (공용 자원) - 여러 DispatcherServlet에서도 접근 가능
모든 WebApplicationContext가 접근 가능한 루트 ApplicationContext가 필요하다. -> ServletContext가 만들어질 때 루트 ApplicatoinContext가 만들어지고 setAttribute()를 통해 SetvletContext에 담겨진다.
SevletContextListener 인터페이스 : ServletContext가 만들어 질 때 (변경될 때) 호출된다.
ContextLoaderListener(구현클래스)을 통해 웹 애플리케이션 전체에서 사용 가능한 WebApplicationContext를 만든다. 이것을 루트 ApplicationContext라고 부른다.
루트 ApplicationContext를 만들고(service, data access 관련 repository 관리), DispatcherSevlet에 들어가는 ApplicationContext에는 MVC 관련 내용만 등록해서 부모-자식으로 설정하여 관리하게 한다.
setLoadOnStartUp(-1) -> -1이면 처음에 로드가 되지 않고 처음 API 요청이 있을 때 로드가 된다. / 0이나 1이면 처음에 같이 로드된다.
REST를 모두 충족하면 RESTful
REST(Representational State Transfer) : 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식
네트워크 아키텍처 원리의 모음
네트워크 아키텍처 원리란 자원을 정의하고 자원에 대한 주소를 지정하는 방법
웹 상의 자료를 HTTP위에서 SOAP나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 간단한 인터페이스를 의미한다.
REST API = REST 아키텍처 스타일을 따르는 API
클라이언트-서버
stateless
캐시
균일한 인터페이스(uniform interface)
계층화된 시스템(layered system)
HttpMessageConverter - 직렬화와 역직렬화 담당