- [개인] 카스 전자 저울 연동 Packing List 자동 생성 프로그램 #6 | file-saver 이용한 고객사 정보 영속적 관리2022년 05월 23일 20시 27분 13초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
| 이슈
고객사 정보를 서버 없이 로컬에서 text 파일을 이용해 영속적으로 관리하면 어떨까라는 생각을 해봤었다. 구글링 끝에 사용한 기술은 file-saver 모듈을 이용하는 것이다. 코드 작성과 테스트를 반복하면서 확장자를 txt로 하지 말고 json으로 하는 게 좋겠다고 생각했다.
작동 방식은 프로젝트가 실행되면 customers.json 파일을 로드하여 고객사 정보를 가져온다. 고객사 추가(또는 삭제) 기능을 수행하면 customers 객체에 변화가 발생한다. 변화된 customers 객체는 JSON.stringify로 변환되어 file-saver를 통해 기존의 customers.json 파일을 덮어 씌워 저장된다.
그런데 매번 고객사를 추가(또는 삭제)할 때마다 [그림 1]과 같이 탐색기가 뜬다는 점과 customers.json 파일의 저장 경로 및 파일명을 신경 써야 한다 점에서 번거로움이 있다.
아래 코드는 file-saver를 이용하여 customers 객체를 customers.json 파일로 저장하는 코드이다.
exportTextFile() { var FileSaver = require('file-saver') var blob = new Blob([JSON.stringify(this.customers, null, 2)], { type: 'text/plain;charset=utf-8' }) FileSaver.saveAs(blob, 'customers.json') }
https://www.npmjs.com/package/file-saver
| 다음 단계
카스 전자저울의 경우 xlsx 파일이 아닌 mdb 파일 형식으로 data가 관리된다. 따라서 현재 적용된 "엑셀 업로드" 기능이 아닌 mdb와 연동되어야 한다. 이왕이면 프로젝트가 실행될 때 자동으로 mdb 파일을 로딩하는 것이 UX적으로 유리해 보인다.
매번 고객사를 추가(또는 삭제)할 때마다 지금처럼 탐색기가 뜨는 방식보다는 SQlite와 같은 파일로 data를 관리하는 DBMS를 이용한다면 로컬에 더욱 최적화된 형태가 될 것 같다!
728x90반응형'프로젝트 > [개인] Auto Packing List Manager' 카테고리의 다른 글
댓글