diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index f36c3c4b..c869e8ad 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -4,92 +4,226 @@
-
### 기본과제
-#### 1) 라우팅 구현:
-- [ ] History API를 사용하여 SPA 라우터 구현
- - [ ] '/' (홈 페이지)
- - [ ] '/login' (로그인 페이지)
- - [ ] '/profile' (프로필 페이지)
-- [ ] 각 라우트에 해당하는 컴포넌트 렌더링 함수 작성
-- [ ] 네비게이션 이벤트 처리 (링크 클릭 시 페이지 전환)
-- [ ] 주소가 변경되어도 새로고침이 발생하지 않아야 한다.
-
-#### 2) 사용자 관리 기능:
-- [ ] LocalStorage를 사용한 간단한 사용자 데이터 관리
- - [ ] 사용자 정보 저장 (이름, 간단한 소개)
- - [ ] 로그인 상태 관리 (로그인/로그아웃 토글)
-- [ ] 로그인 폼 구현
- - [ ] 사용자 이름 입력 및 검증
- - [ ] 로그인 버튼 클릭 시 LocalStorage에 사용자 정보 저장
-- [ ] 로그아웃 기능 구현
- - [ ] 로그아웃 버튼 클릭 시 LocalStorage에서 사용자 정보 제거
-
-#### 3) 프로필 페이지 구현:
-- [ ] 현재 로그인한 사용자의 정보 표시
- - [ ] 사용자 이름
- - [ ] 간단한 소개
-- [ ] 프로필 수정 기능
- - [ ] 사용자 소개 텍스트 수정 가능
- - [ ] 수정된 정보 LocalStorage에 저장
-
-#### 4) 컴포넌트 기반 구조 설계:
-- [ ] 재사용 가능한 컴포넌트 작성
- - [ ] Header 컴포넌트
- - [ ] Footer 컴포넌트
-- [ ] 페이지별 컴포넌트 작성
- - [ ] HomePage 컴포넌트
- - [ ] ProfilePage 컴포넌트
- - [ ] NotFoundPage 컴포넌트
-
-#### 5) 상태 관리 초기 구현:
-- [ ] 간단한 상태 관리 시스템 설계
- - [ ] 전역 상태 객체 생성 (예: 현재 로그인한 사용자 정보)
-- [ ] 상태 변경 함수 구현
- - [ ] 상태 업데이트 시 관련 컴포넌트 리렌더링
-
-#### 6) 이벤트 처리 및 DOM 조작:
-- [ ] 사용자 입력 처리 (로그인 폼, 프로필 수정 등)
-- [ ] 동적 컨텐츠 렌더링 (사용자 정보 표시, 페이지 전환 등)
-
-#### 7) 라우팅 예외 처리:
-- [ ] 잘못된 라우트 접근 시 404 페이지 표시
+#### 상품목록
+
+**상품 목록 로딩**
+
+- [x] 페이지 접속 시 로딩 상태가 표시된다
+- [x] 데이터 로드 완료 후 상품 목록이 렌더링된다
+- [x] 로딩 실패 시 에러 상태가 표시된다
+- [x] 에러 발생 시 재시도 버튼이 제공된다
+
+**상품 목록 조회**
+
+- [x] 각 상품의 기본 정보(이미지, 상품명, 가격)가 카드 형태로 표시된다
+
+**한 페이지에 보여질 상품 수 선택**
+
+- [x] 드롭다운에서 10, 20, 50, 100개 중 선택할 수 있으며 기본 값은 20개 이다.
+- [x] 선택 변경 시 즉시 목록에 반영된다
+
+**상품 정렬 기능**
+
+- [x] 상품을 가격순/이름순으로 오름차순/내림차순 정렬을 할 수 있다.
+- [x] 드롭다운을 통해 정렬 기준을 선택할 수 있다
+- [x] 정렬 변경 시 즉시 목록에 반영된다
+
+**무한 스크롤 페이지네이션**
+
+- [x] 페이지 하단 근처 도달 시 다음 페이지 데이터가 자동 로드된다
+- [x] 스크롤에 따라 계속해서 새로운 상품들이 목록에 추가된다
+- [x] 새 데이터 로드 중일 때 로딩 인디케이터와 스켈레톤 UI가 표시된다
+- [x] 홈 페이지에서만 무한 스크롤이 활성화된다
+
+**상품을 장바구니에 담기**
+
+- [x] 각 상품에 장바구니 추가 버튼이 있다
+- [x] 버튼 클릭 시 해당 상품이 장바구니에 추가된다
+- [x] 추가 완료 시 사용자에게 알림이 표시된다
+
+**상품 검색**
+
+- [x] 상품명 기반 검색을 위한 텍스트 입력 필드가 있다
+- [x] 검색 버튼 클릭으로 검색이 수행된다
+- [x] Enter 키로 검색이 수행된다
+- [x] 검색어와 일치하는 상품들만 목록에 표시된다
+
+**카테고리 선택**
+
+- [x] 사용 가능한 카테고리들을 선택할 수 있는 UI가 제공된다
+- [x] 선택된 카테고리에 해당하는 상품들만 표시된다
+- [x] 전체 상품 보기로 돌아갈 수 있다
+- [x] 2단계 카테고리 구조를 지원한다 (1depth, 2depth)
+
+**카테고리 네비게이션**
+
+- [x] 현재 선택된 카테고리 경로가 브레드크럼으로 표시된다
+- [x] 브레드크럼의 각 단계를 클릭하여 상위 카테고리로 이동할 수 있다
+- [x] "전체" > "1depth 카테고리" > "2depth 카테고리" 형태로 표시된다
+
+**현재 상품 수 표시**
+
+- [x] 현재 조건에서 조회된 총 상품 수가 화면에 표시된다
+- [x] 검색이나 필터 적용 시 상품 수가 실시간으로 업데이트된다
+
+#### 장바구니
+
+**장바구니 모달**
+
+- [x] 장바구니 아이콘 클릭 시 모달 형태로 장바구니가 열린다
+- [x] X 버튼이나 배경 클릭으로 모달을 닫을 수 있다
+- [x] ESC 키로 모달을 닫을 수 있다
+- [x] 모달에서 장바구니의 모든 기능을 사용할 수 있다
+
+**장바구니 수량 조절**
+
+- [x] 각 장바구니 상품의 수량을 증가할 수 있다
+- [x] 각 장바구니 상품의 수량을 감소할 수 있다
+- [x] 수량 변경 시 총 금액이 실시간으로 업데이트된다
+
+**장바구니 삭제**
+
+- [x] 각 상품에 삭제 버튼이 배치되어 있다
+- [x] 삭제 버튼 클릭 시 해당 상품이 장바구니에서 제거된다
+
+**장바구니 선택 삭제**
+
+- [x] 각 상품에 선택을 위한 체크박스가 제공된다
+- [x] 선택 삭제 버튼이 있다
+- [x] 체크된 상품들만 일괄 삭제된다
+
+**장바구니 전체 선택**
+
+- [x] 모든 상품을 한 번에 선택할 수 있는 마스터 체크박스가 있다
+- [x] 전체 선택 시 모든 상품의 체크박스가 선택된다
+- [x] 전체 해제 시 모든 상품의 체크박스가 해제된다
+
+**장바구니 비우기**
+
+- [x] 장바구니에 있는 모든 상품을 한 번에 삭제할 수 있다
+
+#### 상품 상세
+
+**상품 클릭시 상세 페이지 이동**
+
+- [x] 상품 목록에서 상품 이미지나 상품 정보 클릭 시 상세 페이지로 이동한다
+- [x] URL이 `/product/{productId}` 형태로 변경된다
+- [x] 상품의 자세한 정보가 전용 페이지에서 표시된다
+
+**상품 상세 페이지 기능**
+
+- [x] 상품 이미지, 설명, 가격 등의 상세 정보가 표시된다
+- [x] 전체 화면을 활용한 상세 정보 레이아웃이 제공된다
+
+**상품 상세 - 장바구니 담기**
+
+- [x] 상품 상세 페이지에서 해당 상품을 장바구니에 추가할 수 있다
+- [x] 페이지 내에서 수량을 선택하여 장바구니에 추가할 수 있다
+- [x] 수량 증가/감소 버튼이 제공된다
+
+**관련 상품 기능**
+
+- [x] 상품 상세 페이지에서 관련 상품들이 표시된다
+- [x] 같은 카테고리(category2)의 다른 상품들이 관련 상품으로 표시된다
+- [x] 관련 상품 클릭 시 해당 상품의 상세 페이지로 이동한다
+- [x] 현재 보고 있는 상품은 관련 상품에서 제외된다
+
+**상품 상세 페이지 내 네비게이션**
+
+- [x] 상품 상세에서 상품 목록으로 돌아가는 버튼이 제공된다
+- [x] 브레드크럼을 통해 카테고리별 상품 목록으로 이동할 수 있다
+- [x] SPA 방식으로 페이지 간 이동이 부드럽게 처리된다
+
+#### 사용자 피드백 시스템
+
+**토스트 메시지**
+
+- [x] 장바구니 추가 시 성공 메시지가 토스트로 표시된다
+- [x] 장바구니 삭제, 선택 삭제, 전체 삭제 시 알림 메시지가 표시된다
+- [x] 토스트는 3초 후 자동으로 사라진다
+- [x] 토스트에 닫기 버튼이 제공된다
+- [x] 토스트 타입별로 다른 스타일이 적용된다 (success, info, error)
### 심화과제
-#### 1) 해시 라우터 구현
-- [ ] location.hash를 이용하여 SPA 라우터 구현
- - [ ] '/#/' (홈 페이지)
- - [ ] '/#/login' (로그인 페이지)
- - [ ] '/#/profile' (프로필 페이지)
-
-#### 2) 라우트 가드 구현
-- [ ] 로그인 상태에 따른 접근 제어
-- [ ] 비로그인 사용자의 특정 페이지 접근 시 로그인 페이지로 리다이렉션
+#### SPA 네비게이션 및 URL 관리
+
+**페이지 이동**
+
+- [ ] 어플리케이션 내의 모든 페이지 이동(뒤로가기/앞으로가기를 포함)은 하여 새로고침이 발생하지 않아야 한다.
+
+**상품 목록 - URL 쿼리 반영**
+
+- [ ] 검색어가 URL 쿼리 파라미터에 저장된다
+- [ ] 카테고리 선택이 URL 쿼리 파라미터에 저장된다
+- [ ] 상품 옵션이 URL 쿼리 파라미터에 저장된다
+- [ ] 정렬 조건이 URL 쿼리 파라미터에 저장된다
+- [ ] 조건 변경 시 URL이 자동으로 업데이트된다
+- [ ] URL을 통해 현재 검색/필터 상태를 공유할 수 있다
+
+**상품 목록 - 새로고침 시 상태 유지**
+
+- [ ] 새로고침 후 URL 쿼리에서 검색어가 복원된다
+- [ ] 새로고침 후 URL 쿼리에서 카테고리가 복원된다
+- [ ] 새로고침 후 URL 쿼리에서 옵션 설정이 복원된다
+- [ ] 새로고침 후 URL 쿼리에서 정렬 조건이 복원된다
+- [ ] 복원된 조건에 맞는 상품 데이터가 다시 로드된다
+
+**장바구니 - 새로고침 시 데이터 유지**
+
+- [ ] 장바구니 내용이 브라우저에 저장된다
+- [ ] 새로고침 후에도 이전 장바구니 내용이 유지된다
+- [ ] 장바구니의 선택 상태도 함께 유지된다
+
+**상품 상세 - URL에 ID 반영**
+
+- [ ] 상품 상세 페이지 이동 시 상품 ID가 URL 경로에 포함된다 (`/product/{productId}`)
+- [ ] URL로 직접 접근 시 해당 상품의 상세 페이지가 자동으로 로드된다
-#### 3) 이벤트 위임
+**상품 상세 - 새로고침시 유지**
-- [ ] 이벤트 위임 방식으로 이벤트를 관리하고 있다.
+- [ ] 새로고침 후에도 URL의 상품 ID를 읽어서 해당 상품 상세 페이지가 유지된다
+
+**404 페이지**
+
+- [ ] 존재하지 않는 경로 접근 시 404 에러 페이지가 표시된다
+- [ ] 홈으로 돌아가기 버튼이 제공된다
+
+#### AI로 한 번 더 구현하기
+
+- [ ] 기존에 구현한 기능을 AI로 다시 구현한다.
+- [ ] 이 과정에서 직접 가공하는 것은 최대한 지양한다.
## 과제 셀프회고
### 기술적 성장
+
-### 코드 품질
+### 자랑하고 싶은 코드
+
+
+
+### 개선이 필요하다고 생각하는 코드
+
### 학습 효과 분석
+
### 과제 피드백
+
+### AI 활용 경험 공유하기
+
+
+
## 리뷰 받고 싶은 내용
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 총 340개의 상품
+
+
+
+
+
+
+
+
+
+
+
+
+ PVC 투명 젤리 쇼핑백 1호 와인 답례품 구디백 비닐 손잡이 미니 간식 선물포장
+
+
+
+ 220원
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 샷시 풍지판 창문 바람막이 베란다 문 틈막이 창틀 벌레 차단 샤시 방충망 틈새막이
+
+
이지웨이건축자재
+
+ 230원
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 실리카겔 50g 습기제거제 제품 /산업 신발 의류 방습제
+
+
+
+ 280원
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 두꺼운 고급 무지쇼핑백 종이쇼핑백 주문제작 소량 로고인쇄 선물용 종이가방 세로형1호
+