전체 글 (224) 썸네일형 리스트형 Trouble Shooting: @Value에 값이 불러와지지 않는 문제 1. 개요카카오 로그인을 구현하다 발생한 문제이다. 프론트 측에서 코드를 받아 서버에 보내면, 서버에서 이를 Auth 서버와 Resource 서버를 통해 사용자 정보를 받아오고, 로그인을 진행하는 과정을 거치게 된다. 이렇게 개발하여 배포했을 때 카카오 측에서 401 에러를 발생시켰다. 그 원인과 해결책을 알아보고자 한다.2. 원인?로깅 레벨을 debug로 보고 관련 로그를 확인해보았다. 진행 로직에서 다음의 URL로 Auth Server에 요청을 보내는 것을 확인할 수 있었다.https://kauth.kakao.com/oauth/token?grant_type=authorization_code&client_id&code=인증 코드&client_secret이걸 보고 client_id와 secret key가.. Leetcode 3163 String Compression III (Java) https://leetcode.com/problems/string-compression-iii/class Solution { public String compressedString(String word) { Integer cnt=1; char ch=word.charAt(0); String comp=""; if(word.length()==1){ comp+=cnt.toString()+ch; } for(int i=1;i1. 문제소문자로만 이루어진 문자열 하나가 주어진다. 해당 문자열을 다음의 규칙에 맞추어 압축하려 한다.같은 문자가 최대 9번 반복되는 문자를 하나로 압축한다.해당 문자의 앞에 그 .. Hello Docker! : 프로젝트 EC2에 배포해보기 1. 개요 지금까지의 프로젝트에서 EC2에 서버를 배포하고, CodeDeploy를 이용하여 CI/CD를 구축하였다. Docker를 여태 들어보기는 했으나 사용하지 않던 중 이런 의문이 들었다.Docker가 대체 뭐길래? 이를 직접 사용하면서 해결하고자, 직접 배포부터 CI/CD까지 구축해보면서 Docker의 장단점을 스스로 깨달아보고자 한다. 해당 게시글은 구구모 프로젝트를 바탕으로 진행하도록 한다. 2. 진행 과정2-1. BootJar우선 프로젝트를 빌드하여 실행 가능한 jar 파일을 하나 만든다. 해당 파일을 도커에 올리고, 이를 배포하여 실행하도록 할 것이다.2-2. DockerfileFROM openjdk:17ARG JAR_FILE=build/libs/*.jarCOPY ${JAR_FILE} ap.. Leetcode 1277 Count Square Submatrices with All Ones (Java) https://leetcode.com/problems/count-square-submatrices-with-all-ones/ class Solution { public int countSquares(int[][] matrix) { int ans=0; int[][] dp=new int[matrix.length][matrix[0].length]; for (int i = 0; i 1. 문제0과 1로 이루어진 n*m의 배열이 주어질 때, 1로 만들 수 있는 정사각형의 개수를 구하라.2. 풀이dp[i][j]: (i, j)를 우측 하단으로 취급해 만들 수 있는 정사각형의 개수라 하자. int[][] dp=new int[matrix.length].. Spring OAuth2를 사용하여 소셜 로그인 구현하기 (feat.추가 정보 입력) 1. 개요Tripot 프로젝트에서는 소셜 로그인만을 사용하여 회원의 정보를 받고자 한다. 이에 따른 구현 과정을 작성한다.2. 개발 과정2-1 추가 정보 입력 로직해당 로직을 어떻게 구현해야 하는지 떠올리는 데 생각보다 오래 걸렸다. 만약 어떤 회원이 추가정보 입력 화면에서 앱을 종료해버릴 경우 이를 확인할 방법이 없기 때문이다. 그러다 프론트 분과 대화해 본 결과 응답 바디 값에 따라 서로 다른 페이지로 이동하는 것이 가능하다고 했다. 이에 따라 다음과 같이 로직을 작성했다. 이후 개발을 하다보니 소셜 로그인 진행중에 회원 가입 처리가 되어야 한다는 것을 알고 이를 조금씩 다듬었다.2-2 로그인 진행 과정: 설정우선 카카오 로그인에 관련된 주소 및 정보를 yml 파일에 저장한다. security: .. LeetCode 2684 Maximum Number of Moves in a Grid (Java) http://leetcode.com/problems/maximum-number-of-moves-in-a-grid class Solution { public int maxMoves(int[][] grid) { int ans=0; int c = grid[0].length; int r = grid.length; int dp[][] = new int[r][c]; for (int j = c - 2; j >= 0; j--) { for (int i = 0; i = 0 && j + 1 1. 문제m*n의 배열이 주어진다. 해당 배열의 왼쪽 끝에서 시작하여 이동하는데, 우상, 우, 우하의 방향으로 현재 위치의 값보다 큰 숫자로만.. 프로젝트 DB 보안 간단히나마 관리하기 1. 개요Tripot 프로젝트를 진행하던 중 스프링부트 프로젝트와 DB가 연결되지 않는 문제가 발생했다. DB 상태를 확인하니 다음의 결과가 나왔다.systemctl status mysql mysql이 죽어버린 것이다. 이 글에서는 이의 원인을 찾고 해결하는 과정을 작성한다.2. 원인이와 관련하여 구글링해본 결과 처음에는 외부에서 접속을 많이 시도하여 발생한 문제인 케이스가 많았다. 이에 따라 에러 로그를 확인해봤다. mysql의 에러 로그는 다음의 경로에 위치한다./var/log/mysql/error.log 하지만 프로젝트에서 사용하는 PC는 어떤 로그도 찍히지 않았고, 다른 원인이라고 생각하여 찾아보던 중 mysql에 RECOVER_YOUR_DATA라는 DB가 있어 들어가 찍어보았다. 옛날에 컴퓨터 .. 프로그래머스 기능개발 (Java) https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { List ans=new ArrayList(); Queue qu=new ArrayDeque(); for(int i=0;i= qu.peek()) ) { qu.p.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 28 다음