OpenID

OExchange는 OpenID와 OAuth를 기반으로 돌아간다고 한다. 

그렇기 위해서는 OpenID와 OAuth가 뭔지 알아야겠지..

OpenID는 WikiPedia에도 잘 나와 있는 것 같고..

아래의 PPT에도 한 Author가 잘 정리 해 놓으셨다. 

by Jipsin | 2010/07/07 13:50 | Java Tips | 트랙백(24) | 덧글(0)

OExchange란 또 뭐꼬?

OExchange..

첨 들어본다. 그런데 공부하란다. 그래서 먼지는 좀 알아야겠다. 
주요 출처: http://www.oexchange.org/

1. OExchange란?

"OExchange is an open protocol for sharing any URL with any service on the web."
웹에 있는 모든 서비스들과 URL을 공유하기 위한 Open Protocol..

"a simple specification for URL-based content sharing on the Web"
(출처 : http://techcrunch.com/2010/06/02/oexchange/)
웹환경에서 URL을 기반으로한 Content Sharing을 위한 Spec

이 프로토콜은 Google Guzz나 Posterous와 같은 서비스를 구현하고 있고
이는 OpenID와 OAuth와 함께 동작한다. 


해결하고자 하는 문제
 - "웹 사용자간, 툴간의 URL을 공유가 어려움과 검색 및 URL통합의 문제"

해결 방안
OExchange - 웹환경에서 URL기반의 Content를 공유하기 위한 기술
- Content를 받기 위한 방안 제안, 
- discovery feature제공
- decentralized 서비스 model 제공을 통한 Tool간의 Dependency최소화 
- user-centric모델 제공하여 preferred service와 sharing을 personal하게 하기 

by Jipsin | 2010/07/06 21:45 | Java Tips | 트랙백 | 덧글(0)

Google App Engine하루만에 파기


책을 하나 샀다. '구글 앱엔진 시작하기' . 어쩌면 이 Post는 그 책에 대한 간략 정리일 수도 있겠다. 

작년에 프로젝트에서 나는 이미 Google App Engine(GAE)과 Amazon EC2를 활용한 프로젝트를 리딩한바 있다. 
그때는 똘똘한 팀원에게 GAE를 완전히 맞겼다. 

하지만, 이제 나도 대충은 공부해야할것 같아서  잽싸게 GAE를 파보련다.  

1. Google App Engine이란?
일단 Cloud Computing에 대해서 초간단 정리를
Could Computing은 아래와 같이 서비스를 나눌 수 있다. 

* Iaas(Infrastructure as a Service) : 하드웨어나 네트워크 같은 인프라를 서비스 형태로 사용
 ex. Amazon EC2
 
* SaaS(Service as a Service) : 소프트웨어를 CD와 같이 독립적인 물리적 매체로 제공하지 않고 네트워크를 통해 배포 하여 사용하는 서비스. 
 ex. Google Apps, Salesforce CRM, Open API로 활용되는 검색 엔진같은 서비스
 
* PaaS(Platform as a Service) : IaaS위에서 미리 정의된 다양한 인터페이스를 이용하여 플렛폼을 서비스로 제공
 ex. Google App Engine
 
 즉 'GAE는 PaaS에 속하는 Google의 서비스로써, 
 High Availability와 Performance를 제공하기 위한 System 서비스(IaaS)을 기반으로
 SW를 구동할 수 있는 SW실행환경(Platform)을 제공하여, 주어진 API를 활용하여 
 응용 SW를 구축할 수 있도록 한 SW 개발 및 운용 환경' 으로 정의할 수 있겠다. 

2. GAE 개발 환경 세팅하기
Galio와 JDK 1.6.0 update 18을 설치후에 Google Update Site에 가서 설치 하면 끝! (쉽다)

3. HelloWorld 잽싸게 만들어보기
HelloWorld는 새로운 세계의 시작점이면서 이를 이해함으로써 상당히 많은것을 알 수 있다. 
Google의 New Web Applicatnoi Project를 사용해서 HelloWorld만들어 봤다. 
그런데 이를 어쩌랴.. 그냥 서블릿이다. --; 아직까지는 먼가 기존과 다른점 못발견했다. 
아마도 GWT(Google Web Toolkit)으로 뛰어 넘어야 할지 모르겠다. 

4. GAE를 사용한 SW아키텍처 구축시 주요 고려 사항
 - 엔진 호스팅(속도문제) : GAE의 엔진 호스팅은 미국 캘리포니아 마운틴 뷰에 있다. 위치가 꼬롬하다. 네트웍의 속도에 대한 분명한 언급이 있을 것이다. 
 - 구글 Application의 데이터 스토어: Google은 BigTable을 기반으로한 엔진 데이터 스토어라는 곳에 데이터를 저정하게 되어 있다. (아마존 SDB같은 놈인가?)
 - Google Authentication API : Google 계정과 연동 가능하다. (Security의 authentication에 대한 대비는 되겠으나, 계정의 Google Dependency라는 큰 문제가 존재한다..)
 - Socket Open:  보안 문제로 인해서 Application에서 Socket을 직접 못열게 한다. 대안으로 URL Request API를 제공
 - Mail API : Google에서 제공한 유한 발송 API를 활용한다. 
 - Cache : memcached기반 캐시 시스템 제공
 - 이미지 프로세싱API : 이런걸 다 지원하네
 -관리자 콘솔: 이건 내가 수도 없이 봤다. 
 
 제약 사항 : 실제로 개발할때 이 문제 때문에 개발자는 몇개의 Google ID를 가져야 한다. 
 - 무료로 쓰러면 일일 최대 120만 Request, Inbound/outbound 10GB사용량... http://code.google.com/intl/en/appengine/docs/quotas.html참조
 

5. 프로젝트 빌드 자동화
 - 오.. 여기에서 Linux에서 매일 특정 시점에 SVN에서 Checkout해서 GAE에 배포 하는 스크립트가 있다. (유용할것 같다. p. 47)

6. Testing 
 - jWebUnit을 사용하여 네트워크를 통한 가상 클라이언트를 에뮬레이팅 하게하여 테스팅 한다. 

이쯤 알았으면 되었다. 다음에는 샘플을 구해서 구동시켜봐야겠다. 
요기 자바로된 시작하기 좋은 글이 있다. 

by Jipsin | 2010/07/06 21:15 | Java Tips | 트랙백(27711) | 핑백(14) | 덧글(0)

하루만에 안드로이드 공부하기


하루만에 안드로이드 공부하기 

나의 멘터중에 한분이 내가 꼭 알아야할 (그래야 같이 일을 할 수 있다는)
기술들 목록을 나에게 주셨다. 그중 하나가 안드로이드..

비록 안드로이드가 뭔지 모르지만, 대충 감을 잡기 위해서 다음과 같이 학습을 해보았다. 
안드로이드 개발자는 아니지만, 안드로이드에 대해서 잽싸게 파악해 볼 사람들은
아래의 순서대로 학습해 보심이 어떨까 한다. 

좀더 깊게 공부해보려면 역시 프로그래밍의 왕도 '잘 짜져 있는 남의 코드 분석하기' 
샘플들 파면 쉽게 따라잡을 수 있을듯 하다. (그나저나 안드로이드 폰 사고 싶다.)


1. 안드로이드에 대한 개념 익히기
 What is Android?
http://developer.android.com/guide/basics/what-is-android.html
여기에서 Android란 무엇인가? 그리고, Layered Architecture를 통해서 Android의 구조 및
제공하는 핵심 Libarary에 대해서 알 수 있다. 

2. 개발 환경 세팅하기
Developing in Eclipse, with ADT
http://developer.android.com/guide/developing/eclipse-adt.html
를 통하여 Eclipse와 ADT를 설치하였다. 
생각보다 다운로드 받는 시간이 오래걸렸다. 

Android SDK도 설치해야
http://developer.android.com/sdk/index.html

3. Toturial Program 실행해보기
Developer Resources의
Totorial/Sample Code를 통하여 잽싸게 프로그램 실행해보기
http://developer.android.com/resources/index.html

HelloWorld, HelloViews, Hello Localization, Hello Testing을 실행해 보면서
대충 이런 놈이구나.. 파악해보았다. 

4. 다량의 샘플 코드 실행해보기
Getting The samples
http://developer.android.com/resources/samples/get.html
이미 Android SDK and AVD Manager의 Available Package에 많이 있단다. 
실행해서 가져오면 된다. 구지 내용을 파지 않아도 상당히 쓸모있는 정보이다. 

List of Sample Apps
http://developer.android.com/resources/samples/index.html
여기에서 쓸모있는 프로그램들을 가져오면 상당히 유용할듯 하다. 


참고. 
Google IO Session에서 먼소리 하나 둘러보기
설치하는 사이에 
http://sites.google.com/site/sonbohyung/android/goolge-io-2008-android-sessions
싸이트에서 
An Introduction To Android 발표자료도 보고

여기서 안드로이드 애플리케이션 작성 기초도 보았다. 여기 
참 좋은 동영상 자료 많다. 

by Jipsin | 2010/07/06 20:31 | Java Tips | 트랙백 | 덧글(0)

Agile Practice 애자일 플랙티스(2)


3. '도시락 회의'는 팀에서 지식을 공유하는 훌륭한 방법. 

 ==> 회사에 있을때, 난 어떻게든 팀원들의 지식을 끌어올리고 싶었다. 그래서, 나도 세미나를 하고, 팀원들에게도 1주일에 2회정도 세미나를 시켰다. 하지만, 업무시간에 세미나 때문에 시간을 빼앗는 다는게 문제였다. 
 - Agile Practice에서는 '점심 도시락'을 같이 먹으면서 지식 공유를 위한 세미나를 하라고 한다. 
==> 현실적으로 모두 점심을 싸오기는 힘들터이니.. 12시쯤에 모여서 점심 도시락을 시키고 배달이 오는 사이에 15분 정도 발표자가 발표를 하고 발표 끝나면, 도시락을 먹으면서 해당 세미나 주제에 대해서 토론을 하면 딱 적절할것 같다는 생각이 든다. 
==> 또한, 일주일에 한번씩 하라고 한다. 좀 적은 감이 있지만, 그래도 없는것 보다는 낫다. 
==> 다음에 회사 가서 써먹어야지


4. 프로그래머의 귀중한 시간 Vs. 머신이나 SW구매에 드는 돈

==> 이는 회사에서 머신이나 SW구매에 드는 돈을 아끼지 말라고 하는 이야기다. 즉, 프로그래머의 귀중한 시간을 SW구매에 드는 돈보다 더 높게 치기 때문인데.. 
==> 내가 주워 들은 바에 따르면, 우리나라의 틸론이라는 회사에서는 오전에 사장님에게 어떤 SW가 필요하다고 말하면 오후에 그 SW를 구매해주신다고 한다. 난 처음에 왜 저렇게 빨리 반응을 하실까.. 생각을 했지만, 역시 프로그래머의 귀중한 시간이 오히려 SW구매비용 보다 비싸다고 판단한 행보인듯 하다. 
==> 나도 회사 가면, 프로그래머의 장단기 시간 절약의 비용과 머신 혹은 SW의 구매 비용간의 계산을 면밀히 해봐야 겠다. 


by Jipsin | 2010/06/04 09:03 | Software Engineering | 트랙백(15) | 덧글(0)

<< 이전 페이지다음 페이지 >>