1. 사건의 발달도메인을 구매하기 전에는 AWS EC2의 IP를 사용하여 Swagger를 배포하였다. Swagger를 통해 서버로 요청을 보내게 되면, Swagger 주소와 서버 주소가 동일하기 때문에 CORS 문제를 고민할 필요가 없었다. 이젠 도메인을 구매하고 SSL 인증서를 발급받아 도메인 주소로 Swagger를 접속하도록 하였다. 그런데 GET 요청을 제외한 나머지 HTTP 메서드에 대해서 전부다 403 Invalid CORS request 오류가 발생하였다. 도메인에 맞춰서 Cors와 Swagger 설정을 했음에도 해결되지 않았다. 하루 내내 붙잡고 있어도 해결되지 않아, 게임으로 잠시 도피하고…. 다음날 처음부터 차근차근 해보니 해결책을 찾았다. 동일한 개발 환경에서 이 오류가 발생하는 사람이..
도커로 데이터베이스를 실행하고, 이를 스프링부트에서 사용할 수 있습니다. 그렇다면 왜 굳이 도커로 데이터베이스를 띄울까요? 다양한 이유가 존재하겠지만... 이유를 하나만 뽑자면 다음과 같습니다.팀 구성원이 모두 동일한 환경에서 작업을 진행할 수 있다. A라는 사람은 MySQL 5.7을 사용하고, B는 MySQL 8.0을 사용합니다. 서로가 다른 버전을 사용하기 때문에 호환성 문제가 발생할 수 있습니다. 특히나 배포에 있어서 예상치 못한 문제가 발생할 수 있습니다. 이러한 문제를 사전에 방지하고자 도커를 활용하여 개발 및 배포 환경에서 일관성, 호환성을 확보해야 합니다. 도커 컴포즈를 사용하여 MySQL를 띄어 스프링부트에서 사용해보도록 하겠습니다.도커 컴포즈도커 컴포즈란 여러 컨테이너를 손쉽게 관리할..
내가 겪은 문제 API 통신을 할 때 @ExceptionHandler 애너테이션이 호출되지 않는 문제가 있었다. 문제가 발생하는 코드는 아래와 같다. ApiExceptionController @Slf4j @RestController public class ApiExceptionController { @GetMapping("/api/members/{id}") public MemberDto getMember(@PathVariable("id") String id) { if (id.equals("ex")) { throw new RuntimeException("잘못된 사용자"); } if (id.equals("bad")) { log.info("ApiExceptionController 호출"); throw new ..