관리자 콘솔

원본 admin/ 을 wvctesol-admin(:3896)으로 옮기는 중입니다. API 서버는 사용자 앱과 공유합니다.

메뉴
13
원본 left_menu.php 기준
옮긴 화면
13 / 13
관리자 API
21
가드레일
31
critical 9

이관 진행도

100%

원본 admin/ 아래 PHP 는 143개지만, 좌측 메뉴가 가리키는 실제 화면은 13개입니다. 나머지는 백업과 폐기된 것입니다.

개발 스펙 (8)

메뉴 13개를 성격이 같은 것끼리 묶어 8개로 적었습니다. 요건 · 규칙 · API · 가드레일 · 구현 계획 · 자바 설계 · 테스트 방법이 들어 있습니다.

게시판 4종 (공지 · 후기 · 합격노트 · FAQ)

ADMIN-BOARDSwvctesol-admin/notices완료

이 화면에서 할 수 있어야 하는 것 (3)

  • 네 게시판의 글을 쓰고 고치고 지운다.
  • 숨긴 글도 목록에 보인다.
  • 게시판마다 다른 칸을 켠다 — 공지는 고정, 수기·후기는 작성자와 이미지, FAQ 는 분류.

비즈니스 규칙 (5)

  • 네 게시판이 같은 컴포넌트를 쓰고 설정으로 칸을 켠다. 따로 만들면 공통 변경 하나에 넷을 고쳐야 한다.
  • 작성자 칸이 다르다 — 공지·FAQ 는 regid 뿐, 수기·후기는 name 이 따로 있고 NOT NULL 이다.
  • FAQ 만 노출 플래그가 소문자 y/n 이다. 대문자로 넣으면 원본 화면 조건에 걸리지 않는다.
  • 수기·후기의 main · best 도 NOT NULL 이다. 목록 노출은 노출 플래그가 정하므로 N 으로 채운다.
  • 삭제는 실제로 지운다. 원본에도 휴지통이 없다.

API (4)

메서드경로권한모듈 · 설명
POST/api/community/admin/{board}관리자
글쓰기 → { id }. 문의(qna)는 거부.
domains:community:community-web
400 NOT_WRITABLE
400 INVALID_INPUT
POST/api/community/admin/{board}/{id}관리자
글 수정.
domains:community:community-web
404 POST_NOT_FOUND
DELETE/api/community/admin/{board}/{id}관리자
글 삭제. 되돌릴 수 없다.
domains:community:community-web
POST/api/community/admin/{board}/{id}/visible관리자
노출 토글. 게시판별 컬럼·대소문자는 어댑터가 흡수한다.
domains:community:community-web

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

id반드시 만족해야 하는 것등급
board-visible-value-per-table
FAQ 는 소문자 y/n 으로 저장해야 한다. 대문자면 원본 화면에서 안 보인다.
high
board-writer-column-per-table
수기·후기는 name 칸을 채워야 한다. NOT NULL 이라 비우면 저장이 실패한다.
high
board-crud-roundtrip
네 게시판 모두 생성 → 수정 → 노출 토글 → 삭제가 왕복해야 한다.
normal

구현 계획 (5/5)

  1. BoardDraft — 게시판 공통 입력community-domain
  2. AdminBoardUseCase — create · update · delete · setVisiblecommunity-app
  3. BoardTable 에 hasCategory · hasMainBest · visibleValue 추가community-infrastructure
  4. 쓰기 4개 엔드포인트community-web
  5. BoardList · BoardForm 공통 컴포넌트 + 화면 12개wvctesol-admin

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

객체모듈책임 · 지켜야 할 것
BoardDraft
record
community-domain
관리자가 쓰는 글.
  • 제목·내용이 비면 만들어지지 않는다.
  • 게시판마다 안 쓰는 칸은 비워 두고 어댑터가 고른다.
  • visible 은 boolean 이다 — 컬럼과 대소문자 차이는 어댑터가 흡수한다.
BoardTable
record
community-infrastructure
게시판별 테이블·컬럼 차이를 모으는 유일한 지점.
  • visibleValue(boolean) 가 FAQ 만 소문자를 쓴다.
  • writerColumn 이 regid 인지 name 인지에 따라 INSERT 가 달라진다.
  • hasMainBest 인 게시판은 NOT NULL 인 main·best 를 채워야 한다.

테스트 방법 (3)

가드레일종류확인 방법
board-crud-roundtripe2e네 게시판 각각 쓰기 → 수정 → 삭제, 목록에서 사라진다
board-visible-value-per-tableintegrationFAQ 노출 토글 후 show 컬럼이 소문자 y/n
board-writer-column-per-tableintegration수기·후기 글쓰기 → name 컬럼이 채워지고 저장 성공

운영

메뉴원본원본 줄수옮긴 파일상태
관리자 관리
/admins
admin/admin/ad_list.php443
  • src/app/(console)/admins/page.tsx
완료
회원 관리
/members
admin/member/mb_list.php529
  • src/app/(console)/members/[id]/page.tsx
  • src/app/(console)/members/page.tsx
완료
배너 관리
/banners
admin/banner/banner_list.php187
  • src/app/(console)/banners/page.tsx
완료

게시판

메뉴원본원본 줄수옮긴 파일상태
공지사항
/notices
admin/board/nt_list.php159
  • src/app/(console)/notices/[id]/page.tsx
  • src/app/(console)/notices/new/page.tsx
  • src/app/(console)/notices/page.tsx
완료
수강후기
/reviews
admin/board/sty_list.php169
  • src/app/(console)/reviews/[id]/page.tsx
  • src/app/(console)/reviews/new/page.tsx
  • src/app/(console)/reviews/page.tsx
완료
합격노트
/pass-notes
admin/board/passnote_list.php248
  • src/app/(console)/pass-notes/[id]/page.tsx
  • src/app/(console)/pass-notes/new/page.tsx
  • src/app/(console)/pass-notes/page.tsx
완료
질문답변
/qna
admin/board/qa_list.php190
  • src/app/(console)/qna/[id]/page.tsx
  • src/app/(console)/qna/page.tsx
완료
상담신청
/applications
admin/board/ap_list.php621
  • src/app/(console)/applications/[id]/page.tsx
  • src/app/(console)/applications/page.tsx
완료
자주듣는 질문
/faqs
admin/board/faq_list.php203
  • src/app/(console)/faqs/[id]/page.tsx
  • src/app/(console)/faqs/new/page.tsx
  • src/app/(console)/faqs/page.tsx
완료

수강 · 결제

메뉴원본원본 줄수옮긴 파일상태
결제리스트
/payments
admin/payment/payment_list.php244
  • src/app/(console)/payments/page.tsx
완료
TESOL Unit
/units/tesol
admin/unit/unit_list.php75
  • src/app/(console)/units/tesol/page.tsx
완료
TEC Unit
/units/tec
admin/unit/unit_list_tec.php75
  • src/app/(console)/units/tec/page.tsx
완료
레벨테스트
/level-tests
admin/unit/level_test_list.php92
  • src/app/(console)/level-tests/page.tsx
완료