마우스 오버 시 클릭 포인터 표시 | 입력: 클릭 이벤트
출력: 홈('/')으로 라우팅 | React Router (<Link>, useNavigate) | - (단순 라우팅으로 별도 예외 처리 불필요) | P4 |
| SEC-02 | Login | 1. 상단 헤더 | 1-2. 네비게이션 메뉴 | 사용자는 네비게이션 메뉴를 통해 서비스의 주요 페이지로 빠르게 이동할 수 있다. | 1. 헤더의 '트레이딩' 메뉴 클릭
로그인 상태에 따라 메뉴 활성/비활성 | 입력: 메뉴 클릭 이벤트
출력: 해당 페이지로 라우팅 | React Router, 조건부 렌더링 | - (단순 라우팅으로 별도 예외 처리 불필요) | P4 |
| SEC-02 | Login | 1. 상단 헤더 | 1-3. 로그인/회원가입 | 사용자는 소셜 계정으로 간편하게 로그인하거나 회원가입 페이지로 이동할 수 있다. | 1. '로그인' 버튼 클릭
모달에서 로그인 버튼 선택
메인 서비스에서 인증 후 홈으로 이동하며 로그인 완료 | - 헤더 우측 '로그인' 버튼
클릭 시 소셜 로그인 버튼이 포함된 모달 창 | 입력: 메인 서비스 계정 인증 정보
출력: 서비스 인증 토큰(JWT) | Spring Security OAuth2 Client | - 인증 실패 시: "인증에 실패했습니다."
서버 응답 지연 시: 로딩 스피너 표시 | P4 |
| SEC-16 | Home | 2. 메인 페이지 | 2-1. 시세 배너 | 사용자는 홈에서 주요 종목/지수 정보를 실시간 차트로 한눈에 파악할 수 있다. | 1. 홈 페이지 접속2. 상단 시세 배너에서 주요 시세 확인
특정 종목 클릭 시 해당 트레이딩 페이지로 이동 | - 좌우 스크롤 가능한 카드형 배너
종목명, 현재가, 등락률, 미니 차트 | 입력: 페이지 로드
출력: 실시간 시세 데이터 | KIS API + WebSocket, TradingView API | - 데이터 로드 실패: "정보를 불러오는 데 실패했습니다." | P3 |
| SEC-17 | Home | 2. 메인 페이지 | 2-2. CTA 배너 | 사용자는 핵심 기능(계좌개설 등)으로 바로 연결되는 버튼을 통해 빠르게 원하는 작업을 시작할 수 있다. | 1. 홈 중앙의 '계좌 개설하기' 배너 클릭
계좌 개설 페이지로 이동 | - 주목도 높은 디자인의 배너 이미지
명확한 행동 유도 문구가 포함된 버튼 | 입력: 버튼 클릭 이벤트
출력: 지정된 페이지로 라우팅 | React Router | - (단순 라우팅으로 별도 예외 처리 불필요) | P3 |
| SEC-18 | Home | 2. 메인 페이지 | 2-3. 카드형 콘텐츠 | 사용자는 자신의 포트폴리오 요약 정보나 최신 금융 뉴스를 카드를 통해 확인할 수 있다. | 1. 홈 하단의 포트폴리오 요약 카드 확인
'더보기' 클릭 시 전체 포트폴리오 페이지로 이동 | - 포트폴리오 요약 카드(수익률 등)
금융 뉴스 카드(제목, 출처 등) | 입력: 페이지 로드
출력: DB/API에서 조회한 콘텐츠 데이터 | 내부 DB, 뉴스 API | - 데이터 로드 실패: "콘텐츠를 불러올 수 없습니다." | P3 |
| SEC-19 | Home | 2. 메인 페이지 | 2-4. 푸터 | 사용자는 웹사이트 하단에서 회사 정보, 이용 약관 등 필수 정보를 찾을 수 있다. | 1. 페이지 최하단으로 스크롤
'이용약관' 링크 클릭
약관 상세 페이지로 이동 | - 회사 정보, 약관, 개인정보처리방침, 고객센터 링크 | 입력: 링크 클릭 이벤트
출력: 해당 정보 페이지로 이동 | 정적 페이지 라우팅 | - (정적 정보로 별도 예외 처리 불필요) | P3 |
| SEC-09 | Trading | 3. 트레이딩 | 3-1. 실시간 차트 | 사용자는 선택한 종목의 가격, 거래량 등 변동 추이를 실시간 차트로 확인할 수 있다. | 1. 트레이딩 페이지 진입
기본 선택된 종목(예: 삼성전자)의 차트 확인
차트 타입(봉, 선) 및 시간 단위 변경 | - 가격/거래량 표시 차트 영역
차트 타입, 시간 단위, 보조지표 설정 UI | 입력: 종목 코드
출력: 해당 종목의 시세 데이터 (JSON) | TradingView API, KIS API + WebSocket | - 데이터 수신 지연/실패: "실시간 데이터 연결이 원활하지 않습니다." | P1 |
| SEC-10, SEC-11 | Trading | 3. 트레이딩 | 3-2. 주문 창 | 사용자는 수량과 가격을 입력하여 매수/매도 주문을 정확하게 실행할 수 있다. | 1. 매수 탭 선택 및 수량 입력
'매수' 버튼 클릭
주문 확인 모달에서 '확인' 클릭 후 주문 완료 | - 매수(녹색)/매도(적색) 탭
수량/가격 입력 필드, 주문 가능 금액 표시 | 입력: 종목 코드, 주문 종류, 수량, 가격
출력: 주문 성공/실패 결과 | KIS 주문 API | - 잔고 부족: "주문 가능 금액이 부족합니다."
서버 오류: "주문 처리 중 오류가 발생했습니다." | P1 |
| SEC-12 | Trading | 3. 트레이딩 | 3-3. 종목 검색/목록 | 사용자는 원하는 종목을 검색하거나 관심 종목 목록을 통해 빠르게 종목을 선택할 수 있다. | 1. 검색창에 '카카오' 입력
검색 결과의 '카카오' 클릭
해당 종목의 차트와 주문 창으로 변경 | - 종목 검색 입력창
자동 완성 드롭다운
관심 종목/보유 종목 탭 | 입력: 검색 키워드
출력: 검색된 종목 목록 | KIS 종목 조회 API, Alpha Vantage API | - 검색 결과 없음: "검색 결과가 없습니다."
API 조회 실패: "종목 정보를 불러올 수 없습니다." | P1 |
| SEC-03 | Account | 4. 계좌 관리 | 4-1. 계좌 개설 | 사용자는 비대면 본인 인증을 통해 증권 계좌를 신규 개설할 수 있다. | 1. '계좌 개설' 버튼 클릭
본인인증 ( 이메일 )
약관 동의
계좌 비밀번호 4자리 설정
계좌 개설 완료 | - 진행 단계(Step) UI
이메일 입력 박스
이메일 인증번호 입력 박스
약관 동의 체크박스
계좌 비밀번호 4자리 설정 UI | 입력: 본인 인증 정보, 약관 동의, 계좌 비밀번호 4자리
출력: 계좌 개설 완료 | 구글 이메일 인증 서비스 | - 이미 계좌 존재: "이미 개설된 계좌가 존재합니다."
계좌 비밀번호 확인 단계에서 틀렸을 시 : “비밀번호 4자리를 다시 확인해주세요.” | P2 |
| SEC-04, SEC-05 | Account | 4. 계좌 관리 | 4-2. 입금/출금 | 사용자는 외부 은행 계좌와 증권 계좌 간에 자금을 안전하게 이체할 수 있다. | 1. '입금' 탭 선택 및 금액 입력
'입금하기' 클릭 후 간편 인증
입금 완료 및 잔고 즉시 반영 | - 입금/출금 탭
금액 입력 필드
'입금/출금하기' CTA 버튼 | 입력: 이체 금액, 사용자 인증 정보
출력: 이체 성공/실패 결과 | | - 이체 한도 초과: "1회 이체 한도를 초과했습니다."
은행 점검 시간: "은행 점검 시간입니다." | P2 |
| SEC-06 | Account | 4. 계좌 관리 | 4-3. 이체 | 사용자는 자신의 다른 증권 계좌 또는 타인의 증권 계좌로 자금을 이체할 수 있다. | 1. '이체' 탭 선택2. 이체할 계좌번호와 금액 입력
'이체하기' 클릭 후 인증
이체 완료 | - 계좌번호, 금액 입력 필드
최근 이체 내역, 내 계좌 목록 | 입력: 출금/입금 계좌번호, 금액, 인증 정보
출력: 이체 성공/실패 결과 | 내부 DB 트랜잭션 | - 수취인 계좌 없음: "받는 분의 계좌번호가 올바르지 않습니다." | P2 |
| SEC-07, SEC-08 | Account | 4. 계좌 관리 | 4-4. 거래내역/잔고 | 사용자는 기간별 입출금, 매수/매도 내역과 현재 총자산을 조회할 수 있다. | 1. '거래내역' 탭 선택
조회 기간 설정(1주일)
해당 기간의 거래내역 목록 확인 | - 조회 기간 설정 필터(캘린더)
거래 구분(전체, 입금, 출금, 매수, 매도) 필터 | 입력: 조회 기간, 거래 구분
출력: 필터링된 거래 내역 리스트 | 내부 DB | - 조회 기간 오류: "조회 가능 기간을 초과했습니다."
데이터 없음: "해당 기간의 거래 내역이 없습니다." | P2 |
| SEC-12 | Portfolio | 5. 포트폴리오 | 5-1. 보유 종목 목록 | 사용자는 자신이 보유한 모든 종목의 주요 정보를 목록 형태로 확인할 수 있다. | 1. 포트폴리오 페이지 진입
보유 종목 목록과 각 종목의 수량, 평단가 확인 | - 보유 종목 리스트 테이블
(종목명, 보유수량, 평단가, 현재가, 수익률) | 입력: 페이지 로드
출력: DB에서 조회한 보유 종목 데이터 | 내부 DB | - 보유 종목 없음: "보유한 종목이 없습니다." 안내 문구 | P5 |
| SEC-13 | Portfolio | 5. 포트폴리오 | 5-2. 평단가 계산 | 시스템은 사용자의 총 매입 금액과 수량을 기준으로 각 종목의 평균 매입 단가를 계산하여 보여준다. | (사용자 직접 인터랙션 없음) 매수 체결 시 자동으로 재계산되어 포트폴리오에 반영됨 | - '평단가' 항목에 계산된 값 표시 | 입력: (서버) 매수 체결 데이터
출력: 계산된 평균 매입 단가 | 내부 DB (Batch 또는 실시간 계산 로직) | - (서버 로직으로 별도 UI 예외 처리 불필요) | P5 |
| SEC-14 | Portfolio | 5. 포트폴리오 | 5-3. 현재가/수익률 | 사용자는 보유 종목의 실시간 평가금액과 수익률을 통해 투자 현황을 직관적으로 파악할 수 있다. | 1. 포트폴리오 페이지에서 총 수익률 확인
데이터는 주기적으로 자동 갱신됨 | - 총 자산 요약 카드 (총 매입, 총 평가, 총 수익률)
개별 종목별 수익률(%)과 평가손익(원) 표시 | 입력: 페이지 로드, 주기적 갱신 요청
출력: 실시간 시세가 반영된 데이터 | KIS 실시간 시세 API, Alpha Vantage API | - 시세 조회 실패: "실시간 시세를 불러올 수 없습니다." | P5 |
| SEC-01 | Regist | 6. 회원가입 | 6-1. Oauth 가입 | 사용자는 Oauth 인증을 통해 신규 계정을 생성할 수 있다. | 1. 로그인 버튼을 누른다
메인 서비스 로그인 페이지로 넘어감
oauth 인증을 통해 증권 회원가입(최초 1회성)
인증 완료 후 가입 성공 | - 이메일, 비밀번호 입력 필드
실시간 유효성 검증 메시지 | 입력: 메인 서비스의 oauth 기반 로그인 정보 등
출력: 회원가입 성공/실패 메시지 | | - 이메일 형식 오류: "올바른 이메일 형식이 아닙니다."
이미 가입된 이메일: "이미 사용 중인 이메일입니다." | P4 |
| SEC-01 | Regist | 6. 회원가입 | 6-2. 약관 동의 | 사용자는 서비스 이용 약관 및 개인정보 처리 방침을 확인하고 동의해야 회원가입을 완료할 수 있다. | 1. '전체 동의' 체크박스 클릭
모든 필수 약관에 자동 동의 처리
'가입하기' 버튼 활성화 | - '전체 동의' 체크박스
각 약관별 보기 링크 및 동의 체크박스 | 입력: 약관 동의 여부 (Boolean)
출력: '가입하기' 버튼 활성/비활성 상태 | 내부 DB | - 필수 약관 미동의: "필수 약관에 모두 동의해주세요." (버튼 비활성화) | P4 |