CORS 에러가 발생하는 상황에서도 서버는 작업을 수행하는 것은 잘 모르겠지만, 혹여나 그런 상황이 발생한다면 무의미한 작업을 처리하는 것보다는 미리 방지하는 게 맞다고 생각합니다. 작업이 실패할 것이 명확함에도 귀중한 서버 자원을 낭비할 이유는 없으니까요. 서버 입장에서 궁금하신 것 같아보이십니다. 아는 선에서 추천드리는 키워드는 Web Server, Web Application Server 두 가지의 차이점을 알아보면 좋을 것 같습니다. 또는 Proxy Server를 활용하여 서버 대 서버 통신 환경을 조성해서, CORS라는 브라우저의 규약을 피할 수도 있겠네요. 코드 수준에서는 어떠한 언어 및 프레임워크를 사용하시는 지는 모르겠으나, 대표적으로는 js의 cors 라이브러리나 spring WebMvcConfigurer 인터페이스의 addCorsMappings를 살펴보시면 좋을 것 같네요. 아니면 아예 nginx 같은 걸 찾아보시는 것도 추천드립니다. 개인적인 경험으로는 CORS와 같이 사전에 Request를 검증하는 것은 다음과 같은 선택지가 있었습니다. 1. Nginx와 같은 Web Server에서 미리 CORS 설정을 한다. 2. ExpressJS, Spring과 같은 Web Application Server(WAS)에서 interceptor를 통해 CORS 설정을 한다. 1번은 WAS까지 가지 않아도 Web Server에서 미리 출처를 검사해서, 더 빠르면서도 WAS의 자원을 낭비하지 않아도 된다는 장점이 있었습니다. 다만 이런 Web Server의 코드는 Github와 같이 온라인에 올리기에는 민감한 정보가 많아서, 각 서버 컴퓨터 인스턴스마다 private하게 구현해야하는 불편함이 있었어요. 반대로 2번은 WAS의 자원을 사용하지만, 코드 관리에 더 용이했었습니다. 최근에 CORS를 직접적으로 건드릴 때 1번과 2번 중 고민이 많았는데, 코드 관리의 이점을 고려해서 2번을 택했었습니다. 과거 구글링 도중 Gateway나 Load balance에서도 CORS 관련해서 잠깐 스쳐지나갔던 것 같은데, 자세히는 모르기 때문에 언급만 드립니다ㅎㅎ 마지막으로 최근 학부 프로젝트에서 구현했던 js cors 코드입니다. 도움이 되었으면 좋겠네요 ☺️ https://github.com/ajou-only-five/server/blob/main/src/utils/cors.js

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 1일 오후 4:19

조회 338

댓글 0