나눔을 미루(meal)지 말고 나눔을 밀(meal)어주세요!
'나누밀'은 기부를 통해 결식아동들이 다양한 식사를 할 수 있도록 돕는 서스펜디드 밀 플랫폼입니다.
나누밀을 통해 기부자들은 결식아동을 위해 후원할 수 있고, 그 후원 금액으로 결식 아동들은 건강한 한 끼를 섭취할 수 있습니다.
Suspended Meal이란?
서스펜디드 커피(Suspended Coffee)란 100여년 전 이탈리아에서 시작된 운동으로, 돈이 없어 커피를 사 먹지 못하는 노숙자나 불우한 이웃을 위해 미리 돈을 내고 맡겨두는 커피를 의미합니다.
바른먹거리풀먹어 팀은 여기서 더 나아가 커피가 아닌 결식아동을 위한 식사를 맡겨두는 ‘서스펜디드 밀(Suspended Meal)’ 플랫폼을 통해 결식아동이 겪고 있는 끼니 문제를 해결하고자 합니다.
분야 | 이름 | 포지션 |
---|---|---|
기획 | 김다연 | 😻서비스 기획, 사업 파트 담당 |
기획 | 박형준 | 😻서비스 기획, 리서치 담당 |
기획 | 이혜지 | 😻프로젝트 매니징, 와이어프레임 담당 |
디자인 | 이어진 | ✒️프로토타입, 서비스 디자인 담당 |
개발 | 김민근 | 💻서버 개발 담당 |
개발 | 심대성 | 💻서버 개발 담당 |
개발 | 신민서 | 💻Android 개발 담당 |
개발 | 이지현 | 💻Android 개발 담당 |
결식아동들이 건강한 한 끼를 섭취할 수 있도록, 더불어 온전한 마음이 전해질 수 있는 기부를 활성화하고자 합니다.
타겟 | 문제점 | 기대효과 |
---|---|---|
결식아동 | 제한된 사용금액과 메뉴의 다양성 저하 | 메뉴의 다양성과 영양가 높은 식사 보장 |
후원자 | 투명하지 않은 기부 | 온전한 마음을 전할 수 있는 투명한 기부 방식 |
가맹점(점주) | 자체 홍보 수단의 부족 | 선한 영향력 식당으로 홍보 & 매출 증대 |
결식아동(나누미) 은 현재 급식비 지원단가 내에서 제한된 사용금액으로 끼니를 해결해야 하기때문에 메뉴의 다양성이 부족합니다. 나누밀을 통해 결식아동은 앱 내에서 기부 받은 금액으로 가맹점에서 끼니를 해결할 수 있기 때문에 다양한 메뉴와 영양가 높은 식사를 즐길 수 있습니다.
평소 정확한 기부금 활용 내역을 알기 어려워 기부를 하지 못 했던 사람들도 선뜻 기부를 할 수 있도록, 자신의 기부금액이 사용되었을 때 아동에게 직접 감사메시지를 받아볼 수 있습니다. 후원자(나누머) 는 투명한 기부를 통해 따뜻하고 온전한 마음을 전할 수 있습니다.
자체 홍보 수단이 부족해 고민인 가맹점(점주) 는 나누밀을 통해 자신의 가맹점을 홍보할 수 있습니다. 서스펜디드 밀 플랫폼에 참여하는 선한 영향력 식당으로 홍보가 가능하고, 이에 따른 매출 증대를 기대할 수 있습니다.
❤️나누밀 | ✅월드비전 | ✅slow food | ✅시청 앞 커피 | |
---|---|---|---|---|
형식 | 서스펜디드 밀 | 도시락 전달 | 밀키트 전달 형식의 서스펜디드 밀 | 서스펜디드 커피 |
특징 | 앱 내 기부 프로세스, 결식아동 특정 지원 | 일반적인 결식아동 지원 형태 | 온라인으로 타인을 위한 밀키트 결제 가능 | 커피 쿠폰 사용자 제한 없음(누구나 서스펜디드 커피를 마실 수 있음) |
장점 | 기부금 활용처를 앱으로 쉽게 볼 수 있음 | 공신력 있는 단체, 활성화된 기부 | 체계적인 사이트 내 결제 프로세스 | 국내 최대 서스펜디드 커피 시스템 |
순위 | 가맹점 리스트 | 점포 수 | 비율 |
---|---|---|---|
1 | 일반음식점 | 35만 7705곳 | 71.5% |
2 | 편의점 | 8만 7906곳 | 17.6% |
3 | 마트 | 5889곳 | 1.2% |
cf) 출처 : 강득구 더불어민주당 의원실 자료
순위 | 가맹점 | 비율 |
---|---|---|
1 | 편의점 | 41.9% |
2 | 마트 | 16.6% |
3 | 제과 | 8.1% |
cf) 출처 : 강득구 더불어민주당 의원실 자료
고물가로 인해 1식 7000원 정도로는 아이들의 선택권이 좁아질 수 밖에 없으며, 정부와 지자체는 결식아동이 충분한 영양 섭취를 통해 건강한 성장을 지원할 수 있도록 지원 단가를 상향하고, 71.5%에 달하는 일반음식적 사용 비율을 늘려나가는 특단의 대책을 마련해야 할 필요성이 있습니다.
지원 금액 | 지역 |
---|---|
8000~9000원 | 서울, 부산 |
8000원 | 대전, 경기 |
7000~8000원 | 충남 |
7000원 | 대구, 인천, 광주, 울산, 세종, 강원, 충북, 전북, 전남, 경북, 경남, 제주 |
지난달 18일 보건복지부에 따르면 결식아동을 위한 복지부 급식지원비 권고금액인 한 끼에 7000원을 지급하는 시도는 인천, 광주, 대구, 경북, 경남, 전북, 전남 등 12곳입니다. 그나마 서울 서초구·종로구, 부산시 기장군 등이 결식아동에게 최고액인 9000원을 지급하고 있습니다.
문제는 최근 국내 물가는 가파른 상승세를 보이고 있으나 급식비 단가는 1식 7~8000원으로 물가상승을 전혀 반영하고 있지 못하고 있다는 것입니다. 원자재 가격 상승 등으로 외식 물가가 크게 오르면서 지방자치단체가 저소득층 아동에게 지급하는 급식단가와 실제 식비의 차이가 커지고 있습니다.
서비스 타겟층은 나누미(결식아동)와 나누머(후원자), 그리고 가맹점(점주) 입니다.
분류 | 서비스 론칭 |
---|---|
타겟 | 나누미(결식아동) |
관련 기능 | 이용 가능한 음식점 확인 및 기부 받은 금액을 통한 끼니 해결 |
타겟 | 나누머(후원자) |
관련 기능 | 후원 가능한 음식점 확인 및 해당 식당에 기부 |
타겟 | 가맹점(점주) |
관련 기능 | 선한 영향력 식당으로 홍보 가능 & 매출 증대 기대 |
페르소나 1
이름: 김나눔
나이: 10살
직업: 초등학생
한 줄 요약: 편의점 도시락, 레토르트 식품으로 한끼를 해결하는 아동
저는 어머니와 둘이 살고 있는 10살 김나눔입니다. 어머니가 직장에 다니셔서 저녁을 혼자 해결해야 하는데 주로 꿈나무 카드로 편의점에서 도시락이나 김밥을 사먹어요. 가끔 맛있는 것이 먹고싶은 날에는 패스트푸드점에서 햄버거를 사먹고는 해요. 간편 식품으로 식사를 대신하다보니 군것질도 느는 것 같아요. 직접 만든 따스한 한 끼를 먹고 싶지만 아직은 혼자 해먹을 수 있는 것이 많이 없어서 식사의 퀄리티를 챙기기 어려워요
페르소나 2
이름: 최대학
나이: 23살
직업: 대학생
한 줄 요약: 큰 금액을 기부하기에는 경제적 부담을 느끼는 평범한 대학생
아르바이트와 용돈으로 대학 생활을 하고 있어요. 어릴 때부터 기부 단체의 캠페인 영상을 봐와서 기부라는 것에 익숙하지만, 선뜻 지갑을 열기에는 망설여져요. 아무래도 월 정기 후원이 부담이 되기도 하고 제가 낸 후원금이 정확히 어디에 사용되는지 확실하지 않기 때문인 것 같아요. 하지만 기부의 중요성에 대해서 알고 있고, 여건이 된다면 적은 금액이라도 함께하고 싶어요.
페르소나 3
이름: 박사장
나이: 47살
직업: 요식업체 운영
한 줄 요약: 직접적인 경제적 지원은 어렵지만 한 끼를 제공하는 장소로는 자신의 가게를 활용할 의지가 있는 식당 사장님
작은 식당을 운영하고 있습니다. 기부 활동에 동참하고 싶지만 요즘 가게 사정이 좋지 않아 타인을 돕기엔 여유가 없어요. 하지만 좋은 기회가 생긴다면 언제든지 나눔에 함께하고 싶습니다. 제 주변 사장님들도 아이들에게 따뜻한 한끼를 제공하는 활동을 하고 계시더라고요, 저도 참여해보고 싶습니다.
주요 기능은 결식아동이 서스펜디드 밀을 먹을 수 있는 가맹점을 나타낸 지도 페이지와 후원자가 원하는 식당에 식사를 기부할 수 있는 페이지입니다.
기능 | 설명 |
---|---|
메인페이지 | 결식아동들이 후원자들이 맡겨놓은 서스펜디드 밀을 먹을 수 있는 가맹점을 확인할 수 있는 지도 기능 |
후원 가능 식당 리스트 | 후원자들이 식사를 후원하고 싶은 식당을 볼 수 있는 리스트 기능 |
감사메시지 | 결식아동(나누미)들이 서스펜디드 밀을 이용하고, 후원자(나누머)에게 직접적인 감사인사를 보낼 수 있는 기능 |
마이페이지 | 정보 변경, 받은 감사메시지 등 주요 기능 이외의 부가적인 기능 |
나누밀은 크게 기업의 후원(CSR 자금)과 굿즈 제작 및 판매로 수익을 창출할 예정입니다.
1. 기업의 후원
1-1. 대표적인 사회복지 법인에속하는 단체들, 월드비전과 굿네이버스의 수입 구조를 보면, 각각 사업 후원금, 후원금>후원금품 명목으로 기업에게 후원 받는 것을 알 수 있습니다. 특히, 기업의 사회적 책임(CSR)과 더불어 ESG경영이 강조되고 있는 현 상황에서 기업들에게 투자를 요청하는 방식으로 후원을 받으려고 합니다.
1-2. 기업에게 투자받은 금액은 인건비와 운영비 그리고 후원금으로 사용될 예정입니다.
2. 굿즈 제작 및 판매
2-1. 수저, 젓가락, 포크, 식탁보, 밀키트 등 식생활과 밀접하게 관련된 물건들을 활용하여 굿즈로 제작, 후에 판매할 예정이며, 아웃소싱을 통하여 제작할 것입니다.
2-2. 굿즈 판매의 수익금의 경우 기업에게 투자받은 금액을 통하여 인건비와 운영비가 해결이 가능하면, 후원금으로 사용되는 선순환 구조를 만들 것 입니다.
2-3. 굿즈 제작 및 판매는 하나의 부수적인 수익으로써, ‘돈을 번다'라는 의미보다는 후원자들이 지속적인 후원을 할 수 있도록 도와주는 역할을 할 것입니다
방식 | 설명 |
---|---|
협업 방식 | 노션(Notion), 깃(Git), 슬랙(Slack) |
코딩 컨벤션 | 기업 및 학생 단체에서 진행하는 행사와 프로그램에 제품 협찬을 제안 및 홍보할 수 있는 커뮤니티 기능 |
커밋 규칙(Git)
표기법 | 설명 |
---|---|
ADD | 추가시 |
UPDATE | 환경 설정 추가/변경 시 |
REMOVE | 삭제 시 |
FIX | 수정 시 |
CORRECT | 문법 오류, 타입, 이름 변경 시 |
REFACTOR | 리팩토링 시 |
커밋 방법
번호 | 설명 |
---|---|
1 | git clone 레포 http 주소 복사 |
2 | git remote add origin 레포 http주소 복사 |
3 | 브랜치 생성 : git branch 자기 브랜치 이름 |
4 | 내 브랜치로 이동 git checkout자기 브랜치 이름 |
5 | git commit -m “커밋메세지” |
6 | git add . |
7 | 병합 : git merge origin/내 브랜치 |
8 | 메인 브랜치로 이동: git checkout main |
9 | 푸시: git push |
Git Flow
메소드 | URI | 기능설명 |
---|---|---|
GET | /login/oauth2/code/kakao | 인가 코드 받기 |
GET | /auth/token | 소셜 로그인 |
POST | /auth/signup | 폼 회원가입 |
POST | /auth/login | 폼 로그인 |
POST | /auth/email | 이메일 인증 |
POST | /auth/verify/nickname | 닉네임 중복 확인 |
POST | /auth/verify/login-id | 아이디 중복 확인 |
POST | /auth/verify/email | 이메일 중복 확인 |
POST | /auth/document | 서류 인증 |
PUT | /user/info | 소셜 로그인 후 유저 정보 입력 |
GET | /user/info | 현재 유저 정보 확인 |
DELETE | /user/info | 현재 유저 탈퇴 |
GET | /mypage | 회원정보 조회 |
GET | /thanks/donation | 기부한내역 + 감사메시지 출력 |
GET | /history/use | 이용내역 출력 |
GET | /main/list | 식당 리스트 불러오기(위도 경도 x,y 좌표 보내주기 ⇒ 사각형) |
GET | /main/list/donate | 식당 리스트 불러오기(후원금액 적은순) |
GET | /main/list/remainDon | 식당 리스트 불러오기(남은 금액이 메뉴의 최소 금액보다 작은 것) |
GET | /main/list/distance | 식당 리스트 불러오기(거리순) |
GET | /main/{id} | 식당 상세페이지 불러오기 |
GET | /favorite | 식당 즐겨찾기 가져오기 |
POST | /favorite | 식당 즐겨찾기하기 |
DELETE | /favorite/{favoriteId} | 식당 즐겨찾기 취소 |
POST | /donation/make | 후원하기 |
POST | /history/make | 후원받기 |
POST | /thanks/make | 식당 즐겨찾기 취소 |
회원가입 / 로그인
기능명 | 상세 | 기능내역 |
---|---|---|
회원가입 | 결식아동 | 증명 서류 받기(카메라/파일 사용하여 이미지) - S3 |
회원가입 | 기부자 | 개인정보(이름, 나이, 거주지, 이메일) |
로그인 | 결식아동 | 증명 서류 부재시 앱 비활성화 이용 - 가게 리스트만 볼 수 있음 |
로그인 | 기부자 | 로컬 로그인 + 소셜 로그인(카카오, 구글) |
메인 페이지
기능명 | 상세 |
---|---|
네이버 지도 API | 지도에 제휴를 맺은 가게 출력 |
검색창 | 지도 위 가게 검색창 |
서랍 | 하단에 서랍으로 식당 리스트 출력 |
식당 클릭 | 식당 핀 누를 시 식당 상세 페이지(가게 정보)로 이동 |
가게 상세
기능명 | 상세 |
---|---|
메뉴 | 메뉴 및 메뉴의 금액 출력 |
이름 | 가게 이름 |
위치 | 가게 위치(EX 인천시 서구 가정동) |
설명 | 식당 업종에 대한 설명, 식당 어필 |
남은 기부금액 | 기부금액을 드러내어 결식아동들이 현재 이용할 수 있는 상태의 식당임을 표시 |
기부하기(받기)
기능명 | 상세 |
---|---|
밥 먹자 | 수저 모양의 아이콘 |
감사 메시지 | 행복해요, 맛있어요, 감사해요 등의 간단한 메시지 |
기부하기 | 돈 모양의 아이콘, 후원 금액 설정 후 기부자가 결제 |
마이페이지
기능명 | 상세 | 기능내역 |
---|---|---|
기본 정보 | 나누머(기부자) | 기본 정보 변경 |
감사 메시지 리스트 | 나누머(기부자) | 결식아동에게 받은 감사 메시지 리스트 출력 |
누적 후원 금액 | 나누머(기부자) | 현재까지 내가 기부한 금액 확인 가능 |
프로필 인적사항 | 나누미(결식아동) | 프로필 인적사항 출력(나이, 이름 등) |
이용내역 | 나누미(결식아동) | 기부받은 내역과 식당 이름 출력, 감사메시지 작성으로 이동 가능 |
나누미 마이페이지 비활성화 | 나누미(결식아동) | 서류 인증 불가시 비활성화 |
네비게이션 바
기능명 | 상세 |
---|---|
홈 | 메인페이지 이동 |
마이페이지 | 마이페이지 이동 |
후원가능 리스트 | 제휴 맺은 식당 리스트 출력 |
정보 페이지 | 착한식당 공유 |
찜 리스트 | 내가 찜한 식당 리스트 |
Springboot(Java)
를 이용한 API 서버를 개발하였고, JPA(ORM)과MySQL
을 이용한 CRUD 구현하였습니다.- 유저의 로그인 정보를 더 안전하게 관리할 수 있는
Spring Security
프레임워크를 사용했습니다. - 정보에 인증이 되어 있고 믿을 수 있는
JWT
를 사용했습니다. - 이 때 소셜 로그인을 구현하기 위해 Kakao API를 사용했고, 폼 로그인을 구현하기 위해 이메일 전송 라이브러리를 사용했습니다.
- 객체와 RDBMS를 쉽게 맵핑하고자 JPA, Hibernate, Spring Data JPA를 사용했습니다.
AWS EC2
를 이용해 서버를 배포하였고,AWS RDS
를 이용해 DB 서버를 구성하였습니다.AWS S3
를 이용해 이미지 데이터를 관리하였습니다.Springboot
로 구축한 API 서버와Android
를 연결하고 무중단 배포하기 위해서 Nginx를 사용했습니다.- API문서 자동화를 통해 테스트를 쉽고 편하게 하기 위해
Swagger
를 사용했습니다. - 협업 및 코드 버전 관리를 위해
Github
을 이용하였으며 - 자동 배포를 위해
Github actions
를 이용하였습니다.
Prometheus
를 이용해 서버의 데이터 로그를 수집하고,Grafana
를 이용해 데이터를 시각화하였습니다.
- Git Flow에 따라 기능 구현
- dev 브랜치에 Pull Request를 보내 코드를 merge
- merge된 코드가 잘 작동되는 것을 확인 후 master 브랜치에 Pull Request를 보내 merge
- 코드가 merge되면 Github Actions에서 프로젝트를 빌드 후 해당 JAR 파일을 AWS S3에 전달
- Github Actions에서 CodeDeploy에 해당 JAR 파일을 배포하도록 전달
- CodeDeploy는 EC2 서버에 있는 CodeDeploy Agent가 S3 버킷에서 JAR 파일을 받아와 주어진 쉘 스크립트에 따라 배포를 진행하도록 함
- 새로운 Spring Boot WAS를 띄운 뒤, Nginx 스위칭을 통해 무중단 배포를 진행
APK | 설명 |
---|---|
경로 | app\build\outputs\apk\debug\app-debug.apk |
파일 |