닥치고 코딩 84

서버 접근확인/통신확인

외부서버 접근확인을 위해서 보통 ping을 쳐보거나 바로 ssh로 붙어보는데 ping이나 ssh는 보안상 막아놓는 곳이 많기 때문에 텔넷(telnet)을 이용해 해당 포트(Port)가 통신 가능한지 확인하는게 좋다. (일하면서 헷갈렸던 부분인데 telnet은 서버간의 통신확인, 방화벽 확인을 하는것이지 telnet이 된다고 ssh연결이나 ping이 되는건 아님. 따로 막혀있을 수 있다.) telnet [IP 또는 도메인] [포트] telnet 123.123.123.123 1521 이런식으로 원격지 아이피와 포트를 입력하고 netstat을 통해 통신이 가능한지 확인할 수 있다. 내가 자주 사용하는 방식 1. 터미널을 두개 열어놓는다. 2. 한 쪽에서 telnet 123.123.123.123 1521입력 3..

리눅스 2021.08.10

java array관련 함수

1. asList(array) : 배열을 ArrayList로 변환해준다. 배열은 크기가 정해져있고 값의 삭제 등이 자유롭지 않아 불편한 점이 많다. asList를 사용하여 리스트로 변환한 후 체인메소드(chain method) 방식으로 ArrayList의 메소드를 더하여 활용하면 여러모로 편리한 점이 많다. Arrays.asList(arr); Arrays.asList(arr).contains("test");//arr배열에 "test"문자가 있는지 확인 2. toString(array) : 배열에도 toString이 존재한다. toString이라는 메소드는 클래스에서 ALT+SHIFT+S를 누른 후 Generate toString을 이용해 오버라이딩할 수 있다. 3. Sort(array) : 함수의 정렬,..

Java & Spring 2021.08.09

java string관련 함수정리

알고리즘이나 웹 개발의 기본이되는 String관련 함수정리 1. equals() equals는 두개의 문자열이 동일한 값을 가지고 있는지를 비교하여 결과값을 리턴. 사용형태 a.equals(b) 실제 문자열이 가지고 있는 내용을 비교하는 것이다. a==b 와는 다르다 a==b는 문자열변수의 주소값을 비교하는 것. String a = "test"; String b = a; String c = "test"; String d = new String("test"); String e = "wtf"; System.out.println(a==b);//true System.out.println(a.equals(b));//true System.out.println(a==c);//true System.out.println..

Java & Spring 2021.08.08

자바 parseInt vs valueOf 차이

알고리즘 풀면서 몰랐던 int의 형변환 관련 함수를 정리 문자를 숫자로 바꾸는 Integer.parseInt()와 Integer.valueOf()가 있다. 먼저 자료형의 기본타입인 int가 있고 객체 타입을 반환하는 Integer가 있다. 이 밖의 제공하는 Wrapper 클래스 기본형 | 래퍼 클래스 byte - Byte short - Short int - Integer long - Long float - Float double - Double char - Character boolean - Boolean 기본적으로 Integer는 unboxing 하지 않으면 산술연산이 불가능했고 null처리가 가능하여 sql이나 vo와 연동하여 쓰임. 하지만 일반적으로 JDK 1.5부터 auto unboxing이 가능..

Java & Spring 2021.08.07

자바 알고리즘 입출력 받기

알고리즘의 가장 기본 입출력 알아보자 Scanner, Println등도 모르면서 알고리즘을 무작정 풀 수는 없는 노릇이고, 시간제한이 있는 문제의 경우에는 입출력에 소비되는 시간을 최소화해야함. 자바의 출력 System.out.println() Java에서 가장 일반적인 출력, 줄바꿈이 된다 System.out.print(...) println과 달리 줄바꿈이 안됨. System.out.printf(...) C언어의 printf와 흡사하게 사용 자바의 입력 Scanner (java.util.Scanner) next자료형을 이용해서 입력을 받을 수 있다. hasNext자료형을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있다. Iterator를 Interface로 상속받기 때문에, Iterator에..

Java & Spring 2021.08.05

mysql에 csv파일 덤프

누군가에게 도움이 되길... #shellscript로 csv -> mysql에 인서트 # oracle csv로 출력해서 위에 찌꺼기 찾아내서 컬럼으로 변경 #heading off 나 echo off 가 안먹어서 find명령어로 찾아 지워줌. # 버젼에 따라 csv모드가 안돼서 문자열로 csv만들어줌 SELECT COL1||','||COL2||','||COL3 from TABLE; find ${LOCAL_PATH}/sql/ -name "user.txt" -exec sed -i 's/SQL> SELECT COL1||','||COL2||','||COL3 from TABLE;/CHANGE1,CHANGE2,CHANGE3/' {} \; #오라클 인코딩 변경할 수 없어 파일을 euc -> utf로 변경 iconv -..

기타 2021.08.04

DP(다이나믹프로그래밍)

분할정복 기법 + 메모이제이션으로 푸는 알고리즘 작은 문제들을 풀다보면 같은 문제들을 반복해서 풀 수 있고, 그 문제들은 매번 재계산 하는것이 아닌 따로 값을 저장해 두었다가 재사용하는 기법. 예를들어 피보나치 수열을 들 수 있다. 위와 같은 점화식의 피보나치 수열은 n이 1보다 클 경우 자신의 이전 항 들의 값으로 이루어짐. f(5)를 구하기 위해선 f(5) = f(4) + f(3) f(4) = f(3) + f(2) f(3) = f(2) + f(1) f(2) = 1 f(1) = 0 위 처럼 f(1) = 2 f(2) = 3 f(3) = 3 f(4) = 2 f(5) = 1 위처럼 중복해서 계산이 필요하고 이는 숫자가 커질수록 더 많은 연산을 필요로하며 '지수 시간 시간복잡도'를 발생 정해진 시간안에 문제해..

알고리즘 2021.08.03