2009년 9월 30일 수요일

Google App Engine(GAE)를 사용하자 -1부

Google App Engine (이하 GAE)가 무엇인가?

gae는 직접 개발한 web application을 구글의 인프라에서 운영이 가능하게 한다.
단지 application을 upload하는 것만으로
쉽게 만들고, 쉽게 유지보수하고, 특히 쉽게 트래픽과 데이터 스토리지를 확장할 수 있다.

개별적인 도메인(물론 자신가 보유한)을 사용할 수도 있고 appspot.com이라는 도메인의 서브도메인을 사용할 수도 있다.

또한 Java 런타임 환경을 제공해 줌으로 JVM을 포함한 Servlet 등을 사용할 수 있다.

GAE는 초기 구축 비용이 들지 않으며, 리소스(스토리지,대역폼)등은 기가바이트 단위로 측정된다.
그리고 자금한도내에서 최대 리소스의 양을 조절할 수 있따.

처음 GAE를 구축하게 되면 500M의 스토리지와 충분한 CPU자원이 할당이 되며 월 5백만페이지뷰를 커버할만한 대역폭이 주어지며 무료이다.
그리고 대역폭을 넘어서는 리소스에 대해서만 합당한 비용을 지불하면 된다.

어플리케이션의 환경

GAE는 많은 부하와 큰 데이터를 신뢰성있고 쉽게 운영이 가능하다.
GAE는 다음과 같은 특징을 가지고 있다.

  • 일반적인 web 기술을 전부 사용가능한 동적 web 서비스
  • 쿼리, 정렬, 트랜잭션이 가능한 저장공간
  • 자동으로 처리되는 확장과 로드밸런싱
  • Google 계정을 이용한 이메일 송수신을 위한 API
  • 완벽하게 로컬 PC에서 개발가능한 환경
  • 웹상의 요청이 아닌 작업이 처리가능한 task queue
  • 특정시간이나 일정한 주기로 스케줄되어져서 실행이 가능한 작업

샌드박스

application은 운영체제로의 접근이 제한된 보안 환경에서 작동된다. 이러한 제한은 GAE가 다수의 서버에서 웹 요청을 처리하는것과 요청이 있을때만 서비스를 기동시키는 것이 가능하게 한다. 샌드박스는 application을 하드웨어와 운영체제 및 서버의 위치에서 독립된 보안되고 안정적인 환경으로 구별지어 준다.

자바환경

일반적인 Java API의 환경에서 자바 개발이 가능하다. JSP를 포함한 표준 Servlet 환경을 사용할 수 있다.
Java runtime은 Java 6를 사용하며 GAE Java SDK는 Java 5 와 6에서의 개발을 지원한다.

기본적으로 개발환경은 JRE 6을 포함하고 있다. 샌드박스 환경에서의 제약은 JVM에서 구현된다는 것이다.
모든 app는 샌드박스의 제약을 벗어나지 않는 한도내에서  라이브러리나 JVM bytecode를 사용할 수 있다.
예를들어 소켓을 열거나 파일을 저장하려는 bytecode는 runtime exception이 발생한다.


2009년 9월 29일 화요일

IE 버전별 테스트 IETester

1. 개요
  • Web개발을 하는데 있어서 가장 어려운 점이 다중의 브라우저를 고려한 개발을 해야한다는 것이다.
  • 그중에서도 특히 IE는 버전별 호완성을 검증하기위해서는 버전별 IE가 필요한데 윈도우 상에서 버전별 설치가 어려운 점이 있었다.
  • 이러한 문제점을 좀 더 쉽게 해줄수 있는 툴이 있어 소개를 한다.
  • 바로 IETester !! ( http://www.my-debugbar.com/wiki/IETester/HomePage )
  • 원문의 설명은 아래와 같다.
IETester is a free WebBrowser that allows you to have the rendering and javascript engines of IE8, IE7 IE 6 and IE5.5 on Windows 7, Vista and XP, as well as the installed IE in the same process.

2. 설치하기

  • 다운로드 - Download IETester v0.4.1 (24MB)
  • 개인서버 다운로드(링크 보장 못함) - IETester v0.4.1
  • 설치하기
    1. 약관동의

    2. 설치항목 선택 - 필자는 언어를 영어와 한국어만 선택했다.

    3. 설치경로 - 기본경로 ~~


    4. 인스톨

3. 사용하기

  • 사용법은 참 쉽다. 특별한 메뉴없이 일반 브라우저와 비슷한 UI로 구성되어 있으나 특이하게 새탭을 띄울때 IE의 버전을 선택할 수 있다.
  • 이탭을 이용해서 테스트를 필요로하는 버전의 탭을 열어서 사용하면 된다.

2009년 9월 2일 수요일

다중 버전 IE 설치 - Multiple IEs

Web 개발을 위해서는 고려해야할 변수가 많이 존재한다.

특히 ajax, javascript 나 flash등을 작업하는데 있어서는 다양한 유저층을 위해서 crossbrowser를 지원해야하는데

IE외의 타브라우저들(Firefox, Crome)은 IE와 함께 설치해서 테스트를 하는 것이 가능한데

IE는 여러가지 버전을 동시에 PC에 설치할 수가 없다

 

이런 문제점을 해결하기 위해서

다중의 IE를 설치 할 수 있는 툴이 있어서 소개를 해본다.

 

Multiple IEs(http://tredosoft.com/Multiple_IE) 라는 툴인데

간략하게 설치 방법을 정리해본다.

 

  1. 다운로드(http://tredosoft.com/files/multi-ie/multiple-ie-setup.exe)
  2. 설치

간단하게 끝난다.

 

하지만 위의 방법을 통해서 Win7에서는 정상작동이 안되는 것을 확인했다 OTL

또한 IE7.0은 지원을 하지 않는데 이부분은 관련된 기사 링크를 파악해보길 바란다.

 

2009년 7월 23일 목요일

프로젝트 문서 관리

실제로 프로젝트를 진행하다 보면 소스이외의 많은 문서들과 설계 자료를 만들고

관련된 참고자료를 수집하게 된다.

 


이러한 문서자료를 관리를 위한 방법에 대해서 마소에 2006년 4월에 게재되었던

기사를 참고로 나름대로 정리를 해보았다.

 

우선 요구사항


  • 소규모 그룹을 위한 방안
  • 개발자는 규칙에 얽매이는 것을 싫어한다.
  • 시간이 흐른 후에도 찾아야 할 경우가 종종 발생한다.
  • 백업이 간단해야 한다.

 

프로젝트 진행용 파일 관리법


  • 탐색기를 사용하는게 편하다고 필자는 말하고 있으나 개인적으론
    SVN등의 툴을 탐색기와 연동하거나 TOW등을 사용하는게 좋다고 판단된다.

  • 위키 프로젝트 문서 관리법

    1. TOW에 프로젝트를 등록한다.
    2. 프로젝트에 관련된 간략한 요약내용을 정리해서 wiki의 첫페이지를 생성한다.
    3. 첫페이지 하단에는 아래와 같은 링크 wiki페이지를 만든다.

      • design : 설계 관련문서 - 분석,설계,개발 관련 문서 페이지
      • design_memo : 설계 관련 내역 - 설계시 이슈가 되었던 내역등을 기록
      • maintenance : 유지보수관련문서 - 유지보수때 추가적으로 발생한 문서 페이지
      • maintenance_memo : 유지보수내역 - 유지보수했던 내역을 요구사항이 들어올때마다 기록
      • manual : 산출물 - 납품했던 산출물
      • sample : 각종 샘플 - 테스트용으로 사용했던 샘플 첨부 페이지
      • refer : 참고자료 - 개발시 참고했던 자료 및 링크 등을 정리한 페이지
        (링키는 시간이 지나면 사라질 수 있으므로 될수 있으면 링크와 참고자료를 동시에 보관하는게 좋다)

 

  • 문서의 명명 규칙

    • 문서는 문서 앞쪽에 4자리의 코드를 부여하는데 영문(1)+숫자(3)로 생성한다.
    • 영문은 원하는 이니셜을 사용하면 되고 커다란 의므로 사용된다.
    • 숫자는 문서의 생성 순서에 따라 증가한다.
    • 어떤 작업에 관하여 문서를 생성하게 될때는 보통 하나의 문서로 정리될 수도 있지만 여러개의 문서가 한번에 발생할 경우 동일한 코드를 가짐으로 동시에 작성되었다는 표시로서의 의미를 가진다.

 

  • 백업

    • 백업은 위의 자료가 업로드 되어 있는 TOW를 통채로 백업하는 방식을 추천한다.
    • 백업용 씽크 프로그램으로는 GoodSync가 적당하다.(윈도우일 경우)
    • 백업용 데이터는 실제 저장된 디스크와 다른 곳에 백업을 처리하며
    • 자동화된 일일 백업을 처리하고
    • 안전을 위해서 월 1회 실제 저장소와 백업 저장소 이위의 공간에 백업을 한다.(옵션)