분류 전체보기 191

Java Application 중복 실행 방지(배치 프로그램)

자바 프로그램 중복 실행으로 문제가 발행하지 않게 하기 위한 대처 방법입니다. Spring Batch는 자동으로 PORT 설정이되어 실행되므로 문제가 없을것이라 판단되나, 일반적인 자바 배치 프로그램은 실행중 여부에 상관없이 몇개든 실행이 되도록 되어있습니다. 중복 실행 방지에 대한 다양한 방법이 있으나 1. 프로그램실행시 Temp 파일 체크 및 생성 2. PORT 점유 3. DB Flag 설정 등등.... 가장 안정적이며 확실한 방법중 하나인 PORT 점유에 대해 설명하려고 합니다. 임의의 PORT를 점유하여 사용하게 되며, 프로그램 실행시 해당 PORT 사용 가능여부에 따라 배치 실행, 종료가 결정됩니다. 반드시 실행중인 다른 프로그램이 사용하지 않는 PORT를 사용해야하며, 해당 서버 정보에 명시를..

JAVA/JAVA 2020.06.04

NIO 파일, 폴더 생성

// Create Folder Path newFolderPath = Paths.get("D:\\Desktop\\test"); if(Files.exists(newFolderPath) && Files.isDirectory(newFolderPath)){ System.out.println("폴더가 존재합니다."); }else{ Files.createDirectory(newFolderPath); System.out.println("폴더가 생성되었습니다."); } // Create File Path newPath = Paths.get("D:\\Desktop\\새 폴더 (6)\\isTest.txt"); if(Files.exists(newPath)){ System.out.println("파일이 존재합니다."); }el..

JAVA/JAVA 2020.06.04

폴더내 파일 검색

Path path = Paths.get("D:\\Desktop\\새 폴더 (6)"); // 1번 방법.. 많이 사용하는 방식(느리며, 효율적이지 않음) try(Stream stream = Files.walk(path)){ long cnt = stream.filter(s ->{ return !Files.isDirectory(s) && s.getFileName().toString().startsWith("applicationContext"); }).count(); System.out.println(cnt); } catch (IOException e) { e.printStackTrace(); } // 2번 방법.. 1번 방법보다 비교도 안되게 빠름. try(Stream stream = Files.find(pa..

JAVA/JAVA 2020.06.04

JAVA 브루토포스(BruteForce) 문자열 검색

public class BruteForce { /* 다른 문자를 만나면 패턴에서 문자를 검색했던 위치 결과를 버리고 다음 텍스트 위치로 이동하여, 다시 패턴의 처음부터 검사. text에서 pattern 을 검색하여 텍스트의 시작 위치를 반환한다. 없을 경우 -1 반환 */ public static int bfMatch(final String text, final String pattern){ int textPosition = -1; int patternPosition = 0; while(textPosition < text.length()){ textPosition += 1; if(text.charAt(textPosition) == pattern.charAt(patternPosition)){ // 현재 문..

JAVA/알고리즘 2020.06.04