* 이번에는 지금까지 만든 소스를 서버에 올리는 작업을 해보자 2012/10/06 - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [NY-School] Google App Engine과 Python 시작하기 - Hello world2012/10/06 - [NY-School] Google App Engine과 Python 시작하기 - webapp framework2012/10/07 - [NY-School] Google App Engine과 Python 시작하기 - Datastore 사용해서 방명록 만들기2012/10/20 - [NY-School] Google App Engine과 Python 시작하기 - Template페이지 사용하기2012..
* 이번에는 Google App Engine과 Python에서 static한 페이지를 이용하는 방법을 살펴보자. 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - webapp framework2012/10/07 - [Mini Project/NY-School] - [NY-Schoo..
[파이썬] 구글 앱 엔진: No module named urllib 에러 * 맥에서 구글 앱엔진을 사용하다가 대뜸 위와 같은 에러가 났다.: 에러를 보니 File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/cgi.py", line 31, in import urllib ImportError: No module named urllib : 위와 같은 에러가 났다. 얼마전까지는 문제없이 됐는데 대뜸 이렇게 에러가 나는걸 보니 파이썬 2.6하고 연결되어있어서 문제가 있는듯 싶다. : 따라서 GoogleAppEngineLauncher를 실행하고 Preference가서 파이썬의 경로를 바꿔줘야했다.- 현재 파이썬의 경로, /usr/..
* 이전에 진행하면서 공부한 내용 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - webapp framework 2012/10/07 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Datas..
* 이번에는 Google App Engine의 데이터베이스, Datastore를 이용해보자. 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - webapp framework *개요: App Engine의 Datastore는 간단한 API로 구글의 인프라를 이용하여 네트워크 트래픽..
* 이전 글에 이어서 webapp 프레임워크를 사용하는 방법을 살펴보자. 2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기 - Hello world * 개요: CGI 표준은 간단하지만 이 모든것을 직접 손으로 코딩하려고 한다면 복잡하고 귀찮은 일이다. 웹 어플리케이션 프레임워크는 이러한 사항들을 대신 다워준다. Google App Engine은 Python과 CGI, WSGI 등을 이용하는 모든 프레임워크와 통신을 할 수 있다.따라서 Django, C..
2012/10/06 - [Mini Project/NY-School] - [NY-School] Google App Engine과 Python 시작하기전에 공부하기 * 이전글에 이어서 구글 앱 엔진과 파이썬을 연동하는 기본적인 hello world 프로그램부터 공부를 시작해보자. - 파이썬 설치 : MacOSX에서는 파이썬이 보통 깔려져있으므로 현재 설치되어있는 파이썬의 버전을 확인하자. : 현재 버전은 2.6.1로 처음 샀을 때 이후로 업데이트를 한적이 한번도 없다. 따라서 GAE가 설명하고 있는 2.7버전으로 업데이트하자. 현재 최신버전으로는 2.7.3버전과 3.3.0 버전이 있는데, 2.7.3 버전으로 진행하겠다. http://www.python.org/download/releases/2.7.3/ * ..
* 아래의 사이트에 이것저것 설명되어있다. 들어가서 자세하게 공부하는 것이 제일 좋을 것이다.https://developers.google.com/appengine/docs/python/overview : Google App Engine(GAE)는 자바와 파이썬, 그리고 Go (?)를 지원한다. (위의 사이트 참고) 이 중에서 이전에 자바를 이용했던 적이 있으므로 이번에는 파이썬을 적용해서 해보고자 한다. GAE와 Python : GAE에서는 파이썬은 버전 2.7이상을 지원하고 있고 (현재 파이썬 최신버전 : 2.7.3, 3.3.0) 파이썬 웹앱은 WSGI 프로토콜을 이용해서 GAE 서버와 통신을 하게 된다. 따라서 WSGI와 호환이 되는 웹 앱의 경우는 모두 GAE의 파이썬 런타임 환경을 적용할 수 있..
구글 앱 엔진에 올리는 경우 어드민 화면이 있어서 Datastore에서 무엇이 돌아가는지 보기 쉬운 반면 로컬에서는 보기가 힘들다. 이런 경우 로컬에서도 Datastore를 확인할 수 있는 어드민 페이지가 있다. 구글 앱 엔진을 로컬에서 실행하고나서 로컬에서 http://localhost:8888/_ah/admin 로 어드민 페이지를 들어갈 수 있다. Datastore를 확인할 수 없어서 불편했는데 의외로 좋은 기능이다. 끝.
JDO를 사용하면서 pm.deletePersistent(user); 를 할때 발생하는 에러. 이 에러는 user 객체가 Persistent로 binding되어있지 않은 상태라서 일어나는 에러이다. 따라서 PersistentManager로 binding시켜주고 삭제하면 된다. user = pm.getObjectById(User.class , user.getKey()); pm.deletePersistent(user); 끝.
1. GWT와 GAE를 연동시킨다. [GWT / GAE] Google Web Toolkit 와 Google App Engine 연동하기, 구글 서버에 올리기* 위의 페이지의 5번에서 transactions-optional을 설정했는지 확인한다. 다른 이름도 가능하지만 아래의 2번과 이름이 같아야한다. 2. PersistenceManagerFactory 객체를 만든다 - 아래와 같은 간단한 인터페이스를 만들어두면 좋다. public final class PMF { private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); private PMF..
JDO를 사용하기 위해서는 일단 JDO에서 사용하는 PersistentCapable한 객체를 만들어야한다. 다음 단계들을 거치면 만들수 있다. 1. 클래스 위에 @PersistenceCapable 을 설정 @PersistenceCapable public class User{ //.... } 2. 저장하고자하는 각 변수 위에 @Persistent 을 설정 @PersistenceCapable public class User{ @Persistent private String name; //setter/getter 생략 } * Persistent가 될수 있는 변수의 종류는 다음과 같으니 고려해가면서 JDO를 디자인하자. Datastore가 지원하는 기본 데이터형 @PersistenceCapable 을 설정한 객..
이번에는 GWT와 GAE를 연동시키면서 RPC로 구글 서버에 있는 함수에 접근하는 방법을 알아보자. 1. GWT와 GAE를 연동시켜놓기 [GWT / GAE] Google Web Toolkit 와 Google App Engine 연동하기, 구글 서버에 올리기 2. 주고받을 유저 클래스를 만든다. * Serializable을 상속받아야한다. public class WGLM_User implements java.io.Serializable{ /** * */ private static final long serialVersionUID = -2003200417167457992L; public static final ProvidesKey KEY_PROVIDER = new ProvidesKey() { @Overrid..
1. 구글 앱 엔진 계정을 만든다. https://appengine.google.com/ 2. 구글 앱 엔진/구글 웹 툴킷을 다운 받아서 설치한다. http://code.google.com/appengine/docs/java/tools/eclipse.html 3. 이클립스에서 New > Web Application Project를 선택 (구글 아이콘 모양) 4. 프로젝트/war/WEB-INF/appengine-web.xml 파일 수정 unikys 1 5. 프로젝트/src/META-INF/jdoconfig.xml안에 transactions-optional 이 설정되었는지 본다. (JDO requirement) 6. 테스트로 실행, Run as > Web Application (구글 아이콘), 브라우저에 G..
레퍼런스 : http://stackoverflow.com/questions/2657394/google-app-engine-poor-performance-with-jdo-datastore 구글 앱 엔진을 쓸때에는 데이터베이스에 접근하는 횟수를 최소화 해야한다. 이를위해 key를 가지고 어떠한 목록을 가져올때에 contains()를 쓰면 한번의 순환으로 데이터를 가져올수가 있다. List userKeyList = fetchUserKeys(); Query query = new Query(User.class , ":p.contains(key)"); query.execute(userKeyList); - JDO는 조인이 안되고 리스트를 써서 1:N이나 1:1. N:N 관계를 처리하는 것이 좋다. 참고 : http:..
- Total
- Today
- Yesterday
- Javascript
- GX-10
- google app engine
- 팁
- c++
- lecture
- 탐론 17-50
- 속깊은 자바스크립트 강좌
- TIP
- 서울
- HTML5 튜토리얼
- Android
- 강좌
- Python
- 삼식이
- 안드로이드 앱 개발 기초
- gre
- 자바스크립트
- java
- 샷
- Writing
- gae
- 사진
- mini project
- HTML5
- 안드로이드
- 뽐뿌
- ny-school
- K100D
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |