본문 바로가기

내일배움캠프/[P3-Team.] TextRPG

[P3-Team. TextRPG] PR 타이밍, 스프레드 시트로 DB관리

 

목   차

     


    Pull Request의 타이밍

    논쟁의 원인은 다음과 같다. 

    1. 기능 하나가 커서 Pull Request할 때 조원이 봐야 할 양이 너무 많다면 큰 기능 하나를 쪼개서 올려야 한다.
    2. 완전한 기능 하나가 된 후에야 Pull Request를 해야 한다.

    이 논쟁의 답을 알고 싶어 총 3분한테 찾아가 물어봤다.

    유록님 의견

    조원이 한번에 다 못 볼 양이라면 쪼개는게 맞다. 회사 같은 곳에서는 다른 의견을 가질 수 있지만, 서로의 수준에 맞게 맞춰주는게 좋을 것 같다. 

    동욱님 의견

    어차피 지금 수준에서 버그나 에러 등이 난다고 해봤자 튜터 찾아가면 못고치기가 쉽지 않다. 솔직히 조원끼리 수준차이 나봐야 도토리 키재기인데 그냥 나를 찾아와라. 만약 회사 기준이라면 회바회 케바케기에 그 회사 매뉴얼/규정을 따라라.

    관우님 의견

    작은 기능 하나하나도 완성도만 있다면 쪼개는 것의 유무는 완전 기호의 차이일 뿐이다. 하지만 몇백 줄 정도는 그리 많은 양이 아니니 적절한 양이라 생각한다.

     

    결론은 조원끼리 알아서 토의해보고 PR양을 한정하되, 너무 많이 올려 그냥 approve했다가 문제가 생겨도 튜터한테 가면 어떻게든 해결이 되는 걱정하지 말라 였다.

    새로운 데이터 관리 방안

    지금까지는 모든 데이터를 하나의 .cs 파일에서 불러와 사용하도록 했다. 이제 이 데이터들을 조금 더 관리하기 쉽게 스프레드 시트로 일단 만들고, 이걸 .json으로 변환한 후 불러오는 식으로 하자는 조장님의 제안이 있었다. 

    스프레드 시트를 .json 파일로 만들기

    우선, 스프레드 시트에 다음 사진과 같이 데이터를 입력한다.

     

     

    그 후, 스프레드 시트를 .csv 파일로 추출한다. 그러면 다음과 같은 파일을 다운로드할 수 있다.

    마지막으로, 다음 사이트를 이용해 이 .csv 파일을 .json파일로 변환해주기만 하면 된다.

    https://csvjson.com/csv2json

     

    CSV to JSON - CSVJSON

    Embed all the functionality of csvjson in any web application with Flatfile. Auto-match columns, validate data fields, and provide an intuitive CSV import experience.

    csvjson.com

    .json 파일을 SaveData 폴더에 넣고 불러오기

    우리는 .gitignore 때문에 실행파일이 있는 위치에 데이터를 저장해버리면 깃허브 레포지토리에 업로드해줄 수 없다. 따라서 이에 대한 해결 방안으로 .bin 파일이 아니라 Scripts 폴더와 같은 디렉토리에 SaveData 폴더를 만들고, 그 안에 .json 파일들을 넣어 데이터를 불러오기로 했다. 

    jsonFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, 
    	@"..\..\..\SaveData\StoryQuest.json");
    jsonText = File.ReadAllText(jsonFilePath);

     나는 이 방식으로 실행파일의 상대위치를 먼저 불러온 후, 상위폴더로 3번 이동한 다음에 다시 SaveData 폴더 안의 필요한 json파일을 불러오는 식으로 누가 접근하든 항상 정확한 파일을 불러올 수 있게 했다.

    이제 이 jsonText를 적절하게 Deserialize만 해서 변수에 대입만 해주면 된다.