케어매치 - 보호사&간병인 중개 플랫폼 웹앱

간병 매칭·결제·정산·분쟁·서류 검증까지 운영 전 영역을 웹·모바일·관리자로 통합한 풀스택 실행형 플랫폼입니다.

2026-04-20 (월) 14:54:08 조회 493
문의하기 1
케어매치 - 보호사&간병인 중개 플랫폼 웹앱
React Next.js Tailwind CSS Node.js Express JavaScript TypeScript PostgreSQL Firebase Redis React Native Expo

개요 이 프로젝트는 단순한 매칭 사이트가 아니라 간병 서비스의 전체 운영 흐름을 아우르는 실행형 플랫폼입니다.

보호자는 환자 정보를 등록하고 간병 요청을 올려 지원자 중 원하는 간병인을 선택·결제·리뷰할 수 있으며, 간병인은 서류 등록·지원·계약·정산·교육까지 일관된 흐름으로 관리할 수 있습니다. 관리자는 사용자·서류·매칭·결제·분쟁·알림을 통합 패널에서 감독·운영할 수 있습니다.

주요 기능

보호자(Guardian) 기능

  • 회원가입 / 카카오·네이버 간편 로그인
  • 환자 등록 및 관리 (질환·병력·이동성·약물 등)
  • 간병 요청 등록 (1:1/가족 간병, 24시간/시간제, 병원/자택/시설)
  • 지원자 목록 확인 및 간병인 선택
  • 결제 (토스페이먼츠 연동 — 카드/무통장/직접결제, 포인트·프로모션 적용)
  • 계약서 PDF 열람, 간병일지 열람
  • 간병 연장 요청 (기존 간병인 or 신규 공고)
  • 분쟁 접수, 보험서류 신청
  • 리뷰 작성 (별점·코멘트·재고용 의사)
  • 환불 요청 (2단계 플로우)
  • 알림 수신 (푸시 + 앱 내)

간병인(Caregiver) 기능

  • 회원가입 + 자격증/신분증/범죄이력 조회서 업로드
  • 관리자 승인 대기 → 활동 개시
  • 간병 요청 탐색 및 지원 (보호자 제시가 수락 / 제안가 제시)
  • 계약 확인, 간병일지 작성 (사진 포함)
  • 체크인/체크아웃 기록
  • 수익·정산 조회, 협회비 납부 관리
  • 교육 수강
  • 뱃지(우수 간병사) 시스템
  • 알림 수신

관리자(Admin) 기능

  • 대시보드 (오늘 요청/매칭, 월 수익, 대기 건수, 분쟁 건수)
  • 간병인 관리 (승인/거절/블랙리스트/패널티/메모)
  • 서류 검증 (자격증·신분증·범죄이력 조회서 각각 승인)
  • 환자 관리 (등록·수정·삭제, 결제 이력)
  • 간병 일감(요청) 관리 (상태 흐름 정렬, 다중 필터, 지원자 추적)
  • 매칭/계약 관리 (강제 취소·완료, 긴급 재매칭, 중간정산)
  • 결제/정산 관리 (환불 2단계 승인, 추가비, 정산 일괄 지급)
  • 분쟁 처리
  • 신고 관리 (UGC 모더레이션, iOS 심사 대응)
  • 보험서류 신청 관리
  • 협회비 월별 관리
  • 교육 과정 CRUD
  • 프로모션 / 플랫폼 설정 (수수료율·추천 포인트·임계값)
  • 통계 + CSV 내보내기
  • 알림 템플릿 카탈로그 (변수 사전·미리보기)
  • 개별/전체 푸시 발송
  • 관리자 전용 알림 (가입 대기·서류 검증·자동 정지·결제 만료)

시스템 특징

  1. 다중 클라이언트 통합

    • 반응형 웹 (보호자·간병인 공용 대시보드)
    • 관리자 전용 SPA
    • 네이티브 앱 2종 (보호자용·간병인용) — 결제·푸시만 네이티브, UI는 웹뷰 공유
  2. 템플릿 기반 알림 시스템

    • DB에 저장된 NotificationTemplate(key/title/body/type/enabled)
    • {{variable}} 플레이스홀더 치환 엔진
    • 비활성화 플래그로 즉시 발송 차단
    • 관리자 UI에서 변수 사전·실시간 미리보기 제공
    • sendFromTemplate / sendToAdmins 헬퍼로 호출부 통일
  3. 인드라이브(InDrive) 방식 매칭

    • 보호자 제시 일당 + 간병인 역제안 구조
    • 지원 시 "제시가 수락" 또는 "제안 일당 제시" 선택
    • 보호자가 최종 선택
  4. 에스크로 결제 흐름

    • 토스페이먼츠 연동
    • 결제 → ESCROW 보관 → 간병 완료 → 정산
    • PENDING 5분 초과 시 cron으로 자동 만료
    • 부분 환불 / 환불 요청 2단계 승인
  5. 안정성 장치

    • 같은 보호자·환자로 OPEN/MATCHED 중복 요청 차단 (DB 유니크 인덱스 + 10초 프론트 락)
    • 활성 계약 중복 방지 (partial unique index)
    • 동시 결제 시도 10초 내 PENDING 중복 차단
    • 노쇼 누적 시 간병인 자동 활동 정지 (cron)
  6. 운영 자동화

    • 간병 종료 3일 전 / 1일 전 자동 리마인더
    • 매일 완료 계약 자동 정산
    • 매월 월별 통계 자동 생성
    • 우수 간병사 뱃지 자동 부여
    • 관리자 자동 알림 (가입 신청·서류 업로드·자동 정지·결제 만료)

기술 스택

Backend

  • Node.js / Express
  • TypeScript
  • Prisma ORM
  • PostgreSQL
  • Redis (세션/레이트리미트)
  • JWT 이중 토큰 (access 7d + refresh 30d)
  • bcryptjs (비밀번호 해시)
  • Firebase Admin SDK (FCM 푸시)
  • node-cron (스케줄러)
  • Jest + Supertest (테스트 54종)

Frontend (Web / Admin)

  • Next.js (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS
  • Axios / Fetch

Mobile (두 개의 독립 앱)

  • React Native (Expo prebuild 기반)
  • WebView 래퍼 아키텍처
  • Firebase Messaging (네이티브 푸시)
  • 결제 intent 파싱 (토스/카카오페이 WebView 유지)

Integration

  • 토스페이먼츠 SDK
  • 카카오/네이버 소셜 로그인
  • PDF 생성 (계약서·간병일지)
  • CSV 내보내기
  • 이미지 업로드 (multipart, 정적 서빙)

Architecture

  • 모놀리식 모노레포 (backend / web / admin / app-patient / app-caregiver)
  • 중앙 스키마 (Prisma) → 전 레이어 단일 소스
  • Role 기반 인증 (GUARDIAN / CAREGIVER / ADMIN / HOSPITAL)
  • 관리자 라우트는 basePath 분리 (/admin)
  • 정적 자원은 리버스 프록시에서 분기

프로젝트 구조 carematch/

├── backend/ # Express + Prisma API 서버

│ ├── prisma/

│ │ ├── schema.prisma # 단일 DB 모델

│ │ └── migrations/

│ ├── src

│ │ ├── routes/ # 도메인별 라우트

│ │ ├── controllers/ # 비즈니스 로직

│ │ ├── services/ # 매칭·결제·알림·크론

│ │ ├── middlewares/ # auth / rate-limit / upload / error

│ │ └── utils/

│ └── tests/ # unit + integration

├── web/ # 보호자·간병인 웹 대시보드 (Next.js)

├── admin/ # 관리자 패널 (Next.js, basePath=/admin)

├── app-patient/ # 보호자 모바일 앱 (Expo)

└── app-caregiver/ # 간병인 모바일 앱 (Expo)

동작 흐름

보호자 핵심 흐름

  1. 회원가입 → 환자 등록
  2. 간병 요청 작성 (유형·기간·지역·일당)
  3. 매칭 엔진이 후보 간병인에게 푸시
  4. 간병인 지원 → 보호자에게 알림
  5. 보호자가 지원자 중 선택 → 계약 생성
  6. 토스페이먼츠 결제 → ESCROW
  7. 간병 진행 (체크인/일지/사진)
  8. 종료 → 정산 → 리뷰

간병인 핵심 흐름

  1. 회원가입 + 서류 업로드
  2. 관리자 승인 대기 → 알림 수신
  3. 요청 탐색 → 지원
  4. 수락 시 계약 확인 → 간병 수행
  5. 종료 → 익일 자동 정산
  6. 수익 확인 / 협회비 납부

관리자 핵심 흐름

  1. 대시보드에서 대기 건 확인
  2. 서류 검증 (자격증·신분증·범죄이력 개별 승인)
  3. 분쟁·신고·환불·추가비 승인
  4. 월별 통계·정산·프로모션 운영

목적 본 플랫폼의 목적은 다음과 같습니다:

  • 간병 서비스의 양측 정보 비대칭 해소
  • 결제·정산의 신뢰성 확보 (에스크로 + 자동 만료)
  • 서류 검증 자동화 및 관리자 감사 추적
  • 운영 업무의 알림 주도 자동화
  • 다중 플랫폼(웹/모바일) 단일 데이터 소스 유지

결론 본 프로젝트는 단순한 매칭 앱이 아니라 간병 서비스의 요청·매칭·결제·정산·분쟁·서류 검증까지 운영 전 영역을 체계화한 풀스택 실행형 플랫폼입니다.

댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!