전체 글

기록합시다.
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..

TIPS

[ERROR] Intellij Libraries에 maven 안보임

해결책 1. Add Frameworks Support - > maven 선택 해결책 2. maven 환경으로 인식하는것 같지만 라이브러리는 찾지 못함. .idas 설정 파일로 들어간다. libraries 파일이 존재하는지 체크한다. 위와 같은 파일들 목록이 필요함. 기존에 Intellij + maven 설정환경이 있었는지 확인해서 파일을 붙여넣기한다. 프로젝트의 .iml 파일에 라이브러리 관련 설정이 잘 되어있는 지 체크한다. 문제 상황 2. Dependencies 설정이 죄다 빨간 불 들어와서 인식도 안되는 경우. POM.xml 파일의 repository를 다지웠다가 다시 다른 걸로 설정해서 다시 올릴 것.

TIPS

윈도우 [ 원격 데스크톱 연결 ]복사 붙여넣기 안 될 경우.

원격 피시 작업 관리자에서 먹통 되는 현상 -- > 컴퓨터 및 팀뷰어 재부팅 처리. 이후 복사 붙여넣기가 안되는 에러가 있었음. 해결 방안 :: 복사 붙여넣기가 잘 실행 됨을 알 수 있다.

ALGORITHM

완전탐색 / 모의고사

완전탐색 상대적으로 구현이 간단하고, 해가 존재한다면 항상 찾게 된다. 완전 탐색으로 푼다면 기본적으로 시간 복잡도가 O(2^N)이나, O(N!) 이므로 INPUT의 값이 작아야한다. DFS / BFS 와 조합해서 풀이가 되는 문제가 꽤 있음. 방식은 대개 EX) { a, b, c, d } 중 2개를 뽑아서 일렬로 세운다면, ab ac ad ba bc bd ca cb cd da db dc 이처럼 다 찾거나, 반복문을 필요한 개수 만큼 돌리게 된다. for (int i=0; i < size; i++ ) { for (int j=0; j < size; j++) { for (int k=0; k < size; j++) { ...... } } } https://programmers.co.kr/learn/course..

ALGORITHM

Big O / 시간복잡도 / Binary Search / Linear Search

선형 검색의 시간 복잡도는 O[N] 이다 라고 설명하는게 좋다. 공통적으로 모든 사람이 이해 하고 내용이 명확하게 어느정도인지 공유되고 알 수 있음 O[N] 으로 쓰는 게 Big O 표기법이다. 상수 알고리즘 O(1) 라고 표기한다. 인풋의 크기가 얼마나 되는 지는 상관이 없다. 위와 같은 알고리즘이 상수 알고리즘 항상 이렇게 구현 할 수 있을리가 없다. 에 속한다. 보기도 쉽고 알기도 쉽다. 다음은 O(N) 로 표기한다. 맨처음에 나타난 그래프가 O(N)이다 대각선 그래프다. Quadratic Time ( 2차 시간 ) 2차 시간은 Nested Loops (중첩반복) 이 있을 때 발생한다. 배열의 각 아이템에 대해 루프를 반복해서 실행한다. 따라서 시간복잡도는 인풋의 N^2 에 해당한다. 로그 시간(L..

girin_dev
girin_dev