파숙
12
2019-05-16 11:44:30 작성 2019-05-16 11:46:32 수정됨
3
80

json 파일을 부분적으로 수정하는 법


없나요? json 에 대해 방금 막 알게된 터라...

예를들면 파일 안에서 특정 단어를 찾은 뒤 그걸 감싸는 가장 가까운 괄호 범위만큼을 하나의 json 파일로 취급하여 로드한다던지...

근데 결국 수정할 내용이 본래보다 길어지면 그 아래쪽을 다 밀어야 하니 파일 전체를 읽고 다시 덮어쓰는것과 별 차이가 없을것같기도 하고.... 

json 안쓰고 별도의 양식으로 파일을 다룬다면 미는 일이 적도록 공간할당을 미리 어떤 단위로 해둘텐데 말이죠...


질문의 요지는 다음과 같습니다.

원래 파일을 전체 불러와서 전체를 덮어쓰는게 일반적인가요? 용량이 커져도?

파일 탐색은 느리지만, 한 파일 전체를 읽거나 쓰는 건 크게 느려지지 않으니 전체를 읽고 쓰는 게 비효율적인건 아닌가요? (링크드리스트 전체 순회가 배열의 전체 순회에 비해 성능 차이가 크지 않은것처럼..?(분기예측 제외))

0
0
  • 답변 3

  • EIKIN
    45
    2019-05-16 13:07:24

    JSON 정보 수정을 하시는거면 JSON형식의 스트링을 DTO나 Map으로 파싱한신 후 변경하시는게 좋아보입니다.

    0
  • kmksk
    1k
    2019-05-16 14:06:17

    정적 데이터등을 json 파일로 하여 쓰기도 하지만 본문의 목적대로라면 차라리 sqlite 를 이용한 file db 기능을 쓰는게 좋아보입니다.


    일반적으로는 파일 처리 자체를 안하죠.. dbms 를 쓰죠. 


    특정 json 내부의 node 를 읽어올려면 결국 전부 다 읽어서 json 파싱을 해야하거든요 아니면 직업 파서를 만들어서 특정 시점 부터 시작할수 있지만 효율사 않좋아 보입니다. 차라리 csv 가 더 효율 적으로 보이구요. i/o 가 자주 일어나면 파일db 나 db서버를 쓰는게 훨씬 좋아보입니다.

    1
  • 파숙
    12
    2019-05-16 14:13:53

    답변 감사합니다. db 를 쓰기엔 테이블이 하나라 과하다고 생각했었는데 그게 가장 나은 대안같네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.