제2장 용어와 정의

본 장은 본 사양에서 사용되는 모든 규범적 용어를 정의한다. 규범적 의미를 갖는 모든 용어는 처음 등장할 때 굵은 글씨로 표기한다.

2.1 역할 용어

Fay : 의인화된 AI 에이전트의 일반 용어. iFay와 coFay를 포함한다.

iFay(Individual Fay) : 특정 자연인(휴먼 프라임(Human Prime))에 바인딩된 개인 AI 아바타. 휴먼 프라임(Human Prime)과 일대일로 대응되어야 한다.

coFay(Common Fay) : 공공 역할 AI로, Agent와 유사하다. 여러 사용자를 서비스할 수 있다.

휴먼 프라임(Human Prime) : iFay가 바인딩되는 자연인. 데이터 주권의 최종 귀속자.

FayGer : Fay의 컨테이너/런타임 환경(Docker/JRE와 유사). 신뢰할 수 없는 "공공 장소"로 간주되어야 하며, 어떠한 경우에도 평문 데이터에 접근해서는 안 된다.

2.2 프로토콜 역할 용어

주단(Master) : DTP 프로토콜에서의 주제어 측. Fay(iFay 또는 coFay)여야 한다. 데이터 수집 시나리오에서는 수신 측이며, 데이터 주입 시나리오에서는 송신 측이다.

종단(Slave) : DTP 프로토콜에서의 피제어 측. 소프트웨어 또는 하드웨어 단말이어야 한다. 데이터 수집 시나리오에서는 송신 측이며, 데이터 주입 시나리오에서는 수신 측이다.

제어자(Controller) : 현재 단말에 "빙의"한 Fay. 완전한 읽기/쓰기 권한을 가져야 한다. 임의의 시점에 하나의 종단은 두 개 이상의 제어자를 가져서는 안 된다.

관찰자(Observer) : 제어자에 의해 초대되거나 권한 부여된 다른 Fay. 읽기 전용 권한만 가진다. 요청을 발의하거나 약정을 수정해서는 안 된다.

2.3 데이터 전송 용어

데이터 수집(Data Collection) : 단말(Slave)에서 Fay(Master)로 흐르는 데이터 흐름 방향. 단말이 생성한 데이터를 Personal Data Heap에 영속화하는 데 사용해야 한다.

데이터 주입(Data Injection) : Fay(Master)에서 단말(Slave)로 흐르는 데이터 흐름 방향. 필터링을 거친 최소화 데이터셋을 단말 애플리케이션에 제공하는 데 사용해야 한다.

Personal Data Heap : iFay의 비공개 데이터 관리 모듈. iFay 내부에서만 접근 가능해야 한다.

2.4 프로토콜 구조 용어

논리 프레임(Logical_Frame) : DTP의 응용 계층 프레임 구조. 프레임 헤더(Header)와 페이로드(Payload) 두 부분으로 구성되어야 한다(제4장 참조).

Fragment(데이터 조각) : DTP의 데이터 단위. 전역 고유 식별자, 원본 타임스탬프를 가져야 하며, 하나의 약정에 연결되어야 한다.

Agreement(약정) : 주단과 종단이 협상으로 달성한 데이터 전송 계약. 데이터 전송 전에 수립되어야 한다. 약정 없는 데이터 전송이 존재해서는 안 된다.

Session(세션) : 한 번의 완전한 DTP 통신 주기. CAP 검증이 완료된 후 수립되어야 하며, 고유한 Session_ID를 가져야 한다.

2.5 식별자 용어

Fragment_ID : Fragment의 전역 고유 식별자. RFC 4122에서 정의된 UUID v4여야 한다.

Agreement_ID : Agreement의 전역 고유 식별자. RFC 4122에서 정의된 UUID v4여야 한다.

Session_ID : Session의 전역 고유 식별자. RFC 4122에서 정의된 UUID v4여야 한다.

Sequence_Number : 전송 시퀀스 번호. 단조 증가하는 음이 아닌 정수여야 한다. 단일 세션 내에서 각 전송 방향마다 독립적으로 유지되어야 한다.

Origin_Timestamp : 데이터가 소스에서 실제로 생성된 시점. UTC 시간대를 사용해야 한다. 밀리초 정밀도를 가져야 한다.

2.6 프로토콜 메커니즘 용어

협상(Negotiation) : 주단과 종단이 데이터 전송 매개변수에 대해 합의를 이루는 과정. Request_Frame과 Response_Frame을 통해 완료해야 한다.

약정 생명주기(Agreement Lifecycle) : 약정이 협상으로 생성되어 종료될 때까지의 완전한 상태 시퀀스. negotiating, active, suspended, terminated 네 가지 상태를 포함해야 한다.

재개(Resume) : 연결이 중단된 후 단절 지점부터 전송을 계속하는 메커니즘. 시퀀스 번호 기반으로 구현되어야 한다.

DAG 의존(DAG Dependency) : Fragment 간의 유향 비순환 그래프 의존 관계. DAG 엣지(DAGEdge)를 통해 명시적으로 선언되어야 한다.

2.7 소프트웨어 컴포넌트 용어

DTP_Engine : DTP 프로토콜의 핵심 처리 엔진. 프레임 인코딩/디코딩, 암호화, 협상, 세션 관리 등 핵심 기능을 구현해야 한다.

DTP_Master : Fay 측에서 동작하는 DTP_Engine 변형. Master 역할 권한을 가져야 한다.

DTP_Slave : 단말 측에서 동작하는 DTP_Engine 변형. Slave 역할 권한만 가져야 한다.

Transport_Adapter : 하위 전송 프로토콜의 추상 인터페이스. 지원하는 각 전송 프로토콜에 대해 통일된 송수신 인터페이스를 제공해야 한다.

2.8 상태 용어

SessionState : 세션의 현재 상태. idle, waiting_for_cap, established, negotiating, transmitting, suspended, resuming 중 하나여야 한다.

AgreementStatus : 약정의 현재 상태. negotiating, active, suspended, terminated 중 하나여야 한다.

ConnectionState : Transport_Adapter가 보고하는 하위 연결 상태. connected, disconnected, error 중 하나여야 한다.