[[Category:My Project]]
[[User:Bluegol|Bluegol]] ([[User talk:Bluegol|talk]]) 12:44, 13 January 2013 (KST)
- 두개 이상의 PParam group
** 서로 참조는 가능 - 메타 데이터
** 테이블/필드에 메타 정보를 부여하고
** 커스템 메타 어트리뷰트도 부여 가능하게 하고
** 메타 정보 데이터에 기반하여 “확장”이 용이하게
** Extended Resource
*** 예. String, Expr
*** 기본 처리는 id와 메타데이터
*** 이후 처리는 확장 가능하도록
*** 지금의 string/expr 처리를 모두 이런 방식으로
** 예. 스탯 테이블 처리…라던가
** 메타 데이터를 익스포트! 다른 프로그램에서 읽을 수 있도록! (이거야말로 GPB!)
** 필요한 어트리뷰트들
*** type. 복수 타입 지정 가능하도록!
*** 테이블의 아이디가 다른 테이블의 아이들 ‘모두’ 포함하도록 하는 기능 필요 (DB 용어로 foreign key. 거기다가 ALL)
*** mandatory
*** default
*** field id - 인풋
** 인풋 데이터를 다양하게/인풋 모듈화
*** xlsx
*** tsv
*** 기타 Non-table
**** “식”을 사용하는 게 많다.
**** GPB 데이터에도 “식”을 입력 가능하게 하려면? - 빌드 과정 명확히 정리
- DB 디펜던시의 스펙화!
==새 설계==
* 심볼
** 심볼 구성
*** 네임
*** 아이디 밸류
*** 이넘 타입
*** 심볼 타입
**** 리소스 타입 포함
**** 정수 타입
**** 아이디 타입
*** 오리지널 밸류 (스트링)
*** 밸류
**** 심볼 타입에 따라 다르다!
**** 타입 전환 오퍼레이터/노테이션?
** 조건
*** 네임-아이디밸류는 프로젝트 내에서 유니크
*** ASCII상에서 대-소문자 구분 없음
** 인터널/유저 디파인드/프리디파인드 심볼
*** 인터널 심볼은 로 시작, 캐릭터 제한 없음
*** 유저 디파인드 심볼은 C++ 변수/함수명과 동일한 제약
*** 프리디파인드 심볼은 유저 디파인드 심볼과 동일한 제약, 그러나 미리 지정된 것
** 인터널 심볼
*** _Internal : 인터널 심볼이 모두 들어가는 이넘 타입
*** _Table : 유저디파인드 테이블 아이디가 모두 들어가는 이넘 타입
*** _Enum : 유저디파인드 이넘 타입이 모두 들어가는 이넘 타입
*** _ID<테이블 네임> : 키 오토 지정시의 이넘 타입
*** Const<테이블 네임> : 상수 정의 테이블의 키들의 이넘 타입
*** <리소스 타입별로 지정된 로 시작하는 인터널 심볼>::<테이블 네임>::<필드 네임>
**** 할당된 리소스 아이디의 이넘 타입
**** 실제 리소스 아이디의 네임은 <리소스 타입별로 지정된 인터널 심볼>::<테이블 네임>::<필드 네임>::<키의 아이디 밸류>
*** _Field::<테이블 네임>::<필드 네임>
**** 리소스의 경우와 동일. 이 경우는 필드…
* 순서
** 빌드 리스트 읽기
** 빌드 리스트의 모든 파일에 대해
*** 메타 데이터 (디펜던시, 테이블 위치, 타입, non-테이블의 경우에도 필요한 메타 데이터…) 읽고
*** 디펜던시 트리 만들고, 바뀌었으면 메이크 파일 새로 저장 및 전체 클리어
*** 내부에서 중간 사용할 형태로 데이터를 변환하여 (스트링), 바뀌었으면 저장
*** 이넘 심볼들은 모두 id 할당하고, 테이블별로 바뀌었으면 저장
*** 참고: 다른 테이블에서 무엇을 참조하는가? 이넘의 아이디/값/콘스트의 아이디/값뿐…
** 모든 테이블 혹은 non-테이블 개체에 대해, 디펜던시 순서대로
*** 데이터를 최종 형태로 변환하여 저장
*** 리소스는
**** 필요하면 리소스 아이디를 할당하고 그 아이디를 저장
**** 필요하면 리소스는 따로 모아 아이디-중간 형태(스트링)로 저장
** 리소스 타입별로 리소스 처리
** 모두 모아 컴파일~