배너 관리
BANNERS · /banners
종류
목록
부르는 것
1
lib 함수
가드레일
2
줄
64
로그인 필요운영
화면
관리자 세션으로 촬영한 실제 화면입니다.

이 화면이 부르는 것
- ·
listBanners()
소스
src/app/(console)/banners/page.tsx같은 규칙을 쓰는 화면
목록 · 작성 · 수정이 한 묶음입니다. 스펙을 세 벌로 적으면 어긋납니다.
개발 스펙
ADMIN-CONTENT완료이 스펙은 4개 화면이 함께 씁니다이 화면에서 할 수 있어야 하는 것 (3)
- 배너 65건을 위치별로 본다.
- TESOL · TEC 커리큘럼 구성을 본다.
- 레벨테스트 시험지와 응시 건수를 본다.
비즈니스 규칙 (4)
- 배너 목록은 타입을 가리지 않는다. 실데이터에 타입이 10종 넘어 하나를 기본값으로 고르면 나머지가 안 보인다.
- 유닛과 문항은 편집이 없다. 원본에도 목록·보기뿐이다 — 과정 개편 때나 바뀌는 값이라 DB 를 직접 고쳤다.
- 레벨테스트 문항 수는 q1~q20 이 평탄화돼 있어 values 로 펼쳐 센다.
- 관리자 유닛 조회는 수강권을 보지 않는다. 모든 과정을 봐야 한다.
API (3)
| 메서드 | 경로 | 권한 | 모듈 · 설명 |
|---|---|---|---|
GET | /api/marketing/admin/banners | 관리자 | 배너 전체. type 을 주면 그것만. domains:marketing:marketing-web |
GET | /api/learning/admin/courses/{course}/units | 관리자 | 유닛과 강의. 수강권을 보지 않는다. domains:learning:learning-web |
GET | /api/assessment/admin/level-tests | 관리자 | 시험지 목록. 문항 수와 응시 건수 포함. domains:assessment:assessment-web |
가드레일 (2) — id 가 곧 테스트 이름이다
| id | 반드시 만족해야 하는 것 | 등급 |
|---|---|---|
banner-list-all-types | 배너 목록이 타입 하나로 걸러지면 안 된다. 전체가 보여야 한다. 실데이터에 타입이 10종 넘는다. | normal |
admin-content-requires-admin | 세 조회 모두 관리자만 볼 수 있어야 한다. | high |
구현 계획 (4/4)
- ●MarketingRepository.banners 재사용
marketing-web - ●CurriculumRepository.unitsOf 재사용
learning-web - ●LevelTestRepository.findAllPapers 추가
assessment-domain - ●조회 화면 4개
wvctesol-admin
서버 사이드 구현 계획 — 자바 객체별 요구사항 (1/1)
| 객체 | 모듈 | 책임 · 지켜야 할 것 |
|---|---|---|
● LevelTestRepository.Paperrecord | assessment-domain | 시험지 요약.
|
테스트 방법 (2)
| 가드레일 | 종류 | 확인 방법 |
|---|---|---|
banner-list-all-types | integration | GET /banners → 65건 전부 |
admin-content-requires-admin | e2e | 비로그인 → 403, 화면은 /login 리다이렉트 |
정하지 못한 것 · 확인이 필요한 것
- 배너 등록·수정은 파일 업로드 인프라가 필요하다. 경로만 받아 저장하면 깨진 이미지가 등록된다.