본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


java28

자바 함수형 프로그래밍 2 람다식의 등장으로 자바에서도 편리하게, 보기쉽고 간결하게가 모티브가 되어 여러 기능들이 새롭게 계속 나오고 있다. 물론 함수형 프로그래밍 기법을 몰라도 코딩하는데 문제는 없지만. 저번에 사용한 기법은 인터페이스에 내장된 default 메소드를 통한 사용방법이었다면, 지금 소개할 내용은 Fuctnion이라는 인터페이스를 활용하는 방법이다. 기본적으로 람다를 알고 있어야 함수형 인터페이스르 이해 할 수 있다. 첫번째 함수 f는 String값을 받아 Integer형태를 리턴한다는 내용이다. 해당 함수를 구현하면 기본적으로 apply라는 메소드를 통해서 실행이 가능 하다. 함수에서는 반드시 리턴값이 존재하기 때문에 만약 void 형태를 구현한다면 Consumer를 활용하면된다. public class Main .. 2019. 4. 25.
Java Exception 기록하기 에러가 발생하면 통상적으로 printStackTrace를 사용하고는 한다. 그런데 해당 메소드는 void 타입으로 저장되어있는 메시지를 출력하는 용도로 쓰인다. 에러로그를 대충 기록하려면 getMessage 메소드에서 문자값을 가져오면 끝나지만 상세히 기록하는데는 별 쓸모가 없다. printStackTrace를 자세히보면 이름이 같은 오버로딩 형태의 메소드가 존재하는데..해당 메소드를 사용하면 메시지를 얻을 수 있다. catch (Exception e) { String res = ""; e.printStackTrace(); //출력 res += "----------*---------- 간단메시지 : " + e.getMessage(); res += "----------*---------- 이유 : " + .. 2019. 4. 25.
Java로 프로그램(exe, sh같은) 실행 java로 파이썬이나 R 프로그램을 동작하는 경우가 있었다. 조금더 깔끔하게 무언가 callback형식으로 만들고 싶다는 생각이 들어서 여러방법을 조합하여 보았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Test { private static Process process = null; public static void main(String args[]){ exeOrder("c:/test.exe",new Item() { @Override public void todo(String res) { // 콜백으로 할.. 2019. 4. 25.
파일 복사하기, Blob데이터를 파일로 만들기 종종 파일을 이동 하거나 이름을 바꾸는 경우는 있어도 파일을 복사하는 경우는 별로 없었던 것 같다. 아래 소스코드는 jdk 1.4부터 사용가능한 파일 복사용 메소드이다. 간혹 이런거 만들기 귀찮을 때 공통 util용 클래스 만들고 가져다 쓰면 편하다. //파일카피, 첫번째는 원본파일, 두번째는 대상 public static void copyFileUsingChannel(File source, File dest) throws IOException { FileChannel sourceChannel = null; FileChannel destChannel = null; FileInputStream fs = null; FileOutputStream fo = null; try { fs = new FileInput.. 2019. 4. 25.
Java로 File 만든 날짜 보기 자바에서 파일이 수정된 일자는 File 클래스를 통해서 쉽게 가져 올 수 있다. 그런데 파일이 만들어진 일자는, File 클래스에서 제공하지 않는다. JDK 1.7부터 BasicFileAttributes라는 클래스를 제공하여주는데 해당클래스를 활용하면 쉽게 가져 올 수 있다. 물론 1.7부터 지원하니 그 이하 버전에서는 Class not found 될 것이다. File file = new File("E:/test.txt"); BasicFileAttributes attrs = null; try { attrs = Files.readAttributes(file.toPath(),BasicFileAttributes.class); String date = attrs.creationTime().toString(); .. 2019. 4. 25.
Spring 비동기 응답(Spring async, Spring EnableAsync) ajax나 form테그에서의 submit등을 통하여 어떠한 요청을 한 뒤에 바로 응답을 요구하는 경우가 있었습니다.(결과에 상관없이) 이럴 때 간단하게 해결하는 방법은, 요청 받는 메소드 내부에 thread를 만들어서 비지니스 로직은 따로 수행하게 하고 응답은 바로 되돌려주면 가능 합니다. @Controller public class ZController { @RequestMapping(value = "/요청", method = RequestMethod.POST) @ResponseBody public String test(@RequestParam HashMap param) { new Thread(()-> { //서비스 클래스에서 비지니스로직을 수행 }).start(); return "SUCC"; } } .. 2019. 4. 25.