← 포트폴리오 목록

의료장비 비교견적 매칭 플랫폼

화면설계서·기획문서가 아직 없는 단계이므로 요구사항 분석과 기획부터 진행하며, 병원과 개원준비 의사가 장비종류·진료과·예산 등 조건을 입력해 견적을 요청하면 여러 공급업체가 응찰하는 역경매 방식의 비교견적 플랫폼을 React와 Node.js 기반으로 설계·구현합니다.

조건부 동적 폼 엔진 설계장비종류 값에 따라 문항 스키마를 실시간 재구성하는 조건부 폼 엔진을 설계해 특수 장비 조건을 하나의 등록 화면에서 처리합니다
역경매 매칭 조건 데이터 모델 구축장비종류·지역·도입시기 기준으로 공급업체 노출 범위를 결정하는 매칭 조건 테이블과 인덱스 전략을 설계합니다
필터-URL 상태 동기화 검색 구조 구현제조사·가격구간 등 다중 필터 조건을 URL 쿼리와 동기화해 검색 결과를 공유 가능한 링크로 표현하는 구조를 구현합니다
서비스 타입Web
업종헬스케어
기술 스택
ReactTypeScriptTailwind CSSNode.jsExpressPostgreSQLPrismaNodemailer
주요 기능
  • 업체별 견적 비교 조회 (검색·필터 카드형)
  • 역경매 기반 견적 요청 등록 (조건부 문항)
  • 3종 회원가입 및 병원 정보 관리
  • 업체 문의 및 사이트내·이메일 알림
Overview

프로젝트 개요

범위: 개발, 디자인, 기획

화면설계서·기획문서가 아직 없는 단계이므로 요구사항 분석과 기획부터 진행하며, 병원과 개원준비 의사가 장비종류·진료과·예산 등 조건을 입력해 견적을 요청하면 여러 공급업체가 응찰하는 역경매 방식의 비교견적 플랫폼을 React와 Node.js 기반으로 설계·구현합니다. 초음파처럼 장비별로 달라지는 조건부 추가 문항을 동적으로 노출하고, 제출된 견적을 검색·필터 카드형 화면으로 비교할 수 있도록 구성하며 PC·태블릿·모바일 전 구간에서 반응형으로 동작하도록 설계합니다.

작업 범위

  • 업체별 견적 비교 조회 (검색·필터 카드형): 병원 담당자가 자신이 등록한 견적 요청에 제출된 공급업체별 견적을 검색·필터로 좁혀 카드 형태로 한눈에 비교합니다
  • 역경매 기반 견적 요청 등록 (조건부 문항): 병원·개원준비 회원이 장비종류·진료과·구매목적·지역·도입시기 등 필수 항목과 예산구간·제조사 등 선택 항목을 입력해 견적 요청을 등록하고, 여러 공급업체의 응찰을 받는 역경매 흐름을 시작합니다
  • 3종 회원가입 및 병원 정보 관리: 병원(사업자등록번호·요양기관기호), 개원준비 의사(의사면허·전문과목·예정지역·시기), 공급업체(사업자등록번호·증명서 업로드) 각 유형에 맞는 가입 절차와 병원 기본정보·진료과 관리 화면을 제공합니다
  • 업체 문의 및 사이트내·이메일 알림: 병원 담당자가 견적 제출 업체에 문의를 등록하고 답변을 확인하며, 새 견적 제출이나 문의 답변이 발생하면 사이트 내 알림과 이메일로 즉시 안내받아 역경매 진행 상황을 놓치지 않습니다

주요 업무

  • 업체별 견적 비교 조회 (검색·필터 카드형) 화면: 상단 sticky 검색·필터 chips(제조사·신품/중고·가격구간)로 좁힌 뒤 카드 그리드에서 가격·조건을 비교하고, 카드 클릭 시 퀵뷰로 상세 조건을 확인하는 구조로 구현합니다
  • 역경매 기반 견적 요청 등록 (조건부 문항) 화면: 장비종류 선택값에 따라 조건부 추가 문항(예: 초음파 선택 시 사용목적·프로브 옵션)을 동적으로 렌더링하는 스키마 기반 폼 엔진을 구현합니다
  • 3종 회원가입 및 병원 정보 관리 화면: 유저 타입별로 분기되는 회원가입 폼과 아이디/비밀번호 자동로그인을 구현하고, PC·태블릿·모바일 전 구간에서 동일한 입력 흐름을 유지하도록 반응형 레이아웃을 적용합니다
  • 업체 문의 및 사이트내·이메일 알림 화면: 문의 스레드와 알림 센터를 구현하고, Nodemailer 기반 이메일 발송과 사이트 내 알림을 동일 이벤트 트리거로 연동합니다
의료장비 비교견적 매칭 플랫폼
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

장비종류별로 달라지는 조건부 추가 문항을 스키마 변경만으로 확장 가능하게 설계해야 하는 리스크

문항 정의를 데이터로 분리한 스키마 기반 폼 엔진으로 대응합니다

역경매 특성상 다수 공급업체의 견적이 비동기로 도착해 비교 화면의 최신성이 떨어질 수 있는 리스크

견적 제출 이벤트를 즉시 반영하는 알림 기반 갱신 구조로 대응합니다

병원·개원준비·공급업체 3종 유저타입의 가입 검증 항목이 서로 달라 인증 로직이 복잡해질 수 있는 리스크

유저 타입별 검증 스키마를 분리한 구조로 대응합니다

PC·태블릿·모바일 전 구간 반응형 대응 중 조건부 문항이 많은 등록 폼이 좁은 화면에서 입력 흐름을 해칠 수 있는 리스크

모바일에서는 단계별 아코디언 방식으로 문항을 분할하는 구조로 대응합니다

구현 내용

핵심 기능 상세

핵심 기능 1

업체별 견적 비교 조회 (검색·필터 카드형)

병원 담당자가 자신이 등록한 견적 요청에 제출된 공급업체별 견적을 검색·필터로 좁혀 카드 형태로 한눈에 비교합니다.

  • React Query로 견적 목록/필터 상태를 서버 상태로 캐싱해 재검색 시 응답을 빠르게 체감하도록 구현합니다
  • 제조사·신품/중고·가격구간 필터 조건을 URL 쿼리 파라미터와 동기화해 검색 결과를 링크로 공유할 수 있는 구조를 구현합니다
  • 카드 클릭 시 슬라이드인 퀵뷰 패널로 견적 상세 조건을 렌더링하는 구조를 설계합니다

필터 조건과 URL 상태를 동기화하고 React Query 캐싱을 적용한 검색·비교 카드 그리드를 구현해, 다건의 공급업체 견적을 빠르게 좁혀 비교할 수 있는 화면을 설계합니다.

업체별 견적 비교 조회 (검색·필터 카드형)
업체별 견적 비교 조회 (검색·필터 카드형) 실제 화면
핵심 기능 2

역경매 기반 견적 요청 등록 (조건부 문항)

병원·개원준비 회원이 장비종류·진료과·구매목적·지역·도입시기 등 필수 항목과 예산구간·제조사 등 선택 항목을 입력해 견적 요청을 등록하고, 여러 공급업체의 응찰을 받는 역경매 흐름을 시작합니다.

  • 장비종류 선택값에 따라 조건부 문항(사용목적·프로브 등)을 동적으로 추가/제거하는 스키마 기반 폼 렌더링 구조를 구현합니다
  • React Hook Form과 Zod로 필수/선택 항목의 유효성 검증 규칙을 항목별로 분리 설계합니다
  • 견적 요청 등록 시 대상 공급업체 매칭 조건(장비종류·지역·도입시기)을 기록해 노출 범위를 결정하는 구조를 구현합니다

장비 종류에 따라 문항 구성이 달라지는 스키마 기반 조건부 폼 엔진을 구현해, 초음파 등 특수 장비의 추가 조건까지 하나의 등록 화면에서 처리하는 구조를 설계합니다.

역경매 기반 견적 요청 등록 (조건부 문항)
역경매 기반 견적 요청 등록 (조건부 문항) 실제 화면
핵심 기능 3

3종 회원가입 및 병원 정보 관리

병원(사업자등록번호·요양기관기호), 개원준비 의사(의사면허·전문과목·예정지역·시기), 공급업체(사업자등록번호·증명서 업로드) 각 유형에 맞는 가입 절차와 병원 기본정보·진료과 관리 화면을 제공합니다.

  • 유저 타입(병원/개원준비/공급업체)별로 분기되는 회원가입 폼과 검증 스키마를 컴포넌트 단위로 분리 구현합니다
  • Tailwind CSS 반응형 브레이크포인트로 375px~1440px 구간에서 동일한 입력 흐름을 유지하는 레이아웃을 설계합니다
  • JWT 기반 로그인과 리프레시 토큰으로 자동로그인을 구현하고, 유저 타입별 접근 가능 라우트를 분리합니다

3종 유저 타입의 가입 절차와 병원 정보 관리 화면을 하나의 인증 체계로 통합하면서, 모바일부터 데스크톱까지 동일한 사용성을 유지하는 반응형 구조를 구현합니다.

3종 회원가입 및 병원 정보 관리
3종 회원가입 및 병원 정보 관리 실제 화면
핵심 기능 4

업체 문의 및 사이트내·이메일 알림

병원 담당자가 견적 제출 업체에 문의를 등록하고 답변을 확인하며, 새 견적 제출이나 문의 답변이 발생하면 사이트 내 알림과 이메일로 즉시 안내받아 역경매 진행 상황을 놓치지 않습니다.

  • 문의 등록·답변 이벤트를 트리거로 사이트 내 알림과 이메일 발송을 함께 처리하는 이벤트 기반 구조를 구현합니다
  • Nodemailer 기반 이메일 템플릿과 발송 큐를 분리해 다건 알림 발송 시에도 화면 응답이 지연되지 않도록 설계합니다
  • 읽음/안읽음 상태를 가진 알림 센터 UI와 문의 스레드 컴포넌트를 구현합니다

문의·답변·견적 제출 이벤트를 사이트 내 알림과 이메일로 함께 안내하는 통합 알림 구조를 구현해, 역경매 진행 상황을 병원 담당자가 놓치지 않도록 설계합니다.

업체 문의 및 사이트내·이메일 알림
업체 문의 및 사이트내·이메일 알림 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

요구사항 분석 및 조건부 문항 스키마 설계 · 2026.09

장비종류별 추가 문항 규칙을 정의하고 PostgreSQL 테이블 20개 내외로 ERD를 설계합니다

STEP 2

견적 요청·비교 API 개발 · 2026.09

Express 기반 견적 요청 등록·비교 조회 API를 구현하고 역경매 매칭 조건 로직을 적용합니다

STEP 3

회원가입 및 병원 관리 UI 개발 · 2026.09

3종 유저타입 회원가입 폼과 병원 정보 관리 화면을 반응형으로 구현합니다

STEP 4

알림·문의 통합 및 테스트 · 2026.09

사이트내·이메일 통합 알림과 문의 스레드를 구현하고 핵심 플로우 테스트를 진행합니다

프로젝트 성과

주요 성과

조건부 동적 폼 엔진 설계장비종류 값에 따라 문항 스키마를 실시간 재구성하는 조건부 폼 엔진을 설계해 특수 장비 조건을 하나의 등록 화면에서 처리합니다
역경매 매칭 조건 데이터 모델 구축장비종류·지역·도입시기 기준으로 공급업체 노출 범위를 결정하는 매칭 조건 테이블과 인덱스 전략을 설계합니다
필터-URL 상태 동기화 검색 구조 구현제조사·가격구간 등 다중 필터 조건을 URL 쿼리와 동기화해 검색 결과를 공유 가능한 링크로 표현하는 구조를 구현합니다
통합 알림 이벤트 파이프라인 설계문의·답변·견적 제출 이벤트를 사이트 내 알림과 이메일 발송으로 함께 전파하는 이벤트 기반 알림 구조를 설계합니다
Highlights

기술적 주안점

  • 필터 조건과 URL 상태를 동기화하고 React Query 캐싱을 적용한 검색·비교 카드 그리드를 구현해, 다건의 공급업체 견적을 빠르게 좁혀 비교할 수 있는 화면을 설계합니다
  • 장비 종류에 따라 문항 구성이 달라지는 스키마 기반 조건부 폼 엔진을 구현해, 초음파 등 특수 장비의 추가 조건까지 하나의 등록 화면에서 처리하는 구조를 설계합니다
  • 3종 유저 타입의 가입 절차와 병원 정보 관리 화면을 하나의 인증 체계로 통합하면서, 모바일부터 데스크톱까지 동일한 사용성을 유지하는 반응형 구조를 구현합니다

유사한 프로젝트를 기획하고 계신가요?

FIRSTPIP이 개발 범위와 로드맵을 함께 정리해드립니다

무료 상담 시작하기