App
-
Caffeine Manage - Firebase Authentication 추가App 2021. 8. 19. 20:50
이전에 올렸던 프로토타입에서, 사용자별 데이터를 각각 데이터베이스로 관리하기 위해서 로그인 시스템을 추가했다. 연동해두었던 Firebase의 기능중 인증 기능을 사용했다. Firebase Authentication을 추가하기위해 implementation을 추가했다. implementation 'com.firebaseui:firebase-ui-auth:7.2.0' 그 후, firebase doc를 참고하여 LoginActivity를 작성해주었다. LoginActivity.kt (Kotlin) class LoginActivity : AppCompatActivity(){ private val signInLauncher = registerForActivityResult( FirebaseAuthUIActivit..
-
CaffeineManageApp 2021. 8. 14. 15:22
앱 이름 : CaffeineManage 기능 : 그날 먹은 카페인 총량을 저장, 기록해주는 앱 프로젝트 시작일 : 7월 27일 -> 각 프랜차이즈별 커피 이름을 데이터베이스화시켜 미리 등록해둘 수 있게함. 현재까지 구현한 프로토타입 1번탭 (카페인) : 카페인 기록 창 2번탭 (달력) : 그날 먹은 카페인의 총량을 github에서 볼 수 있는 heatmapcalendar와 같이 표시해줌 3번탭 (검색) : 구현하지 않아서 사진에 넣지 않았음. 지도 데이터, GPS를 기반으로 주변에 있는 카페들을 출력, 해당 카페에 무슨 메뉴들이 있는지 데이터를 가져올 수 있도록 함. 이를 통해 내가 먹은 메뉴를 미리 등록해둘 수 있음. 4번탭 (설정) : google 로그인을 통한 데이터의 개인화, 로그아웃 기능등. 추..
-
-
카카오톡 학식봇 만들기(DynamoDB, 파라미터 검증 API) - 12App 2021. 7. 21. 17:01
menu_save를 완성했다. 지난번부터 계속해서 고민했던것은, 오늘 국밥 먹었어, 오늘 라면 먹었어, 오늘 중식 먹었어 와 같이 여러 종류의 메뉴들중 모호하게 사용자가 발화했을 때 봇이 대처하지 못하는 상황이다. 이 상황은 카카오 오픈빌더의 파라미터 검증 API를 사용해서 해결했다. 카카오 i 오픈빌더 도움말에는 이 파라미터 검증 API에대해서 간략하게 설명이 되어있는데, 오픈빌더 링크 https://i.kakao.com/docs/key-concepts-parameters#%EC%98%88%EC%95%BD%EB%90%9C-response-json-%EA%B5%AC%EC%A1%B0 위의 사진이, 검증 API로 넘어오는 request의 형태이다. 위 도움말을 보고, request에서 value["resol..
-
카카오톡 학식봇 만들기(AWS Lambda, Kakao Skill) - 11App 2021. 7. 19. 20:58
오늘은 menu_save에대한 구체적인 구현을 진행했다. 기본적인 DB 저장 기능은 잘 구현됐지만, 특수적인 상황에 대처할 수 있도록 봇의 필수 파라미터를 지정해주고, 검증해주는 부분이 가장 힘들었다. 검증 API를 추가해서 파라미터를 검증하기위해 검증 API를 추가했다. 검증 API를 사용한 이유는, 사용자의 예상 발화가 "나 국밥 먹었어."와 같은 경우에, 국밥의 종류(얼큰, 수육 ..)를 알 수 없기 때문에 해당 API를 사용하기로 했다. 위의 경우는 국밥, 중식(일품, 백반), 라면(신라면, 진라면 ....) 과 같은 경우에 공통적으로 발생하는 예외사항이였다. 하지만 도움말을 봤지만, 도움말에서 정해진 형태의 결과값을 반환해주어야 정상적으로 동작한다는 부분에서 문제가 발생했다. "정해진 형태"가 ..
-
카카오톡 학식봇 만들기(AWS Dynamo DB with lambda) - 10App 2021. 7. 17. 19:33
import json import boto3 import crawling_INUmenu as im def lambda_handler(event, context): body = json.loads(event["body"]) typemenu_list = ["중식(백반)","중식(일품)","석식"] food_name = body["action"]["params"]["food_list"] user_id = body["userRequest"]["user"]["id"] # Date and index date_obj = json.loads(body["action"]["params"]["sys_date"]) date = date_obj["date"] date_tmp = int(date[5:].replace('-',''..
-
카카오톡 학식봇 만들기(AWS Dynamo DB) - 9App 2021. 7. 16. 17:29
마지막으로 구현 할 기능은 menu_save, menu_show, menu_recommend 이다. menu_save : 입력한 메뉴가 csv 메뉴 목록에 있다면, History에 추가합니다. ex ) 나 오늘 불낙덮밥 먹었어. # date = 오늘 , 메뉴 = 불낙덮밥 이렇게 들어온 데이터들을 DB에 카카오 봇으로부터 넘어온 id를 파티션키로하여 저장해줌. mesnu_show : History에 저장된 메뉴 목록들을 출력합니다. ex ) 먹었던 메뉴 보여줘. DB에서 id를 키로해서 검색한 후, 저장된 History를 출력해줌. menu_recommend : 저장된 History가 10개 이상일 경우, 실행 가능한 서비스. 10개의 메뉴들을 형태소 단위로 쪼갬 ex) 불낙 덮밥 -> 불낙, 덮밥 // ..
-
AWS Lambda 실시간 로그 사용하기(Cloud watch)App 2021. 7. 15. 20:33
https://github.com/jorgebastida/awslogs jorgebastida/awslogs AWS CloudWatch logs for Humans™. Contribute to jorgebastida/awslogs development by creating an account on GitHub. github.com 그동안 request를 보낸 후 정상적으로 출력이 되지 않으면 일일이 Cloud watch에 들어가서 로그그룹을 누르고.. 수동으로 확인하고 있었는데, 위의 링크에서 배포하고 있는 프로그램이 실시간 로그 출력을 가능하게 한다는것을 알게 되었다. 다만 사용법이 친절하게 다 쓰여있지 않아서, 사용하는 방법을 알게되기까지 많은 시간이 걸렸다. 1. 먼저 Log 뷰어용 IAM 계정을 ..