본문 바로가기

분류 전체보기276

CORS( Cross‑Origin Resource Sharing ) 간단 정리 CORS (Cross‑Origin Resource Sharing) – 서비스·플랫폼 무관 요약1. 개념 & 배경동일‑출처 정책(SOP) 때문에 브라우저 스크립트는 다른 Origin 리소스 접근 제한 CORS는 서버가 HTTP 헤더로 “허용할 교차‑출처 범위”를 선언해 합법적 호출을 가능케 하는 표준 현재 Fetch Standard에 통합되어 모든 주요 브라우저가 지원2. 요청 흐름단계설명① Simple RequestGET / HEAD / POST + safelisted 헤더만 사용 → 바로 전송② PreflightNon‑simple(DELETE·PUT 등)·커스텀 헤더 시 OPTIONS로 허가 질의③ Actual RequestPreflight가 200 OK면 실제 메서드로 호출, 아니면 브라우저 차단.. 2025. 5. 7.
[MSA] 소비자 주도 계약 테스트(Consumer-Driven Contract Test, CDC) 엔드투엔드 테스트는 시스템 전체의 통합적인 동작을 검증할 수 있다. 하지만 실행 시간이 오래 걸리며, 실패 시 원인 분석이 복잡하다. 테스트 환경 구축도 매우 어렵다. 따라서 엔드투엔드 테스트는 최소화하는 것이 좋다. 엔드투엔드 테스트는 깨지기 쉽고, 유지보수 및 실행 비용이 높다. 이러한 엔드투엔드 테스트의 단점을 극복할 수 있는 방법으로 소비자 주도 계약 테스트가 효과적이다. 소비자 주도 계약 테스트란, 소비자가 자신이 실제로 서비스의 API를 어떻게 사용할 것인지에 대한 명세를 작성하고, 이 내용을 기반으로 실제 사용 사례에 맞춰 엔드투엔드 테스트를 설계하고 검증하는 방식이다. 즉, 불필요한 테스트 작성을 줄이고 꼭 필요한 시나리오 위주로 테스트를 작성하여 전체적인 테스트 비용을 줄일 수 있는 것.. 2025. 5. 7.
[MSA] 테스트 범위 UI 테스트 = 엔드투엔드(e2e) 테스트라고 봐도 무방 단위 테스트 (Unit Tests):가장 작은 범위의 테스트로, 일반적으로 단일 함수나 메서드를 검증한다외부 의존성을 배제하고 매우 빠르게 실행되어야 하며, 개발자에게 즉각적인 피드백을 제공하는 것을 목표로 한다TDD(Test-Driven Design)를 통해 생성되는 테스트들이 여기에 해당한다 서비스 테스트 (Service Tests):개별 마이크로서비스의 기능을 UI를 거치지 않고 직접 테스트한다.테스트 대상 서비스 외의 외부 협력자(다른 마이크로서비스, 데이터베이스 등)는 스텁(Stub)이나 모의 객체(Mock)로 대체하여 해당 서비스만을 격리하여 테스트한다.단위 테스트보다 범위가 넓지만, 엔드-투-엔드 테스트보다는 훨씬 적은 부분을 다루어.. 2025. 5. 7.
[MSA] 테스트 유형 사분면 하단에는 기술 대면 테스트, 즉 처음부터 개발자가 시스템을 구축하는 데 도움을 주는 테스트가 있다. 성능 테스트와 작은 범위의 단위 테스트같은 속성 테스트가 이 범주에 속하며 일반적으로 모두 자동화된다. 사분면의 상위 절반은 비기술 이해관계자가 시스템의 작동 방식을 이해하는 것을 돕는 테스트가 포함되며, 이를 비즈니스 대면 테스트라고 한다. 이 테스트에는 왼쪽 상단의 인수 테스팅 사분면에 표시된 것처럼, 넓은 범위의 엔드투엔드 테스트나 탐색 테스팅 사분면에 표시된 수동 테스팅이 포함된다. 단위 테스팅 : 좁은 범위의 단위 테스트속성(성능) 테스팅 : nGrinder와 같은 성능 테스트인수 테스팅 : 넓은 범위의 end to end 테스트탐색 테스팅 : 고객에 의한 최종 테스트 2025. 5. 7.
[MSA] 시간적 결합 시간적 결합은 한 모듈의 올바른 실행이 다른 모듈에 의해 수행되는 작업의 타이밍이나 순서에 의존하는 런타임 상황을 의미한다. 특히 분산 환경(ex. MSA)에서 동기식 호출을 사용할 때 주로 발생하는 문제이다. 동기식 통신 방식에서는 호출하는 서비스가 호출된 서비스로부터 응답을 받을 때까지 대기해야 하므로, 두 서비스는 시간적으로 강하게 묶이게 된다. 만약 호출된 서비스가 느리거나 사용할 수 없는 상태라면, 호출한 서비스도 영향을 받아 성능이 저하되거나 장애가 발생할 수 있다. 그리고 만약 응답이 오지 않는다면 호출한 서비스도 대기 상태에 빠지거나 타임아웃이 될 수 있어 시스템 취약성이 증가한다. 서비스 간의 동기적 대기는 전체 시스템의 응답 시간을 늘리고 처리량을 감소시킬 수 있으며, 시간적으로 강하게.. 2025. 5. 7.