03/08 본캠프 #52

guno park·2024년 3월 8일
0

본캠프

목록 보기
51/77

최종 프로젝트

데이터 관리에 대한 고찰

UGS를 3일동안 봐오면서 뭔가 애매하다는 생각은 계속 들었다.
1. json으로 저장되긴 하는데 사용하려는 데이터 형식과 다름(각 배열의 값을 인덱스로 가져오는 느낌)
2. Generate에 대한 제약이 심함. (저장 형식이나 변환 타입에 따라 따로 파싱을 만들어줘야한다던가. 빈 칸이 존재하면 안된다거나)
3. 결정적으로 아이템 데이터나 Dialogue를 웹통신으로 사용한다면 인터넷이 끊겼을 때 사용할 수 없겠다는 생각.

위와 같은 이유로 스프레드 시트는 그대로 유지하되, Export Sheet Data라는 확장 프로그램을 사용하여 json으로 파싱하여 사용하기로 내부 회의를 거쳤다.

Sheet => Json 사용하기

Export Sheet Data를 활용하여 json으로 가져왔을 때, 내가 사용하기 위한 데이터로 역직렬화 과정을 거쳐야한다.
이 과정에 대해 서술한다.

Sheet

  1. 1열은 데이터 형식과 같아야한다.

  2. , 를 사용하면 List로 생성된다.

  3. enum타입을 사용할 경우 비워 놓으면 안된다. (파싱 에러 발생)

C#

  1. 시트에서 작성한 1열의 문자와 1대1 매칭이 되어야 한다.

  2. 여러 값들이 있는 json 파일을 역직렬화 하기 위해서는 래핑(클래스로 감싸는 것)을 해야한다.

  3. 래핑용 클래스의 리스트 변수명은 시트 이름과 같아야 한다.

역직렬화

string b = Resources.Load("ItemInfo (2)").ToString();
ItemDataList a = JsonConvert.DeserializeObject<ItemDataList>(b);

위의 사항들을 주의하며 위와 같이 역직렬화하면 스크립트 내에서 사용할 수 있도록 완성된다.
(※편의를 위해 Resources 폴더에 넣은 것일 뿐, 불러올 때는 다르게 하는 것을 추천)

기술면접 질문

Q. 접근제한자란 무엇이며, 각각 어떤 차이가 있는지 비교해서 설명해주세요.

A. 클래스나 변수 메서드를 만들 때 제일 앞에 들어가며 public, private, protected 세 가지가 존재합니다.

public은 해당 객체의 외부에서도 접근 가능한 가장 접근하기 쉬운 제한자이고

protected는 외부에서는 접근이 불가능하고 상속관계의 객체만 접근이 가능한 제한자이며

private는 해당 객체에서만 접근이 가능한 제한자입니다.

(자식이나 하위) internal은 public처럼 접근이 가능하지만 프로젝트의 내부적으로만 사용이 가능합니다. 접근제한자를 명시하지 않는 경우 internal이 기본값으로 설정되며 생략이 가능합니다.

0개의 댓글