본문 바로가기

springboot

(13)
[Spring Boot] CORS 필터 설정하기 프로젝트 진행 중 아래와 같은 CORS 에러가 발생하여 이에 대한 해결 방법을 정리했습니다. Access to XMLHttpRequest at '외부 API URL' from origin '외부 API를 호출한 URL' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. CORS란? Cross-Origin Resource Sharing의 약자로 도메인이 다른 외부 서버 자원에 접근했을 때, 허용된 방식이 아닌 경우 CORS 에러가 발생합니다. CORS 를 허용하는 설정 방법이 3가지가 있는 데, 이중 두가지 방법에 대해서 잘 적용되지 않아 filter를 직접 ..
[SpringBoot] resource 값을 자바 소스에서 활용하기 src/main/resources/data/data.txt 파일이 존재할 경우 해당 파일에 값에 접근하고 싶을 때 다음과 같이 하면됩니다. @Test public void resource() throws IOException { ClassPathResource resource = new ClassPathResource("data/data.txt"); Path path = Paths.get(resource.getURI()); String key = Files.readString(path); logger.info("[TEST] key : {}", key); } [TEST] data.txt : ABCDEFGHIJK
[SpringBoot] application.yml 값 암호화 하기 (jasypt) application.yml 이나 application.properties 파일에 DB의 비밀번호 또는 키값을 명시해두는 경우가 있습니다. 문제는 중요한 값들이 외부로 노출되어 보안에 심각한 문제를 초래할 수 있다는 점입니다. 이를 해결하기 위해 보안에 민감한 값들을 암호화시켜 저장해야 합니다. 1. Jsaypt(Java Simplified Encryption) Jasypt는 특정 값을 암호화해주는 라이브러리 입니다. 자세한 내용은 아래 링크를 참조해주세요. http://www.jasypt.org/ 2. DB의 url, username, password를 암호화하기 테스트는 SpringBoot 2.2.2.RELEASE에서 진행했습니다. 1) pom.xml ... com.github.ulisesbocchi..
[SpringBoot] HATEOAS 적용하기 1. hateoas란 hateoas는 Hypermedia As The Engine Of Application State의 약자로 REST API의 필수 구성요소 중 한가지입니다. 특정 API 요청 시 리소스 정보를 받아 볼 수 있는데, 이때 리소스 정보 뿐 만 아니라 리소스에 대한 다양한 링크정보를 리소스정보와 함께 반환하는 것을 의미합니다. 예를 들어서 유저 정보 생성 시 생성된 유저의 정보를 반환받는데, 이때 유저의 상세정보, 수정, 설정 등.. 유저와 관련된 다양한 링크페이지를 함께 반환받을 수 있습니다. 다시말해서 hateoas를 적용하면 API 요청 시, Resource와 Links를 함께 반환 받을 수 있습니다. 2. spring boot hateoas 적용 간단하게 Member를 저장하는 A..
[SpringBoot] H2 데이터베이스 사용하기 1. H2 데이터베이스란?H2는 자바 기반 오픈소스 RDBMS입니다. 주로 인 메모리 데이터베이스로 사용되며 기능 테스트 할 때 유용합니다.인 메모리 데이터베이스는 휘발성 데이터베이스이기 때문에 컴퓨터를 종료하면 모든 데이터가 삭제됩니다.H2 DB를 따로 설치할 수 있지만 build.gradle dependency로 추가하면 약 2MB크기의 라이브러리로 H2 DB를 사용할 수 있습니다.지금부터 간단하게 hibernate를 이용해서 h2 db에 테이블을 생성해보겠습니다.

[SpringBoot] 이메일 전송 (Gmail SMTP Server) 1. Gmail SMTP Server 구글 계정만 있으면 Gmail SMTP Server를 통해 무료로 이메일을 전송할 수 있습니다. Gmail SMTP Service 설정 정보는 다음과 같습니다. 2. pom.xml (dependency) org.springframework.boot spring-boot-starter-mail 3. application.yml spring : mail : host : smtp.gmail.com port : 587 username : 'your email' password : 'your password' properties : mail : smtp : auth : true starttls : enable : true 4. 이메일 전송 예제 1) MailTO.java 전송..
[SpringBoot] tomcat 종료 시 logback thread가 종료되지 않을 경우 05-Apr-2021 15:38:25.517 INFO [java-sdk-http-connection-reaper] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [ch.qos.logback.classic.spi.ThrowableProxy]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the il..
[SpringBoot] destroy event 등록하기 spring boot를 사용하다보면 명시적으로 자원을 close 해주어야 하는 경우가 있습니다. 이때 spring boot destory event 발생 시 자원을 close해주는 코드를 추가해주면 됩니다. public class ShutdownHookConfiguration { public void destroy() { /* close 로직*/ } } import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication publ..