2011년 7월 24일 일요일

제 14 장 RSS 어플리케이션 1 (준비단계 및 학습소개)

~ 1 단계 ~

1. 만들고자 하는 앱

앱인벤터 API 사이트에 게시된 RSS Feeds의 이용방법 및 이 RSS 앱에서 웹브라우저와 연동하는 기능블록을 조합하는 방법에 대해서 알아본다.

2. 준비하기

1. 앱인벤터 API 사이트(http://appinventorapi.com/rss-feeds/)에서 다음과 같은 로고가 있는 화면을 각각 클릭하여 RSS앱의 압축파일(TinyWebRSS.zip), 및 이 RSS앱과 소형웹데이터베이스의 구글서버를 연결하는 파이썬 코드의 API 압축파일(tinywebrss_appengine.zip)을 다운로드한다.

 


참고 사항: 이하의 작업은 제 10 장에서 이미 설명한 구글앱엔진런처의 작업과정과 마찬가지이다.  다만, API의 파이썬코드로서, 압축파일(custontinywebdb.zip)을 사용하는 대신에, 압축파일(tinywebrss_appengine.zip)을 사용하는 점이 다르다.

2. 우선, 파이썬 코드의 API 압축파일(tinywebrss_appengine.zip)을 풀면, 폴더(tinywebrss_appengine)가 생성되고 이 폴더안에 폴더(tinywebrss)가 생성된다. 이 폴더(tinywebrss)소형웹용 RSS API로 사용한다.  , “웹 데이터베이스 서비스용 소스코드로 사용한다.   사용자가 원하는 경우 이 폴더이름을 변경하여도 된다.

참고 사항: RSS앱의 압축파일(TinyWebRSS.zip) 앱인벤터에서 업로드 소스로서 그대로 사용한다. 다시 말하면, 이 압축파일은 압축을 풀지않고 그대로 사용한다.

3. 구글앱엔진런처(Google App Engine Launcher)에서 파일(File)을 열고 앱리케이션 추가(Add Existing Application)를 선택하여 클릭한다.

  

4. 대화상자(Add Existion Application)가 나타나고, 버튼(Browse)을 클릭하면, 폴더 찾아보기 대화상자가 나타나고, 상기 샘플코드의 압축을 푼 폴더(tinywebrss)를 선택한다.



5. 상기 대화상자(폴더 찾아보기)에서 확인버튼을 클릭하면, 앱리케이션 경로에 소스코드의 경로가 나타난다.



6. 대화상자(Add Existing Application)추가버튼(Add)을 클릭하면 구글앱엔진론처에 소스코드폴더가 추가된다.



7. 실행버튼(Run)을 클릭하면, 로컬머신 상에서 실행하는 테스트웹서비스를 런치한다.   앱인벤터의 앱이 웹에 접근하기 위해서는, 구글의 앱 엔진서버에 업로드하여야 한다.  구글앱엔진런처에서, 편집버튼(Edit)을 클릭하면, 웹 데이터베이스 서비스용 소스코드중의 하나인 app.yami의 편집창이 나타나고, 첫번째줄에 디폴트로 기재되어 있는 tinywebrss앱리케이션 식별자(Application Identifier)로 정정하여 저장한 다음 파일을 닫는다. 



참고 사항: 앱리케이션 식별자(Application Identifier)는 이전에 설명한 바와 같이 구글앱엔진 가입하면 생성할 수 있다. 여기서, 식별자는 구글앱엔진사이트에서 별도의 식별자를 생성하여야 한다.  그 이유는 rss API는 식별자를 다른 식별자와 공용으로 사용할 수 없다. 구체적으로는, 기존의 식별자를 이용하는 경우에는 모든 것을 덮어쓰기 때문에 소형웹데이터베이스에 저장된 데이터가 사라지는 점에 유의하여야 한다.

8. 다음에 디플로이버튼(Deploy)을 클릭하고, 구글 앱엔진 가입시의 이메일 주소와 비밀번호를 입력하고 버튼(OK)을 클릭한다.



9. 구글에 디플로이되는 상자가 나타나고 자동으로 디플로이된다. 디플로이내용에 이상이 없는 지를 확인하고 디플로이 상자를 닫는다.



10. 다음에, 사용자의 앱리케이션 식별자(Application Identifier)“myapp”이면, 웹브라우저에서 myapp.appspot.com를 입력하면, 다음의 스크린샷과 같은 창이 나타나면 앱인벤터에서 소형 웹데이터베이스(TinyWebDataBase)를 사용할 수 있다.  일단 이와 같이 구글에 일단 디플로이 되면 구글앱엔진런처(Google App Engine Launcher)는 사용하지 않아도 앱인벤터로 소형웹데이터베이스(TinyWebDataBase)를 라이브테스트할 수 있다. 



참고사항: 상기 스크린샷은 RSS앱의 압축파일(TinyWebRSS.zip)을 앱인벤터에서 사용하기 위해 구글에서 기본으로 제공하는 사이트(tinywebrss.appspot.com)이다.   따라서, 상기 설명한 바와 같은 작업이 번거러운 경우에는 이 사이트를 그대로 이용하여도 된다.

3. 시작하기

1. 앱인벤터 웹사이트에 액세스하여 사용자 프로젝트(My Projects)에서 부가액션버튼(More Actions)을 클릭하여 드롭다운하면 다운로드 소스버튼(Download Source)과 업로드 소스버튼(Upload Source)이 나타난다. 여기서, 업로드 소스버튼(Upload Source)을 클릭하면, 업로드 프로젝트(Upload Project)대화상자가 나타난다.



2. 파일 선택을 클릭하고 TinyWebRSS.zip를 선택하고 열기(O)를 클릭하고 OK버튼을 클릭한다. 



참고 사항: 앱인벤터에 업로드하는 압축파일은 압축을 풀지말고 그대로 업로드소스로 사용하여야 한다.

3. 이와 같이, 앱인벤터를 이용하여 TinyWebRSS.zip을 업로드 소스로서 업로드하면, 디자이너창, 블록에디터, 에뮬레이터 등에 다음과 같이 나타난다.


4. 상기 에뮬레이터에서 버튼(Get RSS)를 클릭하면, 다음과 같이 RSS를 얻는다. 




5. 디자이너 창에서 버튼(Save As)을 클릭하여 대화상자(Save As)가 나타나면, 새로운 명칭을 예를 들면 RSSApplication 등으로 정정한 다음 OK버튼을 클릭하여 새로운 프로젝트를 시작한다.



4. 학습소개

상기 소형웹RSS(TinyWebRss)를 사용하여 얻은 RSS의 콘텐츠를 인터넷에 직접 접근할 수 있도록 기능블록을 추가하는 방법을 알아본다.

학습요지:
1.    RSS의 콘텐츠를 타이틀, 기사내용 및 인터넷주소 등의 리스트(변수)로 구분하여 임시저장한다.
2.    기존의 리스트기능에 새로운 리스트기능을 추가하는 방법에 대해 알아본다.
3.    기능블록의 주요 지점에서의 데이터 흐름을 관찰하면서, 프로그램의 적절한 변경 및 버그를 방지하는 방법에 대해 알아 본다.

참고사항: 상기에서 설명한 액티비티스타터, 리스트피커, 소형데이터베이스 등은 다음의 스크린샷에 나타난 바와 같다. 이에 대해서는 제 14 장 RSS 어플리케이션 3 (구성요소 활력 불어넣기)에서 상세하게 설명한다.

제 1 단계:



제 2 단계:



제 3 단계: