요구사항정의서_최종_Notion용.csv
개발환경
백앤드 : Java 21 / Spring Boot 3.x
크롤링: Python 3.x + Pandas + BeautifulSoup/Selenium (데이터 수집용 스케줄러)
데이터베이스: MySQL (메인 데이터), Redis (실시간 검색어 및 캐싱)
프론트: Vite + React (CSR방식), Tailwind CSS
요구사항정의서_최종_정리.md
| 요구사항 ID | 카테고리 | 요구사항명 | 설명 | 입력값 | 결과 | 우선순위 |
|---|---|---|---|---|---|---|
| USER-001 | 사용자 계정 | 로그인 기능 제공 | 사용자는 이메일과 비밀번호를 입력하여 서비스에 로그인할 수 있다. | 이메일, 비밀번호 | 로그인 성공 시 사용자 인증 정보가 발급되고 메인 화면 또는 이전 화면으로 이동한다. | 높음 |
| USER-002 | 사용자 계정 | 회원가입 기능 제공 | 사용자는 이메일, 비밀번호, 닉네임을 입력하여 계정을 생성할 수 있다. 상세 회원가입 화면과 단계형 UI는 현재 단계에서 보류한다. | 이메일, 비밀번호, 닉네임 | 입력값 검증 후 사용자 계정이 생성된다. | 중간 |
| USER-003 | 사용자 계정 | 소셜 로그인 연동 | 사용자는 카카오, 네이버 등 외부 계정을 통해 간편 로그인을 사용할 수 있다. 해당 기능은 향후 확장 기능으로 적용한다. | 소셜 로그인 인증 정보 | 외부 인증 성공 시 서비스 계정과 연동하여 로그인 처리한다. | 낮음 |
| USER-004 | 사용자 계정 | 사용자 계정 상태 관리 | 사용자의 계정 상태를 활성, 비활성 등의 값으로 관리한다. | 사용자 ID, 계정 상태 | 계정 상태에 따라 로그인 및 서비스 이용 가능 여부를 제어한다. | 중간 |
| SEARCH-001 | 상품 검색 | 상품 키워드 검색 | 사용자는 검색창에 키워드를 입력하여 중고 상품을 검색할 수 있다. | 검색 키워드 | 키워드와 관련된 상품 목록을 표시한다. | 높음 |
| SEARCH-002 | 상품 검색 | 최근 검색어 표시 | 사용자가 검색창을 선택하면 최근 검색어 목록을 표시한다. | 사용자 ID 또는 브라우저 저장 검색 기록 | 최근 검색어 목록이 검색창 하단에 표시된다. | 높음 |
| SEARCH-003 | 상품 검색 | 최근 검색어 삭제 | 사용자는 최근 검색어를 개별 삭제하거나 전체 삭제할 수 있다. | 삭제할 검색어 또는 전체 삭제 요청 | 선택한 검색어가 최근 검색어 목록에서 제거된다. | 중간 |
| SEARCH-004 | 상품 검색 | 검색 로그 저장 | 사용자의 검색 키워드와 클릭 상품 정보를 저장하여 추천 및 인기 검색어 산정에 활용한다. | 사용자 ID, 검색 키워드, 클릭 상품 ID, 검색 시각 | 검색 로그가 저장된다. 비로그인 사용자의 경우 사용자 ID 없이 검색 로그를 저장할 수 있다. | 중간 |
| SEARCH-005 | 상품 검색 | 인기 검색어 집계 | 검색 로그를 기반으로 검색 횟수가 많은 키워드를 인기 검색어로 집계한다. | 검색 키워드, 검색 횟수 | 인기 검색어 목록과 검색량이 관리된다. | 중간 |
| ITEM-001 | 상품 목록/상세 | 상품 목록 표시 | 검색 또는 카테고리 선택 결과에 따라 상품 목록을 카드 형태로 표시한다. | 검색 키워드, 카테고리, 정렬 조건 | 조건에 맞는 상품 카드 목록을 표시한다. | 높음 |
| ITEM-002 | 상품 목록/상세 | 상품 카드 UI 제공 | 상품 이미지를 포함한 카드 형태로 상품명, 현재가, 최저가, 플랫폼, 카테고리 정보를 표시한다. | 상품 ID, 상품명, 가격, 이미지 URL, 플랫폼명, 카테고리 | 사용자가 상품 정보를 빠르게 파악할 수 있는 카드 UI를 제공한다. | 높음 |
| ITEM-003 | 상품 목록/상세 | 상품 상세 정보 표시 | 사용자는 상품 카드를 선택하여 상품의 상세 정보를 확인할 수 있다. | 상품 ID | 상품명, 가격, 이미지, 플랫폼, 상품 URL, 가격 이력 등 상세 정보를 표시한다. | 높음 |
| ITEM-004 | 상품 목록/상세 | 원본 상품 페이지 이동 | 사용자는 상품 상세 화면에서 원본 중고거래 플랫폼의 상품 페이지로 이동할 수 있다. | 상품 URL | 새 창 또는 현재 창에서 원본 상품 페이지로 이동한다. | 중간 |
| ITEM-005 | 상품 목록/상세 | 상품 목록 정렬 | 사용자는 상품 목록을 인기순, 최신순 등 기준으로 정렬할 수 있다. | 정렬 조건 | 선택한 정렬 기준에 따라 상품 목록 순서가 변경된다. | 중간 |
| WISH-001 | 찜/알림 | 관심 상품 찜 등록 | 사용자는 관심 있는 상품을 찜 목록에 등록할 수 있다. | 사용자 ID, 상품 ID | 해당 상품이 사용자의 찜 목록에 추가된다. | 높음 |
| WISH-002 | 찜/알림 | 관심 상품 찜 삭제 | 사용자는 찜 목록에서 더 이상 관심 없는 상품을 삭제할 수 있다. | 사용자 ID, 상품 ID 또는 찜 ID | 해당 상품이 사용자의 찜 목록에서 제거된다. | 높음 |
| WISH-003 | 찜/알림 | 목표 가격 설정 | 사용자는 찜한 상품에 대해 희망 구매 가격을 설정할 수 있다. | 사용자 ID, 상품 ID, 목표 가격 | 해당 상품에 목표 가격이 저장된다. | 높음 |
| WISH-004 | 찜/알림 | 최저가 알림 여부 설정 | 사용자는 찜한 상품의 가격이 목표가 이하로 내려갔을 때 알림을 받을지 설정할 수 있다. | 사용자 ID, 상품 ID, 알림 여부 | 알림 여부가 저장되고 조건 충족 시 알림 대상으로 분류된다. | 중간 |
| PRICE-001 | 가격 이력/시세 | 상품 가격 이력 저장 | 상품 가격이 수집될 때마다 가격과 수집 시각을 기록한다. | 상품 ID, 가격, 기록 시각 | 상품별 가격 변화 이력이 저장된다. | 높음 |
| PRICE-002 | 가격 이력/시세 | 상품 최저가 표시 | 상품별로 현재까지 수집된 가격 중 최저가를 표시한다. | 상품 ID, 가격 이력 | 상품 카드 또는 상세 화면에 최저가 정보를 표시한다. | 높음 |
| PRICE-003 | 가격 이력/시세 | 가격 변화 정보 표시 | 상품 상세 화면에서 가격 변화 흐름을 참고할 수 있는 정보를 제공한다. 상세 그래프 UI는 구현 범위에 따라 단계적으로 적용한다. | 상품 ID, 가격 이력 | 가격 이력 데이터를 기반으로 가격 변화 정보를 표시한다. | 중간 |
| PRICE-004 | 가격 이력/시세 | 보정 평균가 계산 | 비정상적으로 높거나 낮은 가격을 제외하고 참고 가능한 평균 가격을 계산한다. 계산 기준과 데이터 수집량이 충분해진 이후 구현한다. | 상품 ID, 가격 이력 | 보정 평균가를 계산하여 상품 상세 화면 또는 시세 정보에 표시한다. | 낮음 |
| PRICE-005 | 가격 이력/시세 | 고급 가격 분석 그래프 | 상품의 가격 변화, 평균가, 최저가, 최고가 등을 그래프로 제공한다. MVP 단계에서는 단순 가격 이력 저장과 최저가 표시를 우선한다. | 상품 ID, 가격 이력 | 가격 분석 그래프를 표시한다. | 낮음 |
| UIUX-001 | 메인 UI/UX | 메인 화면 구성 | 사용자가 서비스에 진입했을 때 검색, 카테고리, 배너, 추천 상품을 한 화면에서 확인할 수 있도록 메인 화면을 구성한다. | 없음 | 주요 서비스 기능으로 이동 가능한 메인 화면이 표시된다. | 높음 |
| UIUX-002 | 메인 UI/UX | 헤더 영역 제공 | 화면 상단에 로고, 서비스명, 로그인, 회원가입 버튼을 배치한다. | 로그인 상태 | 사용자는 상단 헤더를 통해 서비스 주요 진입점을 확인할 수 있다. | 높음 |
| UIUX-003 | 메인 UI/UX | 검색창 UI 제공 | 사용자가 상품명을 입력할 수 있는 검색창을 메인 화면 상단에 제공한다. | 검색 키워드 | 입력된 키워드를 기준으로 상품 검색을 수행할 수 있다. | 높음 |
| UIUX-004 | 메인 UI/UX | 최근 검색어 팝업 표시 | 사용자가 검색창을 선택하면 최근 검색어 목록이 팝업 형태로 표시된다. | 검색창 포커스 상태, 최근 검색어 목록 | 사용자는 이전 검색어를 빠르게 다시 선택할 수 있다. | 높음 |
| UIUX-005 | 메인 UI/UX | 메인 배너 표시 | 메인 화면에 이벤트, 공지, 추천 콘텐츠를 보여줄 수 있는 배너 영역을 제공한다. | 배너 이미지 URL, 링크 URL, 노출 순서, 활성 여부 | 활성화된 배너가 메인 화면에 표시된다. | 중간 |
| UIUX-006 | 메인 UI/UX | 카테고리 탭 UI 제공 | 사용자가 자주 찾는 상품군을 빠르게 선택할 수 있도록 카테고리 탭을 제공한다. | 카테고리명 | 선택한 카테고리에 맞는 상품 목록이 표시된다. | 높음 |
| UIUX-007 | 메인 UI/UX | 선택된 카테고리 강조 | 사용자가 현재 선택한 카테고리를 시각적으로 구분할 수 있도록 강조 표시한다. | 선택된 카테고리 | 선택된 카테고리 탭이 다른 탭과 구분되어 표시된다. | 중간 |
| UIUX-008 | 메인 UI/UX | 추천 상품 영역 제공 | 메인 화면에서 사용자에게 추천할 상품 목록을 카드 형태로 제공한다. | 추천 상품 목록 | 추천 상품 카드들이 메인 화면에 표시된다. | 높음 |
| UIUX-009 | 메인 UI/UX | 데스크톱 상품 카드 4열 배치 | 데스크톱 화면에서는 상품 카드를 가로 4열 그리드 형태로 배치한다. | 상품 목록 | 상품 목록이 균형 잡힌 4열 카드 레이아웃으로 표시된다. | 높음 |
| UIUX-010 | 메인 UI/UX | 반응형 카드 레이아웃 | 화면 크기에 따라 상품 카드 열 수를 조정한다. | 화면 크기, 상품 목록 | 모바일에서는 1열, 태블릿에서는 2열, 데스크톱에서는 4열 중심으로 상품 카드가 배치된다. | 높음 |
| UIUX-011 | 메인 UI/UX | 상품 이미지 대체 UI 제공 | 상품 이미지가 없거나 로딩되지 않을 경우 대체 이미지를 표시한다. | 상품 이미지 URL | 이미지가 없는 상품도 카드 레이아웃이 깨지지 않고 표시된다. | 중간 |
| UIUX-012 | 메인 UI/UX | 상품 정렬 버튼 제공 | 추천 상품 또는 검색 결과를 인기순, 최신순 등의 기준으로 정렬할 수 있는 버튼을 제공한다. | 정렬 조건 | 선택한 기준에 따라 상품 목록 순서가 변경된다. | 중간 |
| UIUX-013 | 메인 UI/UX | 키보드 포커스 표시 | 버튼, 검색창, 카테고리 탭 등 주요 조작 요소에 키보드 포커스 상태를 표시한다. | 포커스 상태 | 키보드 사용자도 현재 선택된 요소를 쉽게 확인할 수 있다. | 중간 |
| UIUX-014 | 메인 UI/UX | 모바일 Bottom Sheet 필터 | 모바일 환경에서 가격, 플랫폼, 카테고리 등 상세 조건을 설정할 수 있는 Bottom Sheet 형태의 필터 UI를 제공한다. 향후 | |||
| 확장 기능으로 적용한다. | 필터 조건 | 모바일 사용자가 작은 화면에서도 상세 필터를 편하게 사용할 수 있다. | 낮음 | |||
| UIUX-015 | 메인 UI/UX | 검색 조건 URL 공유 | 사용자가 검색 키워드와 필터 조건이 포함된 URL을 공유할 수 있도록 한다. 향후 확장 기능으로 적용한다. | 검색 키워드, 필터 조건 | 공유받은 사용자가 동일한 검색 조건 화면을 확인할 수 있다. | 낮음 |
| UIUX-016 | 메인 UI/UX | 회원가입 단계형 UI 제공 | 회원가입 과정을 여러 단계로 나누어 사용자가 입력 진행 상황을 쉽게 파악할 수 있도록 한다. 현재 단계에서는 기본 회원가입 기능 | |||
| 우선으로 보류한다. | 회원가입 단계 정보 | 회원가입 진행 단계가 화면에 표시된다. | 낮음 | |||
| DATA-001 | 데이터 수집/관리 | 외부 플랫폼 상품 데이터 수집 | 중고거래 플랫폼에서 상품명, 가격, 이미지, 상품 URL, 플랫폼 정보를 수집한다. | 플랫폼 정보, 검색 키워드 또는 수집 대상 URL | 수집된 상품 데이터가 Items 테이블에 저장된다. | 높음 |
| DATA-002 | 데이터 수집/관리 | 상품 가격 정보 갱신 | 기존에 수집된 상품의 현재 가격을 주기적으로 확인하고 갱신한다. | 상품 ID, 현재 가격 | 상품의 현재 가격이 갱신되고 가격 이력이 저장된다. | 높음 |
| DATA-003 | 데이터 수집/관리 | 플랫폼 정보 관리 | 상품이 수집되는 중고거래 플랫폼 정보를 관리한다. | 플랫폼명 | 상품 데이터와 플랫폼 정보를 연결하여 관리한다. | 중간 |
| DATA-004 | 데이터 수집/관리 | 상품 카테고리 분류 | 수집된 상품명을 기준으로 전자기기, 패션, 생활용품 등 카테고리를 분류한다. | 상품명, 상품 설명 | 상품에 카테고리명이 저장된다. | 중간 |
| ADMIN-001 | 관리자/운영 보조 | 배너 데이터 관리 | 운영자는 메인 화면에 표시할 배너 이미지, 링크, 노출 순서, 활성 여부를 관리할 수 있다. 향후 확장 기능으로 적용한다. | 배너 이미지 URL, 링크 URL, 노출 순서, 활성 여부 | 설정된 배너가 메인 화면에 반영된다. | 낮음 |
| ADMIN-002 | 관리자/운영 보조 | 상품 데이터 관리 | 운영자는 수집된 상품 데이터의 상태를 확인하고 필요한 경우 수정 또는 제외 처리할 수 있다. 향후 확장 기능으로 적용한다. | 상품 ID, 상품 상태, 수정 정보 | 상품 데이터가 운영 기준에 맞게 관리된다. | 낮음 |
| ADMIN-003 | 관리자/운영 보조 | 검색어 통계 확인 | 운영자는 사용자 검색 로그를 기반으로 인기 검색어와 검색량을 확인할 수 있다. 향후 확장 기능으로 적용한다. | 기간, 검색어 | 검색어별 검색 횟수와 추세 정보를 확인할 수 있다. | 낮음 |
| AI-001 | 챗봇 FAQ / AI 기능 | FAQ 자동응답 기능 | 사용자가 자주 묻는 질문을 입력하면 사전에 등록된 FAQ 답변을 제공한다. 향후 확장 기능으로 적용한다. | 사용자 질문 | 질문 패턴과 일치하는 FAQ 답변을 표시한다. | 낮음 |
| AI-002 | 챗봇 FAQ / AI 기능 | 챗봇 대화 기록 저장 | 사용자의 챗봇 질문과 챗봇 응답 내용을 저장한다. 향후 확장 기능으로 적용한다. | 사용자 ID, 사용자 메시지, 챗봇 응답 | 챗봇 대화 이력이 저장된다. | 낮음 |
| AI-003 | 챗봇 FAQ / AI 기능 | 사용자 선호 기반 추천 | 사용자의 검색 기록, 찜 목록, 선호 카테고리를 바탕으로 관심 상품을 추천한다. 향후 확장 기능으로 적용한다. | 사용자 검색 로그, 찜 목록, 선호 카테고리 | 사용자에게 적합한 추천 상품 목록을 제공한다. | 낮음 |
| AI-004 | 챗봇 FAQ / AI 기능 | 추천 점수 기반 상품 추천 | 상품별 추천 점수를 계산하여 사용자에게 우선순위가 높은 상품을 추천한다. 향후 확장 기능으로 적용한다. | 사용자 ID, 상품 ID, 추천 점수, 추천 사유 | 추천 점수 기준으로 정렬된 상품 목록을 제공한다. | 낮음 |