강의를 들으며 내가 알고 있는 내용을 점검하고,
새로 배운 내용을 정리하며,
궁금한 내용을 알아가며 학습해나가는 것을 목표로 합니다.
애플리케이션 컨텍스트를 상속하고 있으며, 서블릿 컨텍스트에 접근할 수 있는 기능(getServletContext())이 추가된 인터페이스 입니다.
서블릿 컨텍스트는 서블릿 컨테이너에 의해서 만들어지는데, 여러 서블릿이 공유가 가능한 정보를 담고 있는 객체입니다.
결국 웹 스프링에서는 두 가지 어플리케이션 컨텍스트가 존재하고, 웹과 관련된 UI성 빈은 웹 어플리케이션 컨텍스트에 등록하여 사용합니다.
이렇게 컨텍스트를 분리함으로써 Web 기술과 도메인을 분리하며, 의존 방향이 역전되거나 상호 의존하는 상황을 막고, AOP가 적용되는 범위를 제한할 수 있습니다.
계층별로 나눈 xml 설정 파일이 있다고 가정할 때, web.xml에서 모두 load 되도록 등록할 때 사용합니다.
서블릿 이전에 서블릿을 초기화 하는 용도로 쓰이며, contextConfigLocation 파라미터를 사용하면 contextLoader가 load할 수 있는 설정 파일을 여러 개 쓸 수 있습니다.
RootApplicationContext를 생성하는 클래스입니다.
REpresentational State Transfer는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식입니다.
로이 필딩의 2000년 박사 학위 논문에소 소개 되었고, 필딩은 HTTP의 주요 저자 중 한 사람입니다.
엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음입니다.
여기서 ‘네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 뜻 합니다.
즉 REST의 가장 기본적인 규칙은 URI는 자원을 표현하는데 집중하고 행위에 대한 정의는 HTTP Method를 통해 하는 것이 REST한 API를 설계하는 중심 규칙입니다.
간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 뜻 합니다.
API는 다양한 소프트웨어 컴포넌트들과 통신을 하기 위해 정의된 방법입니다.
즉 REST API는 REST 아키텍처 스타일을 따르는 API 입니다.
클라이언트-서버 (client-server)
무상태 (stateless)
캐시 (cache)
균일한 인터페이스 (uniform interface)
URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.
계층화된 시스템 (layered system)
Code-on-Demand (Optional)
(https://martinfowler.com/articles/richardsonMaturityModel.html)
하나의 리소스가 다양한 방식으로 표현 될 수 있다는 것을 의미합니다.
어떠한 리소스의 특정 시점의 상태를 반영하고 있는 정보이며 representation data와 representation metadatah로 구성되어 있습니다.
Hypermedia As The Engine of Application State (hey-dee-us)
접근 가능한 API들에 대한 정보를 추가적으로 제공합니다.
이를 통해 클라이언트는 해당 기능의 실행 가능 여부 및 실행하기 위해 필요한 데이터를 알 수 있게 되며,
API 개발자들은 API 엔드포인트를 제외한 나머지 URL들을 수정할 수 있습니다.
즉, 링크 정보를 동적우로 바꿀 수 있습니다.
URI는 정보의 자원을 표현해야 합니다.
리소스명은 동사보다는 명사를 사용합니다.
자원에 대한 행위는 HTTP method로 표현합니다.
슬래시 구분자(/)는 계층 관계를 나타내는데 사용합니다.
URI 마지막 문자로 슬래시(/)를 포함하지 않습니다.
하이픈(-)은 URI 가독성을 높이는데 사용합니다.