🤢 테스트용으로 인메모리 h2 환경을 조성한다. java 1.8 / springframework.boot 2.7.0 / gradle 테스트용이나, 개인 사이드 프로젝트용으로 쓰는 이유는 데이터를 디스크가 아닌 메모리에 보유하고 있기 때문임. (휘발성을 띄고 있지만, 설정에 따라 파일로 기록 가능하다.) build.gradle dependencies { // https://mvnrepository.com/artifact/com.h2database/h2 implementation group: 'com.h2database', name: 'h2', version: '2.1.212' implementation 'org.springframework.boot:spring-boot-starter-jdbc' } appl..
CP : connection pool Connection의 과부하를 막기 위해 씀. Connection을 미리 만들고 Connection pool 에 두었다가 사용자의 요청이 발생할 경우 Connection을 제공하고, 요청이 끝났다면 다시 Connection pool에 보관한다. DB접속 설정 객체를 미리 만들어 연결하여 메모리 상에 등록해 놓기 때문에 클라이언트가 빠르게 DB에 접속 가능 DB Connection 수를 제한 할 수 있어서 과도한 접속으로 인한 서버 자원 고갈 방지 가능 DB 접속 모듈을 공통화해 DB서버의 환경이 바뀔 경우 쉬운 유지보수 가능 연결이 끝난 Connection을 재사용함으로써 새로 객체를 만드는 비용을 줄일 수 있음 😒HikariCP란 Springboot 2.0 부터 d..
간단한 경우, 와 같은 방법으로도 처리가 된다. 아니라면, 굳이 @Query로 다시 쿼리 쓴다 - > 오타 , 띄어쓰기 등에 의해 에러를 내뱉을 확률이 높아짐. 따라서 Criteria 또는 open source 라이브러리인 QueryDSL을 쓴다면 더 간편하게 JPA를 쓸 수 있다. Criteria는 JPQL을 생성하는 빌더 클래스에 해당한다. 프로그래밍 코드로 JPQL을 작성해준다는 장점이 있다. CriteriaBuilder cb = em.getCriterBuilder(); CriteriaQuery query = cb.createQuery (Member.class); Root m = query.from(Member.class); CriteriaQuery cq = query.select(m).where(..
원격 개발용 서버에 접속했을 때 갑자기 404가 떠있는 상황이 있다. 위와같이 나온다면 접속은 된다는 이야기. 순서는 다음과 같다. 1. 서버에 내가 원하는 배포가 잘 이루어졌지만 원격에서 안들어가진다. 내가 서버로 쓸 컴퓨터의 공유기 정보를 확인한다. 2. 로컬에서 포트가 접속되는지 확인한다. $ telnet 127.0.0.1 8080 또는 $ ping 192.168.1.1 만약 위 과정에서 접속이 안된다면 서버의 포트가 열려있는지 체크한다. $ netstat -nap | grep 8080 ( port ) 위 과정에서 안열려있다면 서버의 포트를 여는 작업을 해야 한다. 현재 서버의 iptables 정보를 체크한다. 😒 iptables는 리눅스 상에서 방화벽을 설정하는 도구이다. 커널 2.4 이전 버전에..
신규 프로젝트에서 스프링 4.2.3 버전을 쓰다가 5.3.13 버전으로 버전업을 했다. 일단 첫째로 라이브러리 호환 안되는 경우 체크 + 저번에 보아두었던 RestTemplate 말고 WebClient 메서드를 알아 보려고 했는데 테스트용으로 가볍게 API를 호출했던 결과 404만 뱉어냈다. swagger-ui.html 관련 페이지를 호출하는 경우도 모두 마찬가지였다. 당시의 로컬 호스트 로그 기록 : 더불어 filter 단에서 찍히는 클라이언트 요청의 파라미터도 컨트롤러 단에서는 찾아볼수도 없는 버그도 있었음. 다른 사람들은 ? https://stackoverflow.com/questions/70691545/http-status-404-not-found-java-spring-mvc HTTP Status..
https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int length = Integer.valueOf(br.readLine()); int[] tt = new int[length]; fo..
현재 개발 중인 프로젝트는 bearer 방식의 jwt + hash 비밀번호를 쓰려고 한다. SHA-256에 대해 알아 보려고 한다. java code 사용 할 경우. import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class main { public static void main(String[] args) throws Exception { System.out.println(sha256("needjarvis")); } /** * SHA-256으로 해싱하는 메소드 * * @param bytes * @return * @throws NoSuchAlgorithmException */ public sta..