전체 글 75

Spring @Profile 로 환경에 따라 다르게 설정하기 (+ @ActiveProfiles 로 테스트 하기)

@Profile 환경에 따라 다르게 동작해야 하는 경우가 있다. 이 때 @Profile이라는 어노테이션을 활용하면 간편하게 적용이 가능하다. 먼저 product, development, test 환경이 있고 각각의 환경에서 발송 기능 사용시 다르게 동작해야 한다고 하자. 먼저 발송하는 곳 소스이다. 발송하는 곳에서 환경에 따라 분기가 되는 것은 적합하지 않다고 생각한다. 그래서 저 Sender 객체를 생성하는 곳에서 분기가 되어야 한다. 그 과정에서 @Profile을 사용한다. 위 코드만 봐도 @Profile이 어떻게 사용되는지 대충 알 수 있다. 복수도 지원하고 산술연산자도 지원한다. 어플리케이션 실행 시 각각의 profile에 따라 다른 값이 빈이 동작하는 것을 확인 할 수 있다. @ActivePro..

공부/Spring 2021.01.08

Spring boot test 경로가 다른 패키지 테스트 시 오류

어느 날 마주한 에러 문구 Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 아래 그림과 같이 패키지를 여러 개 두는 경우가 있다. 어플리케이션 실행 시는 component scan 어노테이션을 이용하여 다른 패키지도 빈 생성이 가능하다. 하지만..

공부/Spring 2021.01.07

[백준] 2225번 합분해

문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. 풀이 다이나믹 프로그래밍으로 풀이가 가능하며 점화식은 아래와 같이 도출 할 수 있다. dp[n][k] : n개의 정수 k개를 합하여 그 합이 n이 되는 경우의 수 n\k 1 2 3 4 5 6 j 1 1 2 3 4 5 6 j 2 1 3 6 10 3 1 4 10 4 1 5 5 1 6 6 1 7 I 1 dp[i-1][..

공부/알고리즘 2021.01.02

[백준] 2293번 동전 1

문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 경우의 수는 1의 23제곱 보다 작다. 풀이 다이나믹 프로그래밍으로 풀 수 있다. 점화식은 dp[구해야하는 금액] += dp[구해야하는 금액 - 동전 가치] 이다. 그리고 dp[0] = 1 이다..

공부/알고리즘 2021.01.01

[백준] 11055번 가장 큰 증가 부분 수열

문제 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수열은 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 이고, 합은 113이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 합이 가장 큰 증가 부분 수열의 합을 출력한다. 풀이 다이나믹 프로그래밍(dp)를 이용하여 풀이가 가능하다. 수열을 0부터 n까지 반복하면서 i번째 인덱스가 증가 부분 수열일 경우 그 ..

공부/알고리즘 2020.12.28

인텔리제이(IntelliJ)에서 디버깅 시 중단점(Break Point) 동작하지 않는 경우

인털리제이에서 디버깅을 사용할 때 디버깅이 동작하지 않고 중단점에서 걸리지 않는 현상이 발생하였다. 오류만 나고 제대로 동작하지 않았는데 이 때 간단하게 해결되는 방법도 있다. File -> Invalidate Caches / Restart 위와 같은 방법으로 디버깅시 제대로 동작하지 않는 문제를 해결할 수 있다.

공부/Java 2020.12.26

[백준] 11052번 카드 구매하기

문제 요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다. PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다. 전설카드 레드카드 오렌지카드 퍼플카드 블루카드 청록카드 그린카드 그레이카드 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, ... 카드 N개가 포함된 카드팩과 같이 총 N가지가 존재한다. 민규는 카드의 개수가 적은 팩이더라도 가격이 비싸면 높은 등급의 카드가 많이 들어있을 것이라는 미신을 믿고 있다. 따라서, 민규는 돈을 최대한 많이 지불해서 카드 N개 구매하려고 한다. 카..

공부/알고리즘 2020.12.20

[백준] 9095번 1,2,3 더하기

문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 풀이 n을 1,2,3의 합으로 나타내는 방법의 수에서 규칙을 발견하였다. n 1 2 3 4 5 1,2,3의 합 방법 개수 1 2 4 7 13 n이 0일때 1,2,3의 합으로 ..

공부/알고리즘 2020.12.12

카카오 엔터프라이즈 면접 후기 (2. 인터뷰)

1편 서류 및 코딩 테스트 unhosted.tistory.com/68 카카오 엔터프라이즈 면접 후기 (1. 서류 및 코딩 테스트) 개요 몇 달 전에 카카오 엔터프라이즈 경력 면접을 보게 되었다. 그 당시 면접 준비하면서 카카오 면접 후기 이런 블로그 글을 많이 찾아보았었고 나도 언젠가 면접 후기를 공유한다면 도움이 unhosted.tistory.com 원격 인터뷰 (화상 인터뷰) 코딩 테스트 합격 메일을 받은 다음날 오전에 전화가 걸려왔다. 번호만 보아도 카카오에서 온 것이라고 생각하였다. 먼저 당시 서울에 거주하였으나 031에서 전화가 온점, 그리고 번호가 꽤 좋았다. 마지막으론 전화 올 곳이 딱히 없었다. 수화기 너머의 인사담당자분께서 굉장히 친절하셨다. (추후 다른 몇몇 회사의 면접을 보면서 만난 ..

일상 2020.12.10

카카오 엔터프라이즈 면접 후기 (1. 서류 및 코딩 테스트)

개요 몇 달 전에 카카오 엔터프라이즈 경력 면접을 보게 되었다. 그 당시 면접 준비하면서 카카오 면접 후기 이런 블로그 글을 많이 찾아보았었고 나도 언젠가 면접 후기를 공유한다면 도움이 될까 싶고(조회수도 조금 나오지 않을까 기대를 해본다..) 그 당시 새로웠던 기억을 공유하고 싶어서 약 한 달간의 과정을 공유한다. (결론부터 말하자면 합격하지 못하였고 마지막 면접 기회도 얻지 못하였다.) 지원하였던 카카오엔터프라이즈 서버 개발 경력 채용 절차는 다음과 같았다. 서류 -> 코딩 테스트 -> 원격 인터뷰(화상) -> 1차 인터뷰 -> 2차 인터뷰 서류 접수 사실 그 당시 이직 생각이 크게 있지 않았고 카카오에 지원해야겠다는 생각은 더더욱 없었다. 그 당시 다른 회사는 어떤 기술을 사용하고 어떤 문화를 가지..

일상 2020.12.09
728x90
반응형