cron 명령어는 Unix 기반 시스템에서 잡 스케쥴러이다. 잡을 주기적으로 실행시키기 위해 cron을 사용한다. 크론 표현식 UNIX 기반 # ┌───────────── minute (0–59) # │ ┌───────────── hour (0–23) # │ │ ┌───────────── day of the month (1–31) # │ │ │ ┌───────────── month (1–12) # │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday; # │ │ │ │ │ 7 is also Sunday on some systems) # │ │ │ │ │ # │ │ │ │ │ # * * * * * Spring cron expressions ┌─..
소스는 간단한게 좋다. 단순하게 설계 경우의 수를 줄여라. java assert 예약어 assert를 사용하면 코드를 작성하는 과정의 생각, 가정 등을 명시할 수 있다. 다른사람이 코드를 읽기 쉬워진다. 잘못 된 가정을 했을 경우, 다른 개발자가 보고 피드백해줄 수 있다.
다중 파일 업로드를 구현하면서 헤맨 기록 이렇게 FormData를 만들어서 보내면 [Object object] 문자열만 전송된다. document.querytSelector('#files').files 는 단순 File 객체가 담긴 배열이 아닌, FileList를 반환한다. 해결법 FormData에 File객체를 계속해서 append시키면 정상 작동한다. 이렇게 동일한 key로 append하면 단순 Array 로 넘어가서 되는 것 같다. @Controller public class FileController { @RequestMapping("/uploadFile") public void uploadFile(@RequestPart List files) { ... } }
Period d-day를 구해야하는 로직에 Period class의 between 메서드를 사용했다. LocalDate start = LocalDate.of(2023, 1, 1); LocalDate end = LocalDate.of(2023, 8, 9); Period between = Period.between(start, end); int days = between.getDays(); log.info("days={}", days); //days=8 실제로 start 와 end의 날짜는 220일 차이가 나지만 getDays()의 결과는 8이 나온다. Period 클래스는 년, 월, 일 을 모두 이용해서 기간을 나타낸다. LocalDate start = LocalDate.of(2023, 1, 1); Loc..