본문으로 건너뛰기
포트폴리오로 돌아가기
[에그링] 여성・난임 치료 여정 플랫폼

[에그링] 여성・난임 치료 여정 플랫폼

난임 치료 과정의 시술·복약·검사·비용을 통합 관리하고, 파트너 연결과 AI 기반 치료 지원을 제공하는 모바일 플랫폼

기간2026.07 – 현재
역할모바일 앱 개발
팀 규모4
사용 스택
  • React Native
  • Expo
  • TypeScript
  • AI/Vision
  • OOP
  • Strategy Pattern
  • Ignite

난임 치료의 복잡한 여정을 하나의 앱에서 관리하는 디지털 케어 플랫폼

01. 프로젝트 개요

난임 치료는 진료와 시술뿐 아니라 과배란 유도, 난자 채취, 배아 배양·이식, 임신 확인까지 여러 단계가 이어지며, 각 과정에서 검사 결과·복약·주사·일정·비용 등 다양한 정보를 지속적으로 관리해야 합니다.

본 프로젝트는 이러한 치료 여정을 하나의 모바일 환경에서 관리하고, 환자뿐 아니라 배우자도 치료 과정에 함께 참여할 수 있도록 설계된 난임 치료 전용 디지털 케어 플랫폼입니다.

React Native + Expo 기반 모바일 애플리케이션 개발을 담당하고 있으며, Ignite Architecture를 기반으로 회사 개발 정책에 맞춘 OOP 구조를 적용했습니다. 치료 Journey 관리, 복약·검사 기록, 파트너 연결, AI 상담 및 Vision 기반 임신테스트 분석 등 주요 모바일 기능을 구현하고 있습니다.


02. 주요 기능

① Treatment Journey Management

난임 시술의 복잡한 진행 과정을 상태 기반 Treatment Journey로 구조화하여 사용자가 현재 치료 단계를 직관적으로 파악할 수 있도록 구현했습니다.

과배란 유도 → 트리거 → 난자 채취 → 배아 배양 → 배아 이식 → 임신 확인 등 시술 단계별 상태와 일정을 관리하며, 현재 단계에 필요한 검사·복약·주사 및 다음 행동을 연결합니다.

과거 차수와 현재 진행 중인 차수를 함께 관리하여 사용자가 여러 번의 시술 이력을 연속적인 치료 기록으로 확인할 수 있도록 구성했습니다.

② Medication & Treatment Diary

치료 과정에서 발생하는 처방약·자가주사·영양제·검사 결과를 하나의 Diary에서 통합 관리하도록 구현했습니다.

날짜별 복약 일정과 완료 상태를 기록하고 약·주사·영양제별 필터링을 제공하며, 시술 차수와 연계하여 해당 치료 과정에서 사용된 약물 및 검사 데이터를 추적할 수 있도록 구성했습니다.

검사 결과, 호르몬 수치, 난포 정보 및 치료 기록을 누적하여 사용자가 이전 치료 과정과 현재 상태를 함께 확인할 수 있도록 설계했습니다.

③ Partner Pairing & Shared Journey

난임 치료를 여성 개인의 기록 관리에 한정하지 않고 부부가 함께 참여하는 치료 Journey로 확장하기 위해 Partner Pairing 기능을 구현했습니다.

사용자와 배우자의 계정을 연결하여 치료 단계와 주요 기록을 공유할 수 있으며, 사용자가 허용한 범위 내에서 배우자가 현재 치료 진행 상황을 함께 확인할 수 있도록 설계했습니다.

단순 데이터 공유를 넘어 치료 과정에서 배우자의 참여와 정서적 지원을 강화하는 서비스 경험을 목표로 구현하고 있습니다.

④ AI Fertility Assistant

난임 치료 과정에서 발생하는 다양한 질문과 정보 탐색을 지원하기 위해 난임 도메인에 특화된 AI Assistant를 모바일 앱에 연동했습니다.

초기에는 로컬 LLM 운영을 고려하여 Ollama 기반 연동 구조를 검토했으나, 운영 비용과 인프라 효율성을 고려하여 현재는 Gemini API를 사용하고 있습니다.

특정 LLM Provider에 애플리케이션 로직이 종속되지 않도록 Strategy Pattern을 적용하여 AI 호출 계층을 추상화했으며, 향후 Gemini 외의 다른 LLM 또는 자체 모델로 전환하더라도 핵심 비즈니스 로직의 변경을 최소화하도록 설계했습니다.

UI 또는 Domain Layer에서 특정 AI Provider를 직접 참조하지 않고 Strategy Interface를 통해 AI 기능을 호출하도록 구성했습니다.

이를 통해 모델 변경이 UI·비즈니스 로직까지 전파되는 것을 방지하고, 서비스 운영 환경과 비용 정책에 따라 AI Provider를 유연하게 교체할 수 있도록 했습니다.

llm
                 AI Service
                     │
              AI Strategy Interface
                     │
        ┌────────────┼────────────┐
        │            │            │
 Gemini Strategy  Ollama Strategy  Others LLM
        │            │            │
        └────────────┼────────────┘
                     │
              Domain / Use Case
                     │
               React Native UI
Provider-independent AI Architecture

⑤ AI-powered Pregnancy Test Analysis

사용자가 임신테스트기를 촬영하면 AI Vision 모델을 통해 테스트 영역을 분석하고 결과를 기록할 수 있는 기능을 구현했습니다.

촬영 화면에 Control(C) / Test(T) 영역 가이드를 제공하여 분석 가능한 형태로 이미지를 입력받고, AI 모델이 테스트 이미지를 분석하여 임신 확인 기록과 연결하도록 구성했습니다.

분석 결과는 단발성 판정으로 끝나지 않고 검사 일시 및 기존 검사 기록과 함께 저장되어 치료 Journey의 임신 확인 단계에서 지속적으로 확인할 수 있도록 설계했습니다.

⑥ Treatment Cost & Government Support Management

난임 시술 과정에서 발생하는 의료비와 정부지원금을 치료 차수별로 관리할 수 있는 비용 관리 기능을 구현했습니다.

진료비·시술비 등의 총 비용과 정부지원금·본인부담금을 구분하여 기록하고, 시술 차수별 지원 한도 및 사용 현황을 시각적으로 확인할 수 있도록 구성했습니다.

치료 기록과 비용 데이터를 연결하여 사용자가 특정 시술 과정에서 실제로 발생한 비용과 지원 내역을 함께 확인할 수 있도록 설계했습니다.

⑦ Community

동일한 치료 과정을 경험하는 사용자들이 정보와 경험을 공유할 수 있도록 난임 치료 중심의 Community 기능을 구현했습니다.

게시글·댓글·답글·좋아요·북마크·이미지 첨부·공유 등 기본적인 소셜 기능을 제공하며, 사용자의 현재 시술 단계와 연계된 커뮤니티 경험을 제공할 수 있도록 확장 가능한 구조로 구성했습니다.

치료 기록 중심의 개인 영역과 사용자 간 경험 공유 영역을 분리하면서도 하나의 서비스 안에서 자연스럽게 연결되도록 UI Flow를 구현했습니다.

⑧ OOP Architecture on React Native + Ignite

React Native의 함수형 UI 구성과 별개로, 회사의 개발 아키텍처 정책에 따라 OOP 기반 Domain / Service 구조를 적용했습니다.

Ignite 기반 프로젝트 구조 위에서 UI Component에 비즈니스 로직이 집중되지 않도록 책임을 분리하고, 치료 Journey·AI·파트너 연결·검사 기록 등의 기능을 독립적인 도메인 단위로 관리하도록 구성했습니다.

특히 외부 서비스나 변경 가능성이 높은 기능은 Interface와 Strategy를 통해 추상화하여 구현체 교체가 다른 도메인으로 전파되지 않도록 설계했습니다.


3. 아키텍처

architecture
                    React Native + Expo
                           │
                      Ignite App
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
       UI              Domain Layer       Services
        │                  │                  │
        │          ┌───────┼────────┐         │
        │          │       │        │         │
        │       Journey  Diary   Partner      │
        │          │       │        │         │
        └──────────┴───────┼────────┴─────────┘
                           │
                     Application Layer
                           │
              ┌────────────┼─────────────┐
              │            │             │
          AI Service    API Service   Vision Service
              │                          │
        Strategy Interface          Test Analysis
              │
        ┌─────┴─────┐
        │           │
     Gemini       Ollama
    (Current)    (Replaceable)
OOP + Strategy 기반으로 변경 가능성이 높은 외부 AI 구현과 핵심 치료 Domain을 분리

Engineering Decisions

① Why Ignite? React Native 프로젝트의 일관된 구조와 확장 가능한 애플리케이션 Architecture를 확보하면서 Expo 생태계를 활용하기 위해 Ignite 기반으로 구성했습니다.

② Why Strategy Pattern for AI? 생성형 AI 모델은 비용·성능·정책 변화가 빠르기 때문에 특정 Provider에 비즈니스 로직을 종속시키지 않고 교체 가능한 구조로 설계했습니다.

③ Why OOP? 치료 Journey, 검사, 복약, 파트너, AI 등 복잡한 도메인의 책임과 상태를 명확하게 분리하고 회사의 공통 개발 Architecture를 유지하기 위해 OOP 기반 구조를 적용했습니다.

④ Why AI Vision? 사용자가 임신테스트 결과를 수동으로 기록하는 과정을 줄이고 이미지 입력을 구조화된 치료 기록으로 연결하기 위해 Vision 기반 분석 기능을 적용했습니다.