-
Notifications
You must be signed in to change notification settings - Fork 0
NI, MPC 유즈케이스 분리
Jinwon Choi edited this page Jan 17, 2025
·
1 revision
작성자: 윤지성, 최진원
- browsing과 advertising 시작한다.
- 20초 동안 피어를 찾지 못하면 종료된다.
- mpc 연결
- ni 디스커버리 토큰, 프로필 데이터를 주고받는다.
- mpc 연결이 10초 이상 유지됐는데 디스커버리 토큰이 오지 않는다. → 기기 문제일 가능성 ,종료된다.
- ni 세션 수립, 서로 거리, 방향 탐색한다.
- ni 세션이 10초 이상 유지됐는데 조건을 만족하지 않은 경우 → 종료된다.
- 받은 프로필 데이터를 기반으로, 메이트 요청 뷰를 present 한다.
- 주변 사람을 탐색한다. (mpc 전) - 1, 2, 3, 4번 동작
- 메이트 요청이 온다 유즈케이스 ( mpc, ni가 모두 완료가 된 상태 ) 5번
- usecase를
- 탐색을 종료한다.
- (아예 peer 를 찾지 못한 경우, peer를 찾았는데 ni까지 연결이 되지 않은 경우, peer와 ni 연결이 됐고 조건을 만족하지 않은 경우)
- 어떠한 session 없고 connect fail
- mpc 세션만 있음 ni timeout
- mpc 세션, ni 세션이 있죠 profile share timeout
유즈케이스가 메이트 요청을 보낸다. → 먼저 실행되면 안됨
현: 버튼같이 알려주니까 따로 만들어도 좋을 수 있을 것 같다.
혜: 유즈케이스를 잘게 쪼개다 보면 흐름을 관리하기가 힘들 수도 있겠다…
- browsing과 advertising 시작한다.
- mpc 연결
- ni 디스커버리 토큰, 프로필 데이터를 주고받는다.
- ni 세션 혹은 프로필 데이터를 주고 받기 전에 종료 요청
- mpc 세션 종료
- ni 세션 수립, 서로 거리, 방향 탐색한다.
- 갑자기 하기 싫어짐. 버튼 이용해서 종료 요청
- 프로필 데이터 삭제 필요
- ni, mpc 세션 종료
browsing과 advertising 시작하고 mpc peer를 찾는 도중, 종료 요청 보내는 상황
- 종료 메서드 실행
- 피어를 탐색해서 mpcManager에 peer를 추가하는 테스크
동시 실행
mpc peer와 연결된 후, 디스커버리 토큰과 데이터를 주고받는 도중에, 종료 요청 보내는 상황
- 데이터 수신, 송신 테스크
- 세션 종료 테스크
동시 실행
ni 세션이 수립된 상태에서 프로필 드랍 조건을 만족하기 전에, 종료 요청을 보냈는데, 동시에 조건이 만족된 상황
- 화면 전환 태스크 (상대의 프로필로)
- 세션 종료 태스크
동시 실행
available peer에 동시에 저장된다.
- browsing과 advertising 시작한다.
- 20초 동안 피어를 찾지 못하면 종료된다.
- mpc 연결
- ni 디스커버리 토큰을 주고받는다.
- mpc 연결이 10초 이상 유지됐는데 디스커버리 토큰이 오지 않는다. → 기기 문제일 가능성 ,종료된다.
- ni 세션 수립, 서로 거리, 방향 탐색한다.
- ni 세션이 10초 이상 유지됐는데 조건을 만족하지 않은 경우 → 종료된다.
- 조건 만족하면 프로필 데이터 전송, 수신 메이트 요청 뷰를 present 한다.
- 핸드쉐이킹 과정을 마치고 ni 연결을 종료한다.
- 주변 사람을 탐색한다. (mpc 전) - 1, 2, 3, 4번 동작
- 메이트 요청을 보낸다. ( mpc, ni가 모두 완료가 된 상태 ) 5번
- 탐색을 종료한다.
- (아예 peer 를 찾지 못한 경우, peer를 찾았는데 ni까지 연결이 되지 않은 경우, peer와 ni 연결이 됐고 조건을 만족하지 않은 경우)
- 어떠한 session 없고 connect fail
- mpc 세션만 있음 ni timeout
- mpc 세션, ni 세션이 있죠 profile share timeout
작업
프로필 데이터를 먼저 주고받지 않는다. → 테스트 필요- 탐색 유즈케이스를 만든다.
- 종료 조건에 따라서 자동 종료되는 로직을 작성한다.
- 위 동시성 1, 2번 시나리오를 테스트한다. (후순위)
- 데이터 보내는 usecase를 만든다.
- 동작 종료 usecase를 만든다.
- 동시성 3번 시나리오 - 세션 종료를 먼저 실행할 수 있는 방법이 있는지 찾아봐야함
- 비동기 작업에서 우선적으로 먼저 실행할 수 있는 방법이 있는지
- Task 우선순위 선정 가능
- 비동기 작업에서 우선적으로 먼저 실행할 수 있는 방법이 있는지
- 동시성 3번 시나리오 - 세션 종료를 먼저 실행할 수 있는 방법이 있는지 찾아봐야함
- mpcManager → didSet 제거