문제 상황 및 원인스프링 애플리케이션을 백엔드로 하고, React 애플리케이션을 프론트엔드로 하는 개발하던 중, 다음과 같은 오류를 발견했다. Access to XMLHttpRequest at 'http://localhost:8080/hello?name=world' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 확인해보니, 브라우저는 기본적으로 동일 출처 정책(Same Origin Policy, SOP)을 지키기 때문에 다른 출처의 리소스 접근을 금지해 생기는 문제로 확인됐다. 이를 해결하기..
스프링
실행된 SQL문의 확인이 필요한 이유Spring Data JPA를 사용하면 JpaRepository를 상속해 기본적인 CRUD가 가능한 함수들을 사용할 수 있다. 하지만, 이 함수들을 사용하면, JPA에서 알아서 SQL문을 만들어서 쿼리하기 때문에 어떤 SQL문이 실행되는지 확인하기 어렵다. 대부분의 상황에서 이것은 문제가 되지 않지만, 만약 버그가 일어났다면 어떤 SQL문 때문에 문제가 생겼는지 확인해야 한다. Spring Data JPA는 이를 위해 실행되는 SQL문을 로깅할 수 있는 기능을 제공한다. 지금부터 이 방법에 대해 알아보자. 실행된 SQL문 로깅하기실행된 SQL문을 로깅하도록 설정하기 위해서는 application.properties 파일에 다음과 같은 설정을 추가해야 한다.spring..
H2 Database란?H2 Database는 가볍고 편리한 인 메모리 데이터 베이스로 프로그램 구동 시 메모리에 데이터를 저장하고, 애플리케이션이 종료되면 메모리가 삭제되는 데이터베이스이다. 이는 일반적으로 테스트 환경 혹은 Dev 환경 등 데이터에 대한 영속성이 요구되지 않는 환경에서 데이터를 저장하는데 사용한다. 브라우저 기반의 콘솔 프로그램 또한 제공해, 어떤 데이터가 저장되었고 삭제되었는지를 편하게 확인할 수 있다. 📌 영속성이란 프로그램이 종료돼도 데이터가 사라지지 않는 특성을 뜻한다. 이번 시간에는 Spring Data JPA를 사용해 H2 Database를 사용 설정하는 방법을 알아볼 것이다. 코틀린 스프링 프로젝트에 Spring Data JPA, H2 Database 사용 설정하기pl..
WAR 파일을 통해 배포하기WAR 파일을 배포하기 위해서는 다음 과정을 거쳐야 한다. 1. JDK 혹은 JRE 설치2. Web Server 설치3. WAR 파일 배포 WAR 파일을 배포하기 위해서는 JRE와 Web Server가 있어야 한다. 따라서 우선 JDK나 JRE을 설치 한 후 Web Server을 설치하고 해당 WebServer에 WAR파일을 배포하면 된다. 예를 들어 Tomcat을 사용하는 경우 WAR파일을 webapps 디렉토리에 복사하거나, Tomcat Manager을 사용해 WAR 파일을 직접 선택해 배포해야 할 수 있다. 익숙하다면 복잡하지 않을 수 있지만, 만약 이 Web Server을 배포를 위한 파일에 함께 내장할 수 있다면 배포 과정이 더욱 간단해질 수 있을 것이다. 이러한 ..
Actuator란 무엇인가?Actuator란 Spring Boot에서 제공하는 애플리케이션 모니터링 및 관리 기능으로, Spring 애플리케이션의 Health를 체크하거나, Bean 목록을 확인하거나, 각 패키지의 로그 레벨이 어떻게 설정돼 있는지 확인하거나, Heap Dump를 제공하는 등 수십가지 기능을 제공하는 모니터링 툴이다. Actuator 사용하기Actuator을 사용하는 방법은 매우 간단하다. 단순히 build.gradle.kts 파일에 spring-boot-starter-actuator에 대한 의존성을 추가하면 된다. 그러면, Actuator 관련 기능이 활성화 된다.dependencies { implementation("org.springframework.boot:spring-bo..