3.6 KiB
3.6 KiB
작업 요청 게시판
목적
작업 요청 게시판은 게시글 1건 안에 여러 하위 요청을 묶어 등록하고, 각 하위 요청이 자동화 작업으로 어떻게 접수되고 완료되는지 추적하는 화면입니다.
핵심 구조
- 게시글 1건은 공통 제목, 공통 메모, 공통 첨부 파일을 가집니다.
- 게시글 안에는 하위 요청을 1건 이상 둘 수 있습니다.
- 각 하위 요청은 별도 Plan 항목으로 등록될 수 있고, 상태도 개별로 추적됩니다.
- 공통 메모와 첨부 파일 경로는 하위 요청별 자동화 메모에 함께 포함됩니다.
데이터 모델
- 게시글 테이블:
board_posts - 하위 요청 테이블:
board_post_requests - 주요 서버 구현:
- 라우트:
etc/servers/work-server/src/routes/board.ts - 서비스:
etc/servers/work-server/src/services/board-service.ts
- 라우트:
- 주요 프런트 구현:
- 화면:
src/features/board/BoardPage.tsx - API 클라이언트:
src/features/board/api.ts - 타입:
src/features/board/types.ts
- 화면:
실행 방식
하위 요청 등록 방식은 게시글 단위로 선택합니다.
all_at_once: 접수 가능한 하위 요청을 한 번에 모두 Plan으로 등록합니다.after_previous_finished: 앞 요청이 성공/실패와 무관하게 종료되면 다음 요청을 등록합니다.after_previous_success: 앞 요청이 성공으로 완료된 경우에만 다음 요청을 등록합니다. 실패하면 뒤 요청은blocked상태로 남습니다.
상태 추적
각 하위 요청은 아래 정보를 기준으로 상태를 계산합니다.
- 게시판 워크플로 상태:
pending,waiting,registered,completed,failed,blocked - 연결된 Plan 상태:
status,workerStatus,lastError
화면에서는 이를 바탕으로 다음처럼 보여줍니다.
미접수: 아직 Plan 등록 전선행 대기: 순차 실행에서 앞 요청 완료를 기다리는 상태대기열: Plan 등록은 됐지만 아직 본격 처리 전진행중: worker가 작업 중완료: Plan 완료 반영실패: worker 실패 또는 오류 기록 존재차단: 성공 의존 순차 모드에서 앞 요청 실패로 후속 요청 중단
화면 동작
- 목록 화면에서 게시글별로
완료 x/y, 실패 수, 진행 수를 요약해 보여줍니다. - 상세 화면에서 하위 요청을 추가, 삭제, 순서 변경할 수 있습니다.
- 자동화 접수 후에는 게시글과 하위 요청 편집이 잠기고 읽기 전용으로 전환됩니다.
- 하위 요청별로 연결된 Plan 링크를 바로 열 수 있습니다.
- 여러 게시글을 선택해 일괄 접수할 수 있지만, 실제 순차 흐름은 각 게시글의 실행 옵션을 따릅니다.
자동화 연동
- 접수 시
receiveBoardPostAutomation()이 하위 요청별 Plan을 생성합니다. - Plan worker가 완료/실패를 기록하면
progressBoardPostAutomationByPlanResult()가 다음 하위 요청 등록 여부를 결정합니다. - 레거시 호환용
board_posts.automation_plan_item_id,automation_received_at도 첫 접수 요청 기준으로 함께 동기화합니다.
검증 포인트
- 새 게시글 저장 시 하위 요청이 1건 이상 생성되는지 확인
- 실행 옵션별로 다음 요청 등록 시점이 의도대로 달라지는지 확인
- 앞 요청 실패 시
after_previous_success모드에서 후속 요청이차단으로 남는지 확인 - 자동화 접수 후 편집/삭제가 막히는지 확인
- 하위 요청별 Plan 링크가 올바른 항목으로 연결되는지 확인