Sort Rule Contract
정렬 기준은 코드보다 먼저 문장 계약으로 고정한다
1차 키, 동점 처리, 예외값 정책을 문장으로 잠근 뒤 tuple key나 comparator로 옮깁니다.
계약 문장
Primary
score 내림차순
큰 점수를 먼저 둡니다.
Tie
joined 오름차순
같은 점수면 먼저 가입한 사용자를 앞에 둡니다.
Exception
NULL은 마지막
결측치가 비교식을 흔들지 않게 위치를 정합니다.
key = (-score, joined, is_null)
결과 검증
A / score 90 / joined 3
3위
tie 뒤
B / score 90 / joined 1
1위
tie 앞
D / score 90 / joined 2
2위
tie 중간
C / score 85 / joined 2
4위
score 낮음
핵심: 정렬 규칙은 “무엇을 먼저 비교하고, 같으면 무엇을 볼지”를 문장과 코드에 동시에 남깁니다.