카테고리 없음

환경사랑실천 '해용' 캠페인 챗봇 및 게이미피케이션 플랫폼 고도화

태천인 2026. 7. 3. 01:24

"사용자 경험(UX) 강화를 위한 캐릭터 기반 게이미피케이션 도입 및 펀딩 연동형 환경 미션 인증 챗봇 플랫폼 구축"
2021년 수행한 '용인시 환경사랑 캠페인'의 성공적인 성과를 바탕으로 후속 의뢰를 받아 진행된 고도화 프로젝트입니다. 크라우드 펀딩을 통해 운영 재원을 마련하는 비즈니스 구조를 실험하고, 유저의 지속적인 참여 동기를 부여하기 위해 '러닝메이트' 콘셉트의 가상 캐릭터 시나리오와 상태별 동적 피드백 메커니즘을 도입한 디지털 캠페인 플랫폼입니다.

  • 참여 기간: 2022.02 ~ 2022.06 (기획 고도화, 설계, 개발 및 운영)
  • 역할: 1인 개발 (카카오톡 챗봇 스킬 아키텍처 고도화, 동적 피드백 엔진 및 웹 갤러리 개발 담당)
  • 성과:
  • 크라우드 펀딩 플랫폼 '바스켓' 연동: 시민 참여형 펀딩을 통한 성공적인 챗봇 인프라 운영 기금 마련 모델 검증.
  • 언론 보도: 기술 기반 로컬 환경 운동 사례로 '용인시민신문' 등 지역 언론에 대대적 보도.
  • 사용자 리텐션(Retention) 강화: 15개 미션 중 10개 선택 완주 구조 설계 및 맞춤형 리포트 데이터 축적.

 

Tech Stack

  • Bot Platform: Kakao i Open Builder (카카오톡 채널 '환경사랑해용')
  • Frontend & Backend: PHP (워드프레스) / HTML, CSS, jQuery
  • Database: Mariadb / Redis (유저별 미션 진척도 및 세션 트래킹)
  • Infrastructure: AWS (S3)

Key Implementation & Work (핵심 구현 및 담당 업무)

1. 캐릭터 인터랙션을 위한 동적 피드백(Dynamic Feedback) 엔진 구현

  • 단순 텍스트 응답 위주의 레거시 챗봇 구조에서 탈피하여, 유저의 미션 수행 진척도(1회 성공, 5회 반환점 통과, 10회 최종 완주 등)에 따라 캐릭터 '해용'의 다채로운 이미지와 격려 멘트가 매핑되어 나가는 조건부 동적 메시지 발송 로직 설계.
  • 유저별 미션 카운트 및 상태 데이터를 Redis 캐시 레이어에서 실시간 연산하여 카카오톡 챗봇 스킬 API의 응답 속도 최적화.

2. 게이미피케이션(Gamification) 기반의 미션 파이프라인 고도화

  • 기존의 선형적인 미션 구조를 개선하여, 유저가 주도적으로 15가지 환경 미션 중 본인의 성향에 맞는 10가지를 선택하여 완주할 수 있는 유연한 미션 빌더 스키마 설계.
  • 데이터베이스 내 미션 테이블을 마스터-디테일 구조로 정규화하여 향후 기획 변경에 따른 미션 개수 증감에 유연하게 대처할 수 있도록 확장성 확보.

3. 상호 자극형 웹 갤러리(Web Gallery) 및 오픈 데이터 연동

  • 내가 업로드한 사진뿐만 아니라 타 참여자들의 실시간 환경 실천 인증샷을 상호 모니터링할 수 있는 반응형 웹 갤러리 아키텍처 개발.
  • S3에 저장된 다량의 인증 이미지 에셋을 효율적으로 서빙하기 위해 AWS CloudFront(CDN)를 도입하고 이미지 캐싱 전략 수립.

Measurable Results (성과 및 비즈니스 임팩트)

  • 비즈니스 지속 가능성 확보: 온라인 펀딩 플랫폼 '바스켓(basket.fund)'을 통한 사전 펀딩 성공으로 기술 인프라(서버, 트래픽 비용) 운영 예산을 자급 자족하는 프로덕트 라이프사이클 모델 수립.
  • 유저 참여 및 만족도 증대: 캐릭터를 활용한 친근한 UX 레이어 추가를 통해 중도 이탈률을 낮추고 10회 완주율을 대폭 끌어올림.

Engineering Challenges & Troubleshooting (성장 경험 및 고민)

Q. 상태별 동적 멘트(캐릭터 이미지 매핑) 분기에 따른 백엔드 코드 비대화 문제 해결

  • Problem: 유저의 미션 횟수와 조건(1회차, 5회차 반환점, 10회차 완주 등)에 따라 서로 다른 '해용' 캐릭터 이미지와 멘트를 나가게 하려다 보니, 백엔드 라우터 내부의 if-else 분기문이 지나치게 복잡해지고 유지보수가 어려워지는 스파게티 코드 위험 발생.
  • Solution: 분기 로직을 하드코딩하는 대신, 데이터베이스에 미션 진척도별 메시지와 이미지 URL을 메타데이터화하여 관리하는 ‘메시지 라우팅 템플릿 테이블’을 구축. 백엔드는 유저의 현재 Count 값만 계산하여 DB에서 일치하는 템플릿을 쿼리해 카카오 챗봇 포맷(Carousel/SimpleText)으로 파싱만 하도록 아키텍처를 추상화함.
  • Learned: 비즈니스 기획(콘텐츠, 이벤트 멘트 변경 등)이 자주 바뀌는 서비스일수록 코드를 수정하는 것이 아니라 데이터를 바꿀 수 있도록 구조적으로 분리(Decoupling)하는 디자인 패턴의 중요성을 체득함.

Q. 펀딩 기간과 캠페인 기간의 유기적인 유저 데이터 스위칭

  • Problem: 3월 펀딩 참여자와 4월 챗봇 실참여자 간의 유저 매핑 및 데이터 정합성 검증이 필요했음.
  • Solution: 외부 펀딩 플랫폼의 참여 데이터를 정형화하여 시스템 DB로 마이그레이션한 후, 카카오톡 채널 유입 시 최초 1회 본인 인증 프로세스를 통해 매스 유저 데이터 간의 릴레이션십(Relationship)을 안전하게 연결함.