오늘은 프로젝트에서 예약 하기 기능을 팀원가 함께 코드 리뷰를 했다. 자바스크립트의 Date 생성자 함수를 이용해 날짜 설정들을 해줬었는데 dayjs라는 라이브러리로 날짜 설정을 간편하게 할 수 있어서 dayjs를 쓰게 됐다. 확실히 날짜 차이 구하기에서 Date 생성자 보다 편하게 쓸 수 있었다.
const dayjs = require('dayjs');
// 현재 날짜 및 시간 객체 생성
let now = dayjs();
now.format();
// 날짜 및 시간 지정 객체 생성
let date = dayjs('2022-07-13', 'YYYY-MM-DD')
date.format() // 2022-07-13T00:00:00+09:00
// 포맥 지정 - format() 원하는 형태를 입력하고 원하는 형태의 문자열로 변경
date.format("DD/MM/YY");
// 날짜 객체의 원하는 시간 단위 값 구하기 - get()
let now = dayjs();
now.get('year') // 2022
now.get('month') // 07
// 날짜 객체의 원하는 시간 단위 값 변경 - set()
let date = dayjs("2021-10-10 10:30:25");
date.format(); // 2021-10-10T10:30:25+09:00
date.set("year", 2022).format(); // 2022-10-10T10:30:25+09:00
date.set("y", 2022).format(); // 2022-10-10T10:30:25+09:00
// 날짜 및 시간 더하기 - add()
// 더하는 숫자에 음수를 입력하면 빼기로도 사용할 수 있다.
let date = dayjs("2021-10-11 10:30:25");
date.format(); // 2021-10-11T10:30:25+09:00
date.add(1, "year").format(); // 2022-10-11T10:30:25+09:00
date.add(1, "y").format(); // 2022-10-11T10:30:25+09:00
// 날짜 및 시간 차이 구하기 - diff()
const date1 = dayjs("2021-10-11 10:30:25.495", "YYYY-MM-DD HH:mm:ss.SSS");
const date2 = dayjs("2020-04-08 13:25:30.000", "YYYY-MM-DD HH:mm:ss.SSS");
date1.format("YYYY-MM-DD HH:mm:ss.SSS"); // 2021-10-11 10:30:25.495
date2.format("YYYY-MM-DD HH:mm:ss.SSS"); // 2020-04-08 13:25:30.000
date1.diff(date2); // 47595895495
date1.diff(date2, "year"); // 1
date1.diff(date2, "y"); // 1
date1.diff(date2, "y", true); // 1.5077376883898348
date1.diff(date2, "month"); // 18
date1.diff(date2, "M"); // 18
date1.diff(date2, "M", true); // 18.09285226067802
date1.diff(date2, "week"); // 78
date1.diff(date2, "w"); // 78
date1.diff(date2, "w", true); // 78.69691715443122
중간 발표를 준비하면서 아래와 같이 트러블 슈팅도 함께 정리하는 시간을 가졌다.
팀원들 모두 로컬에서 node 16버전 이상에서 작업을 진행
ubuntu ec2 서버에서 git pull 받고 npm install 할 때 node 버전 문제로 reify fsevents 프리징 문제 발생
이번 문제를 해결하면서 자연스럽게 도커를 활용하게 됐고 도커를 쓰는 이유를 알 수 있었음.