인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

얄팍한 GraphQL과 Apollo

csv 데이터에 대해서 질문 드립니다.

해결된 질문

작성

·

384

1

강사님 안녕하세요, 반갑습니다. 

저는 얄코의 구독자이며 영상은 매우 잘 챙겨보고 있습니다. 

csv를 데이터베이스로 이용한 하신것에 대해서 깜짝 놀랐고,

" 이걸로 다 CRUD를 구현을 하셨단 말이야?? ,, 하고 매우 기뻤습니다. "   그러나 강의에서

POST 로 localhost:3000/api/team >> 통해서 데이터를 넣어주면~

post man에서 들어간 데이터가 잘 확인이 되고, 브라우저에서도 확인을 해도 데이터가 잘 들어간 것이 확인이 됩니다.

근데 서버를 내렸다가 다시 올리면... 데이터가 없어져 있더라구요?? 

CSV데이터에 실제로 CRUD를 해보고 싶다는 생각이 듭니다. 

1. csv 데이터베이스에 CRUD를 배워서 할 바에는 몽고디비를 쓰는 것이 좋을까요?

2. 구글에 검색을 해보니 하는 방법에 대한 글이 많더라구요, 추천하시는 글이 있으시면 추천이 가능하실까요?

ps. 바쁘시면 답글 안다셔도 감사합니다. ㅋㅋㅋ

답변 1

1

얄팍한 코딩사전님의 프로필 이미지
얄팍한 코딩사전
지식공유자

안녕하세요!

CSV로 데이터베이스를 구현한 건, 단순히 실습을 진행하기 수월하도록 하기 위함이었습니다.  GraphQL에 대한 강의인데 이를 위해서 MySQL 등을 설치하는 것은 번거롭기 때문에 😅  가능한 특별히 다른 것 설치할 필요 없이 데이터를 사용하면서도, JSON보다는 수월하게 사용자들이 전체 데이터를 보고 수정할 수 있도록 하는 방법을 고민하다가 내린 결정이었어요. 

강의에서 말씀드렸듯 그냥 목(mock) 데이터인겁니다.  실전에서 이처럼 CSV로 구축하는 사례가 많이 있는지는 모르겠습니다.

서버를 재실행하면 데이터가 사라져 있는 것은, 데이터를 삽입할 때 이 CSV 파일을 수정하는 코드가 없기 때문입니다.  CSV의 데이터만 JSON으로 메모리에 로드한 뒤 이 메모리상에서만 CRUD가 이뤄지는 것이기 때문이죠.  변경상태가 저장되도록 하려면 C, U, D 작업을 할 때마다 CSV 파일도 변경되도록 하시면 됩니다.

간단한 서비스라면 그와 같이 CSV로 구현해도 잘만 해놓으면 문제는 없겠지만, 그 과정에서 발생할 수 있는 수많은 변수와 오류들에 대한 고민과 설계들의 결정체인 MySQL이나 몽고DB등의 제품들을 두고 굳이 그렇게 할 필요는 없다고 봅니다.  단 학습용이라면 괜찮은 실습이 될 것 같아요!

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기