강의를 들으며 내가 알고 있는 내용을 점검하고,
새로 배운 내용을 정리하며,
궁금한 내용을 알아가며 학습해나가는 것을 목표로 합니다.
단일 페이지 웹 어플리케이션이란 화면에 그려지는 내용을 서버에서 처리하지 않고, 브라우저에서 동적 렌더링을 처리하는 것 입니다.
즉, 사용자 인터렉션에 의해 URL이 변경 시 화면 전체의 로드가 없이 화면의 일부분만 동적으로 렌더링합니다.
Ajax를 이용해서 대부분의 리소스들은 어플리케이션 로드 시 한 번 읽습니다.
그 후 JSON과 같은 데이터만 어플리케이션 실행 중에 읽어오고 관련된 화면을 변경시키는 방법으로 동작합니다.
웹에서 돌아가는 클라이언트 어플리케이션은 근본적으로 취약한 보안구조를 가지고 있습니다.
개발자 도구를 통하여 소스 코드를 직접 볼 수 있고 DOM의 구조, 통신하는 서버, 리소스의 출처등을 쉽게 알 수 있기 때문입니다.
그렇기 때문에 브라우저는 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 합니다.
(https://velog.io/@sangmin7648/SOP-CORS란)
Same Origin Policy는 다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식입니다.
URL의 Protocol, Host, Port를 통해 같은 출처인지 판단할 수 있습니다.
셋 중 하나라도 다르면 다른 출처입니다.
CORS는 추가 HTTP 헤더를 사용하여 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제입니다.
Proxy 서버를 설정해서 해결합니다.
Spring Boot의 auto-configuration은 추가한 jar 파일에 따라 자동으로 설정을 도와줍니다.
@EnableAutoConfiguration
또는 @SpringBootApplication
주석을 통하여 사용 할 수 있습니다.
Spring Boot가 시작될 때, 클래스패스에 있는 spring.factories 파일을 찾습니다.
이 파일은 스프링 부트가 실행할 설정 클래스들의 이름들을 담고 있습니다.
resources/META-INF/spring.factories 중 EnableAutoConfiguration 부분에 정의된 Configuration들을 자동으로 등록합니다.