제 2 장
요구사항 분석
본 장은 사업이 해결하려는 문제를 먼저 정의하고, 그로부터 기능·비기능 요구사항을 도출한다. 여기서 정의한 문제가 제 5 장·제 6 장의 설계 판단 근거가 된다.
1) 문제 정의
구인 경로의 문제
현행 생활체육의 용병 모집은 단체 대화방과 지인 연락에 의존한다. 이 경로는 아래 지점에서 실패한다.
| 실패 지점 | 내용 |
|---|---|
| 탐색 범위 | 운영자가 아는 사람과 참여 중인 대화방을 넘지 못한다 |
| 조건 확인 | 포지션·실력·이동 가능 여부를 매번 대화로 되묻는다 |
| 확정 방식 | 조건이 아니라 먼저 답한 사람으로 정해진다 |
| 기록 보존 | 누가 왔고 어땠는지가 대화 기록에 흩어져 다음 모집에 쓰이지 못한다 |
경기 직전일수록 이 문제가 커진다. 남은 시간이 짧으면 탐색 범위를 넓힐 수 없어, 조건을 따지지 않고 답한 사람을 그대로 확정하게 된다.
실력 정보의 문제
용병의 실력은 본인이 말한 내용 외에 확인할 방법이 없다. 여기에는 두 겹의 문제가 있다.
- 과장 — 실력을 낮게 말할 유인이 없다. 자기 신고는 한쪽으로 치우친다.
- 기준 부재 — 과장이 없더라도 ‘중급’이 가리키는 수준이 사람마다 다르다. 같은 말이 같은 실력을 뜻하지 않는다.
그 결과 경기 수준이 어긋나고, 한쪽이 일방적으로 끌려가는 경기가 반복되면 참여자가 이탈한다.
두 문제는 맞물려 있다
두 문제는 따로 있지 않다. 구인이 급할수록 검증을 포기하게 되고, 검증 없이 부른 용병이 경기를 망치면 다음번 구인은 더 좁은 범위에서 이뤄진다. 한쪽만 풀면 다른 쪽이 되돌린다. 본 사업이 구인과 검증을 한 플랫폼에서 함께 다루는 이유가 여기에 있다.
2) 사용자 요구사항
사용자 유형
| 유형 | 정의 |
|---|---|
| 팀 운영자 | 경기를 주최하고 인원을 채우는 주체. 공고를 등록하고 참여자를 확정한다 |
| 용병 | 개별 경기에 참여하는 주체. 공고에 지원하고 영상 근거로 실력이 산출된다 |
| 운영자(서비스) | 신고·이의 제기를 처리하는 서비스 측 관리 주체 |
한 사람이 경기에 따라 팀 운영자이면서 다른 경기의 용병일 수 있으므로, 유형은 계정 속성이 아니라 경기별 역할로 둔다.
유형별 요구사항
| ID | 유형 | 요구사항 |
|---|---|---|
| UR-01 | 팀 운영자 | 경기 직전에도 조건에 맞는 인원을 확보할 것 |
| UR-02 | 팀 운영자 | 부르기 전에 상대 실력을 가늠할 수 있을 것 |
| UR-03 | 팀 운영자 | 노쇼 이력을 확인하고 선택에 반영할 것 |
| UR-04 | 팀 운영자 | 최종 결정은 직접 내릴 것 |
| UR-05 | 용병 | 자신의 실력·포지션에 맞는 경기를 추천받을 것 |
| UR-06 | 용병 | 말이 아니라 영상 근거로 실력을 증명할 것 |
| UR-07 | 용병 | 부당한 판정에 근거를 확인하고 이의를 제기할 것 |
| UR-08 | 운영자 | 신고와 이의를 근거와 함께 처리할 것 |
UR-04는 제 5 장에서 자동 확정을 넣지 않은 근거이고, UR-07은 제 6 장의 이의 제기 경로로 이어진다.
3) 기능 요구사항
| ID | 기능 | 설명 | 관련 장 |
|---|---|---|---|
| FR-11 | 모집 공고 등록 | 종목·일시·장소·포지션·요구 실력대를 지정해 공고를 등록한다 | 5장 |
| FR-12 | 공고 상태 관리 | 모집중·마감·확정·종료·취소 상태를 서버가 전이시킨다 | 5장 |
| FR-13 | 공고 탐색 | 조건에 맞는 공고를 조회하고 알림을 받는다 | 5장 |
| FR-21 | 지원 접수 | 중복 지원과 시간 충돌을 검사해 지원을 접수한다 | 5장 |
| FR-22 | 자동 매칭 | 공고 조건과 후보 스탯을 대조해 순위와 근거를 제시한다 | 4·5장 |
| FR-23 | 조건 완화 | 후보 부족 시 조건을 단계적으로 완화하고 그 사실을 표시한다 | 5장 |
| FR-24 | 참여 확정 | 운영자가 참여자를 확정하고 대기자를 승격한다 | 5장 |
| FR-31 | 경기 기록 입력 | 종료된 경기의 참여 결과를 기록한다 | 5장 |
| FR-32 | 영상 업로드·색인 | 경기 영상을 받아 장면과 플레이 이벤트를 추출해 색인한다 | 4장 |
| FR-33 | 근거 검색·판정 | 실력 주장에 대한 근거 장면을 검색해 판정하고 출처를 남긴다 | 4·6장 |
| FR-34 | 스탯 갱신 | 집계 결과로 스탯을 갱신하고 변동 폭을 제한한다 | 6장 |
| FR-35 | 신뢰도 산출 | 검증 이력으로 신뢰도를 산출하고 등급으로 표시한다 | 6장 |
| FR-41 | 노쇼 기록 | 사전 취소·지각 취소·노쇼를 구분해 집계한다 | 5장 |
| FR-42 | 이의 제기 | 판정·신고에 대한 이의를 근거와 함께 접수하고 처리한다 | 6장 |
4) 비기능 요구사항
| ID | 항목 | 기준 | 목표 |
|---|---|---|---|
| NFR-01 | 매칭 응답 시간 | 후보 목록 요청부터 순위 표시까지 | 〔확인 필요〕 |
| NFR-02 | 매칭 정확도 | 추천 상위 후보가 실제 확정으로 이어진 비율 | 〔확인 필요〕 |
| NFR-03 | 근거 검색 성능 | Hit Rate / Recall@5 | 90% / 90% |
| NFR-04 | 스탯 안정성 | 단일 경기로 인한 스탯 변동 폭 상한 | 〔확인 필요〕 |
| NFR-05 | 확장성 | 종목 추가 시 코드 변경 없이 스탯 항목·플레이 이벤트를 정의할 것 | — |
| NFR-06 | 개인정보 | 위치는 구장 단위까지만 저장하고, 영상은 촬영 동의를 받은 경기만 색인할 것 | — |
| NFR-07 | 모델 비용 | 경기 1건당 에이전트 호출 비용(영상 분석 포함) | 〔확인 필요〕 |
| NFR-08 | 색인 소요 시간 | 영상 업로드부터 색인 완료까지 | 〔확인 필요〕 |
NFR-01과 NFR-07은 서로 맞선다. 매칭 품질을 높이려 호출을 늘리면 비용과 지연이 함께 올라간다. 제 5 장에서 매칭 에이전트 호출을 후보 열람과 마감 두 시점으로 제한한 것이 이 절충의 결과다.
NFR-07과 NFR-08도 같은 관계다. 영상 분석은 프레임 수가 비용과 소요 시간을 동시에 결정하므로, 프레임을 촘촘히 뽑으면 둘 다 나빠진다. 제 4 장의 2단계 추출이 이 절충의 결과이며, 목표치는 시험을 거쳐 제 7 장에 기록한다.