Project Detail

최우수 수상 프로젝트

이음페이 (IEUM-Pay)

일상 속 잔돈으로 시작하는 투명한 기부 플랫폼

사용자의 잔돈을 간편결제로 자동 기부하여, 직접 금전 기부의 부담을 줄이고 투명한 크라우드 펀딩 참여를 가능하게 하는 핀테크 서비스입니다.

기간

2024.02 ~ 2024.04

팀 구성

6명 (FE 3 / BE 3)

기술 스택

12개 기술 사용

Problem

어떤 문제를 풀었나

현금 중심의 기부 방식은 자금 사용처에 대한 불확실성으로 인해 사용자들의 신뢰를 얻기 어려웠고, 사용자가 직접 기부처를 선택하고 절차를 거치는 과정이 번거로우며 경제적 부담 또한 기부 참여를 어렵게 만들었습니다. 또...

Contribution

내 핵심 기여

인프라 구축 및 CI/CD 파이프라인 자동화 · MSA 및 BFF 패턴 기반 백엔드 설계

Outcome

무엇을 증명했나

최우수 성과와 함께 간편결제 연동 잔돈 기부 자동화로 심리적/경제적 부담 최소화

한눈에 보기

사용자의 잔돈을 간편결제로 자동 기부하여, 직접 금전 기부의 부담을 줄이고 투명한 크라우드 펀딩 참여를 가능하게 하는 핀테크 서비스입니다.

Target User

누구를 위한 프로젝트인가

기부에 관심이 있지만 투명성과 경제적 부담으로 망설이는 MZ세대

Core Experience

사용자에게 주는 핵심 경험

일상 속 잔돈으로 시작하는 투명한 기부 플랫폼

Why It Matters

왜 의미 있는가

간편결제 연동 잔돈 기부 자동화로 심리적/경제적 부담 최소화

간편결제 연동 잔돈 기부 자동화로 심리적/경제적 부담 최소화물품 크라우드 펀딩 구조로 기부금 사용처 시각적 확인 가능카카오페이/토스 자동 저축 기능에서 착안한 습관화 기부 모델

Background

Purpose | 목적

기부에 대한 신뢰 부족과 경제적 부담이라는 현실적인 문제를 해소하기 위해 개발된 핀테크 기반 기부 플랫폼입니다. 기존의 금전 기부 방식에서 벗어나, 필요한 물품을 직접 구매하는 형태의 크라우드 펀딩 참여를 가능하게 하여 기부의 투명성을 높이고, 일상 속 간편결제 시스템을 연동함으로써 자연스럽고 부담 없는 기부 경험을 제공하는 것을 목표로 합니다.

Problem | 해결하려던 문제

현금 중심의 기부 방식은 자금 사용처에 대한 불확실성으로 인해 사용자들의 신뢰를 얻기 어려웠고, 사용자가 직접 기부처를 선택하고 절차를 거치는 과정이 번거로우며 경제적 부담 또한 기부 참여를 어렵게 만들었습니다. 또한 기존 플랫폼에서는 사용자의 소비 데이터와 기부 연계를 자동화하는 데 한계가 있었습니다.

Target User | 타겟 사용자

기부에 관심이 있지만 투명성과 경제적 부담으로 망설이는 MZ세대

Key Features | 핵심 기능

What makes this project special

1

간편결제 연동 잔돈 기부 자동화로 심리적/경제적 부담 최소화

2

물품 크라우드 펀딩 구조로 기부금 사용처 시각적 확인 가능

3

카카오페이/토스 자동 저축 기능에서 착안한 습관화 기부 모델

4

QR코드 결제 시 잔돈이 자동으로 기부금으로 적립

5

기부 영수증을 통한 기부 내역 투명하게 확인

프로젝트 개요 & 배경

이음페이는 기부에 대한 신뢰 부족과 경제적 부담이라는 현실적인 문제를 해소하기 위해 개발된 핀테크 기반 기부 플랫폼입니다. 기존의 금전 기부 방식에서 벗어나, 일상 속 간편결제 시스템과 잔돈을 연동하여 자연스럽고 부담 없는 기부 경험을 제공합니다.

프로젝트 컨셉
01

프로젝트 컨셉

기부 + 간편결제 + 잔돈의 결합. Toss, 삼성페이, 네이버페이, 카카오페이 등 다양한 간편결제와 연동하여 결제 후 발생하는 잔돈을 자동으로 기부금으로 적립하고, 물품 구매 형태의 크라우드 펀딩으로 기부 투명성을 확보합니다.

기부 현황과 MZ세대
02

기부 현황과 MZ세대

MZ세대를 대상으로 한 기부 인식 조사 결과, '기부는 소비다', '통 큰 기부보다 십시일반', '신뢰성 원하지만 복잡한 건 싫어'라는 키워드가 도출되었습니다. 한국의 기부 참여율은 2011년 36.4%에서 2021년 21.6%로 하락하며, 기부 문화에 대한 새로운 접근이 필요한 시점입니다.

  • 한국 세계기부지수 순위: 2011년 57위 → 2022년 88위로 하락
  • 기부 참여율: 2011년 36.4% → 2021년 21.6%
  • MZ세대의 소액·투명·간편 기부 선호 트렌드 반영
기존 기부 방식의 문제점
03

기존 기부 방식의 문제점

기존의 현금 중심 기부 방식은 자금 사용처에 대한 불확실성으로 인해 사용자들의 신뢰를 얻기 어려웠습니다. 정기 후원의 경우 월 4~5만원의 고정 지출이 발생하여 경제적 부담이 컸습니다.

  • 기부금 사용처의 불투명성으로 인한 신뢰 저하
  • 월 고정 금액(4~5만원) 정기 후원의 경제적 부담
  • 물품 기부가 아닌 현금 기부 중심의 한계
복잡한 기부 절차
04

복잡한 기부 절차

기존 기부 플랫폼은 온라인 신청, 약정서 작성, 무통장 입금, CMS 자동이체 등 여러 단계를 거쳐야 했습니다. 고향사랑기부제의 경우에도 지자체 선택부터 포인트 결제까지 7단계 이상의 복잡한 절차가 필요했습니다.

  • 대학원 기부: 신청 → 입금 → 확인 → 예우까지 다단계 절차
  • 고향사랑기부제: 홈페이지 가입부터 답례품까지 7단계
  • 복잡한 절차로 인한 기부 참여 진입장벽

기획 및 컨셉

카카오페이, 토스의 자동 저축 기능에서 아이디어를 얻어, '잔돈 기부 + 물품 펀딩' 결합 모델을 기획했습니다. 기부를 습관화하고 투명하게 만들 수 있는 핀테크 기반 서비스입니다.

카드 등록 및 대표 카드 설정
01

카드 등록 및 대표 카드 설정

다양한 카드를 등록하고 대표 카드를 설정하여 기본 결제 수단을 선택할 수 있습니다.

QR코드 결제와 잔돈 기부
02

QR코드 결제와 잔돈 기부

QR 코드를 스캔하여 오프라인 결제를 진행하고, 결제 시 발생하는 잔돈이 자동으로 기부금으로 적립됩니다.

기부처 선택 및 모금 연동
03

기부처 선택 및 모금 연동

진행 중인 모금 프로젝트 목록에서 원하는 기부처를 선택하고, 자동 기부 연동을 설정할 수 있습니다.

원하는 만큼 직접 기부
04

원하는 만큼 직접 기부

원하는 금액을 직접 입력하여 다양한 모금 프로젝트에 기부할 수 있으며, 기부 완료 후 결과를 확인할 수 있습니다.

전화번호로 다이렉트 송금
05

전화번호로 다이렉트 송금

전화번호를 통해 상대방을 검색하고, 간편하게 송금할 수 있습니다.

잔돈 기부 및 기부 영수증
06

잔돈 기부 및 기부 영수증

결제 시 잔돈이 자동으로 기부되며, 기부 영수증을 통해 기부 내역을 투명하게 확인하고 공유할 수 있습니다.

MSA 구조 및 BFF 디자인 패턴

기능 간 결합도를 낮추고 확장성을 위해 MSA 구조를 도입하고, 프론트엔드 맞춤형 API 응답을 위해 BFF 패턴을 적용했습니다.

  • Common(인증/회원), Pay(결제), Funding(기부), Alert(알림) 서비스 분리
  • API Gateway를 통한 인증/라우팅 처리로 보안 강화
  • BFF 서버로 프론트엔드별 최적화된 데이터 제공
  • OpenFeign 기반 선언형 REST 통신으로 유지보수성 향상

사용자 편의성 기능

사용자 경험 향상을 위한 핵심 편의 기능들을 구현했습니다. 문자 인증, OCR 카드 인식, 실시간 푸시 알림 등을 통해 간편하고 안전한 서비스를 제공합니다.

문자 인증 기반 본인 확인
01

문자 인증 기반 본인 확인

휴대폰 번호로 MMS 인증 코드를 전송하여 본인 확인을 수행합니다. Redis TTL 기반으로 인증 코드를 저장하고 유효 시간을 관리합니다.

  • Redis TTL 기반 인증 코드 저장
  • 결제 비밀번호 해시 처리 후 저장
  • 해시값 비교를 통한 2차 인증
인증 흐름
02

인증 흐름

Next.js ↔ Spring Boot ↔ Redis 간의 결제 비밀번호 인증 흐름입니다. 사용자 해시키를 Redis에 저장하고 결제 요청 시 2차 인증을 수행합니다.

OCR 카드 인식
03

OCR 카드 인식

카메라로 카드를 촬영하면 OCR로 카드 번호를 자동 인식합니다. 직접 입력 없이 간편하게 카드를 등록할 수 있어 사용자 편의성과 입력 오류 방지 효과가 있습니다.

FCM 푸시 알림
04

FCM 푸시 알림

결제, 기부 등 주요 이벤트 발생 시 실시간 알림을 전송합니다. Common 서비스에서 Kafka로 알림 데이터를 발행하고, Alert 서비스가 구독 후 FCM을 통해 PWA 앱으로 푸시합니다.

  • Kafka 기반 비동기 이벤트 처리
  • Firebase Cloud Messaging 연동
  • PWA 앱 푸시 알림 제공

Technical Specifications | 기술 사양

Engineering details and infrastructure

System Architecture | 시스템 아키텍처

시스템 아키텍처

Engineering Highlights | 기술 하이라이트

MSA 기반 서비스 분리

User, Pay, Donation, Notification, Gateway 서비스를 완전히 독립된 마이크로서비스로 운영하여 새로운 기능 추가나 유지보수 시 다른 서비스에 영향 없이 유연하게 대응 가능

BFF 패턴 적용

Web/App 프론트엔드별 전용 BFF 구성으로 불필요한 데이터 전달 없이 클라이언트 맞춤형 응답 제공, 통신 비용 절감 및 사용자 경험 최적화

OpenFeign 기반 서비스 간 통신

마이크로서비스 간 REST 통신을 선언형 인터페이스로 구성하여 코드 가독성 향상, Fallback 처리로 장애 대응력 확보

도메인별 독립 배포

서비스 단위 CI/CD 파이프라인 구성으로 팀 간 병렬 개발 가능, 운영 효율성 상승

Docker 기반 컨테이너화

모든 서비스를 Dockerfile로 컨테이너화하고 docker-compose로 단일 네트워크 내 독립적 통신 구성, 로컬과 운영 환경 동일한 구조로 실행

Jenkins CI/CD 증분 빌드

GitLab 연동 자동 빌드/배포, 변경된 서비스만 선별 빌드하는 증분 빌드 전략으로 배포 시간 최적화 및 리소스 낭비 방지

보안 설정 자동화

application.yml 등 환경 설정 파일을 Jenkins 빌드 시점에 동적 생성, 민감 정보는 Secret Manager에서 주입하여 Git 노출 방지

Technology Stack | 기술 스택

Spring Boot
Next.js
MariaDB
MongoDB
RedisRedis
KafkaKafka
DockerDocker
JenkinsJenkins
AWS EC2
Firebase
NginxNginx
OpenFeign

Challenges & Solutions | 도전 과제

Technical challenges encountered during the project and solutions

1

FCM과 Kafka를 활용한 실시간 푸시 알림

Problem

기존 웹 기반 SSE/WebSocket 방식은 PWA에서 한계가 있었고, 모바일 네이티브에 가까운 푸시 알림 경험과 안정적이고 확장 가능한 메시징 구조가 필요했습니다.

Solution

Kafka 기반 메시지 소비자 서비스를 도입하여 비동기 메시지 처리 구조를 구축하고, FCM 토큰 업데이트 및 저장 처리 로직을 구현하여 메시지 수신부터 알림 전송까지 전 과정을 자동화했습니다.

Benefits
비동기 이벤트 처리로 시스템 부담 최소화Firebase Cloud Messaging으로 안정적인 푸시 전송PWA 앱을 통한 즉각적인 사용자 피드백 제공
2

MSA 구조 설계 및 BFF 디자인 패턴 적용

Problem

서비스 규모 확장에 따른 기능 간 결합도 문제, 다양한 프론트엔드 환경(Web, App)에 맞는 API 최적화 필요, 마이크로서비스 간 통신 복잡성 및 유지보수 문제가 발생했습니다.

Solution

기능별 마이크로서비스 분리(User/Pay/Donation/Notification), API Gateway를 통한 인증/라우팅 처리, 프론트엔드별 맞춤형 BFF 레이어 구성, OpenFeign 기반 선언형 HTTP 통신으로 가독성 및 fallback 처리를 통한 안정성을 확보했습니다.

Benefits
기능 단위 독립적 개발 및 배포 가능프론트엔드별 최적화된 API 응답 제공서비스 간 결합도 최소화로 유지보수 용이
3

Jenkins 기반 CI/CD 자동화 파이프라인 구축

Problem

수동 빌드 및 배포 과정에서 휴먼 에러와 비효율 발생, 서비스별 변경 사항 추적 및 선택적 배포의 어려움, 설정 파일 관리 및 운영 환경 일관성 유지 문제가 있었습니다.

Solution

GitLab + Jenkins 연동으로 코드 커밋 → 빌드 → 도커 이미지 생성 → 배포 자동화, 증분 빌드 전략으로 변경된 서비스만 재배포, 구성 파일은 Jenkins에서 동적 생성하고 민감 정보는 외부 주입 방식을 사용했습니다.

Benefits
휴먼 에러 감소 및 배포 시간 최적화서비스별 독립 배포로 리소스 효율화개발-운영 환경 일관성 확보

Retrospective | 프로젝트 회고

이번 이음페이 프로젝트는 핀테크 기반 기부 시스템이라는 주제를 중심으로 실시간 처리, 사용자 편의성, 자동화된 배포까지 다양한 기술을 폭넓게 적용하며 진행되었습니다. MSA 아키텍처, BFF 패턴, Kafka 기반 메시징, CI/CD 자동화, Redis 인증, FCM 푸시 알림 등의 기술을 실제 서비스에 반영하며 실무적 역량을 향상시킬 수 있었습니다.

Successes | 잘한 점

백엔드 시스템의 구조적 유연성 확보

MSA 및 BFF 패턴을 통해 백엔드 시스템의 모듈화를 실현, 기능 단위 독립적 개발과 배포로 유지보수 효율성과 확장성 확보

자동화된 CI/CD 파이프라인 구축

Jenkins와 Docker 기반 자동 배포 구조로 개발 주기 단축, 프론트엔드 및 백엔드 간 협업 원활화

실시간 알림 기반 사용자 경험 향상

Kafka + FCM 푸시 알림으로 사용자의 주요 액션에 빠른 피드백 제공, 사용자 경험 측면에서 긍정적 반응

안정적인 시스템 운영

인프라 자동화 및 보안 구조 강화로 배포 안정성과 운영 신뢰성 확보

Improvements | 아쉬운 점

MSA 구조의 완전한 분리 미흡

모든 서비스가 하나의 DB를 공유하는 구조로 구현되어 진정한 MSA라기보다 유사 구조에 가까움. 도메인별 DB 분리 필요

무중단 배포 미적용

배포 시 서비스 일시 중단 문제 발생. Blue-Green, Rolling Update 등 무중단 배포 구조 적용 필요

Kafka 활용의 단편성

Kafka를 FCM 푸시 알림 전달용에 한정 사용. 서비스 간 비동기 통신, 이벤트 소싱 등 다양한 활용 가능성 미탐색

Future Directions | 향후 방향

1

도메인별 DB 분리를 통한 완전한 MSA 구조 구현

2

Blue-Green 또는 Rolling Update 기반 무중단 배포 적용

3

Kafka를 활용한 서비스 간 비동기 통신 확대

4

모니터링 및 로깅 시스템 고도화