로직 : 자바에서 JSON을 csv 파일로 만든 다음 zip 아카이브 파일로 압축하여 다운로드 * 이 때, 임시로 /tmp/ 디렉터리에 csv 파일과 zip 파일을 생성하여 response에 zip 파일을 내려준 후, 임시 디렉터리에 생성된 csv 파일과 zip 파일을 일정 시간 뒤에 삭제한다. csv 파일 다운로드 컨트롤러 작성 @ApiOperation(value = "로그 리스트 전체 다운로드") @GetMapping(value = "/download", produces = {MediaType.APPLICATION_JSON_VALUE}) public ResponseEntity downloadUpdateLog(String uuid) throws Exception { String fileName = uu..
Greengrass 코어 기기에서 AWS IoT 와 연결하기 위해서는 AWS Root CA 가 필요한데, AWS Root CA 를 서버에서 내려주기 위해서 아래와 같이 코드를 작성하였다. String awsRootCa = ""; try { URL url = new URL("https://www.amazontrust.com/repository/AmazonRootCA1.pem"); InputStream in = url.openStream(); byte[] buffer = new byte[128]; int readCount = 0; StringBuilder result = new StringBuilder(); while((readCount = in.read(buffer)) != -1) { String part..
Java 에서 "2020-11-05T07:18:13.906Z" 처럼 되어 있는 타임스탬프를 비교하기 위해 사용할 수 있는 Java 8 에서 제공되는 API 가 있다. LocalDateTime 에서는 아래와 같은 메소드를 이용해 두 개의 date 값을 비교할 수 있다. isBefore() : 인자보다 과거일 때 true가 리턴 isAfter() : 인자보다 미래일 때 true가 리턴 isEqual() : 인자와 같은 시간일 때 true가 리턴 예제) public void compareTimestamp() throws ParseException { String timestamp1 = "2020-07-14T06:05:10.452Z"; timestamp1 = timestamp1.substring(0, times..
Java 에서의 정렬은 java.util.Collections 클래스의 static 메소드인 sort() 를 사용한다. Collections 클래스에서 오버로딩 된 두 개의 sort() 메소드가 있음을 확인할 수 있는데 sort() 를 사용해 정렬하는 방법에는 Comparator 와 Comparable 인터페이스를 구현하는 방법이 있다. 1. Comparable 인터페이스 sort() 메소드의 매개변수 타입을 보면 List 로 제네릭 타입을 받고 있는데 이때 T는 로, Comparable 인터페이스를 구현한 타입이어야 한다. Comparable 인터페이스를 살펴보면 Comparable 인터페이스에는 compareTo() 메소드 하나 밖에 없으므로 이 메소드만 오버라이딩 해주면 Collections.sor..