--- kind: QUESTION slug: analysis-finding-a02-f003 title: bounded operational record identifiers topic: multitenancy-isolation project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: open-question:analysis-finding-a02-f003 questionStatus: OPEN verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다 --- # bounded operational record identifiers 운영 레코드의 네임스페이스와 키가 경계가 있다고 문서에 적혀 있는데, 생성자는 공백 여부만 확인한다. 그 경계를 공유 계약이 소유할지 어댑터가 소유할지 정해지지 않았다. ## 사실 운영 레코드 문서가 네임스페이스와 키를 경계가 있는 값으로 설명한다. 생성자는 공백 여부만 확인한다. ## 가정 각 어댑터가 자기 제공자의 제한을 알아서 지킬 것이라고 전제하고 있다. 그 전제를 확인하지 않았다. ## 미지수 제공자별 키 크기와 문자 집합 제한을 공유 계약이 소유해야 하는가 어댑터가 소유해야 하는가. 여러 제공자가 공통으로 요구하는 최소 경계가 있는가. ## 제약 공유 계약이 특정 제공자의 제한을 담으면 그 계약이 제공자에 묶인다. 어댑터가 각자 검증하면 같은 검사가 여러 곳에 생긴다. ## 선택지 공유 값 객체에서 공통 최소 경계를 강제한다 여러 제공자가 공통 최소 경계를 요구하면 이쪽이 맞다. 공유 문서를 좁히고 어댑터 경계에서 검증한다 제한이 제공자별이면 공유 계약은 경계를 주장하지 않는 편이 정확하다. ## 다음 검증 실제 제공자와 어댑터의 식별자 제한을 조사하고 프로덕션 생성 지점과 대조한다. 경계값 픽스처를 추가한다. 여러 제공자가 공통 최소 경계를 요구하면 공유 값 객체에서 강제한다. 제공자별이면 공유 문서의 표현을 좁히고 어댑터 경계에서 검증한다. ## 관계 - **카디널리티 경계를 타입으로 표현하기** 경계를 타입으로 표현하는 같은 계열의 개념이다. - **위험한 조합은 정책이 아니라 생성자가 거부하게 만든다** 값 타입에서 강제하는 방향의 규칙이다.