Problem
TEAM COLLABU 4
(참고자료: 뉴시안, '대학생들의 월 평균 용돈은 51만원…'희망' 용돈은 얼마?', 2024.04.19)
부족 (59.9%)
적당 (37.3%)
풍족 (2.7%)
대학생 10 명 중 6 명 , ‘ 현재 용돈
부족 !’
한달 용돈
평균 508,074 원
이상적인 용돈
평균 용돈
604,902 원
508,074 원
대학생들이 생각하는 적정 용돈 수준
약 10 만원 상당의 추가 용돈 필요
5.
Solution
TEAM COLLABU 5
사용자가꾸준히 소비 내역을 관리하기 위해
습관을 형성시키도록 한다 .
사용자가 꾸준히 소비 내역을 관리하기 위해
동기 부여를 시키도록 한다 .
사용자가 보다 나은 소비 습관을 형성하기 위해
양질의 정보를 수집할 수 있도록 한다 .
2 3
1
6.
Service Introduce
TEAM COLLABU6
Pennyway
: 지출 관리 SNS 플랫폼 (iOS
Application)
• Why : 사용자가 꾸준히 소비 내역에 관심을 갖도록 유도하고 ,
다른 사람들에게 동기 부여를 받을 수 있도록 한다 .
• How : 간편하게 소비 내역을 등록할 수 있도록 하여 습관을 형성시키고 ,
소통을 통해 참여율을 높이도록 한다 .
• What : 지출 관리 기능과 소통을 위한 채팅방 기능을 제공하고 ,
피드를 통해 지속적으로 최신 뉴스에 노출되도록 한다 .
7.
User Scenario
TEAM COLLABU7
Persona: 부모님께 매 달 용돈을 받아 생활하는 , 대학교에 재학 중인 20 대 남학생 A 씨
“ 부모님께 받는 용돈으로 한 달을 버티기가 너무 어려워요”
사용
배경 :
20 대 대학생인 A 씨는 부모님께 용돈을 받아 생활하는 중이나 , 매달 말이면 돈이 부족해 힘들어하고 있다 . 같은 고민을 가진 친구들과
소비 관련 고민을 공유하며 , 자신의 지출 내역을 효율적으로 관리하고 싶어한다 . 특히 식비와 의류비가 많이 나가는 것 같은데
구체적으로 얼마나 쓰는지 파악하기 어려워한다 .
1. 지출 내역 등록
메인 화면에서 ‘등록’ 버튼
클릭
등록 확인
2. 지출 내역 조회
메인 화면에서 조회하고자
하는 날짜 선택
상품권 사용
주요
니즈 :
일일 지출 내역을 쉽고 빠르게 입력하고 관리할 수 있길 원한다 . 카테고리별로 지출 현황을 한눈에 파악하고 예산 대비 사용량을 확인하고
싶어한다 .
과도한 지출이 예상될 때 미리 경고를 받아 지출을 조절하고 싶어한다 . 지출을 줄일 수 있는 인사이트를 찾아 지출을 줄이고 싶어 한다 .
주요 지출 : 식비 의류 및 화장품 술값 및 모임 회비
| 이용 플로우
예시
지출 내역 입력 및 등록
Tech Stack
TEAM COLLABU9
Git
GitHub
Spring
MySQL
Redis
RabbitMQ
Swagger
JUnit
Amazon Web Service
GitHub Actions
NGINX
SwiftU
I
Cocoapods
STOMP
Alamofire
Fastlane
FirebaseCloudMessaging
Swift
Java
Client Server Cloud & Deploy
Language SCM
Feature
TEAM COLLABU 11
사용자인증 / 관리 기능
01
지출 관리 기능
02
채팅 기능
03
피드 기능
04
• 로그인을 포함하는 계정 관리 기능
• 사용자 간 상호 작용
• 사용자별 추천 기능
• 목표 금액에 따른 지출 관리 기능
• 매달 목표 금액 관리
• 지출 건수 별 금액 관리
• 사용자 간 소통을 위한 기능
• 정보 공유 / 공지 / 투표 기능
• 사용자 관심사별 채팅방 추천
• 정보성 게시글 관리 기능
• 사용자 팔로우 , 피드 좋아요 / 북마크 / 공유
• 사용자 관심사별 맞춤형 피드 추천
Code Review
TEAM COLLABU15
커뮤니케이션 비용을 줄이기 위한 Pn 룰 도입
(https://github.com/CollaBu/pennyway-was/pull/48)
GitHub Pull-Request 를 활용한 코드 리뷰
(https://github.com/CollaBu/pennyway-was/pull/48)
GitHub
Blog Posting
TEAM COLLABU17
아우신얀 – RxSwift vs Combine 비교
(https://yanni13.tistory.com/47)
이진우 – Nginx log 를 정적 저장소에 저장
(https://jinlee.kr/devops/2024-08-25-save-nginx-log-to-s3/)
AWS S3 PresignedURL
TEAM COLLABU 22
(https://jinlee.kr/web/2023-09-18-s3-presiend-url/)
기존 프로세스 적용 후 프로세스
23.
iOS MVVM CleanArchitecture
TEAM COLLABU 23
(https://github.com/CollaBu/pennyway-client-ios)
24.
iOS MVVM CleanArchitecture
TEAM COLLABU 24
“ 이슈 발생률 약 80% 감소”
25.
Milestone
TEAM COLLABU 25
채팅기능
완성
AWS
Multi-AZ 구축
iOS 출시
서비스
운영 및
유지보수
MVP 2.0
논의
9 월 - 12 월
1 월 1 주차
-
1 월 2 주차
1 월 3 주차
–
1 월 4 주차
2 월 1 주차
–
2 월 2 주차
2 월 2 주차
26.
Appendix
TEAM COLLABU 26
아직서비스의 출시가 되지 않은 이유가 있을까요 ?
지출관리 기능만으로 앱스토어 심사를 진행했으나 , SNS 기능이 없는 상태에서는 회원가입 기능을 강제할 수 없다는 애플 측의 피드백을 받았습니
이에 채팅 기능을 우선 개발하여 방학 기간 중 재출시를 계획하고 있습니다 . 현재는 지속적인 학습과 적응을 통해 개발 효율성이 점차 향상되고 있
이를 통해 더욱 안정적이고 확장 가능한 서비스를 구축해가고 있습니다 .
Q1. iOS 사용자만을 대상으로 개발하는 이유가 있을까요 ?
A. iOS 개발자를 희망하는 클라이언트 개발 팀원들의 전문성 향상과 역량 개발에 중점을 두어 , 우선 iOS 플랫폼에 특화된
서비스를 구현하기로
결정했습니다 . 추후 App Store 에서 사용자 반응이 긍정적이고 수요가 충분하다면 , 안드로이드 플랫폼으로의 확장도
검토할 계획입니다 .
서비스의 비즈니스 모델이 무엇인가요 ?
현재 저희 팀의 주요 목표는 안정적인 24/7 서비스 운영을 통해 실제 사용자들에게 가치를 전달하고 , 이 과정에서 개발자로서의 실질적인 역량을
키우는 것입니다 . 따라서 초기에는 수익 모델보다는 사용자들의 실제 니즈를 충족시킬 수 있는 서비스 주제 선정과 구현에 집중했습니다 .
향후 의미 있는 수준의 일간 활성 사용자 (DAU) 를 확보하고 서비스의 지속 가능성이 검증된다면 , 그때 적절한 비즈니스 모델을 검토할 계획입니다
#3 다들 하루에 몇 끼 정도 밖에서 식사하세요?
저 같은 경우에는 매일 한 두 끼는 사 먹는거 같은데요,
위 사진의 경우에는 네이버에서 제가 좋아하는 영남대 인근 순대국을 검색해서, 메뉴를 확인했을 때 나오는 사진입니다.
배달 기준으로 딱 만원이 들더라고요.
제 한 달 용돈이 50만원인데요, 한 달을 30일이라고 가정하고 계산해보면 하루에 국밥을 1.6그릇을 먹을 수 있습니다.
두 그릇이 미처 안되죠?
#4 실제로 아르바이트 플랫폼인 알바몬에서 대학생 1181명을 대상으로 ‘대학생이 생각하는 적정 용돈 수준’에 대해 설문 조사를 진행한 결과, 대학생들의 한 달 평균 용돈이 약 50만원이라고 합니다.
하지만 60% 정도의 학생이 이에 대해 부족함을 느끼고 있으며, 본인의 용돈에 대해 만족하는 학생은 3%도 채 되지 않았습니다.
대학생들이 생각하는 한 달 적정 용돈은 현재 받고 있는 용돈보다 약 10만원 정도 더 많은 60만원 상당의 용돈이 필요하다고 답하였습니다.
#5 저희는 이러한 대학생들의 현실적인 고민을 해결하고자 세 가지 핵심 목표를 설정했습니다.
첫째, 사용자가 지속적으로 소비 내역을 기록하는 습관을 형성할 수 있도록 돕고,
둘째, 꾸준한 가계부 작성에 대한 동기부여를 제공하며,
셋째, 더 나은 소비 습관을 만들 수 있도록 실질적인 도움이 되는 정보를 제공하고자 했습니다.
#6 그래서 저희 팀이 ‘페니웨이’라는 지출 관리 SNS 플랫폼을 개발하게 되었습니다.
사용자들이 자신의 소비에 꾸준한 관심을 갖고, 다른 사람들과의 소통을 통해 서로 동기부여가 될 수 있도록 하는 것이 저희의 핵심 목표입니다.
이를 위해 간편한 지출 기록 기능은 물론, 사용자들이 서로의 경험을 공유하고 소통할 수 있는 SNS 기능을 결합하였습니다.
#7 이제 저희 서비스의 주요 타겟 고객층을 페르소나를 통해 설명드리겠습니다.
대학생 A씨는 매달 정해진 용돈으로 생활하면서 효율적인 지출 관리에 대한 니즈가 있었습니다.
특히 비슷한 고민을 가진 또래들과 소비 경험을 공유하고 싶어했죠.
기존에는 금융 앱으로 사후에 지출 내역을 확인하는 수준이었지만, 페니웨이를 통해 일간 지출을 실시간으로 기록하고, 카테고리별 지출 현황을 한눈에 파악할 수 있게 되었습니다.
더불어 다른 사용자들의 소비 경험을 참고하며 현명한 소비 습관을 만들어갈 수 있게 되었습니다.
#8 가계부 앱 시장의 주요 서비스들을 분석해보았습니다.
먼저 기본적인 지출 작성과 조회 기능은 대부분의 서비스가 제공하고 있습니다. 하지만 인사이트 공유 기능의 경우 카카오톡 거지방과 페니웨이만이 가지고 있는 기능으로,
단순한 지출 기록을 넘어서서, SNS 기능을 통한 정보 공유, 그리고 지출 경고 기능까지 제공함으로써 사용자들의 합리적인 소비 생활을 돕고자 합니다.
이러한 통합적인 서비스 제공이 저희 서비스만의 차별화된 경쟁력이라고 생각합니다.
#10 UI/UX 설계는 Figma를 활용해 진행했으며, 이를 통해 기획에 있어, 팀원 간의 실시간 소통과 빠른 피드백이 가능했습니다.
#11 페니웨이에는 크게 4가지 기능이 있지만, 시연은 지출 관리 기능과 채팅 기능만 진행하도록 하겠습니다.
#12 지출 관리 기능입니다.
[소비 내역 등록]을 위해 금액, 카테고리, 날짜, 소비처 등을 입력하여 소비 내역을 등록합니다.
[목표 금액 설정]을 통해 현재 소비 금액과 남은 금액을 그래프 등으로 확인할 수 있도록 합니다.
[소비 내역 조회] 시에는 날짜, 카테고리를 통해 조건에 맞는 소비 내역 목록을 확인하도록 합니다.
#13 채팅 기능입니다.
[채팅방 검색 기능]을 통해 현재 활성화된 채팅방을 조회할 수 있습니다.
[채팅방에 들어오면] 메시지 전송 및 수신이 가능하며, 읽지 않은 메시지 수를 실시간으로 확인할 수 있습니다.
메시지를 읽으면 자동으로 읽음 처리가 되어 다른 사용자도 메시지 확인 여부를 알 수 있습니다.
#14 프로젝트 진행 과정에서 발생하는 다양한 문제점들을 효과적으로 해결하기 위해 스크럼 기반의 애자일 프로세스를 도입했습니다.
매일 데일리 스크럼을 통해 진행 상황을 공유하고, 스프린트 리뷰와 회고를 통해 팀원들의 피드백을 적극 수렴하며 프로세스를 지속적으로 개선해 나갔습니다.
#15 또한, 코드 품질 향상을 위해 GitHub의 Pull Request 기능을 활용한 코드 리뷰를 진행했습니다.
팀원들이 서로의 코드를 꼼꼼히 리뷰하고 건설적인 피드백을 주고받으며, 코드의 일관성과 안정성을 확보했습니다.
또한 커뮤니케이션 명확성을 위해 모든 리뷰 내용은 PR에 기록하여 작업 및 변경 사항에 대한 추적성을 유지하고자 하였습니다.
#16 프로젝트의 체계적인 이슈 관리를 위해 Jira를 도입했습니다. Jira를 통해 버그 수정과 기능 개선 요청을 실시간으로 추적하고,
팀원들의 작업 진행 상황을 한눈에 파악할 수 있었습니다.
이를 통해 프로젝트의 투명성을 높이고 효율적인 작업 관리가 가능했습니다.
#17 프로젝트를 진행하면서 습득한 기술적 지식과 경험을 팀원들이 개인 블로그에 포스팅하며 공유하기도 하였습니다.
#18 프로젝트의 실시간 모니터링을 위해 GitHub과 Discord를 웹훅으로 연동하여 코드 변경사항을 즉시 확인할 수 있도록 구성했습니다
또한 GitHub Actions를 활용한 CI/CD 파이프라인을 구축하여 코드의 품질 관리와 배포 과정을 자동화하여, 개발 생산성과 안정성을 향상시키고자 하였습니다.
#19 '트웬티-포/세븐 서비스'라는 말을 들어보셨나요? 맥도날드처럼 하루 24시간, 일주일 내내 중단 없이 운영되는 서비스를 의미합니다.
저희 팀은 이러한 서비스 철학을 기반으로, 사용자들이 언제든 필요한 순간에 서비스를 이용할 수 있도록 시스템을 구축하고자 했습니다.
특히 서버의 안정성과 가용성을 최우선으로 고려했는데요.
지금부터 이러한 목표를 달성하기 위해 진행했던 주요 개선 사항들을 간단히 소개해드리겠습니다.
#20 Terraform은 인프라를 코드로 관리하는 IaC(Infrastructure as Code) 도구입니다.
저희는 이를 활용하여 AWS 클라우드 인프라를 자동화된 코드로 구성하고 관리했습니다.
특히 트웬티-포/세븐 서비스 운영을 위해서는 안정적인 인프라 구성이 필수적인데, Terraform을 통해 일관되고 신뢰성 있는 인프라 환경을 구축할 수 있었습니다.
코드로 정의된 인프라는 버전 관리가 가능하고 필요할 때마다 동일한 환경을 재현할 수 있어, 서비스의 안정성과 가용성을 크게 향상시켰습니다.
#21 서비스의 버전 업데이트 시에도 서비스 중단이 발생하지 않도록 블루-그린 배포 전략을 도입했습니다.
기존 버전이 운영되는 블루 환경과 새로운 버전이 배포될 그린 환경을 구성하고, Nginx를 활용한 내부 리버스 프록시를 통해 트래픽을 전환합니다.
이를 통해 사용자들은 서비스 이용 중에도 업데이트가 이루어지고 있다는 것을 전혀 눈치채지 못하죠. 이러한 무중단 배포 전략은 24시간 끊김 없는 서비스 제공을 가능하게 만드는 핵심 기술 중 하나입니다.
#22 AWS S3의 Presigned URL 기능을 도입하여 파일 업로드 시스템을 개선했습니다.
기존에는 모든 파일이 서버를 거쳐 처리되어 부하가 컸지만, 현재는 클라이언트가 발급받은 Presigned URL로 S3에 직접 업로드하였고,
이를 통해 서버 부하를 줄이고 파일 업로드 안정성을 개선하였습니다.
#23 iOS 개발팀은 더 나은 코드 품질과 유지보수성을 위해 자발적으로 MVVM Clean Architecture 도입을 결정했습니다.
Application, Data, Domain, Presentation 레이어로 구성된 클린 아키텍처를 기반으로 코드를 전면 재구성했는데요.
iOS 담당 팀원들의 자발적인 기술 개선 의지가 프로젝트의 큰 전환점이 되었습니다.
#24 이러한 아키텍처 개선의 효과는 수치로도 명확하게 나타났습니다.
그래프를 보시면 10월을 기점으로 이슈 발생률이 급격히 감소했고, 결과적으로 이슈 발생률이 약 80% 감소하는 놀라운 성과를 거두었습니다.
이는 개발팀의 자발적인 기술 혁신이 실제 서비스 안정성 향상으로 이어진 좋은 사례라고 생각합니다.
#25 저희 팀은 종강 이후에도 명확한 마일스톤을 설정하고 단계적으로 발전해 나가고자 합니다.
1월 초부터는 AWS Multi-AZ 구축을 통해 서비스의 안정성을 강화할 계획이고
1월 중순부터는 앱을 출시하여 본격적으로 사용자들에게 서비스를 제공하고자 합니다.
2월에 접어들면서는 서비스 운영과 이를 통한 유지보수 체계를 확립하고,
2월 중순에는 MVP 2.0 논의를 진행하며 서비스의 다음 단계를 계획하고자 합니다.
#26 발표를 마무리하며, 지금까지 저희가 자주 받았던 몇 가지 질문들을 정리해보았는데, 시간 관계 상 넘어가도록 하겠습니다.
---
첫째, iOS 앱을 우선 개발한 이유입니다.
둘째, 아직 서비스를 출시하지 않은 이유에 대해 말씀드리겠습니다.
마지막으로 서비스의 비즈니스 모델에 대한 질문입니다.
#27 마지막으로 저희 팀 콜라부 팀원들을 소개하겠습니다.
iOS 개발을 담당한 최희진, 아우신얀,
마지막으로 팀장이자 클라우드 인프라 설계 및 구축을 담당한 발표자 이진우 였습니다.
감사합니다.