const inquiryData = {};
보통은 객체를 만들어서 전역으로 사용하곤 하는데, 지양하고 아래와 같이 클래스화 시키는 것을 지향해야겠다.
class InquiryRequest {
constructor() {
this.data = {
type: '',
detailType: '',
title: '',
content: '',
fileIds: []
};
}
updateData(key, value) {
// 키가 존재하는지 확인
if (!this.data.hasOwnProperty(key)) {
console.error(`Invalid key: ${key}`);
return;
}
// 값 유효성 검사
if (!this.validateValue(key, value)) {
console.error(`Invalid value for ${key}`);
return;
}
this.data[key] = value;
}
validateValue(key, value) {
switch(key) {
case 'title':
return value.length <= 50;
case 'content':
return value.length <= 1000;
case 'fileIds':
return Array.isArray(value);
// 다른 필드들에 대한 검증 로직 추가
default:
return true;
}
}
isValid() {
return !!(
this.data.type &&
this.data.detailType &&
this.data.title &&
this.data.content
);
}
reset() {
this.data = {
type: '',
detailType: '',
title: '',
content: '',
fileIds: []
};
}
}
사용시
$(function() {
// InquiryRequest 인스턴스 생성
const inquiryRequest = new InquiryRequest();
// updateData 메서드를 사용하여 데이터 업데이트
inquiryRequest.updateData('type', '값');
});
이렇게 하면 데이터 관리가 더 체계적이고 안전해집니다. 또한 데이터 검증도 클래스 내부에서 할 수 있다.
- 데이터 무결성 보장
- 중앙집중식 데이터 관리
- 유효성 검사 로직 통합
- 실수로 인한 데이터 오염 방지
- 디버깅이 용이함
반응형