압축파일 생성 java에서도 파일을 압축 하고 압축을 해제 할 수 있습니다. 심지어 java.util.zip 에 기본적으로 포함 되어 있기 때문에 외부 라이브러리를 사용하지 않고도 손쉽게 구현 할 수 있습니다. 아주 간단한 예제를 만들어서 실습 해 보겠습니다. 사전준비 사실 준비라고 할 것도 없고, 그냥 압축 할 파일을 몇개 준비시켜 둡니다. Terminal 을 켜서 파일들의 경로도 미리 확인을 해 둡니다. 코드작성 세개의 파일을 토대로 File 객체를 생성 한 후, ArrayList에 담아서 순회하고, 압축파일을 생성하는 코드를 작성 해 보았습니다. 딱히 어려운 내용이 없으니 코드를 보면 내용들이 이해 되실거에요. package com.tistory.shanepark.file.zip; import ja..
Programming/Java 48
문제 Multipart 요청을 비동기로 다른 API 서버에 보내려고 하는데 에러가 발생했습니다. 사용자가 업로드 한 파일에 문제가 있는지 (금지 단어 포함 등) 를 확인 하기 위해 어플리케이션 내부에서 해당 파일을 또 다른 어플리케이션(파일 검사API)으로 보내는 로직을 수행하도록 구현을 하고 있었습니다. 사용자에게서 받은 Multipart file을 그대로 다시 API 서버로 전송을 하는데, Single Thread로 수행 했을 때는 문제가 없었습니다. 하지만 Single Thread로 수행 시, 요청한 사용자 입장에서는 파일 업로드에 걸리는 시간이 사용자 -> 어플리케이션서버 -> 검증API서버 이렇게 이렇게 두배로 늘어나게 됩니다. 그래서 어플리케이션 내부에서 검증 서버로의 전송은 비동기 요청으로 ..
이전 글 SSH를 이용한 Proxy, Dynamic Port Forwarding (SOCKS) 을 통해 proxy 서버를 열어 보았습니다. 거기에 이어서, 열어둔 서버로의 프록시 접속을 웹 브라우저 에서 뿐만 아니라 자바 어플리케이션을 통해 접속을 해 보겠습니다. 이미 설정 해 둔 프록시 서버가 있지 않다면 이전 글을 먼저 참고 해 주세요. 크게 두 가지 방법이 있습니다. 1.System.getProperties()를 이용한 설정 일단 간단하게 UrlConnection을 연결 해서 www.ifconfig.me 주소로 신호를 보내는 프로그램을 작성 해 보았습니다. URL url = new URL("https://www.ifconfig.me"); StringBuffer sb = new String..
API 호출을 하던 중에 JSON 형식으로 받아 온 시간 데이터를 JAVA에서 LocalDateTime 형식으로 받아야 하는 일이 있었습니다. 이럴때는 간단하게 DateTimeFormatter를 이용하면 어떤 형식의 날짜 데이터도 LocalDateTime으로 변환 할 수 있습니다. 일단 제가 parsing 해야 하는 문자열은 아래와 같습니다. "2021-11-05 13:47:13.248"; 흔하다면 흔한 형식 중에 하나지만 시간값은 어떤 형식으로 올 지 확인 하기 전까진 알기 힘듭니다. 시간 형식이 정확하게 규격화 되어서 한가지만 쓰면 참 좋을텐데 말이죠.. 자바스크립트에서는 moment.js 라이브러리를 자주 쓰게 되더라고요. 일단 code assist 를 받아보니 ofPattern 메서드로 ..
사용자에게 요구 데이터를 보여 주는 방법은 여러가지가 있습니다. 보통은 웹 페이지를 통해 화면을 보여주는데요, 사용자가 해당 내용을 확인하기 위해서는 항상 해당 웹 페이지에 방문 해야만 하며, 인터넷에 연결되어있어야만 한다는 제약이 생깁니다. 그래서 파일로 조회 데이터를 저장하고자 하는 수요는 반드시 생기고, 그 수요를 충족시키기 위한 여러가지 라이브러리들이 나와 있습니다. 그 대표적으로 Apache POI가 있습니다. Apache POI (Poor Obfuscation Implementation) https://poi.apache.org Apache POI는 아파치 소프트웨어 재단에 의해 운영되는 오픈소스 프로젝트 입니다. 순수 자바 라이브러리로서 Microsoft Office의 Word, Powe..