Skip to content

Feat: #117 자소서 분석, 공고 분석 완료 알림 구현 - #124

Merged
yiyoonseo merged 1 commit into
developfrom
feature/#117-qa-v1.0
Jul 31, 2026
Merged

Feat: #117 자소서 분석, 공고 분석 완료 알림 구현#124
yiyoonseo merged 1 commit into
developfrom
feature/#117-qa-v1.0

Conversation

@yiyoonseo

@yiyoonseo yiyoonseo commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

🔗 관련 이슈

#117

📝 개요

  • 추가 수정사항 반영

⌨️ 작업 상세 내용

  • 채점 중 구현
  • 분석 완료 알림 구현

💡 코드 설명 및 참고사항

최초 로드 방어벽 추가 (isFirstNotificationLoadRef)

LNB 컴포넌트가 처음 마운트되어 알림을 fetch할 때(최초 1회)는 받아온 모든 알림을 '이미 본 알림'으로 처리하여, 앱 접속 직후 과거 알림들이 토스트로 쏟아지는 현상을 방지함.

알림 ID 블랙리스트(Set) 적용 (seenToastIdsRef)

토스트로 띄웠거나 최초에 로드된 알림의 고유 id를 Set 객체에 저장(기억)하여, 이후 폴링에서 같은 id가 들어오면 무조건 필터링하도록 중복 차단 로직을 견고하게 구현함.

신규 분석 알림 연동

진짜 새로운(처음 보는 ID의) 분석 완료/실패 알림이 들어왔을 때만 토스트를 띄우고, 동시에 loadRecentItems()를 호출해 '최근 모의지원 목록'이 즉각적으로 갱신되도록 연동함.

📸 스크린샷 (UI 변경 시)

🔍 리뷰 요구사항 (Reviewers)

  • [ ]

⚠️ 로컬 실행 시 유의사항

Summary by CodeRabbit

  • New Features

    • Added dismissible toast notifications for analysis results, including success and failure messages.
    • Added automatic application updates when analysis completes or fails.
    • Expanded application loading to display up to 100 items.
  • Improvements

    • Notifications now refresh periodically and when returning to the app.
    • Duplicate notifications are prevented, keeping alerts clear and relevant.
    • Applications currently being analyzed are prioritized in the list.

@yiyoonseo
yiyoonseo merged commit 2b84801 into develop Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: da131964-24de-46ec-8a27-7173fd7d5cd0

📥 Commits

Reviewing files that changed from the base of the PR and between e3e3a95 and d8e2177.

📒 Files selected for processing (6)
  • jobdri/src/app/page.tsx
  • jobdri/src/components/common/lnb/Lnb.tsx
  • jobdri/src/components/mockApply/home/types.ts
  • jobdri/src/lib/api/jobPostings.ts
  • jobdri/src/lib/api/mockApplies.ts
  • jobdri/src/lib/api/notification.ts

📝 Walkthrough

Walkthrough

The home page now loads task-aware applications and monitors job-posting analysis streams. The LNB replaces notification streaming with polling and focus refreshes, deduplicates unread notifications, and displays analysis status toasts.

Changes

Async analysis and notifications

Layer / File(s) Summary
Task-aware API contracts and application loading
jobdri/src/components/mockApply/home/types.ts, jobdri/src/lib/api/jobPostings.ts, jobdri/src/lib/api/mockApplies.ts
The application and posting types accept taskId. fetchMyMockApplies supports a configurable size and defaults to 100.
Home analysis tracking and toast rendering
jobdri/src/app/page.tsx
Home enriches applications with posting data, prioritizes analyzing drafts, subscribes to task streams, reloads terminal results, and renders dismissible toasts.
Notification payload handling
jobdri/src/lib/api/notification.ts
Notification items accept createdAt. SSE parsing supports nested result payloads and no longer requires a non-empty title.
LNB notification polling and toasts
jobdri/src/components/common/lnb/Lnb.tsx
The LNB polls immediately, on focus, and every 15 seconds. It deduplicates unread notifications, maps analysis outcomes to toast variants, and refreshes recent applications.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Home
  participant MockApplyAPI
  participant AnalysisStream
  participant Lnb
  participant NotificationAPI
  Home->>MockApplyAPI: Load up to 100 applications
  MockApplyAPI-->>Home: Return applications with taskId
  Home->>AnalysisStream: Subscribe to task status
  AnalysisStream-->>Home: Return terminal analysis status
  Home->>MockApplyAPI: Reload application results
  Lnb->>NotificationAPI: Poll notifications
  NotificationAPI-->>Lnb: Return notification results
  Lnb->>Home: Refresh recent applications on analysis updates
Loading

Possibly related PRs

Suggested labels: ⭐ Feature, 🎨 UI

Suggested reviewers: minnngo

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/#117-qa-v1.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feat: 추가 수정사항

1 participant