-
DB [AWS RDS] mysql: table doesn't exist 1. 문제상황 Spring 백단에서 프로퍼티별 개발환경을 나누고 로컬에선 H2db, 개발서버에선 aws rds mysql 8.0 을 사용하도록 datasource를 연결하였다. 그리고 h2db쪽에서는 쿼리가 잘 날라가는 걸 확인. 테스트 완료후 ec2에 배포하고 개발서버에서 실행했는데 table이 없다고 나옴. 2. 시도한 방법들 - JPA Naming Strategy 기본적으로 아무런 설정을 하지 않으면 @Table 의 지정한 name 이 대 소문자를 구분하여 쿼리가 날라간다. 즉 , mysql 에서는 테이블 명이 USERS 였고 JPA entity 의 name 은 users 였기 때문에 테이블을 찾지 못하는것. 그래서 별도의 namingStrategy를 프로퍼티에서 지정해주거나 엔티티에서 Table..
-
Spring [Spring] java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport ... 스프링부트를 안 쓰고 간단한 라이브러리를 만드는 도중 다음과 같은 문제 발생. What went wrong: Execution failed for task ':compileJava'. > java.lang.NoSuchFieldError: Class cohttp://m.sun.tools.javac.tree.JCTree$JCImport does not have member field 'cohttp://m.sun.tools.javac.tree.JCTree qualid' 환경변수로 자바 버전이 21 이상인 경우에 gradle build 하니깐 자꾸 실패하길래 관련 글 서칭 https://github.com/projectlombok/lombok/issues/3393 [BUG] lombok 1.8.26 incomp..
-
프로그래머스 [프로그래머스] [Level2] 가장큰수 JAVA https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📝문제 📝풀이 가장 큰 수를 만들기 위해서 배열안의 수를 큰 수가 될 수 있는 조건으로 정렬을 해야한다. 만약 [ 3, 30, 34 ] 안의 우위를 정할 때 기준운 문제에 나와 있듯이 각각 수를 이어 붙였을 때 제일 큰 수로 하면 되므로 정렬 조건은 (s1, s2) -> (s2 + s1).compareTo(s1 + s2) 추가로 [0, 0, 0, 0] 일 경우엔 0만 리턴하도록 예외처리. impo..
-
백준 [BOJ] 백준 [15486] 퇴사 2 JAVA https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 📝문제 📝풀이 하루씩 순차적으로 진행하면서 특정 일의 상담을 진행하고 나서 받는 총 합 이익을 갱신 시켜주면 된다. 특정일을 i 상담 걸리는 시간을 A(i) 페이를 P(i) 페이 총합을 S(i) 라고 했을 때 점화식은 S(i + A(i)) = max( S(i + A(i)), S(i)+P(i) ) 가 된다. 추가로) i 의 범위는 i 번째 상담을 끝 났을 때 i+1 일..
-
프로그래머스 [프로그래머스] [Level2] 과제진행하기 JAVA https://school.programmers.co.kr/learn/courses/30/lessons/176962# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📝문제 📝풀이 과제 진행의 우선순위는 1. 시간 2. 최근에 멈춘 과제 이다. 1. 과제를 시간순으로 먼저 정렬해두고 하나씩 진행 2. 현재 과제를 딜레이 시키지 않고 처리할 수 있는 경우 처리 2-1. 밀린 과제가 있는 경우 밀린 과제 스택에서 하나를 꺼내서 다음 처리 과제 대상에 넣음 2-2. 밀린 과제가 없는 경우 다음 과제를 진행 3. 현재 과제를 딜레이 시켜야 할 경우는 현재 시간과 ..
-
개인프로젝트 사람인 기업 필터링 기능 만들기 (with Tampermonkey) Tampermonkey Tampermonkey는 웹 브라우저 확장 프로그램(chrome extention) 중 하나로, 주로 사용자가 웹 페이지의 동작을 수정하거나 개선하기 위해 스크립트를 실행할 수 있게 해주는 도구이다. Tampermonkey는 대부분의 주요 웹 브라우저에서 사용할 수 있으며, 사용자 지정 스크립트를 실행하여 웹 페이지에 자신만의 기능을 추가하거나 웹 사이트의 동작을 수정할 수 있다. Tampermonkey를 사용하면 할 수 있는 것들: 1. 사용자 지정 스크립트 실행: Tampermonkey를 통해 웹 페이지에 JavaScript 스크립트를 삽입하고 실행가능. 이를 통해 웹 페이지의 내용을 수정하거나 기능을 확장할 수 있다. 2. 광고 차단: Tampermonkey를 사용하여 광고 ..
-
Spring [Spring] Websocket 과 ReverseProxy Websocket 말 그대로 Web 을 이용한 Socket 통신이다. 즉 , HTTP 통신을 이용한다. 웹 브라우저 WAS 간의 실시간 양방향 통신을 위해 사용한다. 처음 핸드쉐이크를 요청할 때 까진 HTTP 와 통신과정이 같고 그 이후엔 TCP 커넥션을 이용하여 실시간으로 통신한다는 것이 특징이다. 여기서 특별한 헤더가 추가 된다는 것이 특징인데 , Upgrade 헤더이다. HTTP 요청 헤더에서 Websocket 통신을 위해 Upgrade 헤더를 추가해서 요청을 보내는데 이 요청이 WAS 쪽에서 받아 들여져야 그 이후 ws:// or wss:// 프로토콜을 통해 양방향 통신이 가능한 상태가 된다. Reverse Proxy 웹 소켓 서버 정보를 클라이언트쪽에서 (js 단에서) 가지고 있는 것은 상당히 ..
-
Spring [Spring] Redisson Remote Service 분해해보기 Redisson Reddison 은 Redis 의 클라이언트중 하나로 Jedis, Lecttuce 와 같은 ‘분산’ 서비스 또는 락을 중점으로 이용할 때 사용된다. 이번 포스팅은 락 관련은 넘어가고 Remote Service 에 대해 포스팅하고자 한다. Redisson Remote Service 기존의 다른 Redis 클라이언트로는 할 수 없었던 Redisson 의 분산 서비스의 특징이다. RemoteService 는 크게 서버 인스턴스와 클라이언트 인스턴스로 두 종류로 구성되어있다. 위 그림과 같이 아래 클라이언트 인스턴스가 호출하고자 하는 서비스 인터페이스를 가지고 호출을하면 서버측 인스턴스에서 요청을 받아들이는 방식으로 작동한다. 프로젝트 생성 실행 환경 : springboot 3.1.0, Grad..
LIST