백엔드 이식 작업목록
OWVEZOOM — Zoom 연동 백엔드 이식 시 수행해야 할 작업 목록
1. 반입 파일 목록
zip 파일 zoom-adapted.zip 안의 zoom-adapted/ 폴더 전체를 프로젝트에 복사한다.
Controller (4개)
ZoomTokenController.javaOWVEZOOM01 — SDK JWT 토큰 발급
ZoomWidgetConfigController.javaOWVEZOOM01 — 위젯 초기화 파라미터
ZoomMeetingController.javaOWVEZOOM02 — 회의 생성·조회·종료·Co-host
ZoomPlatformController.javaOWVEZOOM03 — 브릿지·제어상태·녹화·로그
Service (4개)
ZoomTokenService.javaJWT 서명
ZoomMeetingService.java회의 상태 관리 (SessionUtils 포함)
ZoomPlatformService.java브릿지 이벤트·녹화·리포트·로그
ZoomControlStateService.java제어 상태 조회·변경 (SessionUtils 포함)
DTO — 입력 (9개)
ZoomTokenInputCDto.java
ZoomWidgetConfigInputCDto.java
ZoomMeetingCreateInputCDto.java
ZoomCohostInputCDto.java
ZoomBridgeEventInputCDto.java
ZoomControlStateCommandDto.java
ZoomRecordingsInputCDto.java
ZoomReportInputCDto.java
ZoomLogInputCDto.java
DTO — 응답 (11개)
ZoomWidgetConfigResultCDto.java
ZoomMeetingResultCDto.java
ZoomMeetingEndResultCDto.java
ZoomBridgeEventResultDto.java
ZoomRaiseHandsResultDto.java
ZoomRecordingsResultDto.java
ZoomRecordingItemDto.java
ZoomReportResultDto.java
ZoomControlStateSnapshotDto.java
ZoomActiveSpeakerDto.java
ZoomExitRecommendationDto.java
Model / Store (3개)
ZoomControlState.java
ZoomControlStateStore.javainterface
InMemoryZoomControlStateStore.java납품 스텁 — in-memory 구현
2. 패키지 배치
| 파일 종류 | 배치 패키지 |
| Controller | ksd.sweb.wve.wveem.zoom.controller |
| Service | ksd.sweb.wve.wveem.zoom.service |
| DTO | ksd.sweb.wve.wveem.zoom.dto |
| Model / Store interface | ksd.sweb.wve.wveem.zoom.model |
| Store impl | ksd.sweb.wve.wveem.zoom.store |
3. 프레임워크 의존성 확인
| 의존성 | 용도 | 확인 항목 |
devonboot-enterprise-ext-telegram |
@Telegram, TelegramView, ITelegramData |
pom.xml/build.gradle에 추가됐는지 확인 |
ksd-framework-session |
ksd.framework.session.SessionUtils, UserSession |
Service 레이어에서만 참조. 컨트롤러에서 참조하지 않을 것 |
io.jsonwebtoken (jjwt) 또는 com.auth0:java-jwt |
ZoomTokenService — JWT 서명 |
라이브러리 버전에 맞게 ZoomTokenService.java 내부 서명 코드 조정 필요 |
| Lombok |
@Getter @Setter @RequiredArgsConstructor |
이미 적용돼 있으면 무관 |
| SpringDoc / Swagger |
@Tag @Operation @ApiResponse |
swagger-ui 미사용 환경이면 어노테이션 제거해도 무방 |
4. 교체·연동이 필요한 스텁
| 파일 | 현재 구현 | 운영 시 교체 대상 |
InMemoryZoomControlStateStore.java |
ConcurrentHashMap (in-memory) |
운영 DB 기반 구현체로 교체. ZoomControlStateStore interface 구현 |
ZoomPlatformService.java — listRecordings() |
빈 리스트 반환 (스텁) |
Zoom REST Recording API 연동 |
ZoomPlatformService.java — buildMeetingReport() |
메모리 집계 후 결과 반환 |
DB/WORM 저장 연동 |
ZoomPlatformService.java — listRaiseHands() |
메모리 리스트 |
운영 DB 연동 |
5. 이식 대상 제외 항목
EGM 메타 API (GET/PATCH /egm/:topic)는 이식 대상이 아닙니다.
이 API는 EPT 포털의 기존 회의 메타 데이터(회순·참여정보·총괄주식수)를 다루며,
Zoom 연동과 무관하게 EPT 포털 백엔드에 이미 구현돼 있습니다.
목 서버의 /api/egm/:topic은 개발용 더미이고, 내부망에서는 포털 실 API를 그대로 사용합니다.
6. API 목록
| API ID | API명 | Endpoint URI | Method |
| OWVEZOOM0101 | Zoom SDK JWT 토큰 발급 | /telegram/wveem/zoom/token | POST |
| OWVEZOOM0102 | Zoom 위젯 초기화 파라미터 조회 | /telegram/wveem/zoom/widget-config | POST |
| OWVEZOOM0201 | 활성 Zoom 회의 목록 조회 | /telegram/wveem/zoom/meetings | GET |
| OWVEZOOM0202 | Zoom 회의 생성 (Host 전용) | /telegram/wveem/zoom/meetings | POST |
| OWVEZOOM0203 | Zoom 회의 단건 조회 | /telegram/wveem/zoom/meetings/{topic} | GET |
| OWVEZOOM0204 | Zoom 회의 종료 | /telegram/wveem/zoom/meetings/{topic}/end | POST |
| OWVEZOOM0205 | Co-host 지정 | /telegram/wveem/zoom/meetings/{topic}/cohosts | POST |
| OWVEZOOM0206 | Co-host 해제 | /telegram/wveem/zoom/meetings/{topic}/cohosts/{userId} | DELETE |
| OWVEZOOM0301 | Zoom 위젯 브릿지 이벤트 수신 | /telegram/wveem/zoom/bridge/events | POST |
| OWVEZOOM0302 | 손들기 목록 조회 | /telegram/wveem/zoom/bridge/raise-hands/{topic} | GET |
| OWVEZOOM0303 | Zoom 회의 제어 상태 조회 | /telegram/wveem/zoom/meetings/{topic}/control-state | GET |
| OWVEZOOM0304 | Zoom 회의 제어 상태 변경 | /telegram/wveem/zoom/meetings/{topic}/control-state | POST |
| OWVEZOOM0305 | Zoom 녹화 목록 (스텁) | /telegram/wveem/zoom/recordings | POST |
| OWVEZOOM0306 | Zoom 회의 종료 리포트 | /telegram/wveem/zoom/meetings/{topic}/report | POST |
| OWVEZOOM0307 | Zoom 플랫폼 로그 추가 | /telegram/wveem/zoom/logs | POST |
| OWVEZOOM0308 | Zoom 플랫폼 로그 목록 | /telegram/wveem/zoom/logs | GET |