Spring CORS 설정: WebConfig 작성부터 wildcard '*', withCredentials 문제 해결까지
·
spring 스프링
[왜 WebConfig를 작성해야 할까?]프론트엔드와 백엔드가 분리된 환경에서는 각각의 도메인이 다르기 때문에 브라우저는 보안상의 이유로 자동으로 요청을 막는다. 이걸 CORS(Cross-Origin Resource Sharing)라고 한다. 예를 들어 프론트앤드의 DNS 주소는 https://project-test인데 프론트가 백에게 API를 요청할 때는 https://api-project-test로 넘겨 주게 된다. 이 경우, 브라우저는 서버에 직접 요청을 보내기 전에 OPTIONS 메서드로 사전요청(preflight)을 보낸다. 그런데 백엔드에서는 "응답 가능해~"라고 명시적으로 허용하지 않으면, 브라우저는 요청 자체를 막아버리는 것이다. 이때 필요한게 바로 WebConfig를 통한 CORS..
docker-compose 작성으로 Spring Boot + PostgreSQL 개발 환경 구축하기
·
서버
[Docker Compose 란?]여러 개의 Docker 컨테이너를 하나의 설정 파일로 정의하고 한 번에 실행 및 관리할 수 있게 해주는 도구이다. [왜 docker-compose를 사용하는가?]멀티 컨테이너 환경을 쉽게 구성한다.웹 서버(Spring Boot), 데이터베이스(PostgreSQL) 등 여러 컨테이너를 동시에 실행해야 할 때, 각각 docker run 명령어를 수동으로 입력하는 건 번거로운 일이다. 따라서, docker-compose.yml 하나를 작성 후 docker-compose up 명령 하나면 전체 컨테이너의 실행 가능하게 된다. 인프라 환경을 코드로 관리서비스 설정(DB 이름, 환경변수, 볼륨, 포트 매핑)을 .yml 파일에 기록하면 설정 변경도 쉽고 공유할 때도 깔끔해진다. ..
GCP 가상 머신에 Nginx 리버스 프록시와 무료 SSL(Let's Encrypt) 적용해 Mixed Content 오류 없애기
·
서버
왜 이걸 해야 할까?HTTPS 사이트에서 HTTP로 된 리소스(css, js, 이미지 등)를 불러오면 브라우저가 "Mixed Content" 오류를 발생시킨다.이 오류는 보안상 취약하며, 크롬 브라우저는 콘텐츠를 차단하기도 한다.SSL 인증서(Let’s Encrypt)를 설치하고, Nginx를 통해 HTTP 요청을 HTTPS로 리디렉션해야 안전한 사이트 운영이 가능해진다. 1. 도메인 발급 (Duck DNS)이 오류를 해결하기 위해 먼저 도메인이 필요하다. 무료 도메인 발급을 찾아보니 전부다 유료로 전환 된 것인지 내가 못 찾는 건지 구글에 있는 것으로는 찾을 수가 없었다. 구글링을 하다가 발견한 처음 보는 사이트에서 용감하게 무료 DNS 사이트에서 발급 받았다... 돈 있으면 꼭! 사서 구매하자 ..
GCP VM 머신 CPU 사용량 급증 해결 방법
·
서버
GCP에서 VM을 운영하다 갑작스럽게 CPU 사용량이 치솟는 현상을 겪었습니다. 거의 무슨 마라톤 하고 온 심박수도 이렇지는 않을 것 같음... 폭발할 것 같은 CPU 사용량 보세요... 가뜩이나 사이즈도 작은 서버에 도대체 뭘 그렇게 많이 쓴다고 이러는 걸까.... 구글링을 아무리 돌려도 저렇게 꾸준히 높은 CPU 사용량에 관한 내용은 전혀 없었다. 다들 10분 간격으로 오른다고만 하지 아무것도 안 하고 저렇게 내내...? 아무튼 다른 블로그에서 힌트를 얻어서 해결 완료!!! 1. SSH에 들어가서 top 명령어 실행GCP VM 콘솔에서 문제가 발생한 인스턴스를 선택하고, SSH에 접속한다.top 2. top 로그에서 비정상적인 프로세스 확인top 로그가 출력 되면 아래와 같이 CPU의 사용율 ..
GCP VM 인스턴스 생성부터 SSH 키 연결, 고정 IP 설정, 방화벽 설정까지 한 번에 정리
·
서버
GCP 프로젝트 생성 및 결제 설정 GCP에 가입한 후 결제설정까지 모두 마쳤다면, 프로젝트 그룹이 만들어져 있을 것이다. 해당 프로젝트를 사용해도 되고, 새로운 프로젝트를 하나 더 만들어서 사용해도 된다. 우리에게는 3개월이라는 무료 기간이 있으니까~~ 그 안에만 요리조리 잘 사용하면 된다. 무료머신 제공환경 확인 그 전에 우리는 GCP에서 무료로 제공하는 환경들을 한번 확인해봐야 한다. GCP VM 인스턴스 생성하기 1) 탐색 메뉴를 열어 Compute Engine -> VM 인스턴스를 -> 사용 2) 인스턴트 만들기 버튼 클릭 3) 다양한 옵션 선택 이름을 작성하고 무료머신 제공환경에 따라 머신 구성을 해준다. 중요한 것은 머신유형을 e2-micro로 만드는 것이다. 4) OS 및 스토..
GCP에 Spring Boot + PostgreSQL Docker 배포하기 (포트 설정 및 구성도 포함)
·
서버
프로젝트를 시작하기에 앞서 서버 구축을 먼저 해주었다. 처음 해보는 거라 오래 걸릴 것 같다는 생각에 개발 들어가기 전에 미리 해두었다. 하지만 서버를 구축한 후에 개발을 하다 보니 이곳저곳 예상치 못한 오류 생기는 게 많았다ㅠㅠ 그래서 이건 각자의 니즈에 맞게.. 서버를 구축하면 될 것 같다. 아마 이걸 고민하는 시점부터가 프로젝트의 시작인 걸........... 아무튼, 서버는 3개월간 무료 사용할 수 있는 GCP(Google Cloud Platform)를 선택 했고 구조는 아래와 같다. 1. 클라이언트 요청 사용자의 클라이언트에서 GCP VM의 퍼블릭 IP를 통해 9091 포트로 요청을 보낸다. (ex http://000.000.000.000:/9091/api/..) 2. GCP 인스턴스 (V..
해니01_15
코딩구르르르