복수 값은 원본 List에서 중복과 개수를 검사한다

Set으로 먼저 바꾸어 공격 입력을 조용히 정규화하지 않고 client가 보낸 순서와 반복을 보존한 채 단계별로 검사한다.

RAW LIST

원본 입력 보존

같은 code가 여러 번 온 사실을 그대로 유지한다.

COUNT

최대 선택 수

전체 항목 수가 제한을 넘으면 즉시 오류를 남긴다.

DUPLICATE

반복 code

중복을 제거하지 않고 잘못된 요청으로 보고한다.

EXISTS

Repository 조회

모든 code가 실제로 존재하는지 한 번에 확인한다.

ACTIVE

업무 정책

현재 활성·소유권 조건을 통과한 목록만 command로 만든다.

핵심: 검증 전에 정규화하면 잘못된 client 입력이 정상 요청처럼 바뀌므로 원본 구조를 먼저 판정해야 한다.