1.2. 잘못된 프레임웍 선정 ¶
Django와 함께 AngularJS를 이용했으나, 서버에서 도느냐 클라에서 도느냐 차이만 있을 뿐 둘 다 동일하게 웹에서의 MVC패턴을 지원하는 프레임웍. 역할이 겹치다 보니 둘 다 입지가 애매해졌다. 그리고 결정적으로, GAE(Google App Engine)은 일반적인 SQL을 사용할 수 없기 때문에 Django의 매우 큰 장점인 Model 부분을 써먹을 수가 없다!
2.1. 프레임 워크 ¶
- Google App Engine - 줄여서 GAE. PaaS. 무료 제공 양이 상당한 편이라 사용.
- Google Datastore - NoSQL DB. 무료도 무료지만 GAE와 궁합이 좋음.
- Google Endpoints - RESTful 백엔드 서비스. GAE위에서 돈다면 완전무료.
- AngularJS - 프론트엔드 웹 앱 프레임워크. Single Page Website를 만드는 것을 목적. Polymer로 대체할 수도 있음. AngularJS 자체가 좀 장황하다는 느낌이 있어서 Polymer 쪽으로 기우는 중.
- Flask - 작업의 대부분이 AngularJS로 넘어갈 수 있기 때문에 훨신 가볍고 단순한 webapp2로 대체할 수도 있음.
2.2.1. 로케일 ¶
누구나 쉽게 쓸 수 있다는 것은 국경을 가리지 않고를 의미...하지만 일단 국경은 둘째 치고 String 값들을 따로 빼는 것만으로도 관리가 용이해 지기 때문에 충분히 필요한 작업. json 형식의 locale 파일들을 ajax로 불러와서 사용자가 선택한 언어를 화면에 뿌려주자.
2.2.2. 환경 변수 ¶
단순히 서비스의 이름부터 시작해서 도서 검색에 필요한 API Key 등 일부 값들은 서비스 제공자가 입력하여야 한다. 이에 따라 생각되는 방법은 다음과 같음:
- environment variable: 말 그대로 시스템 환경 변수를 이용. 근데 GAE에서 제공 안 하는 것 같음. 더 찾아봐야 함.
- datastore를 통한 값 관리: 환경 변수를 이용할 때 마다 db에 쿼리를 날리기 때문에 성능과 할당량에 문제가 생김. 하지만 이는 memcache로 최소화 시킬 수 있을 것.
- json을 이용한 관리. 문제는 gae에서는 파일 읽기는 되나 쓰기가 되지 않기 때문에 웹 페이지상에서 수정을 하는 것은 불가능하고 사용자가 직접 json 파일을 수정해야 함.