전체 선택을 눌렀는데, 20개야 240개야?
목록에는 20개가 보이는데 검색 결과는 240개야. 여기서 “전체 선택”을 누르면 어디까지 처리되는 걸까? 가상의 전시 자료 관리 화면으로 페이지 선택, 검색 결과 선택, 필터 변경 뒤의 대상을 정리해볼게. 선택 규칙표와 QA, 전달안을 자기 목록에 맞게 바꿔 쓸 수 있어.
체크박스보다 처리할 대상부터 맞춰봐
“전체 선택 좀 넣어주세요”라는 요청을 받으면 먼저 무슨 작업을 한 번에 하려는지 물어볼 거야. 화면에 보이는 몇 개만 처리하려는 건지, 검색으로 찾은 자료 전부인지부터 달라. 기능 이름은 같아도 처리할 대상은 20개와 240개로 열두 배 차이가 나. 체크박스를 추가하는 것으로 요청을 끝내면 이 차이는 개발이나 운영이 뒤늦게 정하게 돼.
이번 예제는 전시 자료에 “검토 대상” 표시를 붙이는 목록이야. 현재 검색 결과는 240개, 한 페이지에는 20개를 보여줘. 삭제나 결제, 외부 알림은 다루지 않아. 목적은 “한 번에 많이 처리하기”에서 “내가 확인한 범위만 처리하기”로 다시 적을 거야. 기획서에는 처리 목적과 이번 범위를, 설계서에는 선택한 대상이 언제 유지되고 언제 바뀌는지를 남겨.
페이지를 넘긴 뒤 실제 요청도 확인해
조사는 같은 자료로 화면과 요청을 나란히 대조해. 첫 페이지에서 20개를 선택한 뒤 두 번째 페이지로 이동하고 한 개를 더 골라봐. 화면이 21개라고 말하는지, 실제 요청에도 같은 21개가 들어가는지 봐야 해. 행 번호로 기억하면 정렬만 바꿔도 다른 자료가 선택될 수 있으니 자료를 구별하는 값으로 확인할 거야.
선택 건수만 맞으면 끝이라는 생각도 버려야 해. 서로 다른 20개를 보내도 숫자는 같으니까. 조사 기록에는 검색 조건, 현재 페이지, 보이는 선택, 전체 선택 수, 실제 대상 목록을 같이 남겨. 실제 회사 자료 대신 처음부터 만든 가상 자료로 순서를 재현해도 이 문제는 확인할 수 있어.
화면 숫자와 실제 대상이 같은지 확인할 때 써.
| 확인할 순서 | 화면에서 볼 것 | 개발과 대조할 것 |
|---|---|---|
| 첫 페이지 20개 선택 | 선택 20개와 범위 안내 | 보이는 20개 자료와 요청 대상이 같은가 |
| 다음 페이지에서 1개 추가 | 전체 21개·현재 페이지 1개 | 첫 20개가 유지되는가 |
| 같은 조건에서 정렬 변경 | 동일한 자료가 선택되어 있는가 | 행순서 대신 자료 ID로 보관하는가 |
| 필터 적용 후 늦은 응답 도착 | 이전 선택이 다시 나타나지 않는가 | 현재 검색·선택 버전만 반영하는가 |
“전체” 하나로 묶지 말고 범위를 드러내
처음에는 목록 맨 위 체크박스가 검색 결과 240개를 모두 고르는 안을 생각할 수 있어. 하지만 화면에 없는 220개가 같이 선택된다는 걸 사람이 알 수 있을까? 반대로 화면의 20개만 고르면서 “전체 선택”이라고 쓰면 240개를 기대한 사람은 작업이 덜 됐다고 느낄 거야. 문구와 실제 범위를 같이 바꿔야 해.
PatternFly는 페이지 선택과 모든 페이지 선택을 구분하고, 지원하지 않는 전체 선택은 생략할 수 있다고 설명해. Carbon은 행의 선택 상태와 선택한 대상에 적용할 일괄 작업을 연결해 보여줘. 이번에는 “이 페이지 20개 선택” 다음에 별도 “검색 결과 240개 선택” 행동을 두는 안을 고를 거야. 두 번째 행동의 대상을 서버에서 고정할 수 없다면 첫 번째까지만 제공해. 흉내 낸 전체 선택을 넣지는 않아.
이번 예제의 결정이야. 모든 목록에 같은 방식을 강제하는 건 아니야.
| 대안 | 문제 또는 조건 | 이번 결정 |
|---|---|---|
| 체크박스 하나로 240개 | 보이지 않는 220개 포함을 놓치기 쉬움 | 제외 |
| 현재 페이지 20개만 | 구현은 단순하지만 240개 작업에는 반복 필요 | 기본 행동으로 제공 |
| 페이지 선택 뒤 전체 결과 확장 | 대상 고정·실제 건수 반환 필요 | 서버 지원을 확인한 뒤 별도 행동으로 제공 |
240개는 검색식을 다시 돌린 결과가 아니야
검색 결과 전체를 선택하면 그 순간 처리 가능한 자료 집합을 서버에 요청해 고정해. 기준 시각과 실제 선택 수를 받은 뒤 “검색 결과 240개를 선택했어요”라고 보여줄 거야. 기다리는 동안 실행 버튼은 비활성화하고, 준비가 실패하면 0개 선택 상태와 다시 선택할 방법을 보여줘. 아직 받지도 않은 대상을 선택 완료라고 표시하면 안 돼.
240개에서 한 개를 해제하면 239개야. 그 사이 새 자료가 다섯 개 들어와도 선택 수는 239개로 남아. 실행 때 검색식을 다시 돌려 244개를 처리하는 건 사람이 확인한 범위를 늘리는 일이야. 다시 전체 결과를 선택하는 행동을 했을 때만 새 집합과 건수로 바꿔. 그때 이전 실행 확인도 무효로 만들어.
240개와 20개는 가상 입력값이야. 실제 화면에는 서버가 확정한 수를 써.
| 조작 | 대상 변화 | 보여줄 내용 |
|---|---|---|
| 이 페이지 20개 선택 | 현재 페이지의 선택 가능한한 자료 ID 추가 | 선택 20개·이 페이지 20개 |
| 페이지 체크 해제 | 이 페이지ID만 제거; 다른페이지는 유지 | 남은 전체 선택 수 |
| 검색 결과 240개 선택 | 서버가 확인한 시점의 집합으로 교체 | 기준 시각·범위·실제 240개 |
| 고정 집합에서 1개 해제 | 240개에서 그 ID만 제거 | 선택 239개 |
| 새 자료 5개 유입 | 기존 선택에 추가하지 않음 | 선택 239개 유지 |
| 다시 전체 결과 선택 | 새 집합으로 교체하고 이전 확인 무효 | 새로 확인한 실제 건수 |
| 전체 선택 해제 | 모든 선택·확인표 제거 | 선택 0개·실행 비활성 |
필터가 바뀌면 확인표도 같이 버려
페이지 이동과 정렬은 같은 검색 결과를 보는 방법만 바꾸니 선택한 자료를 유지해. 페이지당 표시 수를 바꿔도 마찬가지야. 현재 페이지에서 선택 가능한 행 중 일부만 선택됐으면 체크박스는 부분 선택으로 보여줘. 전체 선택 건수와 현재 페이지 선택 건수를 따로 적으면 보이지 않는 선택도 설명할 수 있어.
검색어·필터·작업공간이 바뀌면 이번 예제는 선택을 비우는 쪽으로 정할 거야. 필터 옆에 적용하면 선택이 해제된다는 안내를 두고, 적용 시 “조건이 바뀌어 선택을 해제했어요”라고 알려줘. 새 조회가 실패해도 옛 선택을 되살리지 않아. 이전 조건의 전체 선택 응답이 늦게 와도 현재 검색·선택 버전과 다르면 버려. 새로고침 후 미접수 선택도 복원하지 않는 조건을 문서에 적어.
이미 접수된 작업은 이 흐름과 별도로 고정돼. 여기서는 실행 전 선택을 다뤄.
흐름을 글로 보기
- 검색 조건·작업공간이 바뀌었나?
- 예: 선택·확인표 해제, 이전 응답 무시 → 현재 범위와 선택 수를 표시하고 실행 전 재확인
- 아니오: 페이지·정렬만 변경: 같은 자료 ID 유지 → 현재 범위와 선택 수를 표시하고 실행 전 재확인
확인 버튼을 누를 때도 같은 대상인지 봐
실행 확인표에는 선택 수뿐 아니라 어떤 검색 조건에서 고른 자료인지, 전체 결과인지 개별선택인지, 제외한 자료가 있는지 보여줘. 확인표를 연 뒤 선택을 고치면 이전 확인으로 실행할 수 없게 해야 해. 키보드로도 선택과 해제를 할 수 있고, 변경된 건수는 색만 바꾸지 말고 상태 설명으로 전달해. 전체 선택 뒤에는 초점을 다른 곳으로 억지로 옮기지 않아.
서버는 실행 직전 같은 대상 집합의 현재 권한과 처리 가능 상태를 다시 확인해. 239개 중 한 개를 더 이상 다룰 수 없으면 이번 안에서는 238개를 조용히 처리하지 않을 거야. 아직 실행한 건 0개라는 것과 제외 사유를 보여주고 238개 확인표를 다시 내줘. 재확인과 실제 반영 사이에도 조건이 바뀔 수 있으니 개발과 동시 처리 보장을 확인해야 해. 접수가 끝난 작업은 이후 필터를 바꿔도 대상이 늘거나 취소되지 않아. 응답을 못 받으면 기존 작업 결과부터 확인해.
아래는 고정된 설계 예제야. 실제 서버에 작업을 보내지 않아.
자료 열어 보기
검색 결과 240개 중 현재 페이지 20개만 선택. 실행 확인에도 20개를 보여줘.
고정 240개에서 1개 해제=239개. 나중에 들어온 5개는 포함하지 않아.
필터 적용으로 해제한 선택은 이전 응답으로 복원하지 않아. 새 결과에서 다시 골라.
239개 중 1개 제외 사유를 안내해. 238개를 확인받기 전에 일부라도 실행하지 않아.
AI에는 “빠진 기능”보다 틀어지는 순서를 찾아달라고 해
AI에 “일괄 선택 기획서 써줘”만 주면 체크박스, 전체 선택, 확인 팝업 같은 이름으로 답이 끝나기 쉬워. 나는 가상 자료 수와 확정한 선택 규칙을 먼저 주고, 화면과 실제 대상이 달라지는 조작 순서를 찾아달라고 할 거야. 답변 형식도 시작 상태, 조작, 기대 대상, 실행 가능 여부로 정해두면 조건표와 대조하기 편해.
예를 들어 답이 “선택 수를 갱신한다”에서 끝나면 무엇을 기준으로 갱신하는지 다시 물어봐야 해. 새로 들어온 자료까지 선택에 더하는 답이면 채택하지 않아. 240개에서 1개를 뺀 집합을 기준으로 고치게 하고, 그 수정이 화면 문구와 실행 요청, QA에 모두 반영됐는지 확인해. 아래는 독자가 바꿔 쓸 질문과 수정 지시 예시이며 실제로 실행한 AI 대화는 아니야.
가상 조건과 검수할 순서를 같이 줘. 답은 선택 규칙표와 대조해.
가상 전시 자료 목록의 선택 범위를 검토해줘. 아래는 실제 대화가 아닌 검토 질문 예시야. 조건: 검색 결과 240개, 한 페이지 20개. 작업은 선택한 자료에 검토 대상 표시 붙이기. 삭제·결제는 없어. 페이지 선택은 현재 페이지 20개. 검색 결과 전체 선택은 별도 행동으로 서버가 그 시점의 접근 가능한 대상 집합과 건수를 고정한 뒤 확정해. 이후 신규 5개는 포함하지 않아. 1개 해제하면 239개. 같은 검색에서 정렬·페이지 이동은 ID를 유지해. 검색어·필터 적용·작업공간 변경·새로고침은 선택과 확인표를 비워. 이전 조건의 늦은 응답도 버려. 실행 직전 권한·대상 상태가 확인표와 다르면 아직 실행하지 말고 변경 사유와 새 건수로 다시 확인받아. 확인 후 선택이 바뀌면 기존 확인 무효. 접수된 작업의 대상은 별도로 고정해. 화면 문구, 선택 대상, 실행 요청이 달라지는 반례를 순서대로 만들어줘. 각 반례에 시작 상태→조작→기대 대상→실행 가능 여부를 적어. 제품에 없는 정책이나 서버 지원을 사실로 추가하지 마. 답을 고칠 때 쓸 예시: “전체 240개 선택 뒤 1개를 해제했어. 그 뒤 새 자료 5개가 들어와도 왜 239개인지 설명하고, 실행 직전 1개 권한이 사라진 경우 자동 238개 처리하지 않도록 확인표와 QA를 고쳐줘.”
선택 수가 아니라 대상까지 맞았는지 확인해
QA에는 정상적인 전체 선택 한 번만 넣지 않을 거야. 페이지를 넘기고 정렬을 바꾸고 한 개를 해제한 뒤 새 자료가 추가되는 순서를 넣어. 같은 건수의 다른 자료가 들어가도 실패로 잡을 수 있게 기대하는 대상 목록과 실제 요청 대상을 비교해. 로딩 중 조작과 늦은 응답도 네트워크 지연 조건에서 확인해야 해.
아래는 가상 안건의 기대 결과야. 실제 시스템에서 실행한 뒤에는 화면, 요청, 서버가 확정한 대상을 같은 작업 기록에 남겨. 실제 사용자 정보가 분석 이벤트에 그대로 들어갈 필요는 없어. 보조 기술로 선택 상태와 변경 안내가 읽히는지는 별도 환경에서 검수하고, 글의 시연 버튼이 움직였다는 이유로 통합검수까지 통과했다고 적지 않아.
기대 대상과 실제 요청 대상을 대조하고 환경·담당자·증거를 추가해.
| 조작 순서 | 기대 결과 | 확인할 증거 |
|---|---|---|
| 페이지 20개 선택→다음페이지 1개 추가 | 같은 21개 유지 | 화면수·실제 21개 ID |
| 정렬·페이지 크기 변경 | ID 집합 유지, 현재 페이지 상태 재계산 | 선택 집합과 체크 상태 |
| 전체 240개→1개 해제→신규 5개 | 239개, 신규 5개 제외 | 고정 집합과 요청 |
| 전체 선택 준비 중 실행 | 실행 불가 | 준비상태·요청 미발송 |
| 전체 선택 준비 실패 | 선택 0개·재선택 안내 | 실패 응답·실행 비활성 |
| 필터 적용→과거응답 도착 | 선택 0개, 부활 없음 | 검색·선택 버전 대조 |
| 필터 조회 실패 | 이전 선택 자동복원 없음 | 실패 화면과 선택 상태 |
| 확인표 열린 뒤 선택 수정 | 이전 확인 무효 | 확인 버전 불일치 차단 |
| 239개 중 권한 1개 변경 | 실행 0개,238개 재확인 | 재확인 전 반영 0개 |
| 페이지 체크해제/전체해제 | 현재 페이지 제거/모든 ID 제거 구분 | 다른페이지 선택 유지 여부 |
| 접수 후 필터 변경·새로고침 | 기존작업 대상 고정, 결과확인 | 작업 식별값·대상 집합 |
| 키보드·320px·확대 | 범위와 부분 선택 이해·조작 가능 | 초점·읽기순서·텍스트 |
기획서에는 선택 이유를, 설계서에는 바뀌는 조건을 남겨
기획서는 이 기능으로 무엇을 줄이려는지와 범위를 분명히 해. 보이지 않는 대상까지 한 번에 처리할 필요가 있는지, 전체 결과 고정을 지원할 수 있는지 확인한 근거도 넣어. 설계서는 선택·해제·목록 변경·확인·접수 이후를 구분해서 문구와 데이터 조건을 이어줘. “전체 선택 지원” 한 줄로 두 문서를 대신하지 않아.
개발은 대상 고정과 권한 재확인, 이전 응답 제외가 가능한지 확인하고, QA는 위 순서로 실제 대상을 대조해. 운영은 사용자가 보고 승인한 범위와 실제 처리 범위를 추적할 수 있어야 해. 배포 뒤에는 범위 재확인 때문에 멈춘 작업과 잘못된 범위 문의를 따로 보되, 건수 감소만으로 개선을 단정하지 않아. 아래 전달안에 자기 서비스의 실제 제약과 담당자, 검수 증거를 채우면 다음 사람이 같은 판단부터 다시 묻지 않아도 돼.
자기 서비스의 작업과 권한·대상 고정 지원을 확인해서 바꿔 써.
목록 선택 범위 설계 전달안 — 가상 전시 자료 관리 목적: 화면에서 확인한 대상과 실제 처리 대상을 일치시킨다. 작업은 검토 대상 표시 붙이기. 검색 결과 240개, 페이지 20개는 예제 값이다. 선택: 행 체크와 이 페이지 20개 선택은 현재 표시된 자료 ID만 추가. 페이지 체크 해제는 현재 페이지 ID만 제거하고 전체 선택 해제는 모든 ID를 제거한다. 다른 페이지 선택은 보존한다. 전체 결과: 검색 결과 240개 선택은 별도 행동. 준비 중 실행 비활성화. 서버가 현재 접근 가능한 결과 ID 집합·기준 시각·검색 조건·선택 버전·실제 건수를 반환한 뒤 화면 확정. 이 지원이 없으면 전체 결과 버튼을 제공하지 않는다. 범위: 고정 240개에서 1개 해제=239개. 신규 5개 자동 추가 없음. 다시 전체 선택하면 새로 얻은 집합과 실제 건수를 표시하고 이전 확인은 무효. 목록변경: 정렬/페이지/페이지당 표시 수는 같은 대상 집합 유지. 검색어/필터 적용/작업공간 변경은 선택·확인표를 즉시 해제하고 안내. 실패해도 이전 선택 자동복원 안 함. 새로고침도 미접수 선택 복원 안 함. 응답: 검색·선택의 현재 버전과 다른 응답은 선택/건수/확인표에 적용하지 않음. 검색 중·전체 선택준비 중에는 실행 불가. 준비 실패는 선택 0개와 재선택 동선을 표시. 표시: 이 페이지 20개 선택 / 검색 결과 240개 선택 / 선택 239개·현재 페이지 19개. 현재 페이지의 선택 가능한행 일부만 선택되면 부분선택 상태. 항목제목과 선택 상태를 키보드/보조기술로 전달한다. 전체 선택은 초점 이동 없이 상태로 알린다. 확인: 표시명·선택 건수·범위·제외대상·기준 시각과 선택 버전을 확인표에 연결한다. 확인표 열린 뒤 선택 수정은 기존확인 무효. 빈 선택으로 실행 못 함. 서버: 실행 직전 같은 ID 집합의 현재 권한·처리가능상태와 확인 버전을 검증. 변경 1개면 자동 나머지 처리 금지; 실행 0개, 제외사유와 새건수 238개 확인표를 제시하고 재승인 후 진행. 재확인과 실제 반영 사이 경쟁조건은 개발이 일관되게 보장하고 테스트한다. 접수 후: 서버가 접수한 작업의 대상과 작업 식별값은 고정. 이후 필터/새로고침은 진행중 작업을 취소하거나 확대하지 않는다. 응답을 못 받으면 기존작업 결과를 확인하고 중복 실행하지 않는다. 역할: 기획은범위·문구·전환·인계, 개발은대상 고정/권한/버전/동시성, QA는건수와실제 대상ID대조, 운영은실행시각/범위/변경사유기록을 확인한다. 개인정보 원문은 분석이벤트에 넣지 않는다. 검수: 아래 QA 순서를 실제 환경에서 실행한 뒤 버전·담당자·기대 대상·실제 대상·증거 위치를 남긴다. 이 문서는 실제 운영 목록 통합검수의 통과기록이 아니다.
출처와 예제 조건
2026년 9월 29일 확인한 PatternFly와 Carbon 공개 문서를 참고한 독립적인 가상 전시 자료 목록 설계야. 20/240개, 대상 고정, 필터 초기화, 실행 전 재확인 조건은 이 예제의 선택이야. 위키렙AI 작성. 회사 자료나 사용자 실제 경험·성과를 사용하지 않았어. AI 질문은 실행 기록이 아닌 예시이고, 영어·중국어는 같은 한국어 안건의 현지화야. 시각 자료 확인과 실제 운영 목록의 통합검수는 구분해.