728x90
반응형
SMALL

cors 3

[Server] 내장 톰캣 대신 Nginx 리버스 프록시를 도입한 이유

처음에 빠르고 간단히 내장톰캣으로 프로젝트 개발을 시작했었다.implementation 'org.springframework.boot:spring-boot-starter-web' [Server] 내장 톰캣 대신 Nginx 리버스 프록시를 도입한 이유사이드 프로젝트를 운영하면서 이런 구조가 되었다.Next.js (static export)Backend API 서버LLM Agent 서버크롤러이미지 리소스문제는 모두 한 서버에서, 각기 다른 포트로 떠 있었다는 점이다.왜 Nginx를 고민했을까?1️⃣ 포트 단일화FE: 정적 파일BE: 8080Agent: 8081사용자는 하나의 도메인으로 접속하지만 실제 서비스는 여러 포트에서 동작 중이었다.이를 다음처럼 정리하고 싶었다.example.com → 정적 파일e..

IT/etc 2026.02.20

[Spring Security] 자동화된 봇 공격 분석 및 방어: 로그 노이즈 90% 제거하기

[Spring Security] 자동화된 봇 공격 분석 및 방어: 로그 노이즈 90% 제거하기 배경: 아직은 사용자가 나밖에 없는데.. 갑자기 증가한 로그 (귀신이 왔다갔나...)프로덕션 서버에 배포한 Career Lens 애플리케이션(example.com)의 Docker 컨테이너 로그를 확인했을 때, 이상한 패턴의 에러 메시지들이 대량으로 쌓여 있었습니다.2026-01-27T02:06:08.623+09:00 WARN --- Request method 'POST' is not supported2026-01-27T02:44:09.104+09:00 INFO Error parsing HTTP request headerjava.lang.IllegalArgumentException: Invalid char..

IT/java|Spring 2026.01.28

[CORS] CORS 개념과 스프링 부트에서 처리하는 방법(OPTIONS 요청)

1. CORS 란?Cross-Origin Resource Sharing 의 약자로, 웹 브라우저에서 다른 출처(도메인, 프로토콜, 포트)의 리소스에 접근할 수 있도록 허용하는 메커니즘FE(브라우저) → BE(API 서버) 요청을 할 때, 도메인/포트/프로토콜이 다르면 "Cross-Origin" 요청이 됩니다.보안 때문에 브라우저는 기본적으로 이를 차단해요.서버가 **“나는 이 출처(origin)에서 오는 요청을 허용한다”**라고 응답해줘야 브라우저가 통과시킵니다.=> 한마디로 말해서, BE API를 아무나 호출할 수 없도록 브라우저 보안 표준상 CORS 에러를 발생시켜 차단.=> 개발계에서는 편하려고 * 열어두고(모든 도메인에서 오는 요청을 다 허용), 운영계에서는 필요한 출처만 허용해둠.Access-C..

IT/Theory 2025.08.19
728x90
반응형
LIST