• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'2010/01/22'에 해당되는 글 3건

  • 2010.01.22 [Google Apps Engine] Users Service 사용하기.
  • 2010.01.22 [Google Apps Engine] 프로젝트 생성하기.
  • 2010.01.22 별자리 운세.

[Google Apps Engine] Users Service 사용하기.

기술자료/Web 2010. 1. 22. 16:35

원본글 : http://code.google.com/appengine/docs/java/gettingstarted/usingusers.html


Google App Engine에서는 Google 인프라 스트럭처를 활용한 몇몇 유용한 서비스를 제공합니다.

이 서비스들은 SDK에 포함된 라이브러리를 이용하여 응용 프로그램에서 접근 가능합니다.

Users Service와 같은 서비스는 Google 사용자 계정과 통합되어 여러분들의 응용 프로그램에서 활용할 수 있습니다. 그래서 응용 프로그램 내에 Google 계정을 이용해 가입된 사용자들의 정보를 활용할 수 있습니다.

이제부터 Users service를 이용하여, 개별 사용자 별로 인사말이 표시되게 끔 하는 방법을 구현하려 합니다.


Users 사용하기.

src/guestbook/GuestBookServlet.java를 편집하여 열어보면 다음과 같습니다.

package guestbook;

import java.io.IOException;
import javax.servlet.http.*;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
public class GuestbookServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws IOException {
        UserService userService = UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();

        if (user != null) {
            resp.setContentType("text/plain");
            resp.getWriter().println("Hello, " + user.getNickname());
        } else {
            resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
        }
    }
}


Eclipse를 이용한 디버거 내에 개발 서버가 실행되고 있다면,

이 파일을 변경/저장 후, Eclipse에서 새 코드에 대해 자동적으로 컴파일 되고

이미 동작중인 서버 내에 새로운 코드가 적용될 것입니다.

클래스, JSP, 정적 파일 및 appengine-web.xml 등이 변경되면 서버의 재 시작 없이 바로 서버에 적용됩니다. 하지만, web.xml 및 기타 설정 파일에 대해 설정한 내용은 반드시 서버를 재 시작 해야 합니다.

메시지를 표시하는 대신 서버에서 이메일을 표시하도록 합니다.
아무 이메일 주소(
alfred@example.com 등등)을 받고 “Log in”을 클릭합니다.
응용 프로그램에서는 메시지를 표시하게 되는데, 이 때, 여러분이 입력한 이메일 주소를 담게 됩니다.

GuestbookServlet 클래스에 대한 새로운 코드에서는
사용자가 Google Account에 가입되어 있는지를 확인하기 위해 Users API를 사용하게 됩니다.
만일 없다면, 사용자는 Google Account 가입 화면으로 리다이렉트 하게 됩니다. userService.createLoginURL(…)에서는 가입 화면으로 가는 URL을 돌려줍니다.
현재 페이지의 URL을 createLoginURL()에 넘겨 줌으로써
URL 별로 응용 프로그램이 다르더라도 적절한 URL로 리다이트렉트 하는데 상당히 편리합니다.

개발 서버는 Google Accouns의 가입 처리를 어떻게 적절히 맞추어 나타낼지 알고 있습니다.
여러분의 PC에서는 입력 받은 이메일 계정으로 가입 처리할 수 있도록, 가입 처리용 페이지로 이동하게 됩니다.

실제 App Engine 환경에서는 진짜 가압에 사용되는 곳으로 이동하게 됩니다.
즉  실제 Google Account 관리화면으로 넘어가게 됩니다.

테스트 응용 프로그램 상에서 가입이 되었다면 다시 한번 페이지를 불러 화면을 다시 표시해보도록 하세요.

사용자 로그 아웃 처리를 하려면, 이번에는 로그아웃 화면에 대한 링크를 제공해야 합니다.
이 링크는 createLogoutURL() 메소드로 생성됩니다.
참고로 로그 아웃 링크는 현재 사용자가 로그인 했던 모든 구글 서비스에 대해서 로그아웃 처리됩니다.


다음은…

이제 사용자의 정보를 어떻게 가져오는지 알았기 때문에,
방명록 상에 메시지를 게시할 사용자들을 초대할 수 있습니다.

이번에는 JavaServer Pages(JSP)를 사용하여

이 응용 프로그램에 대한 사용자 인터페이스를 설계하도록 하도록 하겠습니다.

JSP 사용하기 에서 계속됩니다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

[Google Apps Engine] 프로젝트 생성하기.

기술자료/Web 2010. 1. 22. 15:53

원본글 : http://code.google.com/appengine/docs/java/gettingstarted/creating.html


App Engine Java 응용 프로그램은 Java 서블릿 표준을 이용하여 웹 서버 환경과 연동합니다.

컴파일 된 클래스, JAR, 정적 파일 및 설정 파일들을 포함한 응용 프로그램 파일들은

WAR 라는 자바 웹 응용 프로그램 표준 Layout을 이용하여 디렉터리 별로 정리되어 저장되게 됩니다.

이 WAR 디렉터리 구성은 다른 어떤 Java 웹 응용 프로그램 구성에서도 동일하게 적용됩니다.

( 애석하게도 SDK 에서는 이 WAR 저장 방식 파일에 대해서 지원되지 않습니다. )


프로젝트 디렉터리

현재 이 튜토리얼에서는 모든 프로젝트 파일들은 Guestbook/이라는 이름으로 된 단 하나의 디렉터리 안에 담겨 있습니다. src/ 라는 하위 디렉터리에는 Java 소스 코드들이 담겨 있으며, war/ 라는 하위 디렉터리에는 WAR 포맷에 맞게 구성된 응용 프로그램들이 담겨 있습니다.

Java 소스 파일들이 컴파일 되면 war/의 위치에 컴파일 된 파일들이 담기게 해야 합니다.


완전한 프로젝트 디렉터리는 다음과 같은 형태가 되어 있어야 합니다.

Guestbook/
  src/
    ...자바소스 파일들...
    META-INF/
      ...기타 설정 파일들...
  war/
    ...JSPs, 이미지, 데이터 파일...
    WEB-INF/
      ...응용 프로그램 설정 내용...
      lib/
        ...라이브러리 JAR들...
      classes/
        ...컴파일된 클래스들...

Eclipse 에서는 툴바에서 New Web Application Project 버튼()을 클릭하여 새로운 프로젝트를 생성하기만 하시면 됩니다. 새 프로젝트에 대한 설정 창에서 “Project Name”에는 Guestbook 을, “Package”에는 guestbook 을 넣어주시고 “Use Google Web Toolkit”의 체크를 풀어주시고, 대신 “Use Google App Engine”에 체크해주시기 바랍니다. 그러면 Eclipse의 Plugin에서 제공하는 마법사를 통해 위에서 언급한 디렉토리 구조를 구성하고 필요한 기본적인 파일들을 배치하게 됩니다.


SDK안에 포함된 새 프로젝트 템플릿을 직접 복사해서 구성하실 수도 있습니다.
이 템플릿은 appengine-java-sdk/demos/new_project_template/ 디렉터리에 위치해 있습니다.


서블릿 클래스

App Engine Java 응용 프로그램에서는 the Java Sevlet API를 이용하여 웹 서버와 직접적인 연결을 합니다. HTTP 서블릿은 응용 프로그램 클래스로 웹에서의 요청에 대한 응답 프로세스를 할 수 있습니다.
이런 요청 응답용 클래스는 javax.servlet.GenericServlet 클래스

또는 javax.servlet.http.HttpServlet 클래스를 상속 받은 클래스로 구성하게 됩니다.

예제로 구성된 방명록 프로젝트는 하나의 서블릿 클래스로 시작되어 있으며

단순한 서블릿을 사용하여 메시지를 출력하게 됩니다.


이 파일은 src/guestbook/ 디렉터리에 GuestbookServlet.java 파일로 다음과 같이 구성되어 있습니다.

package guestbook;

import java.io.IOException;
import javax.servlet.http.*;

public class GuestbookServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

web.xml 파일에 대해

웹서버에서 요청을 받았을 때, 서블릿 클래스에서는 “웹 응용 프로그램 배치 설명자(web application deployment descriptor)” 라고 불리는 구성 파일을 사용하여 요청된 서블릿 클래스을 선택하게 됩니다.

이 파일은 보통 web.xml 이라고 이름 지어지며, WAR 파일 안에 있는 war/WEB-INF/ 디렉토리에 담기게 됩니다. WEB-INF/ 와 web.xml은 서블릿 규칙에 따라 이름 지어지고 위치된 것입니다.

war/WEB-INF/ 디렉토리에 있는 web.xml 내용을 대략적으로 보면 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
    <servlet>
        <servlet-name>guestbook</servlet-name>
        <servlet-class>guestbook.GuestbookServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>guestbook</servlet-name>
        <url-pattern>/guestbook</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>/index.html</welcome-file>
    </welcome-file-list>
</web-app>


Eclipse에서 해당 XML을 열면 아래와 같이 보입니다.

이 web.xml 파일은 서블릿인 guestbook에 대한 선언을 담게 되며,

/guestbook 이라는 URL path와 연결되게 끔 구성하는 것을 보여주고 있습니다.

응용 프로그램의 WAR 안에 디렉토리 경로 상에서 없는 경로를 이용하여 서브릿과 연결하여,

외부에서는 전혀 다른 형태의 URL로 접근할 수 있도록 해줍니다.

하지만, 해당 하는 경로에 index.html 이 있다면, 서블릿 설정보다 index.html을 먼저 보여주게 됩니다.


appengin-web.xml 파일에 대해

App Engine은 추가적은 설정 파일이 하나 더 있습니다.

이 파일은 응용 프로그램을 어떻게 배포하고, 실행할지에 대해서 나타내는 설정 파일입니다.

반드시 이 파일은 web.xml 이 있는 WEB-INF/ 디렉토리 안에 위치해야 하며,

그 이름은 appengine-web.xml 이여야 합니다.

그 안에는 응용 프로그램의 등록 ID( Eclipse에서는 언제든지 채울 수 있도록 빈 ID를 생성하여 제공합니다. ), 정적 파일(이미지나 CSS 등등), 리소스 파일(JSP 파일이나, 기타 응용 프로그램 데이터)과 같이 명시적으로 나타낼 내용들을 담고 있습니다 .


war/WEB-INF/ 디렉터리 안에 있는 appengine-web.xml 이라는 파일은 다음과 같이 되어 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application></application>
    <version>1</version>
</appengine-web-app>

appengine-web.xml 에는 App Engine에 대해 설명하는 내용을 담고 있지만,

서블릿 표준에 포함되는 내용은 아닙니다.

SDK에 보시면 이 파일의 형식에 대해 명기되어 있는 XML 스키마 파일을

appengine-java-sdk/docs 안에서 찾을 수 있습니다.

이 파일에 대한 자세한 설명은 Configuring an App를 보시기 바랍니다.


프로젝트 실행하기.

App Engine SDK 에는 여러분이 만든 응용 프로그램을 테스트 할 수 있도록

제공되는 웹서버 응용 프로그램을 포함하고 있습니다.

이 서버는 sandbox 제약영역, 저장소, 기타 서비스 등

각종 App Engine 환경에서 제공되는 기본적인 기능들을 모두 제공합니다.


이 웹서버는 Eclipse의 Debugger로 간단하게 시작할 수 있습니다.

Run 메뉴 안에 있는 Debug As > Web Application을 선택하기만 하면 됩니다. 

디버그 관련된 설정 방법은 Google Plugin in Eclipse 사용하기를 참고하시기 바랍니다.



응용 프로그램 테스트 하기.

서버가 시작되면, 여러분의 브라우저를 이용하여 다음 URL을 입력해보시기 바랍니다.

http://localhost:8080/guestbook

(간혹 설정 상으로 http://localhost:9999/guestbook 일 수도 있습니다. 
  포트 번호는 각자 확인해보시기 바랍니다. )
서버에서 서블릿을 호출하면, 브라우저 상에 메시지를 출력할 것입니다.


다음은…

여기 까지 오셨다면 기본적인 App Engine 응용 프로그램을 성공적으로 제작하신 것입니다!.
이제 이 내용을 배포만 하시면 전세계의 모든 사용자들과 권리를 누리며 나누실 수 있습니다.
이 응용 프로그램은 모든 사용자에 대한 일반적인 인사 내용을 보여줍니다.


이제부터는 인사말을 커스터마이징 하여,

Google Account로 접속한 사용자들에 대한 별도의 인사말을 만들어보도록 하겠습니다.


다음은, User Service를 사용하기 에서 계속 됩니다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

별자리 운세.

잡글 2010. 1. 22. 12:37
K.N.I.T 에 대한 글을 찾다가, 서평을 우연히 발견.
블로그 내용이 재미있어서 쭉 따라가다가, 이런 글을 발견.

"사수자리 AB형 100119"

다른 이의 별자리 운세 이야기에 눈돌리기는 귀찮았지만, 단 한줄.

"쥔님이 별자리는 음력으로 보는거라기에.. "

라는 문구!.

그래서 나 역시 음력으로 환산했더니, 6월 21일!

그래서 별자리 운세를 찾아보았다. 한경에서 제공하는 무료 서비스.
6월 21일에 해당하는 별자리를 찾아보니, 쌍동이좌. 그에 대한 총운 내용은 다음과 같았다.

성격

  다재 다능한 재주꾼이다. 이 성좌에 출생한 사람은 재치 있고 연설에 능하며 문장력도 뛰어나다. 여러 방면에 걸쳐 재능이 풍부하여 어떤 일을 막론하고 일단 착수하기 시작하면 일에 대한 보답이나 이해 관계를 초월해서 온 정성을 다해 그 일을 해내고 만다. 그러나 능력만큼 대우를 받지 못하고 또 능력을 제대로 발휘할 수 있는 환경이 마련되지 않아 삶에 대한 불만이 크다.

모든 재주꾼이 그러하듯이 천부적인 재능으로 인해 꿈이 크고 이상이 원대하여 어떤 일이든 자신만만하게 해낼 수 있다는 자부심을 가지면서도 운명에 대해서는 회의를 느껴 자칫 타락하기도 쉽다.

간혹 염세주의자들이 있다. 뿐만 아니라 사회에 대한 저항감이 강하여 군중을 선동하는가 하면 납의 결점이나 정치적 비판 등을 능란한 연설로 전개한다. 마음을 닦고 안정하여 학문이나 예술 방면에 진력한다면 상당한 명성을 얻을 수 있는 인재이다. 적합한 직업으로는 문인, 탤런트 등이 있다.

연애와 결혼

  쌍 둥이좌 태생은 열렬한 사랑에 빠지는 법이 없다. 그것을 회피해서가 아니라 이성에 냉담한 편이어서 평소 자기가 꿈꾸던 완전한 이상형이 아니면 또 다른 이성을 사랑할 수 있는 빈 자리를 남겨 두기 때문이다. 이성 교제를 함에 좋아한다는 것과 사랑한다는 것의 한계가 분명하여 좋아는 할지언정 사랑하기에는 어딘가 밑진다는 생각을 늘 하고 있다.

세상에는 완전한 사람이 있을 수 없는 것이므로 쌍둥이좌 출생의 주인공은 사랑에 흠뻑 빠져버리지 못하는 불행한 사람이다. 흔히 말하기를 이성에 반해 버리면 결점도 아름답게 보인다고 하는데 쌍둥이 좌의 눈에는 그것이 통하지 않고 아무리 좋아해도 결점은 결점 그대로 보여 한 구석에 꺼림칙한 마음을 갖고 있다.

쌍둥이좌의 남성은 지성미와 남성적인 풍모가 있어 많은 여성들이 좋아하게 되지만 냉정한 면이 있어 접근하기가 어렵다. 이성교제를 절실히 원하면서도 자존심을 굽히면서까지 구애하기가 싫어 망설이다가 어떤 여성이 용감하게 접근해 오면 다행으로 여겨 쉽게 받아들이지만 다만 다른 상대가 나타나면 이중·삼중적인 연애를 한다. 그러나 이 주인공의 바람기란 무리가 없는 한계에서 행하는 것으로 상대방을 불행으로 빠뜨린다거나 결혼생활이 파괴될 정도에 이르지는 않는다.

여성도 애정관이 남성의 예와 비슷하다. 설사 육체를 허락한 남성이라도 그에게 흠뻑 빠진다거나 매달리는 일이 없이 냉철하게 자기 자신으로 돌아오곤 한다. 그래서 쌍둥이 좌의 여성은 좋아하는 남성과 키스를 하고 있으면서도 거기에 완전히 도취되지 못하고 무엇인가 딴 생각을 하거나 상대방 남성의 못마땅한 점을 생각하게 된다.

결혼한 뒤에는 본시 타고난 성품 이 냉철하므로 극단적인 불행에까지 이르지는 않으나 자기의 남편과 다른 남편을 비교하는 버릇이 있어 애정이 있어서라기보다는 의무감으로 그런 대로 평탄한 가정을 유지해 나간다. 만약 이 성좌의 여성이 완전한 이상형의 남성과 결혼한다면 자신의 모든 것을 바쳐 남편을 사랑하고 남편을 위해 희생할 것이다.

결혼상대

  물병좌(1월 21일∼2월 19일), 천칭좌(9월 24일∼10월 23일), 사수좌(11월 23일∼12월 22일) 출생과 만나면 원만한 가정을 이룬다

그런데 은근 맞는듯.
게자리의 총운은 굉장히 좋은듯 하지만, 나와 핀트가 미묘하게 틀렸는데.
거의 정답인듯...

후후... 음력, Luna Calendar는  역시 집시 문화와도 융화가 된건가?





728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2010/01   »
일 월 화 수 목 금 토
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

WSS Buscuit SharePoint 좀 개발환경 협업 블로그 twi2me 매뉴얼 친구 것 me2sms 오류 Google Apps Engine 수 불만 me2photo e-book 지름신 java 2010 Azure MOSS 2007 me2dayzm moss 인터파크 windows 비스킷 Visual Studio Tutorial

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바