백준 15988 : 1, 2, 3 더하기 3
https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 1 만들 수..
키자드에 등록된 총 506개의 포스트를 확인하실 수 있습니다.
https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 1 만들 수..
https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi..
https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ P..
https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 1 만드는 경우..
https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수..
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성..
https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며..
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의..
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양..
지난 4월 네이버 상반기 공채를 지원했었고, 코딩테스트와 두 번의 면접 과정을 거치게 되었습니다. 그에 대한 후기를 남겨보려고 합니다. (구체적인 면접 질문에 대해선 작성되어있지 않습니다.)..
지난 여름 엔테크서비스의 인턴 공고를 보게 되었고, 졸업 요건도 채우면서 공부도 할 겸 인턴에 지원하게 됐었습니다. 코딩테스트와 1번의 면접이 진행되었고, 그에 대한 후기를 남겨보려고 합니다. 지원서 자신..
https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3..
https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다..
https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net #include #include int n, a[8],..
https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다..
https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며,..
https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진..
https://www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1보다..
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acm..
https://www.acmicpc.net/problem/17136 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있..
자바 8에 추가된 Optional 클래스에 대해서 간단하게 정리해보겠습니다 개발하다보면 NullPointerException은 흔하게 겪게 됩니다. 다음과 같은 상황을 살펴보겠습니다. public class Person { private Wallet wal..
https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며,..
https://www.acmicpc.net/problem/17281 17281번: 는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한..
https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태..
https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net..
https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net https://www.acmicpc.net/problem/15353 15353번: 큰 수 A+B..
qhttps://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는..
https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸,..
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은..
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일..
https://www.acmicpc.net/problem/16638 16638번: 괄호 추가하기 2 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거..
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r,..
https://www.acmicpc.net/problem/16936 16936번: 나3곱2 나3곱2 게임은 정수 하나를 이용한다. 가장 먼저, 정수 x로 시작하고, 연산을 N-1번 적용한다. 적용할 수 있는 연산은 두 가지 있고, 아래와 같다. 나3: x..
https://www.acmicpc.net/problem/17836 17836번: 공주님을 구해라! 용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군..
https://www.acmicpc.net/problem/2302 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 2..
https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수..
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다..
https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의..
https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출..
https://www.acmicpc.net/problem/12784 12784번: 인하니카 공화국 인하니카 공화국은 1번~ N번까지 N개의 섬으로 이루어진 나라이다. 이 나라에서는 섬 간의 왕래가 매우 어려웠지만, 위대한 다리 설계자 ‘진’..
https://www.acmicpc.net/problem/12781 12781번: PIZZA ALVOLOC 입력의 첫 줄에는 도윤이와 친구들이 선택한 점의 좌표 x, y(-10,000 ≤ x, y ≤ 10,000)가 순서대로 4개 주어진다. x, y값은 항상 정수이다. www...
https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 에라토스테네스의 체를 이용하여 n까지의 모든 소수를 구해놓고, 연속하는..
https://www.acmicpc.net/problem/16916 16916번: 부분 문자열 첫째 줄에 문자열 S, 둘째 줄에 문자열 P가 주어진다. 두 문자열은 빈 문자열이 아니며, 길이는 100만을 넘지 않는다. 또, 알파벳 소문자로만 이루..
https://www.acmicpc.net/problem/10546 10546번: 배부른 마라토너 마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고..
https://www.acmicpc.net/problem/2866 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다...
https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내..
https://www.acmicpc.net/problem/15501 15501번: 부당한 퍼즐 현욱은 퍼즐 게임을 굉장히 좋아한다. 어느 날 현욱은 친구로부터 간단한 플래시 퍼즐 게임을 하나 추천 받았는데, 이 퍼즐 게임은 다음과 같은 규칙..
https://www.acmicpc.net/problem/6137 6137번: 문자열 생성 첫 번째 줄에 문자열 S의 길이 N이 주어진다. (N <= 2,000) 이후 N개의 줄에 S를 이루는 문자들이 주어진다. www.acmicpc.net 투 포인터를 이용하였습..
https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다..
https://www.acmicpc.net/problem/9576 9576번: 책 나눠주기 백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는..
https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개..
쿠버네티스 클러스터를 생성하여 nginx 웹 서버를 배포해보겠습니다. 먼저 로컬에서 쿠버네티스를 테스트해보기 위해 minikube, 쿠버네티스 CLI 도구인 kubectl과 virtualbox를 설치해줍니다. minikube로 클..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
* 쿠버네티스 공식 문서에서 튜토리얼 진행하며 한국어로 번역하여 정리한 내용입니다. * https://kubernetes.io/ko/docs/tutorials/ 에서 Katacoda를 사용하여 브라우저 상 터미널로 동일한 내용을 실습해 볼 수..
Node.js Express로 서버를 개발하면서, swagger를 이용하여 API문서를 만들어보려고 합니다. 이를 이용하면 API문서를 간단하게 만들고, 문서를 통해 테스트를 할 수 있게 됩니다. npm install --save swagger-jsd..
윈도우에서 리액트 로컬 개발 중에 테스트 용으로 인증서를 달아줬습니다. openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj '/CN=localhost' -extensi..
WebRTC로 화상회의 서비스를 구현해보기 위해 미디어 서버로 janus-gateway를 택하게 되었습니다. 리액트 프로젝트에서 이를 적용해보기 위해 진행한 과정입니다. 먼저 create-react-app으로 리액트 프로젝트를..
redux, redux-saga, jwt, refresh token, 서버사이드렌더링을 이용해서 로그인 유지 기능을 구현해보겠습니다. 로그인을 유지하기 위한 과정은 다음과 같습니다. 1. 로그인을 하면, 액세스 토큰과 리프레쉬 토..
리액트 Next.js 앱을 도커 컨테이너로 배포해보겠습니다. version: "3" services: next: build: . ports: - 3000:3000 docker-compose.yml을 작성해줍니다. FROM node:alpine ENV PORT 3000 WORKDIR /usr/src/app..
docker와 docker-compose, nginx를 이용해서 nextjs 앱을 무중단 배포 해보겠습니다. 절차는 다음과 같습니다. 1. 리버스 프록시로 nginx의 80포트를 nextjs 앱으로 연결시켜줄 것이다. 초기에는 3000포트를 바..
같은 방에 참여하고있는 브라우저 채팅방에서 일대다 파일 전송을 해보겠습니다. 절차는 다음과 같습니다. 1. 브라우저에서 spring boot -> s3로 파일 업로드 2. 파일 업로드가 성공적으로 마치면, 열려있는..
스프링 부트에서 레디스를 캐시로 사용하고 있었는데, 다음과 같은 에러가 발생하여서 원활한 작업이 안되고 있었습니다. org.springframework.data.redis.RedisSystemException: Error in execution; nested exce..
자꾸 찾아보기 귀찮아서 간단하게 커맨드만 나열해봤습니다. Ubuntu 18.04 LTS # 발급 $ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository universe $ sudo apt..
2021-09-16 폐쇄 예정입니다. 이용해주셔서 감사합니다. 이용자 감소와 서버 비용 문제로 인해 사이트를 폐쇄하게 되었습니다. 가끔씩 이용해주셨던 분들에게 사과의 말씀 드리고, 짧은 기간이지만 이용해주셔..
nodejs에서 multer와 sharp를 이용하여 이미지 리사이징을 처리해보겠습니다. npm install --save multer npm install --save sharp 이미지 업로드를 위해 multer, 이미지 리사이징을 위해 sharp를 설치해줍니다...
먼저 aws s3콘솔에 접속해서 버킷을 생성해줍니다. 리전은 서울로 설정하고, 나머지는 기본 설정으로 해주었습니다. 3번 권한설정에서는 액세스 차단을 해제해주었습니다. 이제 액세스 키를 발급받기 위해 내..
window 10 home에서 docker toolbox 설치하는데 virtualbox에서 결과 코드 E_FAIL(0x80004005) 때문에 계속 진행이 안되었습니다. 인터넷에서 나오는 웬만한 방법으로 해결이 안된다면, Fasoo DRM이 다운로드되어..
jenkins를 이용해서 배포를 자동화해보겠습니다. 깃허브에 push를 하거나, 로컬에 설치해 둔 jenkins에서 빌드를 하면 자동으로 깃허브의 소스코드로 배포를 진행할 것입니다. 먼저 docker를 이용해 jenkins를..
WebRTC로 개인 프로젝트를 진행할 때, SFU 서버로 동작하는 미디어 서버를 구축하기 위해 설치했던 과정입니다. 설치가 복잡했어서 기록해봤습니다. https://github.com/meetecho/janus-gateway GitHub - meetecho..
janus-gateway 로그에서 다음과 같은 메세지가 뜨면서 연결이 자꾸 죽어버렸습니다. [WARN] [5086647684864600] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't car..
- 권한을 검사하기 위해 토큰 종류 중 하나인 jwt사용 - 서버에서 유저 권한 상태를 유지하지 않고 토큰으로만 관리. 부하가 줄어듬 - jwt를 이용하면 토큰에 데이터를 저장해둘 수 있음 - 액세스 토큰은 통신..
도커 이미지를 가져오는데 다음과 같은 에러가 발생하였습니다. ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on ...3: i/o timeout 그냥 도커머신을 재시작해주니 해결..
docker container는 호스트 OS와 타임존이 동일하게 작동하지 않았습니다. RUN apk --no-cache add tzdata && \ cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \ echo "Asia/Seoul" > /etc/timezone alpin..
react와 spring boot를 이용해서 카카오 로그인 기능을 만들어보겠습니다. 첫 로그인이라면 간단한 회원 정보를 입력받을 것이고, 첫 로그인이 아니라면 그대로 로그인을 진행하겠습니다. https://developers.kaka..
읽은 목록 - 안드로이드 스튜디오를 활용한 실전 앱 만들기 / 조상철 - 신경망 첫걸음 / 타리크 라시드 - 누워서 읽는 알고리즘 / 임백준 - 리액트를 다루는 기술 / 김민준 - 읽기 좋은 코드가 좋은 코드..
clock drift라는 용어를 들어보았는데, 낯선 용어이기 때문에 가볍게 정리해보려고 합니다. 일단 이 용어가 말하는 현상이 나타나는 상황은 다음과 같습니다. 어떤 하나의 노드 내에서 타임스탬프를 이용하여 ID를..
자바 8에서 추가된 Default Method에 대해서 간단하게 정리해보겠습니다. 이전에는 기존의 인터페이스에 기능을 추가하려면, 인터페이스에 추상 메소드를 추가한 뒤, 구현 클래스에 오버라이딩하여 작성해야만 했..
자소 단위로 한글 검색을 구현하기 위해 아래의 플러그인을 이용하였습니다. https://github.com/netcrazy/elasticsearch-jaso-analyzer FROM elasticsearch:6.6.0 RUN /usr/share/elasticsearch/bin/elasticsearc..
컨트롤러에서 HttpServletResponse에 cookie를 담아주는데, 다음과 같은 에러가 발생하였습니다. An invalid character [32] was present in the Cookie value Tomcat의 쿠키 표준에 의해서 특정 기호가 들어가면..
gson을 이용하여 다음과 같은 형태의 JSON 스트링을 인스턴스로 변환해야했습니다. { "id":"gmlwo308", "data" : { "code" : 1000, "list" : [ { "item" : "item1", }, { "item" : "item2", }, ] } } 중첩 구조와..
주기적으로 외부 API와 통신을 해야했는데, 스프링에서 스케줄링을 쉽게 하는 방법이 있었습니다. @Configuration @EnableScheduling public class SchedulingConfig implements SchedulingConfigurer { @Override..
데이터베이스 비밀번호나 key값 등의 민감한 데이터는 별도의 설정파일로 분할해서 관리해야 합니다. 이러한 파일은 깃허브와 같은 공개된 저장소에 올라가면 안되므로 프로젝트 바깥에 따로 보관하게 됩니다. # s..
docker와 docker-compose, nginx를 이용해서 spring boot를 무중단 배포 해보겠습니다. 절차는 다음과 같습니다. 1. 리버스 프록시로 nginx의 80포트를 스프링 앱으로 연결시켜줄 것이다. 초기에는 8080포트를..
일단 결론 먼저 말씀드리면, @Transactional 어노테이션의 noRollbackFor에 롤백하지 않을 런타임 예외를 다음과 같이 지정해주면 됩니다. @Transactional(noRollbackFor = LoginFailureException.class) 제가 겪..
redis를 이용해서 스프링부트에 캐싱을 적용하는 법을 알아보겠습니다. 먼저 redis를 설치해야합니다. 도커를 이용해서 간단히 설치해보겠습니다. $ docker run -d -p 6379:6379 redis -p : redis 컨테이너의 6379..
스프링부트, stomp를 이용해서 실시간 알림을 받을 수 있도록 해보겠습니다. 구현할 내용은 다음과 같습니다. 1. 사용자 1번이 접속해서 웹소켓이 열린다. 2. 사용자 2번이 사용자 1번에게 메세지를 전송하면,..
docker를 이용해서 spring boot, redis, mysql을 배포해보겠습니다. 먼저 만들어진 스프링부트앱을 jar 파일로 빌드하겠습니다. $ ./gradlew bootJar 위와 같이 진행하면, "build/libs"에 jar파일이 생성되어있..
로그인 요청시 access token(jwt)과 refresh token을 발급받는 기능을 구현해보겠습니다. 기존에 access token을 발급 받는 기능까지는 구현을 했었지만, 액세스 토큰의 짧은 만료 기간으로 인해 계속해서 재 로그..
컨트롤러에서 단위테스트를 작성하던 중, 메소드가 호출되었는지 verify()를 사용하는데 다음과 같은 메세지가 나왔습니다. Argument(s) are different! Wanted: ... -> ... Actual invocations have different ar..
브라우저에서 API서버와 통신 중에 다음과 같은 메세지가 발생하였습니다. Access to XMLHttpRequest at '...' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight req..
미처 발견하지 못한 부분들을 알아보고자 몇 가지 피드백을 받게 되었고, 이를 통해 구조를 개선하는 과정을 거쳐보도록 하겠습니다. 먼저 지금의 구조입니다. 지금은 Builder와 Step이 서로 의존하고 있는 관..
선택적으로 값을 추가할 수 있도록 코드를 수정해봤습니다. 필수 값들의 초기화 체이닝이 끝나면, 선택적으로 빌드할 수 있는 타입으로 반환되고, 이 타입은 남은 필드들과 빌드할 수 있는 기능을 가지고 있습니다..