개인FastAPI + SQLite · React dashboard · 다중 source adapters · durable outbox
임상병리사 채용 의사결정 대시보드
가족 사용자 요구 기반 제품 설계·FE/BE·운영
2026-07-01 — present
채용 플랫폼과 병원 채용 페이지 원천을 정규화해 탐색하고, 마감·지역·고용형태 추천 이유와 계정별 지원 상태를 함께 관리하는 모바일 우선 대시보드
시스템 아키텍처
문제 해결 과정
1
채용 원천마다 마감·지역·고용형태 표현이 달라 비교와 우선순위 판단이 어려움
해결 과정
source adapter에서 ingestion 시점에 필드를 정규화하고 수집 원문 링크·freshness·open 상태를 read model에 저장
결과
한 화면에서 마감·지역·고용형태 필터와 추천 이유 제공
2
알림 worker 중복 실행이나 일시 실패가 중복 발송 또는 공고 누락으로 이어질 수 있음
해결 과정
dedupe key outbox, 원자적 lease, 제한 재시도, 전달 확인 후 watermark 전진을 분리 구현
결과
전달 성공 전 공고 stream을 완료 처리하지 않는 명시적 상태 계약
합성 시나리오
실제 운영·개인 데이터 없이 코드의 상태 전이와 경계만 고정 fixture로 재현합니다.
프로젝트 설명
채용 플랫폼과 병원 채용 페이지를 adapter로 수집해 공고 ID·마감·지역·고용형태를 하나의 read model로 정규화합니다. 공개 탐색과 로그인 후 관심·지원·면접·결과 상태를 분리하고, 알림은 dedupe key·원자적 lease·전달 성공 확인 후 watermark 전진으로 중복 실행과 일시 실패를 다룹니다. 공개 사례에는 실제 지원 기록·가족 데이터·운영 URL·알림 대상을 포함하지 않습니다.
주요 내용
- 다중 채용 플랫폼·병원 원천 adapter와 정규화 read model
- 수집 원문 링크·마감·지역·고용형태 기반 설명 가능한 추천
- 관심·지원·면접·결과의 계정별 tracker
- dedupe·lease·delivery confirmation 기반 durable outbox
기술 선택 근거
- ▶source별 deadline text를 ingestion에서 한 번 정규화해 조회·필터의 의미를 통일
- ▶public discovery와 account-scoped application state를 분리
- ▶outbox 완료와 watermark 전진을 delivery confirmation 뒤로 묶어 누락 경계를 명시
깨달은 점
- •가족용 제품은 자동화보다 수집 원문 링크와 판단 이유를 먼저 보여줘야 신뢰를 얻는다.
- •알림 신뢰성은 재시도 횟수보다 완료 조건과 watermark 경계를 명시하는 데서 시작한다.
기술 스택
PythonFastAPISQLiteReactTypeScriptPlaywrightDurable Outbox