05_adtFileIO 질문있어요.
search -> edit -> save 중 save에 궁금한 게 있습니다.
int SaveNodeToFile(MYNODE* pNode)를 보면
파일에서 불러낸 경우만 고려돼있습니다.
신규 데이터를 찾아서 수정하는 경우에는 저장하지 않고
프로그램 종료 시 신규 데이터 일괄로 저장하는 방법을 써야할까요?
pNode->bNew 값을 따져서 신규인지 구분하고
ab+모드로 파일 끝에 저장하는 건 생각했는데
파일에 저장했으니 bNew를 false로 수정해야하나?
수정하면 offset이 0이라 다시 검색할 때 offset이 0인 데이터를 찾을텐데? 그럼 offset 값은 어떻게 주지?
bNew 값을 true로 저장하고 신규 데이터 일괄 저장할 때 덮어 써야하나? 라는 고민에 빠졌습니다.
어떤 방법이 좋을까요?
답변 1
0
파일에 저장했다면 bNew는 false로 두는 것이 맞겠습니다. 해당 예제는 완성되지 않은 프로그램이며 개념을 설명하기 위한 예제입니다. 생각을 거듭하다보면 보완해야 할 부분이 많습니다. 그런 부분은 사실 수강자의 몫으로 남겨둔 측면이 강합니다. 예제 자체는 강의에서 제가 설명하려는 내용에만 충실한 측면이 있습니다.
자료를 검색할 때 기존 자료는 모두 파일에서 검색합니다. 메모리에 로드하는 것은 검색의 키값만 로드하지요. 그러나 한 번이라도 조회하면 데이터를 캐싱합니다. 다시 파일에서 읽지 않도록 하기 위함입니다. 그러나 새로 추가한 데이터는 파일에 저장하기 전 메모리 상에만 존재하도록 되어 있습니다. 종료 시 저장(추가)합니다.
관련해서 데이터 중복처리도 하지 않고 있습니다. 다시 말씀드리지만 손 볼 부분이 참 많습니다.
끝으로 옵셋 값을 계산하는 부분은 쉽습니다. 사용자가 추가한 새 데이터는 모두 메모리에 있으며 기존 파일 데이터에 덧붙이는 구조이므로 추가 저장되는 Offset은 기존 데이터 파일의 크기를 일괄 더해주면 되기 때문입니다. 물론 이 또한 제 개인적인 생각입니다. 더 고민해보시고 스스로 발전 방향을 찾아보시기를 권합니다. 그 과정에서 상당한 공부가 자연스럽게 될 것이기 때문입니다.
감사합니다. :)
05_adtFileIO 개정이력에 대한 질문
0
42
2
마지막 열의 노드를 삭제하였을때 읽기 엑세스 위반 발생 건
0
61
2
첫번째 루프에서 최소값을 못찾았는데 계속 진행하는 이유가 무엇인가요?
0
47
1
[질문]: [섹션4] -> [2중 연결 리스트로 전환] -> [21:30]
0
129
2
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
0
125
1
예제는 어디서 다운로드 받을 수 있나요?
0
178
2
04_MultiIndex 예제에서 질문이 있습니다
0
120
1
헤드노드에 관해..
0
231
3
AddNewNode 함수 구현시 질문입니다.
0
160
2
Event Loop
0
191
1
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
0
192
1
CPU의 다른 이름 Machine 강의 질의
0
273
4
스택의 POP코드 질문드립니다.
0
259
1
adtFileIO 예제코드관련 질문 있습니다.
0
170
1
ADT강의 관련 질문 있습니다.
0
231
2
RangeSearch002 의 singlelist.c 파일 중 질문 있습니다.
0
192
1
섹션4 자료 자체와 정렬된 인덱스 분리 내용 질문
0
252
2
자료 자체와 정렬된 인덱스 분리 강의에서 질문
0
234
2
구현 연습에 대한 개인적 의문
0
279
1
05_adtFileIO 프로젝트 문의
0
318
2
CLI UI적용 강의에서 질문드립니다.
0
333
1
SearchToRemove와 RemoveNode가 분리되어야 할 필요가 있을까요?
0
293
1
05_adtFileIO 프로젝트 문의
0
257
1
자료 자체와 정렬된 인덱스 분리 (인덱스 정렬) - 인덱스 범위 코드에 버그가 있어서 질문 드립니다.
0
304
2





