문의 상세 · 답변
QNA-ID · /qna/[id]
종류
상세
부르는 것
1
lib 함수
가드레일
2
줄
69
로그인 필요동적 라우트게시판
화면
관리자 세션으로 촬영한 실제 화면입니다.

이 화면이 부르는 것
- ·
fetchPost()
소스
src/app/(console)/qna/[id]/page.tsx같은 규칙을 쓰는 화면
목록 · 작성 · 수정이 한 묶음입니다. 스펙을 세 벌로 적으면 어긋납니다.
개발 스펙
ADMIN-QNA완료이 스펙은 2개 화면이 함께 씁니다이 화면에서 할 수 있어야 하는 것 (3)
- 회원이 남긴 문의에 답변한다.
- 답변대기 건수를 늘 보여 준다 — 밀리면 운영이 밀린다.
- 답을 비우고 저장하면 다시 답변대기로 돌아간다.
비즈니스 규칙 (4)
- 관리자 목록은 숨긴 글도 보여 준다. 공개 조회와 유스케이스를 나눈 이유다.
- 상태를 따로 고르게 하지 않는다 — 답이 있으면 end, 비우면 apply.근거: qa_proc.php:152
- 관리자는 문의를 새로 쓸 수 없다. 회원이 내는 글이라 작성자가 뒤섞인다.
- 수정일 컬럼이 moddate 다. apply 테이블만 mod_date 를 쓴다.
API (3)
| 메서드 | 경로 | 권한 | 모듈 · 설명 |
|---|---|---|---|
GET | /api/community/admin/{board} | 관리자 | 관리자 목록. 숨김 조건 없이 전부. status 로 거른다. domains:community:community-web |
GET | /api/community/admin/{board}/{id} | 관리자 | 관리자 상세. 숨긴 글도 돌려준다. domains:community:community-web |
POST | /api/community/admin/qna/{id}/answer | 관리자 | 답변 저장. 상태는 답 유무로 정해진다. domains:community:community-web404 POST_NOT_FOUND |
가드레일 (2) — id 가 곧 테스트 이름이다
| id | 반드시 만족해야 하는 것 | 등급 |
|---|---|---|
qna-answer-status-follows-answer | 답이 있으면 답변완료, 비우면 답변대기여야 한다. 둘이 어긋나면 안 된다. | high |
qna-admin-cannot-write | 관리자가 문의를 새로 쓸 수 없어야 한다. 회원이 내는 글이라 대신 쓰면 작성자가 뒤섞인다. | normal |
구현 계획 (4/4)
- ●QnaStatus — 답 유무로 상태를 정한다
community-domain - ●AdminBoardUseCase — 숨긴 글도 보는 별도 유스케이스
community-app - ●listForAdmin · findAny · answerQna
community-infrastructure - ●목록 · 상세 · 답변 폼
wvctesol-admin
서버 사이드 구현 계획 — 자바 객체별 요구사항 (2/2)
| 객체 | 모듈 | 책임 · 지켜야 할 것 |
|---|---|---|
● QnaStatusenum | community-domain | 문의 처리 상태.
|
● AdminBoardUseCaseservice | community-app | 관리자 게시판 조회·쓰기.
|
테스트 방법 (2)
| 가드레일 | 종류 | 확인 방법 |
|---|---|---|
qna-answer-status-follows-answer | e2e | 답변 저장 → 답변완료, 비우고 저장 → 답변대기 |
qna-admin-cannot-write | integration | POST /api/community/admin/qna → 400 NOT_WRITABLE |