--- kind: CONCEPT slug: messaging-cloudevents-c03 title: 확장 이름이 봉투 필드명과 다른 이유 topic: schema-and-wire-models project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:messaging-cloudevents-c03 evidenceCapturedOn: 2026-09-01 assets: - key: messaging-cloudevents-c03 file: ../../../final/evidence/rendered/messaging-cloudevents-c03.svg evidence: - ../../../final/evidence/raw/messaging-cloudevents-c03.txt source: - 원본 분석 절은 final/document.md#a19-messaging-cloudevents#L92 이다. module: messaging-cloudevents --- # 확장 이름이 봉투 필드명과 다른 이유 CloudEventExtensions의 javadoc이 이름이 봉투 필드명과 다른 이유를 적는다 — "CloudEvents requires extension names to be lowercase alphanumeric". ## 관계 - **왕복이라 부르는 테스트는 무엇을 보존하지 않는지도 적는다** 같은 분석 리프에서 끌어낸 규칙이다. - **문서가 범위를 제한하면 그 제한을 누가 강제하는지 같이 적는다** 같은 분석 리프에서 끌어낸 규칙이다. ## 본문 이 leaf의 타입 구성은 다음과 같다. ```text CloudEventMapper (interface) ├── toCloudEvent(MessageEnvelope, URI) → CloudEvent └── fromCloudEvent(CloudEvent) → MessageEnvelope DefaultCloudEventMapper (구현) ├── toCloudEvent : occurredAt 필수, payload는 이미 인코딩된 것만 ├── fromCloudEvent : time 필수, schemaversion 확장 필수 ├── stringExtension / intExtension └── producerFrom(URI) : 마지막 세그먼트를 producer id로 CloudEventExtensions (상수 4개) correlationid · causationid · schemaversion · tenantcontext ``` ## CloudEventExtensions 참조 위치 :::evidence key="messaging-cloudevents-c03" alt="코드베이스에서 CloudEventExtensions 를 검색한 출력 14줄. 이 기록이 세는 참조가 그 출력에 그대로 보인다." caption="CloudEventExtensions 코드베이스 검색 — 14줄 · exit 0" zoom="true" ::: ## 이름이 소문자 영숫자인 이유 `CloudEventExtensions`의 javadoc이 이름이 봉투 필드명과 다른 이유를 적는다 — "CloudEvents requires extension names to be lowercase alphanumeric".