적용 방법을 보시려면 아래의 게시글을 참고해주세요. [Spring Boot] 스프링 부트 HTTPS 적용 방법 과정 스프링 부트에 HTTPS(TLS)를 적용시켜주기 위해서 다음과 같은 과정을 거쳐야 한다. 도메인을 발급받는다. CertBot을 통해서 인증서를 발급받는다. PEM 인증서를 PKCS12 형태로 변환한다. Spring Boot g-db.tistory.com 문제, 원인 블로그를 개발하던 도중 netlify로 프론트를 배포했더니 SSL 인증관련 에러가 발생해 서버에 SSL을 적용시켜줘야 했다. 이를 해결하기 위하여 HTTPS를 적용하기로 했다. 해결 과정 1. 인증서 발급을 위한 도메인 발급 구글 서칭을 통해서 인증서를 발급받기 위해서는 도메인이 먼저 있어야 했다. 기존에 개발과정에서 도메인 발..
분류 전체보기
과정 스프링 부트에 HTTPS(TLS)를 적용시켜주기 위해서 다음과 같은 과정을 거쳐야 한다. 도메인을 발급받는다. CertBot을 통해서 인증서를 발급받는다. PEM 인증서를 PKCS12 형태로 변환한다. Spring Boot에 인증서를 적용한다. 하나하나씩 차근차근 진행해보겠습니다. 1. 도메인을 발급받는다. CertBot을 통해서 인증서를 발급받기 위해서는 ip주소가 아닌 도메인이 필요합니다. 따라서 도메인을 먼저 발급받아야 하는데 도메인은 구매를 하거나 무료로 발급을 받을 수 있습니다. 자신의 ip주소를 토대로 도메인을 생성하는 방식이 있고 nip.io - wildcard DNS for any IP Address nip.io - wildcard DNS for any IP Address Dead s..
13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 문제 A → B → C → D → E 이렇게 관계가 그려지도록 이어지는 그래프가 존재한다면 1을 출력하라는 문제이다. 이렇게 되기 위해서는 DFS를 통해서 깊이가 5가 되는 경우를 출력하면 된다. 풀이 DFS를 수행하면서 depth가 5가 된다면 DFS를 종료하고 출력하면 된다. flag를 하나 두고 depth가 5라면 flag를 true로 전환해 DFS를 종료한다. 만약 현재의 DFS가 찾지 못하고 종료된다면 현재 값은 방문하지 않은 것으로 하고 종료한다. private static void DFS(int num, int depth){ if(flag || depth ..
2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 문제 수의 자리 N이 주어졌을 때, 1의 자리, 10의 자리, … , 10^(N-1)자리 수가 모두 소수인 값을 오름차순 정렬로 출력하시오. 풀이 해당 문제는 DFS 뿐만 아니라 소수의 특징도 알고 있다면 빠르게 풀 수 있다. 소수의 특징 1의 자리 소수는 반드시 2, 3, 5, 7 만 올 수 있다. 2 이상의 자리 소수는 반드시 1, 3, 7, 9 만 올 수 있다. 이 두 특징으로 인해 DFS가 훨씬 빠르게 진행할 수 있다. 두 가지 경우를 나눠서 ..
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 문제 정점의 개수 N과 간선의 개수 M이 주어지고 간선이 연결된 정점 2개를 M개 주어진다. 몇 개의 연결 요소가 생기는 지 구하시오. 풀이 노드와 무방향 간선이 주어졌을 때 몇 개의 연결 요소가 만들어지는지 구하는 문제이다. 무방향 그래프이므로 간선의 양 쪽 모두를 담아 두어도 된다. 모든 List를 돌면서 해당 정점과 연결된 모든 정점을 방문하면서 Visit를 체크한다. for(int i=1; i
📌 개요 Spring MVC를 공부하면서 DispatcherServlet이 수행하는 전처리, 후처리 과정 중 Interceptor라는 기능이 있어 사용해보았다. 인터셉터는 횡단 관심사를 처리해주기 위해서 디스패처 서블릿이 수행하는 작업이다. 따라서 Interceptor는 Spring MVC, Dispatcher Servlet Container 내부에서 수행되는 작업이고 이와는 대조적으로 Filter는 서블릿 컨테이너 밖에서 수행되는 작업이다. 또한 Filter는 java에서 관리되는 클래스이지만 Interceptor는 Spring MVC에서 관리된다. 📌 본론 Interceptor는 HandlerInterceptor 인터페이스를 구현해서 만들 수 있다. HandlerInterceptor public in..
개요 개발을 하던 도중 데이터베이스와 같은 로컬과 운영 환경에서 다른 설정을 가져가는 부분들을 계속 바꿔주다보니 실수도 많이 발생했고 매우 불편했다. 따라서 서칭을 하던 중 application.yml에 프로필을 설정해서 값을 다르게 해주는 방법이 있어 사용하였다. 본론 yml에서는 여러 설정 파일로 구성해야 했던 것들을 --- 을 통하여 하나의 파일에서 구분을 지을 수 있도록 제공한다. # default spring: profiles: active: dev group: "prod" : "prod" "dev" : "dev" springboot: jwt: secret: keysec123 --- spring: config: activate: on-profile: prod --- spring: config: ..
서론 스프링 MVC를 공부하던 중 스프링 부트에서는 이 스프링 MVC에 대한 설정들을 어떻게 하는지 궁금했다. 열심히 의존 파일을 뒤지던 중 WebMvcAutoConfiguration을 찾았고 이 클래스를 통해서 스프링 부트가 자동 설정을 한다는 것을 알게 되었다. 그런데 과연 이 클래스의 설정은 어떻게 실행되는 것일까? 본론 일단 스프링의 AutoConfiguration은 다음의 어노테이션에서 시작한다. @SpringBootApplication public class ChanguiiApplication { public static void main(String[] args) { SpringApplication.run(ChanguiiApplication.class, args); } } @SpringBoo..