나 개발자 진짜 되냐?

[ 12月 20日 ] 오늘 내가 배운 것 _ 69日次 _ 오늘도 발표 자료 준비中 본문

오늘 공부를 정리해봐요!

[ 12月 20日 ] 오늘 내가 배운 것 _ 69日次 _ 오늘도 발표 자료 준비中

Snow Rabbit 2024. 12. 20. 15:39

 

어제에 이어서 오늘은

 

데이터 부분을 정리해보려고 한다.

 

가장 오래동안 보았기때문에

잘할줄알았는데

언제나..나는 막힌다..속상한 나

 

후후..

 

우리의 데이터 과정을 생각해 보면..

 

1.

 구글스프레드시트 작성

 

그럼 이렇게

아이템 데이터

즉 제이슨 이름으로 된 제이슨이 생긴다.

제이슨 이름으로 된 제이슨 ㅋㅋㅋ 재밌네

 

여하튼!

 

이 리스트들을 = 제이슨 친구들

컴퓨터가 보기 쉽게

클래스 화 해주어야 한다.

 

그래서 우리는 

json to C#을 해주어서

 

 

내가 만든 제이슨 파일을

여기에 넣어줄 거야!라고 클래스화 시켜준다.

 

그리고 이 리스트에는

제이슨이 아니라

제이쓴을 시샵화 시켜준 리스트가 여기에 들어가게 된다.

 

자 이제 리스트들을 넣었고

0번 1번 찾는 거보다 키값으로 찾기 쉽게 하기 위해 우리는

딕셔너리로 찾아줄 것이다.

 

공통적으로 모든 데이터를 딕셔너리로 해줄 것이기 때문에

DataBase라는 친구를 만들어 주어

데이터들에게 이 친구를 상속시켜 주기로 하자!

 

 

두 가지 유형이 있다.

 

둘 다 해줘야 한다.

첫 번째 친구

DataBase <T>는

Setdata를 통하여

클래스화 시켜주었던 친구들과

내 정보를 일치시켜 주는 역할을 한다.

 

클래스화 시켜주었던 친구는 진짜 "클래스화"인 거고

이제 진짜 초기화를 해줘야지만

누가 누군지 알아보게 된다.

 

인스턴스화라고 하자.

 

JSON 데이터를 C# 클래스의 속성에 맞게 변환하고 초기화하기 위해서

 

 

 

요렇게 해주면 된다!

 

가끔

 

밑에처럼

 

또는

밑에 처럼

 

클래스화 해준 친구들에서

뭐 이것저것 묶고 싶다거나,

따로 분류해줘야 하는 상황이 있다.

 

그래서 기본 클래스화 시켜주는 친구를 meta라고 붙이고

내가 야무지게 가공할 친구들을 그냥 데이터로 붙여서 구분했다.

 

 

두 번째 친구는 아까 json을 리스트로 만들어 준 친구들을

딕셔너리로 바꿔주는 친구이다

 

 

키값과 가공한 파일에 넣을

딕셔너리를 만들고

 

메타데이터를 돌면서

초기화해 주고 값을 넣어준다.

여기서 item.setdata 또한 초기화라고 생각해 주면 좋다.

 

그리고 추가!

 

해주면 데이터 세팅이 완료된다

즉 딕셔너리 키값 안에 리스트들이 있는 셈이 되겠다.

 

그럼 이제 이 친구들을 쓸 수 있게 Load 해주어야 한다.

 

그 친구들은 DataManager에 있다.

 

item.setData를 통해

원본데이터를 살려두기 위해서 한 것.

 

 

<DataManager>

 

데이터를 로드하여 데이트베이스 객체를 초기화해주는 역할

 

우리는 ItemDB라는 객체를 반환해 줄 건데

 

itemDataList가 null이면 뒷부분이 실행되면서

loadData가 실행됩니다.

 

널이 아니면? 그냥 캐시 되어있던 데이터 반환

 

자 

"ㅇㅅㅇ" 안에 있는 게 키이고

 

키 값으로 아까 만들어준 딕셔너리를 가져옵니다.

그다음에 data에 값을 넣어줄 건데

 

 

 

리스트를 또

jsondata를 C#에 맞게 초기화해주고

데이터를 넣어준다.

 

 

itemDataList = new ItemDataList();        =>        ItemDataList 객체 생성

itemDataList.SetData(data.ItemData);         =>         JSON 데이터를 매핑

return itemDataList;         =>         초기화된 객체 반환

 

 

넣기만 했는데 어떻게 실행되는 걸까?

아이템 디비가 실행된 후의 값이 items에 들어가는 것

ItemDB 호출하면 오른쪽 항이 실행되는 거고

return itemDataList === ItemDB

 

itemDB는 프로퍼티로

변수를 함수로 쓸 수 있게 해주는 친구

 

 

 

T는 가공된 것

M은 meta 컴퓨터만 알고 있는 

 

그리고 Func를 통해 반환값을 가져올 수 있도록 하였고

우리는 가공된 친구를 가져와야 하기 때문에 T를 반환해 주도록

LoadData 앞에 T를 붙여두었다.

 

 

여기까지 하고..

주말동안 대본을 작성해야겠다.

 

 

Q setdata는 생성자 일까요?

A 다른듯 비슷한듯 합니다.

 

Q 캐싱과 매핑이 뭔지

 

A

매핑은 빈통에 값을 넣어주는것

파싱 데이터를 바꾸는것

캐싱은 하나의 데이터를 만들어두고 호출할 수 있게 사용하는것 ( 재활용 )