콜백이 포함된 경우 양식은 이식할 수 없습니다. 노트

콜백이 포함된 경우 양식은 이식할 수 없습니다.

진정한 휴대 가능한 형태는 JSON 직렬화 이상의 것을 요구합니다. 즉, 유효성 검사, 조건 및 제출 로직 또한 이전 가능해야 합니다. 표준 폼 라이브러리는 종종 콜백 내에 동작을 포함시켜 휴대성을 떨어뜨리고 백엔드 생성이나 다중 애플리케이션 사용에 부적합하게 만듭니다. 콜백을 소스 코드로 직렬화하거나 간결한 DSL을 고안하려는 시도는 상당한 보안 및 유지보수 위험을 초래합니다. 대신, 동작은 직렬화 가능한 표현 트리(expression tree)를 통해 선언적으로 표현되어야 합니다. 이 접근 방식은 검사 가능하고, 버전 관리가 가능하며, 독립적으로 유효성 검사가 가능한 데이터 구조를 허용합니다. 원시 표현 트리는 장황하지만, TypeScript 빌더와 같은 타입화된 작성 API는 이러한 복잡성을 추상화하여 표준 JSON 계약을 생성할 수 있습니다. 이 계약은 보편적인 진실의 원천 역할을 하여 다양한 프론트엔드와 백엔드가 폼을 일관되게 해석하고 유효성을 검사할 수 있도록 합니다. 결정적으로, 위치 기반 컬렉션(positional collections)은 제출 시 데이터 식별자를 조용히 변경하는 것을 방지하기 위해 신중한 처리가 필요합니다. 휴대 가능한 폼 시스템은 또한 신뢰할 수 없는 입력을 안전하게 처리하기 위해 강력한 유효성 검사 및 보안 조치를 사용해야 하며, 치명적인 백트래킹(catastrophic backtracking)이나 잘못된 구성과 같은 문제를 방지해야 합니다. Modyra에서 탐구된 이 아키텍처 접근 방식은 복잡성을 개별 애플리케이션에서 공유 인프라로 이동시킵니다. 이는 반드시 동일한 렌더링이 아닌, 다른 런타임 간에 동일한 의미를 보장하는 것을 목표로 합니다. 핵심 과제는 계약을 지나치게 복잡하게 만들지 않으면서 휴대 가능한 데이터로 인코딩할 수 있는 동작의 양을 결정하는 데 있습니다.