INSIDE_UP · NLP · K-PaaS

OpenAI & KoBERT 기반 청소년 정서 보조 앱 (INSIDE_UP)

청소년이 감정을 가볍게 기록하고, AI 대화로 감정을 정리하며 주간 리포트로 인사이트를 제공하는 정서 보조 앱. KoBERT 감성분석 + OpenAI 기반 챗봇 + K-PaaS(Kubernetes) 배포까지 운영 가능한 형태로 구성했습니다.

#OpenAI #KoBERT #FastAPI #MySQL #Redis #Kubernetes #K-PaaS #Ingress
INSIDE_UP 프로젝트 이미지

Project Overview

INSIDE_UP은 청소년이 일상에서 느끼는 스트레스/불안/우울 같은 감정을 가볍게 기록하고, AI가 대화를 통해 감정을 정리해주며 주간 리포트 형태로 인사이트를 제공하는 정서 보조 앱입니다.

단순 “상담 대화”에 그치지 않고, KoBERT 감성분석으로 텍스트의 정서 경향을 정량화하고 OpenAI 기반 챗봇으로 공감/질문/행동 제안을 구성해 사용자가 스스로 상태를 파악하고 회복 루틴을 만들도록 설계했습니다.

핵심 목표

  • 청소년이 부담 없이 감정을 표현할 수 있는 “대화형 기록” 제공
  • KoBERT 기반 감성분석으로 감정 변화 추적(주/기간 단위)
  • 주간 리포트(요약/추세/인사이트)로 “스스로 이해 + 다음 행동”까지 연결

System Architecture

서비스는 기능을 분리한 마이크로서비스 구조로 구성했고, K-PaaS(Kubernetes) 환경에 배포하여 운영 가능한 형태로 만들었습니다.

insideup namespace
├─ backend-api (FastAPI) : 인증/유저/기록/리포트 API
├─ chatbot-ai (FastAPI) : OpenAI 연동 대화/프롬프트/응답 처리
├─ kobert-sentiment : KoBERT 감성분석 서비스(정서 점수/라벨)
├─ mysql : 데이터 저장(기록/리포트/유저 등)
├─ redis : 캐시/세션/토큰 등 처리
└─ ingress (nginx) : /api, /chat, /sentiment 라우팅

라우팅 예시

  • /api/ → backend-service (8000)
  • /chat/ → chatbot-service (8001)
  • /sentiment/ → kobert-sentiment-service

Core Tasks

배포에서 신경 쓴 포인트

  • 서비스별 포트 분리(8000/8001/…)
  • ConfigMap/Secret로 환경변수 관리(민감정보 코드에 하드코딩 방지)
  • Ingress로 외부 진입점 단일화

Results & Learnings

이번 프로젝트를 통해 “앱 기능 구현”을 넘어서, 실제로 배포/운영 가능한 AI 서비스 형태로 구성하는 경험을 만들었습니다.

성과(예시 문구)

  • OpenAI + KoBERT 감성분석을 결합한 정서 보조 파이프라인 구축
  • 마이크로서비스 기반으로 기능 분리(챗봇/감성분석/백엔드)하여 확장성 확보
  • K-PaaS(Kubernetes) 환경에 Ingress 포함 배포 구성 완료

배운 점

  • AI 기능도 “서비스 운영 관점(배포/라우팅/리소스)”으로 설계해야 안정적으로 돌아간다
  • 모델/LLM 품질은 프롬프트와 UX 흐름(질문 순서/요약 방식)에서 크게 좌우된다
  • Config/Secret 분리, 서비스 분리 등 기본기가 실제 장애/유지보수 난이도를 결정한다