본문 바로가기

프로그램/앱인벤터

[앱인벤터2] TinyWebDB 사용법

  TinyWebDB는 휴대폰에 저장되는 것이 아닌 웹서버에 기록되는 것이다. TinyDB가 내 휴대폰에 저장되어 나만 볼수 있는데 반해, TinyWebDB는 웹서버에 저장되어 클라우드 방식으로 저장하고 가져오기 때문에 다른 기기나 사람에서 접근가능하며 내가 올린 데이터들을 수시로 확인(남들과 공유가 가능해짐)할 수 있다. 여기서 TinyWebDB의 웹서버는 실습용으로만 제공되며, 원래는 본인이 웹서버를 구축하여 사용하는 것이 원칙이지만, 간단히 내가 만든 앱이 잘 동작되고 저장되는지 확인하기 위해 테스트할 때도 필요하므로 올려본다. 



TinyWebDB.StoreValue tag "지역변수(Webdb폴더개념:gaquestions)" ,  valueToStore (폴더 안에 저장될 리스트:get global QuestionList3)를 같은개념으로 아래 답변리스트도 작성되었는데, 이를 확인하려면 앱이 아닌 아래의 홈페이지에서 확인해야 한다.


http://appinvtinywebdb.appspot.com/



위 그림처럼 /.getvalue: 를 클릭하면 아래그림처럼 나오는데, Tag 란에 gaquestions를 입력하면 값에 해당하는 부분이 검색된다. gaanswers 부분도 마찬가지로 검색이 된다. 

  그리고, 앱을 종료한 후 다시 시작했을 때 나타나게 하기위해 Screen.Initialize에 저장된 값을 불러와 적재하는 블록을 추가한다. 



  또한 동시에 when TinyWebDB1.GotValue do 도 설정해줘야 하는 데, 처음에 if then 문을 불러와서 if에 is a list? thing get valueFromWebDB (저장된 웹DB데이터를 가져옴.), 그리고 thenif then else 문과 if then 문 이렇게 두개를 추가하여, 첫번째(1-1) if then else의 if에 get tagFromWebDB =  "gaquestions" (가져온데이터의 태그가 "문제:gaquestions"가 맞다면), then에 set global QuestionList3 to get valueFromWebDB("문제리스트"에 "웹DB에서 가져온 데이터"를 넣어라), else에 set global AnswerList3 to get valueFromWebDB(아니면 "답변리스트"에 "웹DB에서 가져온 데이터"를 넣어라), 그리고 두번째 if then문(1-2)에는 if에 length of list list get global QuestionList3 = length of list list get global AnswerList3("문제리스트"와 "답변리스트"의 길이(갯수)가 맞다면), then에 call displayQAs(displayQAs를 호출하여 화면에 표시하라)라고 코딩하면 된다.



* [앱인벤터2] Tiny web db 서버 만들기


서버를 만들어두면 특정 기기에 치우치지 않고 웹상에 정보가 저장되므로 웹용 애플리케이션 개발에 활용할 수 있다. 만드는 방법은 아래 블로그를 참고해 보면 될것 같다. 

https://blog.naver.com/mygooddoctor/220153627689


위 포스팅은 구글 앱 엔진이나 아마존 일래스틱 컴퓨트 클라우드와 같은 클라우드 컴퓨팅 도구중 전자(구글 앱 엔진)를 이용하여 서버를 구축하는 내용인 듯 싶다.





<출처 :  David Wolber, Hal Abelson, Ellen Spertus, Liz Looney(2015), 

앱인벤터2(초판)(오일석, 이진선 번역, 서울:한빛아카데미. (원서는 2014년에 출판)>