내게 정확히 무엇이 부족한지 알 수 있었고 또 많은 것을 배웠다.
1. 자바언어라 할지라도 안드로이드의 이해가 부족하여 1인분의 몫을 하지 못한 점,
2. 해커톤의 결과물은 사람들에게 서비스를 제공할 수 있어야 한다는 점,
3. 서비스에서 가장 중요한 것은 그 무엇보다도 납기라는 것,
4. 해커톤은 배우러 오는 것이 아니라 배운 지식을 활용하는 무대라는 것.
사전교육1일, 개발3일, 발표1일 간 고생이란 고생은 다하고도 결과물에 흡족하지는 못했지만 다음 학기에 있을 HCI 과목에서 개발할 기말 과제(애플리케이션)에서 좀 더 디벨롭을 하거나 새로운 방향으로 나아갈 수 있을 것이다.
=전체 팀 개발일지 및 해커톤 진행 사이트=
www.notion.so/AI-cb04f40822764531b4b9f495048566d4
=해커톤 개발일지=
서비스명 - 쩝쩝박사(요리 초보자를 위한 도우미 애플리케이션)
0. 개요
1. 제품소개
2. 제작동기
3. 제품장점
4. 팀 소개
5. 개발일지
5-1. 1일차 개발일지
5-2. 2일차 개발일지
5-3. 3일차 개발일지
5-4. 4일차 개발일지
5-5. 5일차 개발일지
1. 제품소개
1-1. 제품소개
: 저희 오모나 팀이 만든 '쩝쩝박사'는 요리 초보자들을 위해 요리 레시피를 제공하고, 재료를 기반으로 메뉴선택을 도와주는 어플리케이션입니다. 그 외에도 레시피 즐겨찾기 기능, 나만의 레시피 관리 기능을 포함하고 있습니다.
1-2. 제품 사용자
: 코로나 19로 인해 사회적 거리두기를 준수하며 집에 머무는 20대 초반 갓 자취를 시작한 사람들을 타깃으로 만든 어플리케이션입니다. 항상 배달 음식을 시켜먹기에는 한계가 있고, 직접 요리를 해먹기에는 요리 실력이 부족하여 불편을 겪는 모든 요리 초심자들을 대상으로 합니다.
1-3. 플랫폼
: 안드로이드 스튜디오
1-4. 제품 의도
: 냉장고 안에 재료가 있지만 이를 사용하지 않아서 결국 음식물 쓰레기가 되는 경우를 줄여서 환경을 보존하고, 어플 사용자들의 요리 실력을 향상시킵니다.
1-5. 기대 효과
: 사회적으로 집에서 요리하는 사람들이 많아지면서, 배달음식으로 인한 쓰레기 사용량이 줄어들 수 있습니다. 또한 집에서 머물면서 사회적 거리두기를 준수하고 코로나19를 극복할 수 있습니다.
1-6. 제품 기능 상세 설명
1. 레시피 검색 기능 | 검색창에서 사용자가 요리명를 검색하면 해당 요리의 레시피 내용을 보여준다. |
2. 레시피 카테고리 기능 |
'국/찌개', '밑반찬', '메인반찬', '밥/죽', '면요리' 5가지 카테고리 별로 요리를 구분하고 해당 요리의 레시피 내용을 보여준다. |
3. 챗봇 기능 |
재료기반메뉴추천: 사용자가 재료를 입력하면 해당 재료가 사용되는 요리를 추천해준다. 또한 추천된 요리를 보여주는 카드에 '레시피보기'버튼을 이용해 사용자가 간편하게 해당 요리의 레시피를 볼 수 있도록 해준다. 레시피 검색: 사용자가 요리를 검색하면 해당 요리의 레시피를 보여준다. 또한 검색데이터에 대한 답변을 준 후, 해당 요리와 연관된 또다른 연관요리를 추천해준다. |
4. 내 레시피 등록 기능 |
사용자가 자신만의 '내 레시피'를 작성해서 등록할 수 있다. |
5. 내 레시피 목록보기 기능 |
사용자가 등록한 '내 레시피'들의 목록을 보여준다. |
6. 즐겨찾기 기능 | 사용자가 자주 찾는 레시피를 즐겨찾기로 등록하면, 즐겨찾기 목록에서 해당 레시프를 따로 보관하여 보여준다. |
1-7. 쩝쩝박사 어플 프로토타입
https://ovenapp.io/view/9R90QzxpH286cKuBN3zk2K12VEemFNv7/5A26A
2. 제작 동기
코로나 19로 인해 사회적 거리두기가 필요해졌고, 사람들이 집에 머무는 시간이 많아졌습니다. 집에 머물면서 항상 배달 음식을 시켜먹기에는 한계가 있고, 직접 요리를 해먹을 수 밖에 없습니다. 이러한 상황속에서 요리에 능숙하지 못해 불편을 겪는 사람들을 위해 요리 도우미 애플리케이션을 구현하고자 합니다.
3. 제품장점
1. 다른 요리 레시피 어플 및 사이트와는 차별화되도록 요리가 아닌 재료를 중심으로 초보자에게 요리를 소개합니다. 현재는 데이터가 쌓이지 않아 임의로 재료 기반 추천 요리를 넣어두었지만, 만약 데이터를 많이 쌓을 수 있게 된다면 해당 재료로 사람들이 어떤 요리를 많이 하는지 알 수 있습니다.
2. 마음에 드는 레시피를 저장하거나 즐겨찾기 해둘 수 있어 번거롭게 다시 찾아보지 않아도 됩니다. 요리법을 기억하기 힘든 초보자들에게 추천되는 기능입니다.
3. 간편한 접근성을 가지고 있습니다. 주 타겟 사용자층이 휴대폰 사용량이 많은 20대 초반 학생인 것을 감안해, 모바일 어플리케이션의 형태를 하고 있어 사용자가 편하게 정보에 접근할 수 있습니다.
4. 팀소개 - [오모나팀 염혜지, 홍예주, 김소현]
이름 : 염혜지
역할 : 프론트엔드, 백엔드 개발자
각오 : 사용자의 니즈를 충족시키자!
이름 : 홍예주
역할 : 개발자
각오 : 서비스 가능한 제품을 만들자!
이름 : 김소현
역할 : 개발자
각오 : 사람들에게 도움이 될 수 있는 서비스를 제공하자!
5. 개발일지
5-1. 1일차 개발일지
날짜 : 2월 15일
회의 참여자 : 김소현, 염혜지, 홍예주
일지 작성자 : 김소현
회의 시간: 7P.M ~ 12P.M
플랫폼: google meet
1) 카카오오븐 프로토타입 제작
(프로토타입 링크)
https://ovenapp.io/view/9R90QzxpH286cKuBN3zk2K12VEemFNv7/5A26A
내 레시피 화면 (4 of 9)
2) 어플 기본 레이아웃 xml 작성
3) 챗봇 구조도 설계
3-1) 메뉴추천 & 레시피 제공 선택 버튼
3-1-1) 메뉴 츄천
- 한/일/중/양 선택버튼
- 선택시 재료 입력 요구
- 재료를 못알아들을 시 다시 입력 요구
- 버튼 클릭 시 레시피 화면으로 이동
3-1-2) 레시피 제공
- 사용자한테 질문요구
- 버튼 클릭시 레시피 화면으로
4) DB 외부 접속 시도
4-1) 과정
- tnsnames.ora와 listner.ora 파일에 있는 host에 서버 ip를 입력
- client 컴퓨터에서 서버의 계정, 비밀번호, sid, port를 입력하여 접속 시도
4-2) 결과 : 실패
4-3) 원인 : 데이터베이스 네트워크 서버에 대한 이해 부족
5) 기획한 챗봇 구조에 따라 대화 흐름 제작 시작
6) 검색창에서 요리 이름 검색할 수 있는 xml, java 구현 시작
7) 데이터베이스에 들어갈 csv파일 생성(미완)
8) 내일 계획
8-1) 회원을 고려하여 데이터베이스에 user테이블을 추가한다. (@염혜지, 김소현))
상세설명: 회원가입 대신 닉네임의 형식으로 유저를 구분한다. ex) CREATE table user(user_id int primary key, user_name char(20))
user테이블은 favorite 테이블과 myrecipe 테이블이 참조하도록 한다.
8-2) 실패한 DB 외부접속을 재시도 한다. (@김소현,@염혜지,@홍예주)
8-3) 기획한 챗봇 구조에 따라 챗봇 제작을 완료한다. (@홍예주)
8-4) 검색창에서 요리 이름 검색할 수 있는 xml, java 구현 을 완료한다. (@김소현)
8-5) 데이터베이스에 넣을 csv파일을 완성한다.(@김소현,홍예주,염혜지)
9) 추가사항
- 멘토에게 질문할 사항
9-1) 안드로이드에 어떻게 얹는가?
단비 AI 챗봇을 어떤 방식으로 해당 어플과 연동 가능한지
jsp API로 연동 가능한가?
jsp를 API로 변환해 단비 AI 챗봇의 API 연동기능으로 활용할 수 있는지
9-2) 선택지에서 버튼 클릭 시 내부 앱 연동기능을 안드로이드 스튜디오에서
액티비티에 url을 정의 해주면 사용 가능한가?
9-3) 오라클 데이터베이스 서버에 대한 클라이언트 컴퓨터의 외부 접속의 방식이
어디가 잘못되었는가?
5-2. 2일차 개발일지
날짜 : 2월 16일
회의 참여자 : 김소현, 염혜지, 홍예주
일지 작성자 : 홍예주
플랫폼 : google meet
1) 멘토링 내용
(Q) 안드로이드에 단비 챗봇을 어떻게 올릴 수 있는지?
(A) 웹뷰로 챗봇을 감싸서 안드로이드에 탑재할 수 있다.
(Q) jsp API를 이용해 oracle DB와 단비 챗봇을 연동할 수 있는지?
(A) 가능은 하지만 시간내에 구현하기 어려울 가능성이 높다. 오라클이 초보자가 사용하기에는 어렵기 때문에 꼭 오라클로 구현해야하는 것이 아니라면 수정하는 것도 추천된다. jsp의 경우 response를 application/json xml로 수정하면 API로 사용가능하다.
시간이 부족하다면 백엔드 API를 사용하는 것도 방법이다.
단비에서 스프레드 시트를 이용한 지식 라이브러리 기능을 제공해주는데, 이를 이용해 우리팀이 원하는 기능을 구현할 수 있다.
→ 시간을 고려해 단비에서 제공하는 지식 라이브러리 기능을 이용하고, 외부 DB 사용을 포기하기로 함. 레시피 데이터의 경우 내장 DB(SQLite)를 이용하기로 결정했다.
(조언)
일정에 대한 계획을 구체적으로 세우고 DB관련 담당자를 뽑아 일괄 관리하는 것이 더욱 효율적일 것이다.
2) 회의 내용
2-1) 시간과 개발 능력을 고려해, 외부 DB 사용에서 스프레드시트 및 안드로이드 내장 DB(SQLite)를 사용하는 것으로 전환
2-2) 스프레드 시트의 경우 주재료를 기준으로 한 시트1과 각 요리의 레시피 및 기타 정보가 저장된 시트2로 분리하기로 결정
(회의 사진)
3. 제작 내용
3-1) 단비 AI 챗봇 구현
3-1-1) 단비 챗봇의 사용자 재료 입력 기반 메뉴 추천 기능
3-1-2) 단비 챗봇의 레시피 검색 기능
3-2) 안드로이드 스튜디오 구현
3-2-1) 내 레시피 기능 구현
: 내 레시피 탭에서 갤러리에서 사진 선택 및 정보 입력 기능을 추가했다.
3-2-2) 동적 검색창 기능 구현(데이터는 임시데이터) 및 즐겨찾기 기능
: 동적 레시피 검색 및 레시피 내용 보기와 즐겨찾기 기능을 추가하였다.
3-3) 안드로이드 스튜디오 SQLite 사용 가능 환경 조성
: '내 레시피'와 '즐겨찾기' 기능에서 내부 DB를 사용하기로 결정했기 때문에, 각 기능에서 SQLite를 사용할 수 있도록 DB와 DBOpenHelper를 세팅했다.
(코드 깃 주소)
3-4) 레시피 데이터 구축 완료
DB와 단비 AI 챗봇 둘 다에 사용가능하도록 csv파일로 데이터를 구축했다.
3-4-1) 시트1 작성
: 주재료와 주재료를 이용한 요리 목록을 가진 시트를 작성했다
3-4-2) 시트2 작성
: 각 요리에 대해 요리명, 재료, 요리사진, 요리 방법을 기술한 시트를 작성했다.
4. 내일 계획 (팀원 별 업무 분배 및 제작 계획 등)
1) 김소현
- 검색창 기능 구현
- 검색데이터를 SQLite에서 가져오기
2) 홍예주
- 챗봇 안드로이드 앱에 탑재
- 홈화면 카테고리 기능 구현
3) 염혜지
- 내 레시피 기능 구현 완료
- 레시피 목록 만들기
- DB SQLite와 연동
5. 추가 사항 (리서치한 내용, 회의 중 캡쳐한 사진, 추가 아이디어 등)
: 만약 스프레드 시트를 이용한 개발이 빠르게 끝난다면, 원래 계획이었던 외부 DB를 이용한 방식을 시도하는 것을 고려중이다.
5-3. 3일차 개발일지
날짜 : 2월 17일
회의 참여자 : 김소현, 염혜지, 홍예주
일지 작성자 : 염혜지
플랫폼 : google meet
1. 회의내용
- 안드로이드 내장 DB(SQLite)에 csv파일에 저장된 레시피 데이터를 저장하기
- 레시피 목록, 내 레시피 목록, 즐겨찾기 목록을 adapter를 통해 구현하기
2. 제작내용
2-1) 안드로이드 기능 구현
2-1-1) 즐겨찾기 기능
- 즐겨찾기 목록 보여주기
- 즐겨찾기 목록 클릭 시 레시피 화면 전환
- 즐겨찾기 추가/삭제 기능 구현
2-1-2) 내 레시피 기능
- 내 레시피 목록 보여주기
- 내 레시피 목록 클릭 시 레시피 화면 전환
- 내 레시피 추가 기능
- 카메라 및 갤러리와 연동
- 리스트에서 내 레시피 삭제 기능
2-1-3) 검색창 기능
- 텍스트 입력 시 연관 검색 리스트 추출
[OMONA] 쩝쩝박사 : 네이버 블로그 (naver.com)
(영상이 안올라가는 관계로 팀원 블로그 링크)
검색창 기능 구현
3. DB 파일
첨부파일
recipe.db
첨부파일
recipe2.db
첨부파일
recipe3.sqlite
4. 내일 계획 (팀원 별 업무 분배 및 제작 계획 등)
- UI 다듬기
- 로고 및 배색 선정
- 각 액티비티 별 UI 원래 기획 의도 와 맞게 수정
- CSV파일 변환 및 DB 저장
- 발표 준비
- 일지 보강
5-4. 4일차 개발일지
날짜 : 2월 18일
회의 참여자 : 김소현, 염혜지, 홍예주
일지 작성자 : 김소현
플랫폼 : google meet
1. 오늘의 회의/제작 내용 (사진 및 영상 활용 권장)
1-1) 서비스의 대상 구체화
포괄적이었던 '사회적 거리두기로 인해 집에서 요리하는 사람들'에서 '사회적 거리두기를 준수하며 집에 머무는 20대 초반 갓 자취를 시작한 사람들'과 '직접 요리를 해먹기에는 요리 실력이 부족하여 불편을 겪는 모든 요리 초심자'로 서비스 대상 구체화
1-2). 챗봇 기능 강화
- 기존 챗봇
: 재료를 입력받은 후 요리를 추천, 레시피 검색 시 해당 요리의 레시피 정보 제공
- 수정 후 챗봇
: 재료에 해당하는 요리를 추천받은 사용자들이 자주 검색하는 요리를 연관요리로 추천, 레시피를 검색한 사용자들이 자주 검색하는 요리를 연관요리로 추천
(추가된 연관요리 추천 기능의 기반은 서비스 대상자들이 요리 검색 후 찾는 다른 요리를 통계낸 데이터 활용)
- 수정한 단비 대화 로직 (아래 이미지 참고)
- 단비 AI 데이터 시트 추가 완료
(재료기반 메뉴추천 선택 시 대화 흐름 실행 영상)
(레시피 검색 선택 시 대화 흐름 실행 영상)
1-3). 안드로이드 내장 DB 테이블에 데이터가 입력되지 않는 문제 해결
원래 의도: 안드로이드 내장 DB(SQLite)에 csv파일에 저장된 레시피 데이터를 저장
해결 방안: 기한 내 서비스 완성을 위해 코드로 리스트에 직접 데이터를 insert하여 DB 테이블에 레시피 데이터를 저장
1-4). 제품서비스를 위한 UI 디자인
2. 내일 계획 (팀원 별 업무 분배 및 제작 계획 등)
- 발표 자료 준비
3. 최종 프로젝트 링크
(깃허브 링크)
https://github.com/hongmon1/SpringTiger.git
5-5. 5일차 개발일지
- 데모데이를 준비하며, 한 명 씩 소감 한마디 남기기!
1) 염혜지 : 이번 프로젝트를 통해 내가 부족한 점이 무엇인지 알게 되어 귀중한 경험이었습니다.
2) 홍예주 : 단비 AI 챗봇을 이용한 개발과정을 거치면서 새로운 경험을 많이 해보게 되었습니다.
3) 김소현 : 단비AI라는 새로운 개발툴을 알게 되었고 멘토링을 통해 좋은 서비스란 무엇인지 깨달을 수 있었습니다. 부족한 실력에도 불구하고 이끌어준 팀원들에게도 감사합니다.
[출처] [OMONA] 쩝쩝박사|작성자 여메이징
'자기계발' 카테고리의 다른 글
안드로이드 스튜디오와 오라클DB - spring 연동 (0) | 2021.03.25 |
---|---|
안드로이드 스튜디오와 오라클DB - JSP 연동 (0) | 2021.03.25 |
센서와 무선 메쉬 게이트웨이를 이용한 산불 감지 IoT 기기 (0) | 2020.12.01 |
2021년 기술 trend 9가지 by Gartner (0) | 2020.11.03 |
WSL2 설치에 관하여 - 설치, 에러해결, 사용법 (0) | 2020.10.29 |