Songstark Logo

임상 SaaS 개발

임상 · 의료 SaaS 개발 외주 — 멀티테넌시, PDF 결과지, 음성 분석.

두루바른 사회적협동조합과 함께 SpeechMap 임상 R&D를 운영하고, 강원특별자치도교육청의 광역 유아 언어발달 검사 시스템을 구축했습니다. 자체 출원 9건의 특허(아동 언어발달·음성 분석)가 엔진의 깊이를 뒷받침합니다. 임상 데이터의 무결성, 멀티테넌시, 한글 PDF, 동의서 워크플로우 등 의료 도메인 특유의 까다로운 요구를 직접 풀어 본 팀입니다.

이 카테고리에서 우리가 푼 기술 문제

  • 01

    SpeechMap 4-Path 음성 분석 엔진

    음향 특성(Jitter·Shimmer·HNR·Pitch), Google STT 휴지 분석, MFA 음소 정확도, AI 임상 진단 리포트 — 4개 경로를 한 엔진에서 융합합니다. Cloud Run 4GB/2vCPU 프로덕션.

    SpeechMap · 두루바른 사회적협동조합 임상 R&D

  • 02

    @react-pdf/textkit 한글 NFD 분해 이슈 해결

    React-PDF의 textkit이 한글을 NFD로 분해하는 라이브러리 버그를 patch-package로 직접 수정. 12종 검사 결과지 PDF가 깨지지 않고 한글 폰트(Pretendard) 임베딩되어 출력됩니다.

    plate-engine · HiBle / 플레이트 의원

  • 03

    임상 데이터 FK 체인 무결성

    아동 등록 → 연도별 재검사(2025/2026 이월) → 기초검사 → 치료배정 → 녹음 → 연구데이터까지 FK 체인. PL/pgSQL RPC로 연도별 중복검사 로직을 한 트랜잭션에 묶습니다.

    한림대학교 · language-screening-platform-2025 (111 PR)

  • 04

    멀티테넌시 — RLS만으로 충분하지 않은 이유

    센터 단위 데이터 격리는 RLS로 충분하지만, 플랫폼 관리자 impersonation, 토스 결제 정산 분리, 통계 집계 등은 별도 권한 체계가 필요합니다. plate-engine은 platform_admin · center_admin · clinician 3계층으로 운영합니다.

    plate-engine · HiBle

  • 05

    개인정보 동의 워크플로우

    개인정보보호법 + 의료법에 맞춰 동의 → 수집 → 이용 → 폐기 4단계를 코드 레벨에서 강제합니다. 두루바른·재단 밴드·강원교육청에서 실전 운영 중입니다.

    두루바른 사회적협동조합 · 강원특별자치도교육청

  • 06

    Light · Premium 다국어 PDF 결과지

    검사 12종 × Light(5p) / Premium(12p+) × 국내·해외(audience) × ko/en/ru 다국어 — 30+ PDF 변형을 React-PDF + Pretendard 폰트 임베딩으로 서버 렌더하고 Supabase Storage에 자동 업로드.

    plate-engine

추천 기술 스택

  • SpeechMap (자체 엔진)
  • React-PDF + patch-package
  • Supabase RLS
  • PL/pgSQL RPC
  • Cloud Run (Python · MFA)
  • Pretendard 폰트 임베딩
  • Tosspayments
  • Next.js 16

자주 묻는 질문

임상 데이터 보안 기준은 어떻게 맞춥니까?
한국 개인정보보호법 + 의료법 + 보건복지부 가이드라인을 기본 적용합니다. 동의서 워크플로우, 5년 보관 + 자동 폐기, 익명화·가명화, 접근 로그(audit trail), 이중 백업까지 포함합니다. HIPAA 준거 시스템 경험은 별도 협의가 필요합니다.
의료기기 규제(SaMD, GMP)에 해당하나요?
진단·치료 결정에 직접 사용되면 SaMD(Software as a Medical Device) 분류 가능성이 있어 식약처 인증이 필요합니다. SpeechMap처럼 "선별검사 + 다음 검사 추천"은 의료기기 분류 외이지만 임상 결정 보조 시 별도 검토가 필요합니다. 식약처 컨설턴트 연계 경험 있습니다.
Supabase RLS만으로 멀티테넌시가 충분한가요?
센터 단위 데이터 격리는 RLS로 99% 해결됩니다. 다만 플랫폼 관리자의 impersonation, 결제 정산, 광역 통계 집계 등은 별도 권한 체계가 필요합니다. plate-engine에서 platform_admin · center_admin · clinician 3계층으로 RLS + RPC를 결합한 패턴을 운영 중입니다.
PDF 결과지 한글 처리가 어렵다고 들었는데 어떻게 해결하나요?
React-PDF의 @react-pdf/textkit이 한글을 NFD로 분해해 글자가 깨지는 라이브러리 버그가 있습니다. patch-package로 textkit을 직접 패치하고 Pretendard 폰트를 서버 사이드에 임베딩합니다. plate-engine의 12종 검사 결과지가 이 패턴으로 운영됩니다.
연구 데이터 무결성은 어떻게 담보하나요?
PL/pgSQL RPC로 검사 등록·이월·재검사 로직을 단일 트랜잭션에 묶고, Jest + ts-jest 단위 테스트 + fixture 스키마 동기화로 회귀를 차단합니다. 한림대 language-screening-platform-2025는 111개 PR을 통해 4년간 무결성을 유지하고 있습니다.
Cloud Run vs Vercel — 임상 워크로드는 어디가 적합한가요?
Python·MFA·Praat 같은 음성 분석 워크로드는 Cloud Run(컨테이너, 4GB/2vCPU 가능)이 적합. Next.js 웹 + Supabase는 Vercel sin1 region. 두 엔드를 분리하고 중앙화된 엔진 URL로 호출하는 패턴이 SpeechMap의 표준 구성입니다.

AI를 어떻게 붙일지부터 같이 보겠습니다.

영업 PM 거치지 않고 대표나 코어 엔지니어가 1영업일 안에 직접 답합니다.