헬스케어 큐레이션 자동화 서비스

kikiru328 | Jul 8, 2025 min read

Python Flask AWS ChannelTalk

한 장 요약본

프로젝트 개요

목록내용
프로젝트명헬스케어 큐레이션 자동화 서비스
개발기간2022년 7월 - 2022년 10월 (3개월)
역할풀스택 개발자 (기획, 개발, 배포, 운영)
기여도90% (단독 개발)
개발환경AWS Lightsail, 채널톡 API, Flask

비즈니스 배경 및 문제 정의

핵심과제

개인 맞춤형 건강관리 제품 추천 자동화를 통한 상담 전환율 혁신

기존 상담 프로세스:

  • 1단계: 고객이 사이트 확인
  • 2단계: 직접 문의 (채널톡 상담)
  • 3단계: CS 담당자가 수동으로 제품 추천 및 상담

기존 프로세스 문제점:

  • 낮은 전환율: 사이트 확인 → 직접 문의 방식으로 상담 전환율 2%
  • 진입 장벽: 제품 정보 부족으로 문의 주저
  • 상담 비효율: CS 담당자가 매번 처음부터 제품 설명 필요
  • 개인화 부족: 고객별 맞춤 추천 없이 일반적 상담만 제공 (서포트봇)

목표 고객층:

  • 건강관리에 관심 있는 성인
  • 개인 맞춤형 솔루션을 원하는 고객
  • 상담을 통한 구매 결정을 선호하는 고객

핵심 성과 지표

지표달성값측정 방법
상담 전환율2% → 19% (8.5배 증가)채널톡 메시지 보관함 데이터 기반 측정
일일 처리량8-15건평균 큐레이션 서비스 제공
응답 시간≤1초설문 완료 즉시 추천 제공

기술 스택 및 아키텍처

핵심 기술 스택

# 주요 기술 구성
Backend     : Python, Flask
API Integration: 채널톡 API, Webhook
Cloud       : AWS Lightsail
Data Format : JSON 기반 설문 데이터 처리
Version Ctrl: Git

시스템 아키텍처

  graph TD
    A[고객 설문 참여] --> B[채널톡 Webhook]
    B --> C{서포트봇 ID 확인}
    C -->|일치| D[설문 데이터 GET]
    C -->|불일치| E[무시]
    D --> F[목표별 분류]
    F --> G[규칙 기반 매칭]
    G --> H[맞춤 제품 추천]
    H --> I[채널톡 자동 응답]
    I --> J[CS 상담 전환]
    
    subgraph "AWS Lightsail"
        B
        D
        F
        G
        H
    end
    
    subgraph "추천 로직"
        K[감량 목표]
        L[유지 목표]
        M[증량 목표]
        F --> K
        F --> L
        F --> M
    end

주요 기술적 도전과 해결책

1. 채널톡 서포트봇 이벤트 분리

도전과제

  • 문제: 모든 서포트봇에 큐레이션 로직이 반응하여 불필요한 응답 발생
  • 복잡성: 채널톡에서 여러 서포트봇이 동시 운영되는 환경
  • 요구사항: 큐레이션 전용 서포트봇에만 선택적으로 반응하는 시스템

문제 해결 과정

1단계: Webhook 이벤트 분석

  • 서포트봇 ID를 확인하고 해당 이벤트 처리

2단계: ID 필터링 시스템

  • 이벤트 여부 logging 및 큐레이션 서포트봇 이외 무시 처리량

3단계: 선택적 응답 메커니즘

  • 정확한 매칭: 큐레이션 전용 서포트봇 ID와 정확히 일치하는 경우만 처리
  • 무시 로직: 다른 봇의 이벤트는 로그만 남기고 무시
  • 안전 장치: 봇 ID 누락 시 기본적으로 무시 처리
성과
  • 정확한 분리: 큐레이션 요청에만 선택적 반응으로 시스템 정확성 확보
  • 리소스 효율: 불필요한 처리 제거로 서버 리소스 절약
  • 운영 안정성: 다른 봇과의 간섭 없이 독립적 운영

2. 개인 맞춤형 추천 로직 설계

도전과제

  • 복잡성: 복잡한 AI 알고리즘 없이 실용적인 제품 추천 시스템 필요
  • 개인화: 고객별 건강상태와 목표에 맞는 차별화된 추천
  • 실시간 처리: 설문 완료 즉시 추천 결과 제공 요구

문제 해결 과정

1단계: 설문 기반 고객 분류 시스템 예시

def analyze_customer_survey(survey_data):
    """설문 데이터 기반 고객 분석"""
    
    # 5개 영역 평가
    health_status = {
        "건강상태": survey_data.get('health_condition'),
        "식습관": survey_data.get('eating_habits'), 
        "운동량": survey_data.get('exercise_level'),
        "음수량": survey_data.get('water_intake'),
        "활동량": survey_data.get('activity_level')
    }
    
    # 목표 분류
    goal = survey_data.get('health_goal')
    
    return {
        "health_profile": health_status,
        "primary_goal": goal,
        "recommendation_category": classify_by_goal(goal)
    }

def classify_by_goal(goal):
    """목표별 카테고리 분류"""
    if goal in ['체중감량', '다이어트', '살빼기']:
        return "다이어트"
    elif goal in ['체중유지', '건강관리', '컨디션']:
        return "유지"
    elif goal in ['체중증가', '근육증가', '벌크업']:
        return "증량"
    else:
        return "유지"  # 기본값

2단계: 목표별 제품 매칭 알고리즘

# 목표별 제품 데이터베이스
PRODUCT_DATABASE = {
    "다이어트": {
        "primary_products": [
            {
                "name": "다이어트 도시락",
                "description": "저칼로리 고단백 도시락",
                "benefits": ["체지방 감소", "근육량 유지"]
            },
            ...
        ]
    }
}

3단계: 규칙 기반 실시간 매칭

def generate_personalized_recommendation(survey_data):
    """개인 맞춤형 추천 생성예시"""
    
    # 고객 분석
    customer_analysis = analyze_customer_survey(survey_data)
    
    # 제품 추천
    recommendations = recommend_products_by_goal(
        customer_analysis['recommendation_category'],
        customer_analysis['health_profile']
    )
    
    # 추천 메시지 생성
    message = create_recommendation_message(
        customer_analysis['primary_goal'],
        recommendations['recommended_products']
    )
    
    return {
        "message": message,
        "products": recommendations['recommended_products'],
        "goal": customer_analysis['primary_goal']
    }

def create_recommendation_message(goal, products):
    """추천 메시지 생성 예시"""
    
    intro = f"{goal} 목표에 맞는 맞춤 제품을 추천드립니다!\n\n"
    
    product_list = ""
    for i, product in enumerate(products, 1):
        product_list += f"{i}. **{product['name']}**\n"
        product_list += f"   {product['description']}\n"
    
    outro = "상세한 상담을 원하시면 전문 상담사와 연결해드릴까요?"
    
    return intro + product_list + outro
성과
  • 실용적 개인화: 복잡한 AI 없이도 효과적인 맞춤 추천 시스템 구축
  • 즉시 응답: 설문 완료 즉시 ≤1초 내 추천 결과 제공
  • 높은 전환율: 8.5배 상담 전환율 향상으로 비즈니스 가치 입증

3. 기존 상담 프로세스 개선

도전과제

  • 낮은 진입률: “사이트 확인 → 직접 문의” 방식의 2% 전환율
  • 정보 부족: 고객이 무엇을 문의해야 할지 모르는 상황
  • 상담 비효율: CS 담당자가 매번 기본 정보부터 설명해야 하는 부담

설문 참여 유도 메시지 발생: 사용자가 웹에 방문하여 바로 설문조사 및 큐레이션을 받을 수 있도록

def create_survey_invitation():
    """설문 참여 유도 메시지"""
    return """
    건강관리 맞춤 솔루션 찾기
    
    안녕하세요! 개인 맞춤형 건강관리 제품을 추천해드리는 
    무료 헬스 큐레이션 서비스입니다.
    
    2분 간단 설문으로 내게 딱 맞는 제품 찾기
    전문 상담사의 1:1 맞춤 상담
    목표 달성을 위한 체계적 가이드
    """

# 설문 설계 원칙
SURVEY_DESIGN_PRINCIPLES = {
    "간단함": "2분 내 완료 가능한 핵심 질문만",
    "목적성": "추천에 직접적으로 필요한 정보만 수집",
    "개인화": "응답에 따라 동적으로 다음 질문 결정"
}
성과
  • 자연스러운 유도: 설문조사를 통한 고객 참여 증대로 8.5배 전환율 향상
  • 상담 효율성: 제품 추천 사전 완료로 CS 담당자 상담 시간 단축
  • 상담 품질: 배송/안내 중심 고품질 상담으로 전환하여 만족도 향상

4. AWS Lightsail 기반 안정적 서비스 운영

도전과제

  • 24시간 가용성: 언제든 고객이 설문에 참여할 수 있는 무중단 서비스
  • 비용 효율성: 스타트업 환경에서 최소 비용으로 안정적 서비스 운영
  • 확장성: 서비스 성장에 따른 트래픽 증가 대응

문제 해결 과정

1단계: AWS Lightsail 선택
2단계: Flask를 통한 외부 서비스 의존성 최소화

성과
  • 99.9% 가동률: 24시간 무중단 서비스로 안정적 운영
  • 비용 효율성: EC2 대비 70% 비용 절약으로 스타트업 환경에 최적화

성능 평가 및 검증

전환율 성과 측정

  • Before: 2% (사이트 확인 → 직접 문의)
  • After: 19% (설문 → 추천 → 상담 연결)
  • 측정 방법: 채널톡 메시지 보관함 데이터 기반 정량적 분석

서비스 운영 지표

  • 일일 처리량: 8-15건 큐레이션 서비스 제공
  • 응답 시간: ≤1초 (설문 완료 즉시 추천 제공)
  • 비용 효율성: 월 $3.50로 EC2 대비 70% 절약

고객 만족도

  • 참여 완료율: 설문 시작 고객의 95% 완료
  • 상담 연결률: 추천 받은 고객의 85% 상담 진행
  • 재참여율: 30% 고객이 추가 상담 요청

비즈니스 임팩트 및 성과

마케팅 효율성 혁신

  • 전환율 8.5배 향상: 2% → 19%로 상담 전환율 대폭 개선
  • 고객 경험 개선: 설문 → 큐레이션 → 상담의 자연스러운 플로우 구축
  • 진입 장벽 해소: 무엇을 문의할지 모르는 고객에게 명확한 가이드 제공

운영 효율성 향상

  • 상담 효율성: CS 담당자 상담 시간 단축 (제품 추천 사전 완료)
  • 상담 품질: 배송/가격/사용법 중심의 고품질 상담으로 전환
  • 고객 데이터: 체계적인 고객 선호도 및 건강 정보 수집

기술적 가치 창출

  • 비용 효율성: AWS Lightsail로 최소 비용 운영 (월 $3.50)
  • 확장성: 트래픽 증가 시 즉시 대응 가능한 아키텍처
  • 안정성: 24시간 무중단 서비스로 고객 신뢰도 확보

서비스 확장 및 발전 방향

현재 한계점 분석

  • 구매 전환율 미측정: 상담 전환율만 측정, 최종 구매까지의 데이터 부족
  • 동시 접속 미고려: 당시 CS 지식 부족으로 동시 접속 처리 로직 미구현
  • 개인화 수준: 목표 외 개인 특성을 반영한 세밀한 추천 시스템 미적용

고도화 방안

  1. 구매 전환 추적: 상담 → 구매까지 전체 퍼널 분석 시스템
  2. AI 개인화: 머신러닝 기반 고도화된 개인 맞춤 추천
  3. 멀티 채널: 카카오톡, 네이버 톡톡 등 다중 채널 확장
  4. 실시간 분석: 고객 행동 패턴 기반 실시간 최적화

기술적 학습 및 성장

풀스택 개발 역량

  • Backend API: Flask 기반 Webhook 처리 및 실시간 응답 시스템
  • 외부 API 연동: 채널톡 API 활용한 양방향 통신 구현
  • 클라우드 운영: AWS Lightsail 기반 24시간 무중단 서비스 운영
  • 데이터 처리: JSON 기반 설문 데이터 처리 및 추천 로직 구현

비즈니스 로직 설계

  • 고객 여정 설계: 설문 → 추천 → 상담의 자연스러운 플로우 구축
  • 개인화 알고리즘: 복잡한 AI 없이 실용적인 규칙 기반 추천 시스템
  • 서비스 운영: 실시간 모니터링 및 안정성 확보

마케팅 자동화 이해

  • 고객 세그멘테이션: 건강 목표 기반 고객 분류 및 차별화 전략
  • 개인화 마케팅: 1:1 맞춤 메시지 및 제품 추천 자동화
  • 데이터 기반 의사결정: 정량적 성과 측정을 통한 서비스 개선

프로젝트 관리 및 협업

단독 개발 프로세스

  1. MVP 설계: 핵심 기능 우선 개발로 빠른 가치 검증
  2. 반복적 개선: 실제 운영 데이터 기반 지속적 최적화
  3. 성과 측정: 채널톡 데이터 활용한 정량적 성과 추적
  4. 사용자 피드백: CS 담당자 및 고객 피드백 기반 기능 개선

결론 및 시사점

기술적 가치

  • 실용적 자동화: 복잡한 AI 없이도 8.5배 성과 향상을 달성한 실용적 접근
  • 비용 효율적 운영: 최소 비용으로 최대 효과를 내는 기술 스택 선택
  • 외부 서비스 활용: 채널톡 DB 활용으로 별도 인프라 구축 비용 절약

비즈니스 가치

  • 전환율 혁신: 8.5배 상담 전환율 향상으로 명확한 ROI 달성
  • 고객 경험 개선: 맞춤형 추천을 통한 고객 만족도 및 참여도 향상
  • 확장 가능성: 검증된 모델을 다른 산업/채널로 확장 가능

개발자로서의 성장

  • 비즈니스 임팩트: 기술적 완성도보다 실제 비즈니스 가치 창출에 집중
  • 빠른 실행: MVP 접근법으로 빠른 검증 및 지속적 개선 역량
  • 실용적 해결: 완벽한 기술보다 실제 작동하는 솔루션 개발 능력

마케팅 기술 융합

  • 고객 여정 최적화: 기술을 활용한 고객 경험 설계 및 전환율 개선
  • 개인화 서비스: 규칙 기반 개인화로도 충분한 비즈니스 가치 창출 가능
  • 자동화의 가치: 단순 반복 업무 자동화를 통한 고부가가치 업무 집중
  • 스타트업 기술 전략: 제한된 자원에서 최대 효과를 내는 기술 선택의 중요성