질문답변

QNA · /qna

실제 화면 열기 ↗
종류
목록
부르는 것
1
lib 함수
가드레일
2
137
로그인 필요게시판

화면

관리자 세션으로 촬영한 실제 화면입니다.

QNA 캡처

이 화면이 부르는 것

  • ·listBoard()
소스 src/app/(console)/qna/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-web
404 POST_NOT_FOUND

가드레일 (2) — id 가 곧 테스트 이름이다

id반드시 만족해야 하는 것등급
qna-answer-status-follows-answer
답이 있으면 답변완료, 비우면 답변대기여야 한다. 둘이 어긋나면 안 된다.
high
qna-admin-cannot-write
관리자가 문의를 새로 쓸 수 없어야 한다.
회원이 내는 글이라 대신 쓰면 작성자가 뒤섞인다.
normal

구현 계획 (4/4)

  1. QnaStatus — 답 유무로 상태를 정한다community-domain
  2. AdminBoardUseCase — 숨긴 글도 보는 별도 유스케이스community-app
  3. listForAdmin · findAny · answerQnacommunity-infrastructure
  4. 목록 · 상세 · 답변 폼wvctesol-admin

서버 사이드 구현 계획 — 자바 객체별 요구사항 (2/2)

객체모듈책임 · 지켜야 할 것
QnaStatus
enum
community-domain
문의 처리 상태.
  • APPLY(답변대기) · END(답변완료). 원본 $_qa_status_font_arr 그대로다.
  • of(answer) 가 답 유무로 상태를 정한다 — 관리자가 따로 고르지 않는다.
AdminBoardUseCase
service
community-app
관리자 게시판 조회·쓰기.
  • 조회 유스케이스와 나눈다 — 관리자는 숨긴 글도 봐야 한다.
  • 같은 메서드에 플래그를 더하면 공개 조회에서 실수로 켜질 수 있다.
  • QNA 는 쓰기를 막는다.

테스트 방법 (2)

가드레일종류확인 방법
qna-answer-status-follows-answere2e답변 저장 → 답변완료, 비우고 저장 → 답변대기
qna-admin-cannot-writeintegrationPOST /api/community/admin/qna → 400 NOT_WRITABLE