[DEV] 기록 165

[MySQL] 날짜 차이 구하는 함수

개요 화면에 api 요청 시간과 api 응답 시간 그리고 소요시간(응답 시간 - 요청 시간)을 뿌려줘야 하는데 소요시간을 서버단에서 계산하지 않고 api 응답이 오면 응답 시간과 함께 바로 duration이라는 칼럼에 소요시간을 저장하고 싶었습니다. MySQL 함수를 찾아본 결과 제가 원하는 기능을 수행하는 함수는 DATEDIFF와 TIMESTAMPDIFF가 있었습니다. 이번 게시글에서는 이 두 함수에 대해 간단히 알아보겠습니다. 1. DATEDIFF DATEDIFF(from, to) * to - from을 계산해주는 함수 (일 단위로 고정) * ex) from: 2022-04-01, to: 2022-04-05 -> 4를 반환 2. TIMESTAMPDIFF TIMESTAMPDIFF(unit, from, ..

[DEV] 기록 2022.04.05

[SpringBoot] 컨트롤러에서 RequestParam으로 Date 타입 받는 방법

개요 ajax를 통해 Date 타입을 RequestParam으로 보내는데 아래와 같이 400 에러가 발생했습니다. HTTP Status 400: The request sent by the client was syntactically incorrect. 코드 html Controller 해결 방법 아래와 같이 @DateTimeFormat 어노테이션을 추가하면 해결되는 문제입니다. 참고 https://stackoverflow.com/questions/15164864/how-to-accept-date-params-in-a-get-request-to-spring-mvc-controller How to accept Date params in a GET request to Spring MVC Controller? ..

[DEV] 기록 2022.04.04

[jQuery] $.ajax is not a function

개요 ajax를 이용하여 POST 요청을 하려고 하는데 아래와 같은 에러 메시지가 console에 찍혀있었습니다. $.ajax is not a function 원인 cdn에서 jquery slim 버전을 사용할 경우 ajaxSend와 ajax를 지원하지 않습니다. 해결 방법 cdn에서 slim이 아닌 버전을 사용하면 해결 완료 참고 https://stackoverflow.com/questions/18271251/typeerror-ajax-is-not-a-function TypeError: $.ajax(...) is not a function? I'm creating a simple AJAX request which returns some data from a database. Here's my funct..

[DEV] 기록 2022.04.03

[javascript] sleep 함수 구현

개요 ajax 결과에 따라 polling 방식을 구현하는데 어느 정도 delay를 줘야 해서 sleep 함수 존재 유무를 검색해봤습니다. 찾아보니 javascript에는 내장된 sleep 함수가 없어 직접 구현을 해야했습니다. 코드 function example() { sleep(1000).then(() => { console.log("이렇게 구현하시면 됩니다."); }); } function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); } 참고 https://stackoverflow.com/questions/951021/what-is-the-javascript-version-of-sleep What is the J..

[DEV] 기록 2022.03.24

[javascript] json 이쁘게 출력하기

개요 요구사항 중 하나가 ajax 결과로 받은 json을 테이블에 이쁘게 출력하는 것이었습니다. 코드 태그를 미리 테이블 내 선언해놓고 id를 부여한 후 JSON.stringify(json)을 넣어주면 됩니다. $('#jsonPrettyPreTag').html(JSON.stringify(data, undefined, 2)); 참고 https://stackoverflow.com/questions/16862627/json-stringify-output-to-div-in-pretty-print-way JSON.stringify output to div in pretty print way I JSON.stringify a json object by result = JSON.stringify(message, my..

[DEV] 기록 2022.03.24

[javascript] JSZip을 활용하여 form에 올라간 zip 파일 내 json 파일 읽기

개요 제목 그대로 form에 zip 파일을 업로드하면 zip 파일 내 json 파일을 읽어서 form을 채워야 하는 요구사항이 들어왔습니다. stackoverflow와 구글을 엄청 찾아본 결과 해당 기능은 외부 라이브러리인 JSZip을 이용하여 구현할 수 있었고 기록 차원에서 간단하게 코드를 남겨봅니다. 코드 참고 https://stackoverflow.com/questions/65281900/how-to-read-specific-value-from-json-in-an-archived-file-using-javascript-and how to read specific value from json in an archived file. Using javascript ,and jszip I am reading..

[DEV] 기록 2022.03.16

[SpringBoot] RestTemplate을 통해 MultipartFile 보내는 방법

개요 최근에 개발하는 프로젝트에서 파일 업로드 및 생성을 별도 인스턴스에서 진행하고 있어 RestTemplate을 사용해야 했습니다. 이번 게시글에서는 RestTemplate을 통해 MultipartFile을 보내는 방법을 짧게 공유해보겠습니다. 코드 1. RestTemplate을 통해 파일 보내는 코드 2. RestTemplate이 호출하는 컨트롤러 3. 적용했던 RestTemplate Config 참고 https://stackoverflow.com/questions/58344008/upload-multipartfiles-using-resttemplate Upload MultipartFiles using RestTemplate I have two end-points. One endpoint will r..

[DEV] 기록 2022.03.15

[SpringBoot] 대용량 엑셀 파일 생성 및 다운로드 삽질기

개요 작년에 이어 올해도 엑셀 파일 생성 및 다운로드 기능을 담당하게 되었습니다. https://jaimemin.tistory.com/1889 [SpringBoot] 대용량 엑셀 다운로드를 위한 SXSSFWorkbook 개요 기존에 Excel 생성 및 다운로드 기능을 구현하는 코드를 공유했었습니다. https://jaimemin.tistory.com/1768 [SpringBoot] Excel 생성 및 다운로드 개요 ElasticSearch로 조회한 목록들을 엑셀로 다운로드할.. jaimemin.tistory.com 한 가지 달라진 점은 기존 프로젝트와 달리 이번에는 OOM을 방지하기 위해 파일 업로드 및 생성을 별도 인스턴스에서 진행한다는 점입니다. 기존에는 모두 한 서버 내에서 진행했기 때문에 API에..

[DEV] 기록 2022.03.13

[javascript] Invalid shorthand property initializer

개요 컨트롤러에서 모델 내 리스트를 보냈고 해당 리스트를 자바스크립트 함수 내에서 조작하려고 아래와 같이 변수로 선언했습니다. function sampleFunction() { var sampleList = [[${listFromModelAttribute}]]; } 기존 프로젝트에서는 위와 같이 처리를 하면 list를 알아서 json 형태로 변형하여 문제가 없었는데 현재 진행하고 있는 프로젝트에서는 jQuery 버전이 달라서 그런지 json 형태로 변형이 안되어 아래와 같은 에러 메시지가 console에 찍히면서 제대로 동작하지 않고 있습니다. Invalid shorthand property initializer 원인 해당 문제가 발생하는 이유는 json object 내 key value를 '='이 아닌..

[DEV] 기록 2022.03.04