1 회원가입 |
1.1 이메일 회원가입 |
- 사용자의 입력 유효성 검증: 이메일, 비밀번호- 이메일 중복 확인- 이메일 인증 절차 포함- 유저 정보 입력: 닉네임, 생년월일- 가입 완료시 로그인 페이지로 이동 |
- Spring Secutiry + JWT 인증- 비밀번호는 8~30자, 영소문자+숫자+특수기호 포함- 비밀번호 암호화 저장- 닉네임은 중복 불가능 |
1.0 |
실패시 에러 메시지 토스트 노출 |
, , |
, , |
25 |
2 로그인 |
2.1 이메일 로그인 |
- 사용자의 입력 유효성 검증: 이메일, 비밀번호- 회원 검증- JWT(refresh, access) 발급- 로그인 완료 |
- Spring Security + JWT 인증 |
1.0 |
실패시 에러 메시지 토스트 노출 |
|
, , |
10 |
|
제목 없음 |
|
|
|
|
|
|
50 |
|
2.3 토큰 갱신 |
- 자동 토큰 갱신 |
- refresh token으로 JWT 재발급 |
1.0 |
발급 실패시 로그아웃 처리 |
|
, , |
5 |
3 로그아웃 |
3.1 로그아웃 |
- 세션 해제 |
- cookie 삭제 |
1.0 |
실패시 에러 메시지 토스트 노출 |
|
|
15 |
5 메인 화면 |
5.1 실시간 키워드 리스트 |
- 실시간 키워드 Top 10개 보기 |
|
1.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
19 |
|
5.2 실시간 포스트 리스트 |
- 실시간 키워드 1:1 매칭 포스트 리스트 보기(포스트 썸네일, 포스트 제목, AI 요약 내용 최대 50자, 작성일) |
- 페이지네이션 |
1.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
21 |
|
5.3 실시간 인기 뉴스 5개 |
- 실시간으로 인기 있는 뉴스(Naver News) Top 5개 노출 |
- 당일 수집된 출처 모음 기준 |
1.0 |
|
|
, |
33 |
|
5.4 인기 뉴스 전체보기 버튼 |
- 17.1 인기 뉴스 리스트 로 이동 |
|
1.0 |
|
|
, |
30 |
|
5.5 실시간 인기 유튜브 5개 |
- 실시간으로 인기 있는 유튜브 Top 5개 노출 |
- 당일 수집된 출처 모음 기준 |
1.0 |
|
|
, |
39 |
|
5.6 인기 유튜브 전체보기 버튼 |
- 16.1 인기 유튜브 리스트 로 이동 |
|
1.0 |
|
|
, |
32 |
6 포스트 화면 |
6.1 소스 표기 |
- 출처 뉴스 링크 리스트- 출처 유튜브 링크 리스트 |
- Open API 사용 |
1.0 |
로딩 및 로딩 실패 메시지 노출 |
, |
|
22 |
|
6.2 요약 내용 |
- 요약 내용 |
- 소스 뉴스 1개의 내용을 가져오거나 AI 기능 활용하여 요약 |
1.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
29 |
|
6.3 댓글 작성 및 반응 공유 |
- 댓글 조회- 댓글 작성- 작성한 댓글 수정/삭제- 댓글 반응 좋아요 |
- 사용자 토큰 확인 필요 (조회 제외)- 댓글 조회시 페이지네이션- 수정/삭제는 작성자 본인만 가능- 좋아요는 작성자 제외 가능 |
1.0 |
토큰 검증 실패시 로그인 제안 메시지 노출조회시 로딩 및 로딩 실패 메시지 노출이외 기능 실패시 에러 메시지 토스트 노출 |
, , , , , |
, , , , , |
16 |
|
6.6 실시간 키워드 리스트 |
5.1 실시간 키워드 리스트 와 동일 |
|
1.0 |
|
|
, , , |
41 |
14 회원 정보 |
14.1 회원 정보 보기 |
- 회원 정보(이메일, 닉네임, 즐겨찾기한 키워드, 구독한 주간리포트 주제) 조회 |
- 사용자 토큰 확인 필요- 결제 여부에 따라 정보 제공 |
1.0 |
로딩 및 로딩 실패 메시지 노출 |
|
, |
24 |
16 인기 유튜브 화면 |
16.1 인기 유튜브 리스트 |
- 실시간 출처 유튜브 리스트를 인기순으로 조회 |
- 당일 수집된 출처 모음 기준- 소스 페이지네이션 |
1.0 |
|
|
, |
36 |
|
16.2 실시간 인기 뉴스 5개 |
5.3 실시간 인기 뉴스 5개 와 동일 |
- 당일 수집된 출처 모음 기준 |
1.0 |
|
|
, |
35 |
17 인기 뉴스 화면 |
17.1 인기 뉴스 리스트 |
- 실시간 출처 뉴스 리스트를 인기순으로 조회 |
- 당일 수집된 출처 모음 기준- 소스 페이지네이션 |
1.0 |
|
|
, |
34 |
|
17.2 실시간 인기 유튜브 5개 |
5.5 실시간 인기 유튜브 5개 와 동일 |
- 당일 수집된 출처 모음 기준 |
1.0 |
|
|
, |
40 |
[BE] 18 Trend 스케줄러 |
18.1 1시간 단위 Job |
- 1시간 마다 키워드 수집부터 포스트 생성까지의 스케줄러 동작 |
|
1.0 |
|
|
|
43 |
|
18.2 키워드수집 |
- fetchTrendingKeywords: Google Trends RSS 호출 → JSON 수신 → DB에 Upsert → 시간대별 점수 계산 → Top‑10 키워드 선정 → ExecutionContext에 저장 |
|
1.0 |
|
|
|
44 |
|
18.3 소스 검색 |
- searchSources: Naver News API(10) + YouTube API(10) 병렬 호출 → URL 정규화 → SHA‑256 fingerprint → 중복 방어 |
|
1.0 |
|
|
|
46 |
|
18.5 포스트 생성 |
- generatePost: 신규 Source 기반 LLM 요약 호출 → DB 저장 |
|
1.0 |
|
|
|
42 |
4 회원 탈퇴 |
4.1 회원 탈퇴 |
- 회원 탈퇴 |
- soft-delete |
1.5 |
실패시 에러 메시지 토스트 노출 |
|
|
6 |
15 키워드 화면 |
15.1 해당 포스트 리스트 |
- 실시간 키워드 클릭시 해당하는 포스트 목록 조회 |
- 포스트 페이지네이션 |
1.5 |
로딩 및 로딩 실패 메시지 노출 |
|
|
38 |
|
15.2 해당 소스 리스트 |
- 키워드에 해당하는 소스 5개 조회 |
|
1.5 |
로딩 및 로딩 실패 메시지 노출 |
|
|
31 |
|
15.3 실시간 키워드 리스트 |
5.1 실시간 키워드 리스트 와 동일 |
|
1.5 |
로딩 및 로딩 실패 메시지 노출 |
|
|
37 |
|
18.4 포스트 신규성 평가 |
- evaluateNovelty: 수집된 Source 결과 기반 → Novelty 조건 평가 및 플래그 업데이트 |
|
1.5 |
|
|
|
45 |
|
2.2 비밀번호 초기화 |
- 사용자의 입력 검증(이메일)- 이메일 인증- 새로운 비밀번호 입력- 비밀번호 수정 완료 |
- 비밀번호는 8~30자, 영소문자+숫자+특수기호 포함- 비밀번호 암호화 저장 |
2.0 |
인증 실패시 기존 비밀번호 유지실패시 에러 메시지 토스트 노출 |
, , |
|
18 |
|
6.4 댓글 신고 |
- 댓글 옆의 ‘신고’ 버튼을 눌러 신고- 댓글 신고 시 이유 선택 후 제출- 이유 종류 리스트: 부적절한 내용, 불쾌감을 일으키는 내용, 광고, 기타(의견 작성 없음) |
- 사용자 토큰 확인 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
27 |
|
6.5 포스트 신고 |
- 포스트 우측 하단의 ‘신고’ 버튼을 눌러 신고- 포스트 신고 시 이유 선택 후 제출- 이유 종류 리스트: 부적절한 내용, 실제와 다른 내용, 기타(의견 작성 없음) |
- 사용자 토큰 확인 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
1 |
7 키워드 검색 |
7.1 키워드 검색 결과 리스트 |
- 원하는 키워드로 검색하여 관련 포스트 리스트를 최신순, 이름순으로 볼 수 있음- 키워드 검색바는 상단의 메뉴바에 있어야 됨 (와이어 프레임 참고)- 글자를 쓰면 연관된 키워드가 나와야 됩니다.(예: ‘가’를 검색창에 입력하면 아래로 ‘가나’, ‘가방’, ‘가수’ 이런 연관된 키워드가 떠야합니다.) |
- 사용자 토큰 확인 필요- 페이지네이션 |
2.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
7 |
12 관리자 신고 관리 |
12.1 포스트 신고 관리 |
- 관리자 검수- 신고된 포스트 목록 조회- 정렬: (기본)최신순, 신고된 횟수 (검색창 우측에 정렬 목록이 나옵니다.)- 포스트 제목, 내용, 키워드 사유 확인 가능- 페이지네이션 적용- 검색창은 리스트 위 상단에 위치 (와이어 프레임 참고)- 검색창 좌측에 검색 대상 드롭다운 표시(포스트 제목, 포스트 내용, 키워드, 사유)- 드롭다운 좌측에 ‘신고 승인’, ‘신고 거부’ 버튼 위치 (각 포스트를 체크박스로 체크하여 각각 신고 승인과 신고 거부를 함) |
- 사용자 토큰 확인 필요- 관리자 권한 필요- 신고 조회시 페이지네이션- 소프트 딜리트 |
2.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
9 |
|
12.2 신고된 포스트 삭제 |
- 부적절한 포스트 삭제- 체크박스에 체크 후 삭제 버튼을 눌러 여러개 삭제 가능 |
- 사용자 토큰 확인 필요- 관리자 권한 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
26 |
|
12.4 사용자 댓글 신고 관리 |
- 관리자 검수- 신고된 댓글 목록 조회- 정렬: (기본)최신순, 신고된 횟수 (검색창 우측에 정렬 목록이 나옵니다.)- 닉네임, 포스트 제목, 내용, 댓글 내용 사유 확인 가능- 페이지네이션 적용- 검색창은 리스트 위 상단에 위치 (와이어 프레임 참고)- 검색창 좌측에 검색 대상 드롭다운 표시(닉네임, 포스트 제목, 댓글 내용, 사유)- 드롭다운 좌측에 ‘신고 승인’, ‘신고 거부’ 버튼 위치 (각 포스트를 체크박스로 체크하여 각각 신고 승인과 신고 거부를 함. 신고 승인 및 거부를 하면 )- 댓글 신고 내역에서 탈퇴한 유저의 닉네임은 ‘탈퇴한 회원’이라고 적혀지게 됨 |
- 사용자 토큰 확인 필요- 관리자 권한 필요- 신고 조회시 페이지네이션- 소프트 딜리트 |
2.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
23 |
|
12.5 신고된 댓글 숨김 |
- 부적절한 댓글 숨김 처리- 체크박스에 체크 후 삭제 버튼을 눌러 여러개 삭제 가능 |
- 사용자 토큰 확인 필요- 관리자 권한 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
28 |
13 관리자 회원 관리 |
13.1 회원 리스트 |
- 회원 목록을 리스트로 볼 수 있음- 정렬: (기본) 닉네임- 리스트에서 닉네임, 이메일, 역할 확인 가능(관리자, 블랙, 유저)- 페이지네이션 적용- 검색창은 리스트 위 상단에 위치 (와이어 프레임 참고)- 검색창 좌측에 검색 대상 리스트 표시 (닉네임, 이메일, 역할) |
- 사용자 토큰 확인 필요- 관리자 권한 필요- 페이지네이션 |
2.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
20 |
|
13.2 회원 권한 수정 |
- 악성 유저는 블랙 처리하여 댓글 권한 전체 제한- 관리자가 역할을 눌러 역할 변경 가능(유저, 블랙)- 관리자 역할은 역할이 변경되지 않고 줄 수도 없음 |
- 사용자 토큰 확인 필요- 관리자 권한 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
17 |
|
4.2 회원 정보 수정 |
- 닉네임을 수정할 수 있음- 비밀번호 수정할 수 있음 |
- 사용자 토큰 검증 필요- 닉네임은 중복 불가능- 닉네임은 210자 이내- 비밀번호는 820자, 영문자+숫자+특수기호 포함- 비밀번호 암호화 저장 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
11 |
|
12.6 댓글 신고 거부 |
- 부적절한 신고 거부- 체크박스에 체크 후 삭제 버튼을 눌러 여러개 거부 가능 |
- 사용자 토큰 확인 필요- 관리자 권한 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
49 |
|
12.3 포스트 신고 거부 |
- 부적절한 신고 거부- 체크박스에 체크 후 삭제 버튼을 눌러 여러개 거부 가능 |
- 사용자 토큰 확인 필요- 관리자 권한 필요 |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
48 |
4 회원 탈퇴 |
4.1 회원 탈퇴 |
- 회원 탈퇴 시 댓글, 사용자 댓글 신고 관리에서 해당 사용자의 닉네임이 ‘탈퇴한 회원’으로 변경- 탈퇴 회원은 관리자 회원 관리 목록에 나타나지 않음 |
- soft-delete |
2.0 |
실패시 에러 메시지 토스트 노출 |
|
|
47 |
10 트렌드 분석 |
10.1 키워드 타임라인 |
- 이슈화된 최초/피크/퇴출 시점, 연속 노출 기간 |
- 사용자 토큰 확인 필요- 결제 필요 |
3.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
13 |
|
10.2 키워드 감성 분석 |
- 키워드 감성 분석 결과 조회 |
- 사용자 토큰 확인 필요- 결제 필요 |
3.0 |
로딩 및 로딩 실패 메시지 노출 |
|
|
12 |
8 키워드 즐겨찾기 |
8.1 키워드 저장 및 해제(제거) |
- 키워드를 저장할 수 있음- 저장해둔 키워드를 해제할 수 있음 |
- 사용자 토큰 확인 필요 |
백로그 |
실패시 에러 메시지 토스트 노출 |
, |
|
8 |
|
8.2 즐겨찾기 리스트(제거) |
- 마이페이지에서 저장한 키워드 목록 확인 |
- 사용자 토큰 확인 필요- 페이지네이션 |
백로그 |
로딩 및 로딩 실패 메시지 노출 |
|
|
4 |
9 알림 |
9.1 즐겨찾기 키워드 알림(제거) |
- 즐겨찾기한 키워드 중 알림 설정을 한 키워드에 대해서 새로운 이슈 발생 시 푸시 알림 |
- 키워드 검색량 급상승시 알림 |
백로그 |
|
|
|
3 |
11 주간리포트 |
11.1 구독 관리(제거) |
- 특정 주제(인기, 사회, 스포츠 등) 구독 및 취소 |
- 사용자 토큰 확인 필요- 결제 필요 |
백로그 |
실패시 에러 메시지 토스트 노출 |
|
|
14 |
|
11.2 리포트 발송(제거) |
- PDF 이메일 |
- Batch |
백로그 |
|
|
|
2 |