1. 노드끼리 부모-자식의 관계를 맺을 수 있는 트리 시스템을 만드는중


근데 모든 노드를 동일한 인터페이스로 구현하게 되면 순환참조 데이터가 들어올 수 있음


읽어온 데이터가 A는 B의 자식이다, B는 A의 자식이다 이런식으로 들어오면 무한루프가 뜸




2. 순환참조를 원천봉쇄하려면 부모노드와 자식노드의 인터페이스를 분리해야함


이경우 뎁스가 한정되고 복합체 노드를 구현할 수가 없음


즉, 윈도우 탐색기로 치면 폴더 안에 또다른 폴더가 들어가게는 못만든다는 뜻.


무조건 폴더 안에는 파일만 들어가게 만들면 자식폴더가 부모폴더를 포함하는 무한루프성 결함데이터 발생을 원천봉쇄 가능.




3. 데이터를 검증해서 생성할 수는 없음. 데이터는 게임 외부에서 들어오는거라


그리고 읽어온 데이터에서 무한루프를 감지한다 해도 그 감지된걸 핸들링할 판단근거가 없음.


A->B, B->C, C->A같은 순환데이터가 들어오면 누가 루트고 누가 리프인지 알 방법이 없으니







데이터 구조를 어떻게 짜는게 바람직할까?


A. 결함을 허용하지 않는다. 루트는 무조건 부모고, 루트 아래는 무조건 말단이다. 더 깊은 뎁스가 필요하면 기획을 최대한 수정해서 필요하지 않도록 만든다.

대신 데이터는 양식만 지켜서 넣으면 정상작동이 보장된다.


B. 결함 가능성이 있는 복합체를 허용하고 무한루프가 나는 데이터는 void처리한다.

데이터 오류는 감지만 가능할뿐 해소할 방법이 없기때문에 결함 데이터가 들어왔을때 게임에 필연적으로 빵꾸가 발생하고 정상 작동을 보장할 수 없다.