인기 게시글

스프링 부트 테스트 코드에서 @Value가 작동하지 않는 문제 해결법

문제상황실제 서버를 작동시켰을 때에는 잘 작동하던 @Value가, 테스트 코드를 돌릴 때에는 작동하지 않는 문제가 발생했다!문제가 발생한 코드는 다음과 같다. Account.java(테스트의 대상이 되는 코드)package 내 프로젝트의 패키지 경로;import lombok.AccessLevel;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.E..

TDD 2024.06.13 1

#10804 : 카드 역배치

풀이방법 사용된 것: 시뮬레이션 구현 스택 (Stack) 2023.03.12 1부터 20까지의 숫자가 적힌 카드 20장이 오름차순으로 정렬되어있는 상황이다. 시작 수와 끝 수를 입력하면, 그 구간 안의 카드들만 역순으로 배열하면 된다. 시작 수의 끝 수 쌍은 총 10번 주어진다. 보자마자 First In Last Out이라는 생각이 들어, 스택을 사용했다. 주어진 구간 사이의 수들을 순서대로 스택에 넣은 뒤, 스택에서 pop() 하며 수를 바꾸어준다. 이를 10번 반복한다. 코드를 편하게 짜기 위해, 길이가 20이 아닌 21인 배열을 선언하였다. 각 카드의 실제 순서와 배열 상의 인덱스가 서로 일치하도록 하기 위해서이다. 코드 Java(2023.03.12) import java.io.BufferedRea..

백준 2023.03.12 0

#3226 : 전화 요금

풀이방법 2022.08.24 테스트케이스 개수가 최대 100개밖에 되지 않아서 그냥 단순하고 무식한 방법으로 해결하였다. 입력값에서 HH와 MM을 얻어오는 데에는 substring을 사용했다. 00시 00분으로부터 몇 분이 지났는지를 시각 값으로 이용함으로써 오전과 오후의 구분을 없애고 요금 계산을 쉽게 하였다. 오전 7시의 시각 값은 7*60 = 420, 오후 7시의 시각 값은 19*60 = 1140이다. 통화 시작 시점의 시각 값을 구해놓고 종료 시점에 이를 때까지 1분씩 더해가면서 요금을 구한다. 현재의 시각 값이 420(7*60) 이상 1140(19*60) 미만이라면 10원을 더하고 그렇지 않다면 5원을 더하는 방식이다. 전화하던 중 날짜가 바뀌었으면 현재의 시각 값을 0으로 만들어주고 계속한다...

백준 2022.09.03 0

인프런 김영한 스프링 입문 강의 후기

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 이 강의의 마지막 회차인 "다음으로" 회차를 방금 모두 보았다. 한 달간의 대장정이 끝났다. 의도하지 않았는데도 이 강의의 첫 노트정리 게시글이 정확히 오늘로부터 한 달 전(7월 19일)이어서 기분이 좋다. "다음으로" 회차는 그냥 이 강의의 전체 내용을 싹 훑어주고, 앞으로 할 공부의 방향을 알려주는 내용이었기 때문에 "다음으로" 회차 노트정리 대신에 강의 후기나 써보려고 한다. 강의 내용, 추천하는 대상 스프링이 무엇이고 어떻게 굴러가는지 ..

최근 게시글

more

스프링 부트 테스트 코드에서 @Value가 작동하지 않는 문제 해결법

문제상황실제 서버를 작동시켰을 때에는 잘 작동하던 @Value가, 테스트 코드를 돌릴 때에는 작동하지 않는 문제가 발생했다!문제가 발생한 코드는 다음과 같다. Account.java(테스트의 대상이 되는 코드)package 내 프로젝트의 패키지 경로;import lombok.AccessLevel;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.E..

TDD 2024.06.13 1

#11723 : 집합

풀이방법 사용된 것: 구현 2023.09.20 실제로 Set을 선언하여 구현하면 시간초과가 발생한다. 이번에는 1차원 Boolean 배열을 사용하여 해결하였다. 후에 비트마스크를 사용해서도 시도해보겠다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ // TODO..

백준 2023.09.20 0

#18110 : solved.ac

풀이방법 사용된 것: 수학 구현 정렬 2023.09.20 의견의 개수 N이 0이라면, 0을 출력하고 프로그램을 종료한다. 의견의 개수 N이 1 이상이라면, 다음을 수행한다. N의 0.15배를 계산하여 이를 반올림한다. 이 결과를 M이라 하자. 모든 의견을 오름차순으로 정렬한 배열에서, 인덱스 M부터 N-M-1까지를 더한 후, 그 값을 2M으로 나눈 후 반올림한다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] ar..

백준 2023.09.20 0

입력값의 제공 횟수가 정해져있지 않을 때의 해결법 (백준 기준)

백준 문제를 풀다 보면, 입력값의 제공 횟수가 정해져있지 않은 문제가 자주 등장한다. 예를 들면 다음 문제와 같다. https://www.acmicpc.net/problem/4436 4436번: 엘프의 검 중간계에 살고있는 엘프 종족은 특정 숫자를 다른 숫자보다 중요하다고 믿는다. 따라서, 그들은 금속 n만큼을 이용해서 칼을 만들 때, 두께를 다음과 같은 규칙을 지키는 k로 한다면, 엄청나게 www.acmicpc.net 본 문제에서는 한 줄에 하나씩 입력값이 주어진다. 단, 총 몇 줄의 입력값이 주어지는지는 정해져있지 않다. 따라서 계속해서 반복문을 돌리며 입력을 받다가, 입력값이 null이 되는 순간 작동을 종료해야 한다. 예를 들면 다음과 같이 하면 된다. import java.io.BufferedR..

Java 일반 2023.09.05 0

#5358 : Football Team

풀이방법 2023.09.05 주어진 문자열에서, i는 e로 바꾸고 e는 i로 바꾸고 I는 E로 바꾸고 E는 I로 바꾸어 출력하는 문제이다. 조건문을 사용하여 문자열의 모든 문자를 확인한 후, i, e, I, E에 해당하는 문자가 발견될 경우 변경하면 된다. 코드 Java(2023.09.05) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub BufferedReader br = new Buf..

백준 2023.09.05 0