본문 바로가기

Product

Alpha Table[2] 공유

* 지난 이야기

지난글 "Alpha Table 출시" ( https://clientprogrammer.tistory.com/2 ) 에서 Alpha Table 이라는 툴에 대해서 알아 봤고, 

오늘은 조금 부족했던 알파테이블에 대한 설명을 이어 나가겠다.

추가로 버전이 가지고 있는 문제점과 업데이트 방향에 대해서도 이야기 해보고, 예고 했던대로 zip 형식으로 알파테이블을 첨부 하겠다.



* 알파테이블 진행 순서

 지난 글에서 "알파테이블 진행 순서"를 글로써 6단계로 설명해뒀는데, 글로만 설명하기에는 부족함이 있어서 아래 [영상1]을 첨부 했다.

6단계의 순서는 다시 복붙해서 옮겨본다.



1. 기획팀에서 테이블 데이터 SVN에 COMMIT
2. 머신에서 돌고있는 알파테이블이 자동으로 커밋을 감지.
3. 감지 후에 변경 or 추가 된 엑셀만 로드하여 파싱, 클라에서 사용 할 binary파일 생성, 클라이언트 코드가 들어있는 cs파일 생성
4. 생성한 바이너리와 cs파일을 유니티 프로젝트로 이동. 
5. 이동 된 파일들의 메타파일 생성
6. SVN에 커밋




[영상1] 알파테이블 구동 영상



사실 필자는 여건상 ( 집에 사용 가능한 PC가 2대밖에 없어서 ) PC 2대로 테스트를 했지만, 실제 업무에서 사용한다면 최소 3대의 PC에서 위 상황이 진행 될 것이다.

첫번째로 "기획자의 LOCAL PC" 에서 테이블을 수정해서 커밋 할 것이고,

두번째로 "Alpha Table이 설치 된 PC"에서 실시간으로 테이블 수정을 감지하고, 변경 사항이 있다면 cs파일과 byte파일을 추출 및 유니티 프로젝트 SVN에 커밋 할 것이다.

마지막으로 "프로그래머 LOCAL PC" 에서 두번째 단계에서 커밋 한 cs파일과 byte파일을 업데이트 받고 게임에 적용 할 것이다.



* cs파일이 왜 3개나 뽑히는지?

ModelTable, DataTable, DataTableExtra 형태의 cs파일이 추출 되는데, 그 쓰임은 아래와 같다.


1. ModelTable

byte파일과 1:1 대응 되는 클래스고, 구조는 "[그림1]"와 같다.



[그림1] ModelTable




2. DataTable 

 테이블로드, 테이블 접근 등을 하는 클래스이다. 테이블Load에 대한 실구현은 상속받아오는 DatableBase에서 이루어지고, 형태를 알려주기 위해 DatableBase는 Generic으로 

설계 돼 있다.



[그림2] DataTable





3. DataTableExtra

DataTable은 고정 구조여서 프로그래머가 수정 할 수 없다. 수정 하더라도, 다음 테이블 업데이트때 새로운 내용으로 덮어 씌어질 것이다. 그러나, 모든 테이블이 항상 같은 폼을 유지하기는 어렵고,

경우에 따라서는 몇몇 테이블은 그들만의 함수나 멤버를 사용하는게 더 효율적일 수도 있다. 그래서 만든 수정 가능한 DataTable이 DataTableExtra이다. 처음 엑셀파일을 Add/Commit 할 때만 

DataTableExtra.cs 파일이 생성되고, 그 후엔 엑셀파일을 수정 하더라도 DataTableExtra.cs을 새로 만들어내지 않는다. 

생성시 아래 "[그림3]"처럼 비어있는 클래스 형태이고, 필요시 프로그래머가 추가/수정 후 커밋하면 된다.



[그림3] DataTableExtra






* 개선방향

1. dataType을 결정할 때 테이블 첫 값만 가지고 판단을 하는데, 추후 모든 값을 검토해서 판단하도록 개선

2. batch파일 실행 중 svn 관련 오류가 생길 수 있는데 오류 발생시 revert, unlock, cleanup, delete 등의 svn 명령어로 대응 후 진행.

3. 현재 자료형이 list로 고정 되는데 추후 "AlphaTable 툴"에서 dictionary or list 선택 할 수 있도록 수정 ( default는 list )

4. 스트링 자료형은 어떤 값이든 128 고정 사이즈로 저장하고 있는데, 모든 값을 검토해서 가장 긴 스트링의 길이로 셋팅하게 변경


TableManagerDefault.zip


'Product' 카테고리의 다른 글

APK 다운로드용 임시링크  (0) 2019.01.17
Alpha Table[1] 출시  (0) 2018.12.16