[SpringBoot] @Value를 사용해 yaml 설정 파일의 값을 불러오는 방법
·
Spring
현재 버전 스펙- Spring Boot 3.2.1- Java 17- spring-boot-starter-web 의존성 사용 만일 properties 파일을 사용한다면 @PropertySource 어노테이션을 활용해 커스텀 설정 파일의 값을 불러올 수 있다고 봤었는데, properties는 개인적으로.... 가독성이 안 좋아보여 yaml 파일로 작성하려고 했다.그래서 yaml 파일의 값을 불러오는 방법을 기록하려 한다. 1. YAML 설정 파일 작성 방법우선 사용할 YAML 설정 파일의 내용이 다음과 같다고 가정하자.test: str: testtest num: 12345그러면 두 가지 방법을 통해 @Value 어노테이션으로 위 파일 내용 값을 불러올 수 있다. 1) application.yml에 내용 ..
[Java] 백준 4673번: 셀프 넘버
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/4673 분류브루트포스 알고리즘, 구현, 수학문제 설명셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다.예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다.33, 39, 51, 57..
[Java] 백준 10828번: 스택
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/10828분류자료 구조, 구현, 스택문제 설명정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 ..
[Java] 백준 1789번: 수들의 합
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/1789분류그리디 알고리즘, 수학문제 설명서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?입력첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.출력첫째 줄에 자연수 N의 최댓값을 출력한다. 성능 요약메모리: 14304 KB, 시간: 108 ms접근 방법N이 최대가 되려면 1부터 차례대로 더해야 한다.그래서 1부터 차근차근 더해가면서, 합한 값이 S가 되거나 초과하게 되면 멈추도록 했다.만약 합한 값(sum)이 S를 초과하게 되어도 'sum - S'의 값을 S에서 빼기만 하면 조건은 만족하기 때문이다. 예를 들어, S가 12로 주어졌다면1+2+3+4+5 = 15이므로 5를 ..
[Java] 백준 1026번: 보물
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/1026분류그리디 알고리즘, 수학, 정렬문제 설명옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S = A[0] × B[0] + ... + A[N-1] × B[N-1]S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다.S의 최솟값을 출력하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각..
[Java/SpringBoot] Spring Security 사용 시 특정 url들의 필터 무시가 작동되지 않았던 문제
·
Spring
문제 상황 & 코드특정 url들은 보안 필터를 거치지 않도록 설정했으나, 해당 설정이 먹히지 않는 현상이 발생했다.@Configuration@EnableWebSecuritypublic class SecurityConfig { @Autowired private TokenProvider tokenProvider; private final String[] allowedUrls = {"/", "/nickname/**", "/sign-up/**", "/sign-in/**"}; // H2 콘솔 사용을 위한 설정 @Bean @ConditionalOnProperty(name = "spring.h2.console.enabled", havingValue = "true") public ..
Java/Spring Framework/Spring Boot 개념 정리
·
Spring
Java - 객체 지향적 프로그래밍 언어 - 스프링 자체도 대부분 자바로 만들어져 있다. (그러나 스프링 동작 자체는 자바 뿐만 아니라 코틀린, 그루비로도 동작 가능함) - JVM이라는 가상머신 위에서 동작하기 때문에 어디서든 동작 가능하다는 이점이 있다. Spring Framework - 오픈소스 웹 프레임워크. 스프링이라고 하면 보통 이 스프링 프레임워크를 말하는 것 같다. - 자바 기반 어플리케이션을 만들기 위해 활용하는 프레임워크 (여러 툴이 있는 템플릿, 일종의 틀인 셈이다.) Spring Boot - 스프링 기반으로 자주 사용되는 설정으로 손쉽게 개발할 수 있게 해 주는 상위 프레임워크 - 스프링보다 한층 더 편리한 프레임 워크 - 톰캣과 같은 웹 어플리케이션 서버 내장 - 설정 값들은 자동 ..
cmd에서의 자바 한글 컴파일 오류
·
Java
⁕ 오류 내용 error : unmappable character (0xEC) for encoding x-windows-949 ⁕ 해결 방법 (3개 중 하나 택) 1) 파일 인코딩을 ms949로 저장 (또는 ANSI로 저장) 2) 통합개발환경에서 컴파일 옵션으로 -encoding utf-8 설정 3) 컴파일 할 때, 자바 컴파일러에게 명시적으로 인코딩 지정 --> javac 파일명 -encoding utf-8