계보를 그리는 새로운 방식: "혼인 노드" 모델과 예시 트리
왜 계보를 위한 새로운 엔진인가?
실제 가족은 단순한 트리가 아닙니다. 일부다처, 이혼, 사별과 재혼, 한 사람을 여러 갈래에 연결하는 사촌 간 혼인, 그리고 사료가 때로는 끝내 이름을 남기지 못한 어머니들이 존재합니다. 전통적인 렌더러는 "배우자 하나, 선 하나"를 전제하기 때문에 진실의 일부를 감추거나, 사람을 중복시키거나, 형태를 무너뜨립니다. 우리는 가족을 단순화된 틀이 규정하는 대로가 아니라 실제 모습 그대로 표현하기 위해, 트리를 그리는 방식을 처음부터 다시 구축했습니다.
플랫폼의 "Āl ʿAbd Allāh" 예시 트리는 이 엔진을 안전하게 보여주는 사례입니다. 어려운 사례들(일부다처, 이혼, 사별, 여성의 혈통이 자신의 가문으로 이어지는 경우)을 실제 가족의 사생활을 건드리지 않고 드러내도록 특별히 설계된 가상의 인물들입니다.
"혼인 노드" 모델
핵심 아이디어는 혼인 그 자체를 도표의 노드로 삼는 것입니다. 부부를 잇는 작은 원에서 자녀들이 아래로 이어집니다. 이는 아내들을 남성 옆에 나란히 놓고 모든 자녀를 그 아래에 배치하면서 어느 자녀가 어느 어머니에게서 태어났는지 보여 주지 않는 전통적인 배우자 "빗살" 방식과 다릅니다. 혼인 노드를 사용하면 누가 누구와 혼인했는지, 어떤 자녀가 각 혼인에서 태어났는지, 그리고 모든 관계의 상태가 분명해집니다.
각 관계의 상태는 시각적으로 인코딩됩니다. 진행 중인 혼인은 파란 원이 있는 실선, 이혼은 빈 원, 사망으로 끝난 결합은 점선 고리를 두른 회색 원, 역사적 밀크 알야민 관계는 호박색으로 표시됩니다. 보는 사람은 모서리에 상시 표시되는 "관계 범례"와 함께 형태만으로 구조를 읽어낼 수 있습니다.
어려운 사례들은 어떻게 처리되는가
- 일부다처와 재혼: 모든 결혼은 각자의 노드, 원, 자녀를 가집니다. 아내의 이전 결혼들은 아무리 여러 층 깊이든 독립적으로 중첩된 블록으로 렌더링됩니다.
- 사촌 간 혼인과 합류하는 혈통: 한 사람이 둘 이상의 갈래에 연결될 때, 그 사람은 정확히 한 번(정본이 되는 그의 본거지) 완전하게 그려지고, 다른 곳에서는 두 계통이 만나는 공통 조상을 가리키는 간결한 참조로 나타납니다. 중복 없이, 잃는 것 없이.
- 접기와 펼치기: 방계 갈래는 "+N" 컨트롤 뒤로 접혀 화면을 깔끔하게 유지하며, 필요 시 열립니다. 카운터는 전체 트리 중 보이는 인원 수를 표시합니다.
- 이름이 없는 어머니: 사료가 어머니의 이름을 남기지 않았다면 우리는 이름을 지어내지도 가짜 카드를 그리지도 않습니다. 이름이 기록되지 않았음을 그대로 밝히거나(연구 트리), 해당 인물을 추가할 수 있는 명확한 공간을 보여 줍니다(가계도).
모든 트리를 위한 하나의 엔진
동일한 방식이 플랫폼의 모든 트리를 구동합니다. 여러분의 가계도, 예시 트리, 그리고 예언자 ﵌의 연구 계보까지 모두 같은 방식으로 작동합니다. 트리별 코드는 없습니다. 이는 어떤 디자인 개선이나 동작 수정도 모든 트리와 모든 사용자에게 한 번에 적용되며, 일관성은 수작업이 아니라 구조 자체로 보장된다는 뜻입니다.
엔지니어링 관점에서 데이터는 하나의 엄격한 파이프라인을 따라 흐릅니다. 평면 데이터(사람당 한 행, 구조는 아버지/어머니 링크에서 도출)가 순수한 수학적 변환에 입력되어 장면을 생성하고, 그것이 다시 데이터 로직이 전혀 없는 렌더러에 입력됩니다. 모든 좌표는 계산되며, 그림 속에는 손으로 배치한 위치가 단 하나도 없습니다.
게시 전 품질 게이트
모든 배포가 모든 트리에 영향을 미치기 때문에, 우리는 그 앞에 자동 가드를 둡니다. 모든 임포트 전에 검사되는 일련의 무결성 규칙(직계 조상과의 결혼 금지, 동성 결합 금지, 혈통 내 순환 금지, 부모가 둘 다 없는 자녀 금지, 참조 무결성)입니다. 데이터가 하나라도 위반하면 게시가 거부됩니다. 여기에 더해 수십 가지 적합성 테스트가 버전 간에 그림이 단 1픽셀도 어긋나지 않음을 검증합니다.
이 규율 덕분에 우리는 안심하고 빠르게 개선을 반복할 수 있습니다. 보호 장치가 어떤 오류도 여러분의 가계도에 닿지 않도록 지켜 준다는 믿음으로 디자인을 끊임없이 개선합니다.
사용 경험
- 누구든 즉시 검색(이름으로, 아버지와 세대와 함께)하고, 맥락을 잃지 않은 채 그 위치로 이동하여 강조 표시합니다.
- 인물별 페이지: 이름, 존칭, 날짜, 부족, 전기, 자녀, 배우자, 부모.
- 아랍어 오른쪽에서 왼쪽, 영어 왼쪽에서 오른쪽, 그리고 즉각적인 언어 전환.
- 구성원 사진, 가족 트리에서 자동으로 도출되는 쿠냐, 그리고 모바일에서도 잘 작동하는 레이아웃.
새로운 디자인은 겉모습만 바꾼 것이 아닙니다. 가족을 디지털로 표현하는 방식 자체를 다시 생각한 것입니다. 진실에 충실하고, 모든 트리에서 일관되며, 데이터를 그것이 속한 사람들의 소유로 지켜냅니다.
