수강신청 안내
PROD · /products
기능
1
API 호출
1
가드레일
2
id 가 테스트 이름
구현 단계
5 / 5
개발 스펙
이 화면에서 할 수 있어야 하는 것 (2)
- 판매 중인 과정과 가격을 비교한다.
- 원하는 과정의 신청 화면으로 간다.
비즈니스 규칙 (3)
- 가격 · 표시문구 · 혜택 목록은 product 테이블이 정본이다.근거: products_init.php $_PRODUCTS_LIST → product 테이블로 이관
- is_active 가 꺼진 상품은 노출하지 않는다.
- 현재 등록 상품: tesol · tec · tesoltec · phonics · apostille · signboard 6종.
API (1)
| 메서드 | 경로 | 권한 | 모듈 · 설명 |
|---|---|---|---|
GET | /api/catalog/products | 공개 | 판매 중인 상품 목록. domains:catalog:catalog-web요청: ?codes=tesol,tec,tesoltec 응답: { items: [{ code, displayTitle, price, salePrice, highlight, options[] }] } |
가드레일 (2) — id 가 곧 테스트 이름이다
| id | 반드시 만족해야 하는 것 | 등급 |
|---|---|---|
catalog-inactive-hidden | is_active 가 false 인 상품은 목록에 나오면 안 된다. | high |
catalog-price-matches-order | 목록에 보이는 판매가와 실제 주문 생성 금액이 같아야 한다. | critical |
구현 계획 (5/5)
- ●Product · ProductRepository
catalog-domain - ●CatalogUseCase
catalog-app - ●ProductRepositoryAdapter
catalog-infrastructure - ●/api/catalog/products 구현
catalog-web - ●Next.js 를 BFF 로 전환 — Prisma 직접 접근 제거
wvctesol
서버 사이드 구현 계획 — 자바 객체별 요구사항 (2/2)
| 객체 | 모듈 | 책임 · 지켜야 할 것 |
|---|---|---|
● Productrecord | catalog-domain | 판매 상품과 실제 결제 금액.
|
● ProductRepositoryAdapterclass | catalog-infrastructure | product 조회.
|
테스트 방법 (2)
| 가드레일 | 종류 | 확인 방법 |
|---|---|---|
catalog-inactive-hidden | e2e | is_active=false 상품을 만들고 목록 조회 → 응답에 없음 |
catalog-price-matches-order | e2e | 목록 판매가와 같은 상품으로 만든 주문의 amount 가 일치 |
스냅샷

기능 목록 (1)
데이터
- ·API 조회
/api/marketing/content/products
화면 이동
← 이 화면으로 오는 곳
TESOL-LEVEL-TEST-RESULT/tesol-lab/level-test/resultGNB
이 화면에서 가는 곳 →
없음
연결
API
/api/marketing/content/products
소스
src/app/products/page.tsx