분류 전체보기

JAVA/SPRING

spring boot / H2 DB 세팅

🤢 테스트용으로 인메모리 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..

JAVA/SPRING

Hikari CP / Spring boot 설정

CP : connection pool Connection의 과부하를 막기 위해 씀. Connection을 미리 만들고 Connection pool 에 두었다가 사용자의 요청이 발생할 경우 Connection을 제공하고, 요청이 끝났다면 다시 Connection pool에 보관한다. DB접속 설정 객체를 미리 만들어 연결하여 메모리 상에 등록해 놓기 때문에 클라이언트가 빠르게 DB에 접속 가능 DB Connection 수를 제한 할 수 있어서 과도한 접속으로 인한 서버 자원 고갈 방지 가능 DB 접속 모듈을 공통화해 DB서버의 환경이 바뀔 경우 쉬운 유지보수 가능 연결이 끝난 Connection을 재사용함으로써 새로 객체를 만드는 비용을 줄일 수 있음 😒HikariCP란 Springboot 2.0 부터 d..

JAVA

jwt 토큰 인증 + Interceptor 검증.

ID / PW 를 사용하는데 pw를 토큰으로 써보자. * 이방식은 refresh token으로 만료 기한을 연장하는 방식이 아니며, access token의 만료기한만 검사. 목적 : interceptor 에서 사용자의 요청에 앞서 json token의 만료 기한을 검증한다. pom.xml에 의존성 추가. io.jsonwebtoken jjwt 0.9.1 토큰 생성. public static String createToken(UserDto user, String SECRET_KEY) { //Header 설정 Map headers = new HashMap(); headers.put("typ", "JWT"); headers.put("alg", "HS256"); // algorithm SignatureAlgor..

JAVA/SPRING

QueryDSL , Criteria , Native Query

간단한 경우, 와 같은 방법으로도 처리가 된다. 아니라면, 굳이 @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(..

JAVA

java 정규 표현식

🤢 하고 싶은 것. : {"param" : " "param1" "param2" "param3" "} --> {"param" : ""} 결과 먼저: temp = "바꾸고 싶은 문자열"; String regx = "\"\"[^,|}]+"; temp = temp.replaceAll(regx,"\"\""); String tt = "{" + "\"type\":\"80\"" + ",\"src_path\":" + "{\"path\":\"/Storage/highres/2022/01/06/106145/106145.mxf\"" + ",\"src_id\":\"\",\"src_pwd\":\"\",\"src_strg_id\":0,\"src_strg_nm\":\"\"}" + ",\"tgt_path\":" + "{\"path\":..

SERVER

iptables / centOS7 / 방화벽 설정 / 공유기 포트포워딩 세팅

원격 개발용 서버에 접속했을 때 갑자기 404가 떠있는 상황이 있다. 위와같이 나온다면 접속은 된다는 이야기. 순서는 다음과 같다. 1. 서버에 내가 원하는 배포가 잘 이루어졌지만 원격에서 안들어가진다. 내가 서버로 쓸 컴퓨터의 공유기 정보를 확인한다. 2. 로컬에서 포트가 접속되는지 확인한다. $ telnet 127.0.0.1 8080 또는 $ ping 192.168.1.1 만약 위 과정에서 접속이 안된다면 서버의 포트가 열려있는지 체크한다. $ netstat -nap | grep 8080 ( port ) 위 과정에서 안열려있다면 서버의 포트를 여는 작업을 해야 한다. 현재 서버의 iptables 정보를 체크한다. 😒 iptables는 리눅스 상에서 방화벽을 설정하는 도구이다. 커널 2.4 이전 버전에..

JAVA/SPRING

log4j2.xml / log4jdbc / slf4j 설정

😒 로그는 정확히 필요한 내용을 꼭 기록하는게 좋음. LIB 설정 (MAVEN) pom.xml * JDBC org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 * slf4j (slf4j 인터페이스와 log4j2를 연결해주는 모듈 역할) * 취약점 없는 최신버전으로 수정 org.apache.logging.log4j log4j-slf4j-impl 2.17.2 * log4j api / core org.apache.logging.log4j log4j-core 2.17.2 org.apache.logging.log4j log4j-api 2.17.2 * spring settings war 1.0.0-BUILD-SNAPSHOT 1.8 UTF-8 UTF-8 5.3.13 1.8..

ERROR

[ERROR] Spring 5.3.XX / 404 Not Found Return

신규 프로젝트에서 스프링 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..

ALGORITHM

백준 2837 / java

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..

ALGORITHM

SHA-256 (Secure Hash Algorithm)

현재 개발 중인 프로젝트는 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..

girin_dev
'분류 전체보기' 카테고리의 글 목록 (9 Page)