--- kind: QUESTION slug: analysis-finding-a02-f004 title: permission component grammar topic: multitenancy-isolation project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: open-question:analysis-finding-a02-f004 questionStatus: OPEN verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다 --- # permission component grammar 권한 값은 콜론 구분 세그먼트 수와 공백과 정규화를 강제하지만 세그먼트의 문자 문법은 제한하지 않는다. 레지스트리가 더 좁은 문법을 실제 정본으로 쓰는지 확인되지 않았다. ## 사실 권한 값 객체가 강제하는 것은 세 가지다. 콜론 세그먼트 수와 공백 여부와 정규화다. 세그먼트의 문자 문법은 제한하지 않는다. ## 가정 레지스트리의 권한 리터럴이 공유 값 객체가 허용하는 범위 안에 있을 것이라고 전제하고 있다. 반대 방향은 확인하지 않았다. ## 미지수 레지스트리 정본이 공유 값 객체보다 좁은 문자 문법을 계약으로 요구하는가. ## 제약 공유 값 객체를 좁히면 기존 권한 리터럴 중 일부가 무효가 될 수 있다. ## 선택지 공유 값 객체가 레지스트리와 같은 문법을 강제한다 레지스트리가 더 좁은 문법을 실제 정본으로 쓰면 이쪽이 맞다. 패리티 테스트로 두 쪽을 고정한다. 현재의 넓은 문법이 의도임을 문서화한다 레지스트리가 관행으로만 좁게 쓰는 것이면 이쪽이다. ## 다음 검증 레지스트리의 모든 권한 리터럴을 수집해 허용 문자 집합을 만들고, 공유 파서와 패리티 테스트로 대조한다. 레지스트리가 더 좁은 문법을 실제 정본으로 쓰면 공유 값 객체가 같은 문법을 강제한다. 아니면 현재의 넓은 문법이 의도임을 문서화한다. ## 관계 - **이름은 값이 아니라 registry key다** 권한 값이 등록된 것인지 자유 문자열인지의 문제다. - **문서와 상수가 서로 일치하는 것으로는 아무것도 증명되지 않는다** 패리티 테스트가 필요한 이유다.