Android 오픈소스 프로젝트(AOSP)에 구현하기 위한 이 기술 설명서에서는 온디바이스 맞춤설정(ODP)의 동기, 개발을 안내하는 설계 원칙, 비밀유지 모델을 통한 개인 정보 보호, 검증 가능한 비공개 환경을 보장하는 데 도움이 되는 방식을 설명합니다.
이를 위해 Google은 데이터 액세스 모델을 단순화하고 보안 경계를 벗어나는 모든 사용자 데이터가 사용자, 어답터, model_instance별 수준(이 문서에서는 사용자 수준으로 축약되어 있음)에서 개인 정보 차등 보호로 보호되도록 할 계획입니다.
최종 사용자 기기에서 발생할 수 있는 최종 사용자 데이터 이그레스와 관련된 모든 코드는 오픈소스로 제공되며 외부 주체가 검증할 수 있습니다. 제안서 초기 단계에서는 온디바이스 맞춤설정 기회를 촉진하는 플랫폼에 대한 관심을 유도하고 의견을 수집하고자 합니다. Google은 개인 정보 보호 전문가, 데이터 분석가, 보안 실무자와 같은 이해관계자들의 참여를 환영합니다.
비전
온디바이스 맞춤설정은 최종 사용자가 상호작용한 적 없는 비즈니스로부터 최종 사용자 정보를 보호하기 위해 설계되었습니다. 비즈니스는 최종 사용자를 위해 제품과 서비스를 계속 맞춤설정할 수 있지만(예: 적절히 익명처리된 개인 정보 차등 보호 머신러닝 모델 사용) 비즈니스와 최종 사용자 간에 직접적인 상호작용이 없다면 비즈니스 소유자가 생성한 맞춤설정 규칙뿐만 아니라 개별 최종 사용자의 설정에도 종속되는 최종 사용자를 위한 정확한 맞춤설정은 볼 수 없습니다. 비즈니스가 머신러닝 모델이나 통계 분석을 생성하는 경우 ODP는 이러한 모델이나 분석이 적절한 개인 정보 차등 보호 메커니즘을 사용하여 적절하게 익명처리되도록 보장합니다.
Google의 현재 계획은 다음과 같은 기능을 다루는 여러 주요 시점에서 ODP를 살펴보는 것입니다. 또한 이 탐구를 더 진행하기 위해 이해관계자들이 추가 기능이나 워크플로를 건설적으로 제안할 것을 요청합니다.
- 모든 비즈니스 로직이 포함되어 있고 실행되는 샌드박스 환경으로, 출력을 제한하면서 다수의 최종 사용자 신호가 샌드박스에 입력될 수 있도록 합니다.
엔드 투 엔드 암호화 데이터 스토어:
- 사용자 제어 및 기타 사용자 관련 데이터. 이러한 데이터는 TTL(수명) 제어, 완전 삭제 정책, 개인정보처리방침 등과 함께 최종 사용자가 제공하거나 비즈니스가 수집 및 추론할 수 있습니다.
- 비즈니스 구성. ODP는 이러한 데이터를 압축하거나 난독화하는 알고리즘을 제공합니다.
- 비즈니스 처리 결과. 결과는 다음과 같습니다.
- 이후 처리 단계에서 입력으로 소비됩니다.
- 적절한 개인 정보 차등 보호 메커니즘에 따라 노이즈가 제거되고 적격한 엔드포인트에 업로드됩니다.
- 신뢰할 수 있는 업로드 흐름을 사용하여 적절한 중앙 개인 정보 차등 보호 메커니즘과 함께 오픈소스 워크로드를 실행하는 신뢰할 수 있는 실행 환경(TEE)에 업로드됨
- 최종 사용자에게 표시됩니다.
다음과 같이 설계된 API:
- 2(a)를 일괄 또는 점진적으로 업데이트합니다.
- 2(b)를 일괄 또는 점진적으로, 주기적으로 업데이트합니다.
- 신뢰할 수 있는 집계 환경에서 적절한 노이즈 메커니즘과 함께 2(c)를 업로드합니다. 이러한 결과는 다음번 처리 라운드에서 2(b)가 될 수 있습니다.
디자인 원칙
ODP에서 추구하는 세 가지 핵심 요소는 개인 정보 보호, 공정성, 유용성입니다.
강화된 개인 정보 보호 기능을 위한 타워형 데이터 모델
ODP는 개인 정보 보호 중심 설계를 따르며 기본적으로 최종 사용자 개인 정보 보호를 염두에 두고 설계되었습니다.
ODP에서는 맞춤설정 처리를 최종 사용자의 기기로 이동하는 방법을 모색합니다. 이 접근 방식은 데이터를 가능한 한 기기에 보관하고 필요한 경우에만 기기 외부에서 처리하여 개인 정보 보호와 유용성 간의 균형을 유지합니다. ODP는 다음에 중점을 둡니다.
- 최종 사용자 데이터가 기기 외부로 전송되더라도 기기에서 제어. 대상은 ODP 작성 코드를 실행하는 퍼블릭 클라우드 제공업체가 제공하는 검증된 신뢰할 수 있는 실행 환경이어야 합니다.
- 최종 사용자 데이터가 기기를 벗어나면 어떻게 되는지에 대한 기기 인증 가능성. ODP는 오픈소스 제휴 컴퓨팅 워크로드를 제공하여 어답터의 교차 기기 머신러닝 및 통계 분석을 조정합니다. 최종 사용자의 기기는 이러한 워크로드가 수정되지 않은 상태로 신뢰할 수 있는 실행 환경에서 실행됨을 증명합니다.
- 기기에서 제어/검증 가능한 경계를 벗어나는 출력의 기술적 개인 정보 보호(예: 집계, 노이즈, 개인 정보 차등 보호)를 보장합니다.
따라서 맞춤설정은 기기별로 적용됩니다.
또한 비즈니스는 플랫폼에서 해결해야 하는 개인 정보 보호 조치도 요구합니다. 그러려면 각 서버에 원시 비즈니스 데이터를 유지해야 합니다. 이를 위해 ODP는 다음 데이터 모델을 채택합니다.
- 각 원시 데이터 소스는 기기 또는 서버 측에 저장되므로 로컬 학습 및 추론이 가능합니다.
- Google은 서로 다른 두 데이터 위치 간 필터링 또는 다양한 소스를 대상으로 하는 학습 또는 추론과 같이 여러 데이터 소스에서 의사결정을 용이하게 하는 알고리즘을 제공합니다.
이 컨텍스트에는 비즈니스 타워와 최종 사용자 타워가 있을 수 있습니다.
클라우드 중심 인프라에서는 최종 사용자 타워의 모든 원시 데이터가 비즈니스 서버로 전송됩니다. 반대로 기기 중심 인프라에서는 최종 사용자 타워의 모든 원시 데이터가 출처에 남아 있는 반면 비즈니스의 데이터는 서버에 저장됩니다.
온디바이스 맞춤설정은 증명된 오픈소스 코드만이 더 많은 비공개 출력 채널을 사용하여 TEE의 최종 사용자와 관련될 가능성이 있는 데이터를 처리하도록 함으로써 두 환경의 장점을 결합합니다.
공평한 솔루션을 위한 포용적인 대중 참여
ODP의 목표는 다양한 생태계의 모든 참여자에게 균형 잡힌 환경을 보장하는 것입니다. Google은 고유한 서비스와 제품을 제공하는 다양한 업체로 구성된 이 생태계의 복잡성을 잘 알고 있습니다.
혁신을 촉진하기 위해 ODP는 개발자와 그들이 대표하는 비즈니스에서 구현할 수 있는 API를 제공합니다. 온디바이스 맞춤설정은 출시, 모니터링, 개발자 도구 및 의견 도구를 관리하는 동시에 이러한 구현의 원활한 통합을 지원합니다. 온디바이스 맞춤설정은 구체적인 비즈니스 로직을 생성하지 않으며, 창의성을 촉발하는 촉매제 역할을 합니다
ODP는 시간이 지남에 따라 더 많은 알고리즘을 제공할 수 있습니다. 생태계와의 공동작업은 적절한 수준의 기능을 결정하고 참여하는 각 비즈니스에 적합한 기기 리소스 한도를 설정하는 데 있어 필수적입니다. 새로운 사용 사례를 파악하고 우선순위를 지정하는 데 도움이 되도록 생태계의 의견을 기다립니다.
개선된 사용자 환경을 위한 개발자 유틸리티
ODP를 사용하면 모든 이벤트가 기기 수준에서 로컬로 기록되므로 이벤트 데이터가 손실되거나 관찰 지연이 발생하지 않습니다. 조인 오류는 없으며 모든 이벤트가 특정 기기와 연결됩니다. 결과적으로 관찰된 모든 이벤트는 사용자의 상호작용을 반영하는 시간순 시퀀스를 자연스럽게 형성합니다.
이 간소화된 프로세스 덕분에 데이터를 조인하거나 재배열할 필요가 없으므로 손실이 없는 사용자 데이터에 거의 실시간으로 액세스할 수 있습니다. 결과적으로, 이는 최종 사용자가 데이터 기반 제품 및 서비스를 사용할 때 인지하는 유용성을 향상하여 잠재적으로 더 높은 만족도와 더 의미 있는 경험으로 이어질 수 있습니다. 비즈니스는 ODP를 통해 사용자의 필요에 효과적으로 적응할 수 있습니다.
개인 정보 보호 모델: 비밀유지를 통한 개인 정보 보호
이어지는 섹션에서는 이러한 개인 정보 보호 분석의 기반으로서 소비자-생산자 모델을 설명하고, 컴퓨팅 환경의 개인 정보 보호와 출력 정확성 비교를 설명합니다.
개인 정보 보호 분석의 기반으로 삼는 소비자 제작자 모델
Google에서는 소비자-생산자 모델을 사용하여 비밀유지를 통한 개인 정보 보호를 보장합니다. 이 모델의 계산은 노드와 하위 그래프로 구성된 방향성 비순환 그래프(DAG) 내에 노드로 표현됩니다. 각 계산 노드에는 소비된 입력, 생성된 출력, 입력을 출력에 매핑하는 계산이라는 세 가지 구성요소가 있습니다.
이 모델에서는 개인 정보 보호 기능이 다음 세 가지 구성요소에 모두 적용됩니다.
- 입력 개인 정보 보호. 노드에는 두 가지 유형의 입력이 있을 수 있습니다. 입력이 이전 노드에 의해 생성된 경우, 이전 노드의 출력 개인 정보 보호 보장이 이미 있습니다. 그 밖의 경우에는 입력이 정책 엔진을 사용하여 데이터 인그레스 정책을 지워야 합니다.
- 출력 개인 정보 보호. 개인 정보 차등 보호(DP)에서 제공하는 것과 같이 출력을 비공개화해야 할 수 있습니다.
- 계산 환경 비밀유지. 계산은 아무도 노드 내의 중간 상태에 액세스할 수 없도록 안전하게 봉인된 환경에서 이루어져야 합니다. 이를 가능하게 하는 기술에는 제휴 계산(FC), 하드웨어 기반 신뢰할 수 있는 실행 환경(TEE), 보안 다자간 계산(sMPC), 동형 암호화(HPE) 등이 있습니다. 기밀성 보호 장치를 통한 개인 정보 보호와 기밀성 경계를 벗어나는 모든 출력은 여전히 개인 정보 차등 보호 메커니즘으로 보호되어야 합니다. 두 가지 필수 침해 신고는 다음과 같습니다.
- 환경 기밀유지: 선언된 출력만 환경을 벗어납니다.
- 건전성: 입력된 개인 정보 보호 침해 신고에서 출력 개인 정보 침해 신고를 정확하게 공제합니다. 건전성을 통해 개인 정보 보호 속성을 DAG 아래로 전파할 수 있습니다.
비공개 시스템은 입력 개인 정보 보호, 계산 환경 기밀성, 출력 개인 정보 보호를 유지합니다. 그러나 기밀 컴퓨팅 환경 내에서 더 많은 처리를 봉인하면 개인 정보 차등 보호 메커니즘의 적용 횟수를 줄일 수 있습니다.
이 모델에는 두 가지 주요 이점이 있습니다. 첫째, 크고 작은 대부분의 시스템을 DAG로 표현할 수 있습니다. 둘째, DP의 후처리[섹션 2.1] 및 컴포지션 개인 정보 차등 보호의 복잡성 속성의 Lemma 2.4는 전체 그래프의 (최악의 경우) 개인 정보 보호와 정확성의 절충안을 분석하는 강력한 도구를 제공합니다.
- 후처리는 수량이 비공개화된 후에는 원래 데이터가 다시 사용되지 않을 경우 '비공개화 취소'되지 않도록 보장합니다. 노드의 모든 입력이 비공개인 한 출력은 계산에 관계없이 비공개입니다.
- 고급 컴포지션은 각 그래프 부분이 DP인 경우 전체 그래프도 DP가 되도록 보장하여 그래프 최종 출력의 ε 및 δ를 각각 약 ε√κ로 제한합니다. (그래프에 κ개의 단위가 있고 각 단위의 출력이 (ε, δ)-DP라고 가정).
이 두 속성은 각 노드에 대한 두 가지 디자인 원칙으로 변환됩니다.
- 속성 1 (후처리에서) 노드의 입력이 모두 DP인 경우 출력은 DP이며, 노드에서 실행되는 임의의 비즈니스 로직을 수용하고 비즈니스의 '비밀 소스'를 지원합니다.
- 속성 2 (고급 컴포지션에서) 노드의 입력이 모두 DP가 아닌 경우 출력은 DP를 준수해야 합니다. 계산 노드가 신뢰할 수 있는 실행 환경에서 실행되고 오픈소스로 온디바이스 맞춤설정이 지원되는 워크로드 및 구성을 실행하는 노드인 경우 더 엄격한 DP 경계를 설정할 수 있습니다. 그러지 않으면 온디바이스 맞춤설정이 최악의 경우 DP 경계를 사용해야 할 수 있습니다. 리소스 제약조건으로 인해 퍼블릭 클라우드 제공업체가 제공하는 신뢰할 수 있는 실행 환경이 초기에 우선순위가 부여됩니다.
계산 환경 개인 정보 보호와 출력 정확성 비교
따라서 온디바이스 맞춤설정은 기밀 컴퓨팅 환경의 보안을 강화하고 중간 상태에 계속 액세스할 수 없도록 하는 데 중점을 둡니다. 봉인으로 알려진 이 보안 프로세스는 하위 그래프 수준에서 적용되므로 여러 노드가 함께 DP를 준수하도록 할 수 있습니다. 즉, 앞에서 언급한 속성 1과 속성 2가 하위 그래프 수준에서 적용됩니다.
본질적으로 계산 환경을 보호하고 공격자가 그래프 또는 하위 그래프의 입력 및 중간 상태에 액세스할 수 있는 기회를 제거함으로써 중앙 DP를 구현할 수 있습니다(즉, 봉인된 환경의 출력은 DP를 준수함). 이를 통해 로컬 DP(즉, 개별 입력이 DP를 준수함)에 비해 정확성을 개선할 수 있습니다. 이 원칙은 FC, TEE, sMPC, HPE를 개인 정보 보호 기술로 간주하는 기반이 됩니다. 개인 정보 차등 보호의 복잡성 10장을 참고하세요.
모델 학습과 추론이 좋은 실제 사례입니다. 아래 설명에서는 (1), 학습 모집단과 추론 모집단이 중복되고, (2) 특성과 라벨이 모두 비공개 사용자 데이터를 구성한다고 가정합니다. 모든 입력에 DP를 적용할 수 있습니다.
개인 정보 보호 보장
온디바이스 맞춤설정은 검증 가능한 방식으로 비공개 상태를 유지하는 것을 목표로 합니다. 사용자 기기에서 발생하는 일을 확인하는 데 중점을 둡니다. ODP는 최종 사용자의 기기에서 나가는 데이터를 처리하는 코드를 작성하고 NIST의 RFC 9334 원격 증명 절차(RATS) 아키텍처를 사용하여 이러한 코드가 컨피덴셜 컴퓨팅 컨소시엄 규격의 인스턴스 관리자 권한이 해제된 서버에서 수정되지 않은 상태로 실행되고 있음을 증명합니다. 이러한 코드는 오픈소스로 제공되며 투명한 확인을 통해 신뢰를 쌓을 수 있습니다. 이러한 조치를 통해 사용자는 자신의 데이터가 보호된다는 확신을 가질 수 있으며 비즈니스는 강력한 개인 정보 보호 보장을 토대로 평판을 확립할 수 있습니다.
수집 및 저장되는 비공개 데이터의 양을 줄이는 것은 온디바이스 맞춤설정의 또 다른 중요한 측면입니다. 이를 위해 제휴 컴퓨팅 및 개인 정보 차등 보호와 같은 기술을 채택하여 민감한 개인 세부정보나 식별 가능한 정보를 노출하지 않고도 중요한 데이터 패턴을 드러낼 수 있습니다.
데이터 처리 및 공유와 관련된 활동을 기록하는 감사 추적을 유지하는 것도 개인 정보 보호 검증의 또 다른 주요 측면입니다. 이를 통해 감사 보고서를 작성하고 취약점을 식별하여 개인 정보 보호를 위한 Google의 노력을 확인할 수 있습니다.
Google은 설계와 구현을 지속적으로 개선하기 위해 개인 정보 보호 전문가, 기관, 업계, 개인의 건설적인 협력을 요청합니다.
아래 그래프는 개인 정보 차등 보호에 따른 교차 기기 집계 및 노이즈 코드 경로를 보여줍니다.
대략적인 구성
비밀유지를 통한 개인 정보 보호를 구현할 수 있는 방법은 무엇일까요? 대략적으로 봉인된 환경에서 실행되는 ODP에서 작성한 정책 엔진은 입력 및 출력의 DP 상태를 추적하는 동시에 각 노드/하위 그래프를 감독하는 핵심 구성요소 역할을 합니다.
- 정책 엔진의 관점에서는 기기와 서버가 동일하게 취급됩니다. 동일한 정책 엔진을 실행하는 기기와 서버는 정책 엔진이 상호 증명되면 논리적으로 동일한 것으로 간주됩니다.
- 기기에서는 AOSP 격리 프로세스(또는 가용성이 높아지면 장기적으로는 pKVM)를 통해 격리됩니다. 서버에서 격리는 '신뢰할 수 있는 당사자'에 의존하며, 이는 TEE와 선호되는 기타 기술 봉인 솔루션, 계약 또는 둘 다입니다.
즉, 플랫폼 정책 엔진을 설치하고 실행하는 모든 봉인 환경은 신뢰할 수 있는 컴퓨팅 기반(TCB)의 일부로 간주됩니다. TCB를 사용하면 추가 노이즈 없이 데이터를 전파할 수 있습니다. 데이터가 TCB를 떠날 때 DP를 적용해야 합니다.
온디바이스 맞춤설정의 대략적인 설계는 다음 두 가지 필수 요소를 통합합니다.
- 비즈니스 로직 실행을 위한 페어링된 프로세스 아키텍처
- 데이터 인그레스, 이그레스, 허용되는 작업을 관리하기 위한 정책 및 정책 엔진
이와 같이 일관된 설계를 통해 비즈니스는 신뢰할 수 있는 실행 환경에서 독점 코드를 실행하고 적절한 정책 검사를 통과한 사용자 데이터에 액세스할 수 있는 평등한 경쟁 환경을 조성할 수 있습니다.
이어지는 섹션에서는 이 두 가지 주요 측면을 자세히 설명합니다.
비즈니스 로직 실행을 위한 페어링된 프로세스 아키텍처
온디바이스 맞춤설정에는 비즈니스 로직 실행 중에 사용자 개인 정보 보호 및 데이터 보안을 강화하기 위해 AOSP의 페어링된 프로세스 아키텍처가 도입되었습니다. 이 아키텍처는 다음으로 구성됩니다.
ManagingProcess. 이 프로세스는 IsolatedProcesses를 만들고 관리하여 액세스 권한이 허용 목록의 API로 제한되고 네트워크 또는 디스크 권한이 없는 프로세스 수준의 격리 상태를 유지하도록 합니다. ManagingProcess는 모든 비즈니스 데이터, 모든 최종 사용자 데이터 및 정책의 수집을 처리하고 비즈니스 코드를 위해 이러한 데이터를 지우며 실행을 위해 IsolatedProcesses로 푸시합니다. 또한 IsolatedProcesses와 다른 프로세스(예: system_server) 간의 상호작용을 중재합니다.
IsolatedProcess. 격리된 프로세스(매니페스트에서
isolatedprocess=true
)로 지정된 이 프로세스는 ManagingProcess에서 비즈니스 데이터, 정책에서 지워진 최종 사용자 데이터, 비즈니스 코드를 수신합니다. 이를 통해 비즈니스 코드가 데이터 및 정책에서 지워진 최종 사용자 데이터에 대해 작동할 수 있습니다. IsolatedProcess는 추가 권한 없이 인그레스 및 이그레스 모두에서 ManagingProcess와 단독으로 통신합니다.
페어링된 프로세스 아키텍처는 비즈니스가 비즈니스 로직이나 코드를 오픈소스로 제공하지 않아도 최종 사용자 데이터 개인정보처리방침을 독립적으로 검증할 수 있는 기회를 제공합니다. 이 아키텍처는 IsolatedProcesses의 독립성을 유지하고 IsolatedProcesses가 비즈니스 로직을 효율적으로 실행하는 덕분에 맞춤설정 중에 사용자 개인 정보를 보호하는 더 안전하고 효율적인 솔루션을 보장합니다.
다음 그림은 이 페어링된 프로세스 아키텍처를 보여줍니다.
데이터 작업을 위한 정책 및 정책 엔진
온디바이스 맞춤설정은 플랫폼과 비즈니스 로직 사이에 정책 적용 레이어를 도입합니다. 목표는 최종 사용자 및 비즈니스 제어를 중앙 집중식의 실행 가능한 정책 결정으로 매핑하는 도구 모음을 제공하는 것입니다. 이러한 정책은 흐름과 비즈니스 전반에 걸쳐 포괄적이고 안정적으로 적용됩니다.
페어링된 프로세스 아키텍처에서 정책 엔진은 관리 프로세스 내에 상주하며 최종 사용자 및 비즈니스 데이터의 인그레스 및 이그레스를 감독합니다. 또한 허용 목록에 있는 작업을 IsolatedProcess에 제공합니다. 샘플 적용 범위에는 최종 사용자 제어 준수, 아동 보호, 동의하지 않은 데이터 공유 방지, 비즈니스 개인 정보 보호가 포함됩니다.
이 정책 시행 아키텍처는 활용할 수 있는 세 가지 유형의 워크플로로 구성됩니다.
- 신뢰할 수 있는 실행 환경(TEE) 커뮤니케이션을 통해 로컬에서 시작된 오프라인 워크플로:
- 데이터 다운로드 흐름: 신뢰할 수 있는 다운로드
- 데이터 업로드 흐름: 신뢰할 수 있는 트랜잭션
- 로컬에서 시작된 온라인 워크플로:
- 실시간 서빙 흐름
- 추론 흐름
- 로컬에서 시작된 오프라인 워크플로:
- 최적화 흐름: 제휴 학습(FL)을 통해 구현된 온디바이스 모델 학습
- 보고 흐름: 제휴 분석(FA)을 통해 구현된 교차 기기 집계
다음 그림은 정책 및 정책 엔진의 관점에서 본 아키텍처를 보여줍니다.
전반적으로, 온디바이스 맞춤설정의 페어링된 프로세스 아키텍처 내에 정책 시행 레이어와 정책 엔진을 도입하면 비즈니스 로직을 실행하기 위한 격리된 개인 정보 보호 환경이 보장되는 동시에 필요한 데이터와 작업에 대한 제어된 액세스를 제공할 수 있습니다.
계층화된 API 노출 영역
온디바이스 맞춤설정은 관심 있는 비즈니스를 위한 계층화된 API 아키텍처를 제공합니다. 맨 위 레이어는 특정 사용 사례를 위해 빌드된 애플리케이션으로 구성됩니다. 잠재 비즈니스는 데이터를 최상위 레이어 API라고 하는 이러한 애플리케이션에 연결할 수 있습니다. 최상위 레이어 API는 미드 레이어 API를 기반으로 빌드됩니다.
앞으로 더 많은 최상위 레이어 API가 추가될 예정입니다. 특정 사용 사례에 최상위 레이어 API를 사용할 수 없거나 기존 최상위 레이어 API가 충분히 유연하지 않은 경우 비즈니스는 프로그래밍 프리미티브를 통해 성능과 유연성을 제공하는 미드 레이어 API를 직접 구현할 수 있습니다.
결론
온디바이스 맞춤설정은 높은 유용성을 가져올 것으로 예상되는 최신 기술로, 최종 사용자 개인 정보 보호 문제를 해결하는 장기 솔루션에 관한 관심과 의견을 요청하는 초기 단계 연구 제안입니다.
Google은 개인 정보 보호 전문가, 데이터 분석가, 잠재적 최종 사용자와 같은 이해관계자들과 소통하여 ODP가 이들의 필요를 충족하고 우려사항을 해결할 수 있도록 하고자 합니다.