이름이 비슷하지만 완전 다른 것들
CORS는 웹 보안 정책이고 CQRS는 백엔드 아키텍처 패턴이다.
다른 출처 간의 요청을 허용할지 말지를 서버가 제어하는 보안 매커니즘.
다른 출처란?
예를 들어,
a: https://example.com
b: http://example.com <- 프로토콜 다름
c: https://api.example/com <- 다른 서브도메인
d: https://example.com:8080 <- 포트 다름
클라이언트(브라우저)와 서버 사이에서 다음과 같은 절차(패턴)으로 작동한다.
조건이 충족될 경우, 브라우저는 사전 요청(preflight) 없이 서버에 바로 요청을 보낸다
조건
Accept, Accept-Language, Content-Language, Content-Type (Content-Type은application/x-www-form-urlencoded, multipart/form-data, text/plain중 하나여야 함)조건이 맞지 않으면 브라우저는 먼저 OPTIONS 요청을 보내 서버사 요청을 허용하는지 확인한다.
PUT, DELETE같은 메서드 사용 또는 Content-Type: application/json같은 특별한 헤더 포함 시에.
요청 흐름
1. 브라우저 -> 서버: OPTIONS 요청 (preflight)
2. 서버 -> 브라우저: 허용 여부 응답
3. 브라우저 -> 서버: 실제 요청
명령(Command)과 조회(Query)의 책임을 분리하는 아키텍처 패턴
장점
단점
Order: 명령용, OrderData: 조회용 으로 두 모델로 분리CQRS는 복잡한 비즈니스 로직과 고성능 조회가 필요한 시스템에서 유용하나, 복잡성이 증가하므로 상황에 맞게 신중히! 도입해야 한다.