• 카테고리
    • 전체 글

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

'분류 전체보기'에 해당되는 글 1251건

  • 2010.02.10 객체 지향 C#의 꽁수. Singleton 패턴.
  • 2010.02.10 2008 R2 x64의 IIS 위에서 32bit 응용 프로그램 돌리는데 꼭 확인 필요.
  • 2010.02.08 어제 대표팀 축구를 보면서.
  • 2010.02.07 아, 엇갈렸다. 2
  • 2010.02.03 증권서비스 이거 완전히 돈 뜯어 먹는 귀신들일세...
  • 2010.01.30 Google Apps Engine을 통해 응용 프로그램 설계 시 주의사항 2
  • 2010.01.30 [Google Apps Engine] 응용 프로그램 올리기.
  • 2010.01.30 [Google Apps Engine] 정적 파일 사용하기.

객체 지향 C#의 꽁수. Singleton 패턴.

기술자료/.NET 2010. 2. 10. 11:02

사실 전역변수 처럼 쓰이는 각종 응용 프로그램 설정 내역들이 있다.

보통은 app.config 혹은 web.config 를 통해 값을 읽어오게 되는데,

그 로직 아무리 짧아야, 2~3줄씩 되고,

설정이 필요할 때 마다 app.config 혹은 web.config에서 일일히 읽어오는 것도 나름대로 곤욕이다.

그러기 위해 Sigleton 패턴을 사용하는게 제일인듯.

 

그런데, 이런 Singleton 패턴은 Windows 응용 프로그램 같은 경우야,

하나의 인스턴스니 상관 없지만, 웹 응용 프로그램같은 경우에는 조금 난감한 것도 사실.

 

이에 현재 나름대로 고민해서 짜본 방법이 아래와 같다.

 

public static class ConfigManager()

{

        public static string TempFileLocation

        {

                get

                {

                          string sResult = string.empty;

                          try

                          {

                                 sResult = ConfigurationManager.AppSettings["tempfolder"];

                          }

                          catch

                          {

                           }

                           return sResult;

                 }

 

         }

}

 

저렇게 만들면 ConfigManager를 일일히 new 할 필요가 없다. Heap이 아닌 응용 프로그램 저장 위치에 단 한개의 인스턴스만 존재하므로, 최소한 이 부분을 띄워주는데에서는 무조건 저 한개의 로직에서 처리가 된다.

저 방법의 핵심은 static 인데, static으로 정의되는 내용은 어쨌던 별도의 Instance 생성이 필요없다는 훌륭한 강점을 가지게 된다.

 

그런데, 설정 구성이 많아지게 되면 그 만큼 코드도 무척 길어지게 된다. 처음 설정 내역이 4~5개 까지는 그럭저럭 봐주는데, 설정 내용이 20여개를 넘자, 매번 저렇게 구성하는것도 환장하겠고, 더욱이 appsetting의 Key 값이 변경될때도 나름 고역. 
더욱이  매번 appsetting 에서 값을 읽어오는게 영 마음에 꺼림찍했다.(NET 프레임워크 개발한 분들도 나름 천재들이니, 옵티마이징 하면, 저 로직도 나름 정리가 잘 되리라 생각은 하지만)

그럼 데이터를 1회만 읽어오고, 모두 한자리에 때려 박는 방법을 다시 생각했다.

public static class ConfigManager()

{

       static ConfigManager()

       {

                try

                {

                        ConfigManager.tempFolderLocation =
                                     ConfigurationManager.AppSettings["tempfolder"];

                }

                catch

                {

                }

         }

 

        static string tempFolderLocation;

        public static string TempFileLocation

        {

                get

                {

                          return ConfigManager.tempFolderLocation;

                 }

 

         }

}

 

즉 static 클래스 안에 Constructor를 만들어서 그 안에서 1회 읽어오게 하고,

실제 일반 사용자가 사용하는 부분에서는 static으로 저장된 변수 값만 읽어가게 되는 것이다.

직접 XML이나, INI 파일 파서를 만든 상태라면, 그 로직을 Constructor에 만들고

구성하면 되는 것이다.

즉 핵심은 static 클래스에서 static 생성자를 만드는 것!. 이게 핵심.

728x90
블로그 이미지

하인도1

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

2008 R2 x64의 IIS 위에서 32bit 응용 프로그램 돌리는데 꼭 확인 필요.

기술자료/Web 2010. 2. 10. 10:43

지금까지 2003 IIS만 주로 쓰고 있다가, 2008로 넘어오면서 나름 적응을 했다고 생각했다.

그런데, 2008 R2에서는 시스템 성능 및 보안 등등 여러가지를 손 본듯 싶었다.

 

이번에 지원 프로젝트건이 있어 잠시 나왔다.

ClearQuest 7.1.1 과 IIS간의 연동 부분이 있는데, ClearQuest에서 제공하는 COM 과 연결하는 작업이 반드시 필요한 내용이였다.

로컬 및 자체 Staging 서버(애석하게도 여기는 2008이였지, 2008 R2가 아니였다.)에서는

잘 돌다가, 갑자기 운영서버에 올라가니 다음과 같은 오류를 뿜었다.

 

'/' 응용 프로그램에 서버 오류가 있습니다.
--------------------------------------------------------------------------------

80040154 오류로 인해 CLSID가 {94773112-72E8-11D0-A42E-00A024DED613}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.

예외 정보: System.Runtime.InteropServices.COMException: 80040154 오류로 인해 CLSID가 {94773112-72E8-11D0-A42E-00A024DED613}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다.

소스 오류:

줄 19: ....

 

처음에는 COM이기 때문에, 해당 서버에 저 COM이 제대로 등록되어 있지 않았나 싶었다.

그래서 구성 요소 서비스에 들어가, 해당 Component가 이상한가 봤는데,

애석하게도 내가 다루고 있던 COM은 서버형이 아니므로 전혀 무관계.

이번에는 RegEdit 를 띄운 뒤, 저 CLSID를 검색하는데,

잘 걸린다. 위치도 제대로 되어 있고, 모든 설정은 OK! 였다.

.NET Framework 문제인가? 3.5가 아닌 2.0 기반의 Classic .NET 설정의 문제인가.

아니면 내가 코드를 짤 때 레퍼런스 설정이 잘못된 것인가?

여러가지 의문점들을 하나씩 수정하면서 체크해봤다.

대략 1시간 정도 시간을 보내고 났다.

그러나 방법은 모르겠고.....

 

그러다가, 현재 동작 중인 응용 프로그램 설정에서 다음을 보았다.

3264compotableproblem

 

저게 x64 형태의 서버에서만 설정하는 부분인 것 같다.

성능상의 Issue를 최소화 시키기 위해 x86기반의 응용 프로그램 제외 모드가 있는 것 같다.

그런데, 애석하게도 저 옵션이 Default 값이 False인듯.

True로 바꾸자 모든게 매끄럽게 진행이되었다.

728x90
블로그 이미지

하인도1

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

어제 대표팀 축구를 보면서.

잡글 2010. 2. 8. 09:30

근래 시간이 되면 Football Manager 2010을 하고 있다.

천안시청이라는 팀을 하고 있는데, 예전 K-League에서 뛰었던 선수들과,

기존에 있었던 듯한 선수들로 포진되어 있다.

 

위닝11 2010을 하다 보면, 선수들이 30세를 넘어서면서 파라미터가 마구 내려가기 때문에,

나이 많은 선수의 유지는 어렵다라는 미묘한 선입관이 강하게 박혔다.

그래서 FM 2010에서도 남기일 선수가 벌써 나이기 35세에 육박해서,

제일 먼저 방출을 -_-;;;;;

( 나중에 천안시청 관련글 보고 ㄷㄷㄷ 하긴 했다. 이렇게 훌륭한 선수였어?!! )

그래서 FM 2010을 하면서 나이 많은 선수들의 재배치와 다시 보기를 하고 있었다.

게다가, 팁 처럼 뜬말 중에 이런 말도 있다. MF 진은 28~31이 전성기라고.

아항! 그렇구나.

 

그리고 어제 경기를 쭉 봤다.

젋은 피가 물씬 느껴지는 전반!

특히 구자철의 플레이는 환상 그 자체 였다. 볼의 움직임에서 창조성이 화려하게 느껴지고

섬뜻섬뜻했다. 더욱이 2번째 골을 넣을때 골키퍼 면전 근처에서 묘기 부리듯 공을

살짝 올리는 모습은 정말이지 천재라는 느낌!

이거 완전히 남미 팀과 아시아 팀이 맞붙은 기분.

 

그에 반해 이동국 같은 경우 젋은 선수들의 활발한 움직임과는 많이 반하는 모습을 보여주었다

어딘가 짱박혔다가, 수비수의 빈틈을 비집고 들어간듯한.

사실 그래야 골과 연결되는 경우가 많겠지만, 그래도 영 존재감이 없었다.

특히나 수비수를 줄줄줄 달고 댕길 수만 있어도, 그의 존재는 확실할텐데,

무언가 한 템포가 부족한 기분.

애석하게도 카메라 뷰 자체가 이동국만 비출 수 없는 것이기 때문에,

그의 플레이를 전부 보지는 못했다.

하지만, 확실한 건 타켓형 스트라이커는 아닌 것 같다.

 

- FM 2010의 천안시청에서는 그런 이동국이라도 있으면 전승 할 수 있을 것 같다. 된장.

  윤원철도 좋고 구현서도 좋지만 골 결정력이 너무 낮아 -_-;;;

728x90
블로그 이미지

하인도1

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

아, 엇갈렸다.

잡글 2010. 2. 7. 01:27

예전에도 한 친구와 미묘한 서로간의 갈등으로 내 멋대로 절교를 선언했었다.

(그러고 보니 20세기 소년에서처럼 "친구"의 "절교" 같은데 절대 그런 느낌은 아니다.)

그리고 거의 5~6년 후에 우연히 다시 만나 오랜만의 재회를 나누었다.

이 때까지만 해도 그럭저럭 넘어간 것 같았다.


오늘(2010-02-06) 저녁.

친구 중 한 명이 게임방을 차린다고 의견을 구하기 위해 나와 또 하나의 친구를 초대했다.

일단 내가 먼저 참가 이야기를 나누었다. 그러다 흡연실로 자리를 옮겼고,

거기서 이런 저런 이야기를 했다.

그리고 좀 늦게 그를 만났다.

그런데 애석하게도 그는 흡연실이 싫었고, 더욱이 신도림까지 다시 나와야 된다는 사실에

다양한 원인이 섞여 결국 화를 내며 집으로 가버렸다.

나에게도, 초대한 친구에게도 화를 내며 갔다.

물론 내 잘못은 분명있다.

다양하게 이렇게 저렇게 화난 친구에게 따돌리듯 (비록 장난이였지만) 한 것은 분명 잘못인 것 같다.


하지만 그의 분노는 의외로 컸다. 전화가 왔고, 그의 분노 섞인 불만이 쏟어졌다.

답변을 했찌만, 나의 미안함은 전해지지 않은 채,

도리어 오해만 잔뜩하고 일방적으로 전화를 끊었다.

다시 연락하고 싶었지만, 연락은 안되었다.


분명 내 잘못은 맞다.

그에게도 그의 사정이 있으니, 복잡하게 꼬였을지도 모른다.

하지만, 그의 액션은 이미 나에게는 어떻게 할 수 없었다.


다시 5년이 될지 10년이 될지는 모르겠지만, 오해 속에서 어설프나마 또 다시 절교 모드 들어갈 것 같다.


돌아오면서 생각해보니,

그 친구와 특별한 Give & Take 요소가 없다는 점이 더욱 그런 것 같다.

그 문제에서 요즘 나에게는 마이너스 적인 우울함 가득한 상태이기에,

그를 달래 다시 만날 생각조차 안든다.

(내 각종 인터넷 계정 정리도 그 일환이지만.)


한참을 복잡하게 생각했지만, 이제 다 포기다.

뭐, 쓸쓸하게 스크루지 처럼 쓸쓸히 죽는 것은 왠지 슬픈 느낌이지만,

(그렇다고 구두쇠에 인색하지는 않다. 단지 좀 성격이 약간 삐뚤어진 것 뿐이다.)

그래도 이런 마이너스 적인 우울함에도 몇몇 친구들은 아직도 나를 반긴다.

뭐 그걸로 만족하면서 살려고 한다.


조용히 아무 고민 없이 살고 싶을 뿐이다.

728x90
블로그 이미지

하인도1

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

증권서비스 이거 완전히 돈 뜯어 먹는 귀신들일세...

잡글 2010. 2. 3. 14:17

처음에는 수수료 때문에, 키움닷컴으로 일단 시작은 했는데,

중간에 신한금융투자 쪽에 모바일 기능을 PDA에서 제공되는 것을 보고 그 쪽으로 옮겼다.

그런데 역시 수수료는 증권 살때, 팔때 전부 적용. 게다가 팔때는 세금까지.

0.05% 이니까, 100 만원어치 사면 대략 5만원정도 까인다. 그것도 살 때 팔 때. 게다가 세금까지.

그러니까, 대략 15만원 정도는 까인다고 본다.

(증권거래로 돈 벌려면, 이정도는 가뿐이 넘을 수 있어야 될듯)

뭐 그건 그렇다 치자. 다들 그렇게 거래들을 하고 있으니.

 

이번엔 정말 목적 처럼 달라 붙었던 모바일 프로그램을 설치했다.

아, 그런데, 이놈의 프로그램은 M480은 지원하지 않았다.

요즘 유행하는 풀 터치 기반의 넓직한 화면만 지원했고, M480같은 짧다목한 화면은 지원 불가.

왜 그런가 했더니 보니까, 해상도가 풀터치폰 기준으로 만들다 보니, M480에서는 보기가 힘들다.

아... 다 포기할까 하다가, 그냥 RealVGA 깔고 128dpi 크기를 96dpi로 만들었다.

일단 뜨긴 뜬다.

 

어랏? 이번엔 3000원을 더 내란다.

한번이 아닌 매달.

이건 또 무슨 시츄에이션?!

이걸 뭐라고 해야 할까.. 심각하게 고민하기 시작했다.

정말 3000원씩이나 내가면서 봐야 하는거야? 라는...

그러다가, 밖에서도 데이터를 볼 수 있으면 좋지 않을까? 라는 생각이 들었다.

사실 증권의 각종 거래 데이터는 거의 완벽한 유료 서비스.

생각보다 비싼 정보다. ( 물론 쓰레기 더미와 같은 데이터들이긴 하지만...)

이걸 증권사가 나름대로 정순화 해서 보내주는 것.

그정도 즈음이야... 뭐 할 수 없지라는 마음에 3000원 결재 들어갔다.

 

어라!!!!!!! 이건 또... 뭐..

경고 메시지. 한건 조회할때, 댁은 팍스넷에 가입이 안되있으셔서,

조회 건당 200원씩 내란다. 조회 건당.

이건 또 뭐야!!!!

 

아쓰벌.

 

일단, 다 접기로 했다. 빨리 이놈의 서비스도 종료시키고 다 지워버려야지.

내가 바라는게 이런게 아니잖아!!!!!!

 

정말 쓰레기다. 모바일 제품들.

포기 ~ 포기 ~

728x90
블로그 이미지

하인도1

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

Google Apps Engine을 통해 응용 프로그램 설계 시 주의사항

기술자료/Web 2010. 1. 30. 21:40

앞서 포스팅한 글에서 언급한 문제에 대해서 자세히 설명을 하려고 한다.

 

아마도 Google Apps Engine은 아마존이나 MS와는 다르게 초기 진행은

완전 무료로 진행되기 때문에, 어중이 떠중이(필자를 포함한) 다양한 사람들이 접근하기 때문에,

CPU에 큰 무리가 될 작업은 아예 배제하고 출발한 것 같다.

(아니면 단순히 설계에서 고려 사항에서 제외하고 출시 한 것일지 모른다.)

 

지금 현재 관점으로 바라볼때 Google Apps Engine은 다음과 같은 구조를 가지고 있다.

아주 단순한 모양인데, GAE 위에 얹어 놓은 모든 응용 프로그램은 Request/Response 기반으로

동작하게 된다.

 

자 여기서 함정이다.

즉 Request와 Reponse 사이에 Web Browser에서는 Time-Out을 결정하게 된다.

만일 GAE에 올려놓은 응용 프로그램 내에 처리해야 되는 내용이 많은 경우에는

Web Browser에 Response를 줄 수 없는데, 이러면 응용 프로그램 오류가 발생한다.

 

물론 응용 프로그램의 설계를 웹 중심으로 다시 생각하여 하나씩 재 설계하면 가능하다.

 

하지만, 로직을 만들다 보면, 내부적으로 처리되야 하는 경우가 있다.

무언가 작업의 Flow가 있을때, 중간에 끊기면 다음 작업의 완성도에 대한 장담이 어려운 경우가

있는데, 이런 응용 프로그램은 참 곤란하다.

예전에 아마존 클라우드 서비스에 대한 소개 내용 중 이런게 있었다.

한 대중 매체 사이트에 담긴 모든 형태의 파일 형식을 바꿀 일이 있었는데,

이 때 아마존의 클라우드 서비스를 이용하여 임대 식으로 해당 자원을 활용하여 변환했다고 한다.

만일 고도의 계산이나 많은 부하가 필요한 변환 작업이라고 할때, 한번 변환 작업이 5분 걸린다면?

이거 Timeout으로 Exception 뿜고 죽는다.

 

 

그렇다면? Back-end에서 처리하는 방법은?

안그래도 Azure를 하면서 그런 기능을 찾아보았다.

Azure에서는 Worker라는 개념이 있어서, 사용자의 특정한 Request가 없이도 실행할 수 있는

로직이 있었다. 게다가, 이 개념에서 시작과 끝에 대해서는 완전 비동기로 동작할 수 있도록 했다.

즉 사용자의 Request는 그 Worker를 동작시켜주세요!!!! 이 정도로 끝내고,

나중에 필요할 때 그 결과값을 얻을 수 있었다.

 

그러나 이 GAE 안에는 그런 개념은 없었다.

비슷한 기능이라고 생각한 기능을 찾기는 했는데....

바로 Cron이였다. 아 뭐 특이한건 아니고, Linux에 있는 그 Cron이다.

일정 시간이 되면 실행하는 그 데몬. 그런데 웃기는건 이 Cron도 위의 한계를 그대로 안고 있다는

것이다. 즉, 사용자가 직접 액션을 안한다 뿐이지, 실제로는 그 동일한 한계를 들어낸다.

위와 같은 꼴이니, 만일 GAE안의 응용 프로그램이 Timeout에 빠진다고 한다면?

동일한 오류를 뿜고 끝!

 

그래서 방법은 한가지 밖에 없다고 판단한다.

클라이언트가 복잡해지는 수 밖에 없다는 생각이다.

 

 

뭔가 복잡한 그림이 됐지만, 원리는 간단하다.
즉 Client 쪽에 로직을 세우면 된다.

 

프로그램을 시작한 뒤, 그 다음 단계에 뭐하고 그 다음 단계의 다음 단계에 뭐하고 하는 것을

Client에서 구현한 뒤, 실제 데이터 입출력이나 처리 작업만 일부분만 넘기는 것이다.

GAE에서는 단지 그 일부분을 처리하기 위한 로직 만을 세우면 되는 것이다.

 

위의 예를 가지고 사용자의 클릭 한번에

     Action1 -> Action 2 -> Action 4

의 작업을 수행한다 가정하자.

그러면 다음과 같은 순서로 실행될 것이다.

  1. Action 1 실행
  2. Action 1에서 GAE의 Action1에 해당하는 루틴 Requst.
  3. GAE의 Response 내용을 받음.
  4. Action 2 실행.
  5. Action 2에서 GAE에 Action2에 해당하는 루틴 Request.
  6. GAE의 Response 내용을 받음
  7. Action 4 실행
  8. Action 4에서 GAE에 Action2에 해당하는 루틴 Request.

 

즉 GAE에서는 웹 서비스의 단위 메소드,

이른바 Web 2.0의 한 유행인, 공개 API와 같은 꼴로 구성하면 어떻게든 된다.

 

 

아직은 구성에 대해서 다양한 시도와 파악 중이다.

현재까지 이 Google Apps Engine을 통해 무언가를 만든다는 개념은

위의 형태에서 벗어나게 되면 이래 저래 힘들듯 싶다는 생각이다.

 

지금까지 파악한 방법에서 성공한 방법은

클라이언트 측은 Rich 하게 만들고, GAE에서는 가볍게 만들어

GAE에 데이터를 저장하고 가공하는 정도?

그것도 Time-out 걸리지 않을 정도로, 아주 가볍게 처리해야 한다는 것이다.

 

UPDATE 2010-01-30   21:40

Auzre의 Worker의 비동기 개념을 탑재 시켜준 거와 비슷한 기능이 있다.

Task Queue Java API다.  그런데, Time Out 레벨의 작업 역시 못하리라 생각은 든다.

Workflow 형태로 뭔가 Back-end에서 실행은 할 수 있을지는 모르겠는데,

역시 동작에 필요한 무언가의 작업은 Google Apps 내 웹을 부르는 작업을 수행한다.

하지만 아직 이 부분에 대해서 실험은 안 해봤다.

(게다가 이 동작 Java 에서는 베타 테스트 중이다. )

 

아직은 개발 도상 단계인듯. 조금 더 살펴봐야 겠다.

728x90
블로그 이미지

하인도1

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

[Google Apps Engine] 응용 프로그램 올리기.

기술자료/Web 2010. 1. 30. 20:39

관리자 콘솔(Administration Console)를 사용하여 App Engine 안의 각종 응용 프로그램을 생성하고, 관리할 수 있습니다. 응용 프로그램에 대한 응용 프로그램 ID를 한번 등록하면, 다른 이클립스 플러그인이든, SDK 에서 제공하는 명령줄 도구를 사용하든, App Engine으로 업로드 할 수 있습니다.

 

NOTES: 응용 프로그램 ID를 한번 등록한 뒤, 그 응용 프로그램을 삭제하면, 나중에 그 ID로 같은 응용 프로그램을 올리지 못합니다. 만일 지금 등록하지 않으려면, 이 단계를 건너 뛰시기 바랍니다.

 

응용 프로그램 등록하기.

App Engine 관리자 콘솔에서 App Engine 웹 응용 프로그램들을 생성하고 관리할 수 있습니다. 이 App Engine 관리자 콘솔에 접속하려면 다음 URL에 접속하도록 합니다.

https://appengine.google.com/

 

지금 사용 중인 구글 계정을 통해 이 App Engine에 가입하도록 합니다. 구글 계정이 없으시면, 이메일 주소와 암호를 가지고 https://www.google.com/accounts/ 에서 구글 계정을 생성하실 수 있습니다.

 

응용 프로그램을 생성하려면, "Create an Application" 버튼을 클릭하시기 바랍니다. 그리고 그 안에서 설명하는 내용을 따라 이 응용 프로그램에 대한 application ID와 고유한 이름을 등록하시기 바랍니다. 만일 무료로 도메인을 제공하는 appspot.com 을 그대로 사용한다면, 전체 URL은 http://application-id.appspot.com 이 됩니다. 아니면 top-level의 별도의 도메인을 구입하여 사용하신다면, 원하는 이름으로 설정하여 구성하실 수 있습니다.

 

일단 응용 프로그램 ID를 받았으면 그 내용을 지금 만든 응용 프로그램에 그 내용을 넣어주셔야 합니다. 그 방법은, appengine-web.xml 파일을 연 뒤, <application> 엘리멘트 안에 등록한 응용 프로그램 ID를 넣어주시면 됩니다.

 

응용 프로그램 올리기.

이클립스를 사용하여 응용 프로그램을 올리는 방법은 간단합니다.

모든 동작은 Google Apps SDK의 플러그인에서 대부분 자동으로 처리해 줍니다.

일단 응용 프로그램이 모두 정상적으로 동작한 것을 확인 하셨으면,

툴 바에서 App Engine deploy 버튼(

)을 클릭해주시면 됩니다.

 

그리고 아이디와 암호 입력창이 뜨면, 구글 계정에 대한 아이디(이메일 주소)와 암호를 넣어주시면 됩니다. 그리고 Upload 버튼을 클릭해주시면 됩니다. 그러면 이클립스에서는 앞서 수정한 appengine-web.xml 에서 응용 프로그램 ID와 버전 정보를 가져와서 war/ 디렉터리에 있는 파일을 패키징 해서 업로드 하기 시작합니다.

 

올린 응용 프로그램 실행해보기.

App Engine 상에 만든 응용 프로그램을 실제로 확인할 차례 입니다. 간단하게 무료로 제공하는 appspot.com 도메인을 통해 바로 접속해 볼 수 있습니다.

 

http://application-id.appspot.com

 

 

축하드립니다!!!

이제 기초적인 내용은 모두 끝났습니다. 최소한 이 단계까지 오셨다면 Java를 이용한 Google Apps Engine 용 응용 프로그램 만들기의 처음부터 끝까지 다 거친 것입니다.

이 외의 더 자세한 내용은 App Engine 문서를 통해 자세하게 확인해보시기 바랍니다.

 

 

 

 

You create and manage applications in App Engine using the Administration Console. Once you have registered an application ID for your application, you upload it to App Engine using either the Eclipse plugin, or a command-line tool in the SDK.

728x90
블로그 이미지

하인도1

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

[Google Apps Engine] 정적 파일 사용하기.

기술자료/Web 2010. 1. 30. 20:08

보통 웹 브라우저로 정적 파일을 그대로 전달하는 방법은 다양하게 있습니다. 이미지, CSS 스타일시트, 자바스크립트 코드, 동영상 및 플래쉬 애니메이션 등은 일반적으로 브라우저에서 내용 그대로 받게 됩니다. 그러므로 보다 효율적인 App Engine 운영을 하려면, 이런 정적 파일들을 각 서블릿과는 별개로 제공하는 방법이 좋습니다.


기본적으로 App Engine은 JSP와 WEB-INF/ 안의 파일들을 제외한 정적 파일들 모두 WAR 안에 만들게 됩니다. URL에 대한 요청들 중 정적 파일들에 해당하는 경로가 있으면, 그에 맞는 정적 파일들을 제공하게 됩니다.

서블릿 또는 필터된 매핑 또한 그런 규칙에 맞게 진행됩니다.

이것을 각 파일 별로 별도 구성하여 App Engine이 정적 파일들에 대해서 처리하지 않도록 구성할 수 있습니다. 그 설정은 appengine-web.xml 파일을 사용하여 구성하게 됩니다.


지금 부터 CSS 스타일 시트로 방명록 표현방법을 구성하도록 하겠습니다.
하지만, 이 예제에서는 정적 파일에 대한 설정을 다루지는 않습니다. 정적 파일과 자원 파일들에 대해 설정하기 위한 자세한 정보는 App Configuration을 보시기 바랍니다.


간단한 스타일시트

war/ 디렉터리 안에 stylesheets/ 라는 이름의 스타일 시트를 만드시기 바랍니다.  그리고 그 안에 main.css 파일을 생성한 뒤에 다음과 같은 내용으로 채우시기 바랍니다.

body {
    font-family: Verdana, Helvetica, sans-serif;
    background-color: #FFFFCC;
}

war/guestbook.jsp 파일을 연 뒤에 파일의 맨 위에 있는 <html> 줄 다음 줄을 다음과 같이 수정해주시기 바랍니다.

<html>
  <head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
  </head>

  <body>
    ...
  </body>
</html>

자 이제 http://localhost:8080 으로 접근해보시기 바랍니다. 그러면 스타일 시트로 바뀐 새로운 화면을 보실 수 있습니다.


다음은...

이제 지금까지 구성한 내용을 실제 Google Apps Engine에 등록해 보도록 하겠습니다.


응용 프로그램 올리기에서 계속 됩니다.

728x90
블로그 이미지

하인도1

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

  • «
  • 1
  • ···
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • ···
  • 157
  • »
250x250

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

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

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

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바