예전에(3년 전) 만들어둔 부끄러운 코드를 GPT에게 [간결하게] 만들어 달라고 요청했다.
기존 코드
var fromDate = applyFrom.getDay(); // 시작일 (화면에서 선택한 값)
while(fromDate!=1){
applyFrom.setDate(applyFrom.getDate()-1);
fromDate = applyFrom.getDay();
}
var toDate = applyTo.getDay(); // 종료일 (화면에서 선택한 값)
while(toDate!=0){
applyTo.setDate(applyTo.getDate()+1);
toDate = applyTo.getDay();
}
// 월요일
let monday = applyFrom.toISOString().slice(0, 10);
// 일요일
let sunday = applyTo.toISOString().slice(0, 10);
GPT 코드
function getStartOfWeek(date) {
const dayOfWeek = date.getDay();
const diff = (dayOfWeek === 0 ? 6 : dayOfWeek - 1); // 월요일(요일 값 1)로 이동하기 위한 차이
date.setDate(date.getDate() - diff);
return date.toISOString().slice(0, 10); // YYYY-MM-DD 형식으로 반환
}
function getEndOfWeek(date) {
const dayOfWeek = date.getDay();
const diff = (dayOfWeek === 0 ? 0 : 7 - dayOfWeek); // 일요일(요일 값 0)로 이동하기 위한 차이
date.setDate(date.getDate() + diff);
return date.toISOString().slice(0, 10); // YYYY-MM-DD 형식으로 반환
}
const applyFrom = new Date(); // 원하는 시작 날짜 설정
const applyTo = new Date(); // 원하는 종료 날짜 설정
const monday = getStartOfWeek(applyFrom);
const sunday = getEndOfWeek(applyTo);
GPT:
물론, 코드를 더 간결하게 만들어보겠습니다. JavaScript의 Date 객체를 이용하여 주어진 날짜를 월요일과 일요일로 간단하게 이동시킬 수 있습니다. 불필요한 변수를 줄이고, 중복 코드를 최소화하여 간결하게 만들어 보겠습니다.
위 코드에서는 getStartOfWeek 함수와 getEndOfWeek 함수를 사용하여 applyFrom과 applyTo 날짜를 월요일과 일요일로 이동시키고, toISOString() 메서드와 slice() 메서드를 사용하여 간결하게 날짜를 문자열로 변환합니다.
이렇게 수정된 코드로도 원하는 기능을 간단하게 수행할 수 있습니다.
GPT를 활용해보면 배울 점도 있고 다양하게 시도를 해볼 포인트도 제공해주는 것 같다.
앞으로 많이 활용해봐야겠다.
'개발 > JS|TS' 카테고리의 다른 글
FormData와 JSON을 함께 보내는 방법 (0) | 2024.11.11 |
---|---|
[JS] FileReader를 사용하여 file을 Base64 문자열로 변환하기 (0) | 2024.07.09 |
[JS+VUE] 자바스크립트로 툴팁 위치 제어하기 ( 스크롤 영역 툴팁 ) (0) | 2024.03.13 |
parseInt 백단위 쉼표 (0) | 2018.09.13 |