wpf로 로컬 프로그램 제작에서 설정 값 저장 질문입니다.

  • 무엇을 하고자 하는지

그림1

  1. 각 제품명에 맞는 이력을 로드
  2. 제품의 개수는 20개 이내 (실사용 10~15개 추정)
  3. 이력을 수정한 뒤 저장 할 수 있어야 함
  4. 현재 n차 검사 결과(우측 표, 제품마다 횟수가 2~20회로 가변적)의 값이 없었을땐 수량이 적기에 txt파일로 리스트를 저장했으나 검사 결과가 추가되면서 어떻게 저장해야 할 지 문제가 발생

++ 위의 데이터를 저장하고 불러올 방법 중 어떤것이 효율적인지 알고싶습니다.

  • 현재 작성한 코드 중 문제가 되는 부분
  1. 현재의 코드는 단순히 txt에 {제품명, 날짜, 검사유무}만 기록되어 있음
  2. 매번 창을 로드 할 때 txt의 값을 읽어와서 listview에 표시함
  3. DB는 사용되어지고 있는 것이 없음
  • 기대하는 동작
  1. 효율적인 저장 방법이 무엇일까요?
  2. txt를 2가지로 나누어 제품명과 다른 txt를 매칭시키는 방법도 있지만 다른 아이디어가 있는지 알고 싶습니다.
  3. 데이터의 개수가 적기에(최대 20개) mssql등을 설치하여 사용 하는 것이 효율적인가에 대한 의문이 있어 다른 방법을 찾는 중입니다.

중간 기계 제어를 위해 프로그램의 수정을 담당하게된 초보 개발자입니다.
사수나 다른 사람들이 없기에 자료를 찾아가며 수정하고 있는데
기존 한번의 검사가 여러 차례(횟수는 제품마다 다름)로 나눠져서 어떻게 할 지 방법이 고민되어 질문 올립니다.
혹시 다른 아이디어가 있나요?

2개의 좋아요

막연하게 드는 생각을 하나 적어보자면, JSON이나 XML 형식으로 serialize해서 보다 데이터 핸들링과 코드 가독성을 높이는 방법이 있을거 같습니다. 위 두 포맷은 정형화된 형식이 있어 말씀하신 depth도 용이하게 구현할 수 있을거 같아요

5개의 좋아요

sql lite 를 써서 ef로 관리하는것이 장기적으로 좋아 보입니다.
스키마 정의가 어려운 비정형이라도 단순 테스트로 local db에 저장해놓고
관리하시는 편이 처음에는 힘들어도 편하실것 같아요
게다가 성격은 잘모르나 연구 데이타인데 단순 txt로 저장하시면
보안 이슈가 생길수도 있고요

3개의 좋아요

데이터 양이 더 이상 증가 하지 않는 다는 보장이 있다면

서버 연동이 아닌 이상 굳이 로컬 db 를 사용 할 필요는 없다는 것에 공감 합니다.
그래서,

저도 @helpandplay 님 말씀 처럼
저 구조를 모델 클래스로 만들어 놓고
JSON 또는 XML로 시리얼라이즈 해서 txt파일 형식으로 보관
디시리얼라이즈 해서 다시 클래스로 변환 해서 사용

방식으로 추천 드립니다.

3개의 좋아요

JSON으로 열거해서 저장하는 방식을 추천드립니다.

2개의 좋아요

데이터 갯수가 적을 것으로 확신한다면, 뭐든 간편하고, 동작 중인 방안이 최적의 솔루션입니다.

그런데, 확신이 없는 상태라면, FM 대로 - 데이터 베이스에 저장하는 게 좋습니다.

저는 예전에 파일에 저장했다가 낭패를 본 적이 있어서, 무조건 데이터 베이스에 저장합니다.

프로젝트 규모가 작다면, 무료 데이터 베이스인 SQLite를 추천합니다.
비주얼 스튜디오에 낑겨있는 LocalDB 가 SQLite의 윈도우 버전입니다.
LocalDB는 앱과 함께 배포되고, 앱이 켜지면 함께 켜지고, 앱이 꺼지면 함께 꺼집니다.
즉, 전용 데이터 저장소가 됩니다.

3개의 좋아요

답변 모두 감사합니다.

결론적으로 JSON을 이용하여 저장하기로 결정했습니다.
연구 데이터등의 중요한 데이터가 아니기에 파일 중요도가 비교적 떨어지고
추가적으로 데이터가 늘어나지 않는다는 보장이 있어서 JSON이 가장 합리적일것 같네요

답변해주신분들 모두 감사합니다!!!

5개의 좋아요