inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

독하게 C를 배운 사람을 위한 선형 자료구조

데이터 캐싱과 Commit

05_adtFileIO 질문있어요.

해결된 질문

403

한지수

작성한 질문수 2

0

search -> edit -> save 중 save에 궁금한 게 있습니다.

int SaveNodeToFile(MYNODE* pNode)를 보면

파일에서 불러낸 경우만 고려돼있습니다.

신규 데이터를 찾아서 수정하는 경우에는 저장하지 않고

프로그램 종료 시 신규 데이터 일괄로 저장하는 방법을 써야할까요?

 

pNode->bNew 값을 따져서 신규인지 구분하고

ab+모드로 파일 끝에 저장하는 건 생각했는데

파일에 저장했으니 bNew를 false로 수정해야하나?

수정하면 offset이 0이라 다시 검색할 때 offset이 0인 데이터를 찾을텐데? 그럼 offset 값은 어떻게 주지?

bNew 값을 true로 저장하고 신규 데이터 일괄 저장할 때 덮어 써야하나? 라는 고민에 빠졌습니다.

어떤 방법이 좋을까요?

 

 

 

c 코딩-테스트 알고리즘 vc++

답변 1

0

널널한 개발자

파일에 저장했다면 bNew는 false로 두는 것이 맞겠습니다. 해당 예제는 완성되지 않은 프로그램이며 개념을 설명하기 위한 예제입니다. 생각을 거듭하다보면 보완해야 할 부분이 많습니다. 그런 부분은 사실 수강자의 몫으로 남겨둔 측면이 강합니다. 예제 자체는 강의에서 제가 설명하려는 내용에만 충실한 측면이 있습니다.

자료를 검색할 때 기존 자료는 모두 파일에서 검색합니다. 메모리에 로드하는 것은 검색의 키값만 로드하지요. 그러나 한 번이라도 조회하면 데이터를 캐싱합니다. 다시 파일에서 읽지 않도록 하기 위함입니다. 그러나 새로 추가한 데이터는 파일에 저장하기 전 메모리 상에만 존재하도록 되어 있습니다. 종료 시 저장(추가)합니다.

관련해서 데이터 중복처리도 하지 않고 있습니다. 다시 말씀드리지만 손 볼 부분이 참 많습니다.

끝으로 옵셋 값을 계산하는 부분은 쉽습니다. 사용자가 추가한 새 데이터는 모두 메모리에 있으며 기존 파일 데이터에 덧붙이는 구조이므로 추가 저장되는 Offset은 기존 데이터 파일의 크기를 일괄 더해주면 되기 때문입니다. 물론 이 또한 제 개인적인 생각입니다. 더 고민해보시고 스스로 발전 방향을 찾아보시기를 권합니다. 그 과정에서 상당한 공부가 자연스럽게 될 것이기 때문입니다.

감사합니다. :)

1

한지수

답변 고맙습니다.

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