Showing posts with label GoogleAppEngine. Show all posts
Showing posts with label GoogleAppEngine. Show all posts

Wednesday, October 5, 2011

[Google Appengine] Flickr API 연동 하기

(주) 해당 내용은 제가 개인적으로 공부하는 것을 노트 하는 것이므로, 심도 깊은 내용을 기대하시긴 어렵습니다.

Flickr 와 연동 되는 Python library는 상당히 많습니다.
하지만, Google Appengine 에서 제약이 많이 있기 때문에 처음에 좀 당황했습니다.
그러다 찾은 것이 gaeflickrlib 입니다.
우선은 이 Library를 이용하고 이후에, 이 코드를 발전 시키던지 기존의 Library를 brach 해서 GAE에 맞게 만들어야 겠습니다.

우선은 Flickr에서 API key를 획득해야 합니다.
http://www.flickr.com/services/api/
이곳에 가면 한국어 버전도 있으니 이를 이용하면 될 듯 합니다.

가장 중요한 것은 API key / secret 을 획득하기 위해 자신의 APP을 만듭니다.
이후 API key / secret을 획득할 수 있습니다.

이후, gaeflickrlib를 이용하여 하고자 하는 작업을 진행 하면 됩니다.

예제는 다음과 같이 되어있습니다. (from Document)

from gaeflickrlib import GaeFlickrLib

flickr = GaeFlickrLib(api_key = 'some key',
                      api_secret = 'some secret',
                      token = 'some user\'s credentials')
photos = flickr.photos_search(text = '...')

다만 여기서 Token의 경우는 따로 받아서 진행 하는 경우에 설정 해주시면 되고, 할당을 받지 않은 경우는 api_key , api_secret 변수에 할당을 해주시면 작동은 됩니다. Token이 필요한 API의 경우에만 token을 설정 하면 됩니다.

금일은 소개 수준의 연동만 적고, 이후에 심화적으로 접근 해보도록 하겠습니다.
이 Library가 문서가 적어서 이거저것 만들어 봐야 겠네요. ^_^

그럼~

Friday, September 30, 2011

[Google Appengine] Application + Github

(주) 해당 내용은 제가 개인적으로 공부하는 것을 노트 하는 것이므로, 심도 깊은 내용을 기대하시긴 어렵습니다.

이 방법은 일반적이라기보단, 제가 선호하는 방법이므로 100% 이 방법이 맞다고 할 수는 없습니다.

제가 프로젝트를 생성하는 순서는 다음과 같습니다.
  1. Github에 새로운 Repository를 생성
    1. https://github.com/
  2. Tool들을 이용해 우선 Clone을 합니다.
    1. Terminal / shell 등을 이용.
    2. githug:mac 을 사용(http://mac.github.com/)
    3. 저같은 경우는 pycharm을 사용하는 데, 이 IDE가 github를 지원 합니다.
      1. 좋긴 한데 유료고 좀 비싼 편이라 적극 권장은 못하겠네요.
  3. Google AppEngine Dashboard 로 가서 Application을 생성 합니다.
    1. https://appengine.google.com
  4. 위에서 생성된 Application ID와 동일한 Directory를 Repository Root에 만듭니다.
    1. 나중에 Deploy 할 때, 이 명칭을 사용하므로 잘 맞춰주셔야 합니다.


그럼, 기존에 누군가 만들어둔 환경을 설정하는 방법은 어떻게 되는지 보겠습니다.
  1. 우선 Github에서 생성된 Repository를 Sync 받습니다.
    1. 위에서 언급된 툴을 이용하여 받으면 됩니다.
  2. IDE가 Google AppEngine Luncher를 지원하는 경우는 단순히 디렉토리만 맞춰주면 되더군요.
    1. 이 부분은 pycharm을 사용하시는 분들이 있다면 따로 언급하도록 하겠습니다.
  3. 일반적으로는 Google AppEngine Luncher를 사용하실 것입니다.
    1. 오른쪽 마우스를 클릭하게 되면 Add Existing... 이 있는데 이것을 위에서 생성된 Directory를 선택 하시면 됩니다.
  4. 이후엔 개발하고 commit/publish 를 하면 됩니다. 참 쉽죠잉.
^_^)~씨유!


Thursday, September 29, 2011

[Google Appengine] Datastore 사용 해보기

(주) 해당 내용은 제가 개인적으로 공부하는 것을 노트 하는 것이므로, 심도 깊은 내용을 기대하시긴 어렵습니다.

이제 Web app개발에서 가장 중요한 Data를 다루는 방법을 테스트 해봤습니다.
Google Apps Engine에서는 Datastore를 이용하여 Database를 사용할 수 있습니다.

재밌는 것은 Datastore Admin을 들어가도 Entity(DB의 Table정도 개념인 듯)를 생성을 할 수 없었습니다. 이것은 python의 경우 google.appengine.ext 의 db를 이용하여 진행해야 합니다.
이후, Entity를 구성하는 Class를 만들어서 이 Class.put()으로 Entity를 생성할 수 있습니다.

또, 주의점은 Local 에서 진행 되는 Datastore와 Service에서 되는 Datastore가 분리 되어있으므로, Local에서 아무리 데이터를 집어 넣어도 Admin으로 조회를 할 수가 없습니다.(처음에 왜 안되나 한참 고민 했네요. Deploy 후 고민 해결)

그럼 로컬에서 어떻게 볼 것인가?
에서 볼 수가 있습니다.(Port는 자신에게 맞게 변경해주세요)

Database의 Admin에 익숙하고 요즘 Database의 트렌드를 전혀 보고 있지 않다보니, 이러한 방식이 참 어색하긴 하네요. 흥미 있는 방법이긴 합니다.

그 외에는 DB를 다루는 것과 비슷하게 GQL을 이용해서 진행 할 수도 있지만, 객체처럼 사용해서 진행 하는 방법에도 익숙해질 필요가 있을 듯 합니다.(복잡한 조건문이 아니면, Key를 이용해서 값을 가져올 수 있는 듯 하네요)