-
Notifications
You must be signed in to change notification settings - Fork 1
candidate flow
Kim DongHyun edited this page Feb 24, 2025
·
1 revision
flowchart TD
A[Data Block <br>discussionId:mintuteKey:data]
B[Key]
C[Value]
D[discussion ID]
E[Minute Key: 시간대 정보 <br>-> 30분 단위]
F[16 bit data<br>-> 참여자 당 고유 1 bit 할당]
G[각 bit: 해당 참여자의 일정이 해당 시간대에 존재하는지<br> 1: 일정 있음, 0: 없음]
A --> B
A --> C
B --> D
B --> E
C --> F
F --> G
flowchart TD
A([후보 일정 조회 요청])
B[전처리]
C[Redis]
D[조회]
E[개인 일정 변경]
H[후보 일정 산출]
I[후보 일정 정렬<br>1. 조정 필요 인원 ASC<br>2. 총 조정 시간 ASC<br>3. 시작 시간 ASC]
J[후보 일정 개수 제한<br>: 상위 n개 <br> n = 6, 2d, 30]
K[응답: 정렬된 후보 일정 리스트<br>• 시작/종료 시간<br>• 조율 필요 유저 정보]
A --> H
E --> B --> C
H --> D --> C
H --> I
I --> J
J --> K
flowchart TD
A[Personal Event]
B[30분 단위 Data Block 생성]
D[시간대 가공 <br>• 시작 시간 내림<br>• 종료 시간 올림]
E[Data Block 수정]
F[Data Block]
G[Discussion<br>• 날짜 범위<br>• 시간 범위]
H[User]
I[고유 index<br>: bit offset]
J[시간대에 해당하는 Block]
G --> B --> F
A --> D --> J --> E --> F
H --> I --> E
H --> A
flowchart TD
A([후보 일정 산출 요청])
B[필요 블록 수 계산 <br> 2시간 → 4블록]
C[각 후보 일정 시간대<br>: 연속된 4개의 Block]
D[Data Block 1]
J[Data Block 2]
K[Data Block 3]
L[Data Block 4]
E(OR 연산 <br>-> 해당 시간대에 조정해야 하는 인원, 유저 정보)
F([연산 진행])
G(Block 당 1의 개수 합산<br>-> 총 조정 시간)
H[User Filter 적용 <br>: AND 연산]
I[출력: 후보 일정 정보 <br>• 시작 / 종료 시간<br>• 조정 필요 인원<br>• 총 조정 시간<br>• 조정 필요 유저 리스트]
M[Filter]
N[Filter]
O[Filter]
A --> B --> C
C --> D --> H --> F
C --> K --> N --> F
C --> L --> O --> F
C --> J --> M --> F
F --> E --> I
F --> G --> I