짧게 여행했습니다.
경로 잡는 데 구글맵 정말 잘 되어있습니다.
정부도 아닌 일개 기업이 이런 서비스를 만들었다는 것에 찬사를 보냅니다.

사용자 삽입 이미지

사용자 삽입 이미지
구글 해냈군요. 고맙습니다.
구글 캘린더에 아웃룩(Outlook)의 일정을 동기화시킬 수 있습니다. 양방향, 단방향 모두 가능합니다.

처음엔 아래와 같은 에러가 떠서 당황했는데, 옆자리의 동료는 잘 되고 있었습니다. 메시지(You seeam to have outdated time zone information. Please run Microsoft Windows™ Update) 시키는대로 윈도우와 오피스를 업데이트하니까 동작합니다. ^^;
사용자 삽입 이미지


Google Calendar Sync라고 설치되어 있습니다. 저는 Uninstall 메뉴가 같이 붙어있는 프로그램들은 매너가 좋다고 생각합니다.
사용자 삽입 이미지


트레이 아이콘 옆에 있는 아이콘의 컨텍스트 메뉴에서 Sync를 선택하면 동기화됩니다.
사용자 삽입 이미지

막 움직이죠. 화살표가.
사용자 삽입 이미지

마우스를 올려 놓으면 현재 진행상황도 보여 줍니다.
사용자 삽입 이미지


완료된 모습은 직접 확인하세요. ^^


구글 한국어 페이지에서는 관련 프로그램 링크가 아직 안보입니다. 구걸링해서 영문 페이지에서 구했습니다.
http://www.google.com/support/calendar/bin/answer.py?answer=89955

팔 씨름을 할 때 팔의 각도를 좁혀야 힘을 쓰기 편합니다. 그래서 잡은 손에 대해서 그리고 자세에 대해서 굉장히 많은 신경을 쓰게 되죠. 시작 전에 판가름이 난다고 할 수도 있습니다.
판 이란 말은 영어의 플랫폼(platform)과 같다고 생각합니다. 웹 2.0의 키워드 중에 플랫폼이 있었고, UCC가 그 플랫폼 위에서 각광을 받았습니다.

구글이라는 회사가 시작할 때는 이미 검색엔진 시장이 포화 상태라고 할 수 있었습니다. 야후, 알타비스타, 라이코스, 인포시크 등의 검색엔진들이 포진한 상태에서 황당한 진입구 하나만 가지고 출사표를 던졌습니다. 제 기억에는 검색 엔진이 빠르다는 표시로 검색 결과 페이지의 검색 완료 시간을 표시했던 것으로 기억합니다. 검색을 한다는 영어단어로 구글링한다는 표현이 나온 것은 오래 걸리지 않았습니다.

G마켓이라는 회사가 구스닥(Goodstock)일 때 관심을 가진 사람들은 많이 없었습니다. 지하철에 "G"라는 영문자 이니셜로 많은 사람들의 궁금증을 갖게 하는 마케팅을 했을 때 혹시 구글이 국내에서 정식 서비스를 시작하는 게 아닌가 생각하기도 했습니다. 쇼핑몰의 판을 벌여 놓고 파는 사람들과 사는 사람들을 연결해 주는 서비스를 키웠습니다. 이것을 오픈 마켓이라고 부르기 시작했습니다. 경매 사이트인 옥션 마저도 오픈 마켓으로 돌아섰습니다. 옥션에서 요즘 경매를 하는 사람은 아주 드물어졌다고 합니다.

네이버라는 회사가 있습니다. 인터넷, 아니 컴퓨터를 모르는 분들도 TV광고에서 반복적으로 연두색 네모 박스에 길들여졌습니다. 네이버에서 땡땡땡을 검색하세요 라고 말이죠. 스펀지라는 프로그램에서 똑똑한 사람들은 네이버에서 정보를 찾는 것으로 비쳐졌습니다.

판의 존재의미는 가치획득입니다. 그것이 용이한 곳이라면 사람들은 모여들게 되어있습니다. 현재 판을 분석하고, 새로운 판을 생각하고 시도하는 것, 그래서 새로운 시장을 만드는 것. 이것이 마케팅(marketing)입니다.

OPEN API : 지도, 검색 정보 등의 일부 데이터를 외부에 오픈해서 사용하도록 하는 프로그래밍 기술. 제3의 서비스 창출이 가능하게 된 Web2.0 프로그래밍 트렌드. 국내 Naver, 다음이 OpenAPI 주도.

Google File System : 전세계 웹검색 정보 등의 대용량 파일 처리를 위한 구글의 파일 분산 저장 시스템. 하루에 PC급 서버 10만대에서 20,000 테라바이트를 처리할 수 있는 병렬 컴퓨팅 설계 기법.

Google BigTable : 구글 파일 시스템을 응용한 대용량 분산 데이터베이스 시스템. 데이터베이스의 머신을 병렬화하여 확장성과 가용성 그리고 퍼포먼스를 무한히 늘려갈 수 있음.
음, 있군요. 불편을 감수하고 쓸만합니다.
pdf 저장은 되지만 PPT 파일 생성은 해주지 않습니다.
온라인 채팅지원되는 프리젠테이션이 가능하네요.




http://docs.google.com/Presentation?id=dhmgtw6h_143hbwftmc7

많이 미완성이지만 채우도록 하겠습니다.
웹에서 유니코드 문자열을 다루는 일은 제법 걸림이 됩니다. 어제도 웹서비스를 스트림으로 읽어서 처리하는 가운데 한글이 유니코드 문자열로 반환되는 바람에 애를 먹었었는데, 다행히 2004년에 비슷한 이유로 만든 코드를 이용해서 해결했습니다.

유니코드문자열을 캐릭터문자열로 바꾸는 클래스, 작은 것이지만 구글 코드를 통해서 공유합니다. http://code.google.com/p/unicodereader
사용자 삽입 이미지

테스트케이스도 같이 있기 때문에 쉽게 적용하실 수 있을 것입니다.
라이센스는 아파치 라이센스 2.0 입니다. 제가 이해하기로는 맘대로 쓰셔도 될 것입니다. 메소드 주석의 저작자 @author 만 남겨주세요. ^^


서브버전을 통해서 이클립스 프로젝트 형태로 등록도 해 놓았습니다. 모쪼록 개발에 도움이 되길 바랍니다. 행복하세요.

관련글 : http://okjsp.tistory.com/tag/openapi

WoC(Winter of Code)에서 함께 할 파트너가 정해졌습니다. 돌아오는 토요일에 처음 만나게 됩니다. 함께 진행하지 못하는 네분의 신청자분들에게 고마움과 미안함을 전합니다. 이 프로젝트가 어떻게 진행되는지는 프로젝트 홈페이지(http://code.google.com/p/shopgallery)를 통해서 확인할 수 있습니다.

사용자 삽입 이미지

구걸 코드에서 제공하는 오픈소스 프로젝트 호스팅 서비스를 이용해서 다음과 같은 일들을 진행할 수 있습니다.

  • 프로젝트 홈페이지
  • 다운로드 서비스
  • 위키
  • 이슈트래커
  • 소스버전관리 - subversion
  • 프로젝트 멤버 관리
비슷한 류의 원조격인 서비스는 sourceforge.net 입니다. 한국어로 된 서비스로 kldp.net도 있습니다. 자바닷넷도 오픈소스 프로젝트 인큐베이터를 자처하고 있습니다.

현재 프로젝트에는 옥션의 openAPI 샘플만 들어가 있습니다. 소스 탭에 나온 설명대로 다음의 소스 주소를 통해서 확인할 수 있습니다.

svn checkout http://shopgallery.googlecode.com/svn/trunk/ shopgallery-read-only

내년 2월까지 진행되는 이 프로젝트를 통해서 오픈소스에 대한 감각을 좀 더 익히고 싶습니다.
추가:
현재 17:45분 http://services.google.com/events/korea_vintcerf2007 에서 신청이 가능합니다.
미영이모님 열이아빠님 감사합니다.

구글에 몇 번 미끄러진 경험이 있는 저는 자격이 없는 것인지.
구글코리아에서 Google Developer Night 2007 행사를 한다길래 찾아가 봤습니다.
구글코리아 블로그로는 참가신청이 마감되었는지 아직 열지 않았는지 알 수 없어서,
메일을 보내봤습니다.

두 번 반송이 되고, Gmail로 세 번째 보내 본 메일입니다.
역시나... ㅡㅡ;
사용자 삽입 이미지

제 사이트 메일로 보낸게 처음이었고요.
사용자 삽입 이미지

회사 메일로 보낸게 두번째였습니다.
사용자 삽입 이미지

구글 google-events@google.com 에 메일보내는 방법 아시는 분 쫌 도와주세요.

역시나 어려운 구글입니다.
미인증이 보이길래.
사용자 삽입 이미지

인증하기를 누르니 다음과 같은 페이지로 이동했습니다.  도메인은 괜찮군요. ageverification.
구글 계정이 있어서 오른쪽에 있는 회원 성인인증을 클릭했습니다.
사용자 삽입 이미지


그 다음에 나온 화면은 어라.  아까 화면에서 오른쪽만 빠진거였습니다.  낚였다 라는 기분이 드는 디자인이였습니다. 췟. 로그인 상태였는데, 이전 화면에서 바로 이 화면 보여주면 어때서요.
사용자 삽입 이미지

인증여부: 성인 이라고 나옵니다만, 개운치 않네요. 타국에서 서비스 장사하느라 고생많습니다. 구글.
사용자 삽입 이미지

구글이 무슨 죄겠습니까. 대한민국에서 인터넷 장사하려면 be evil 해져야 할 겁니다. 약해지는 지는 거다.


오픈소스 뭐가 좋을까요.
공짜? 아닙니다. 아무도 공짜로 기술을 익힐 수는 없습니다. 시간과 노력이 많이 들어갑니다. 매뉴얼도 부실합니다. 기술지원? 인터넷을 통해서 찾아봐야하고 영어와 싸워야됩니다.

오픈소스는 소통의 방법입니다.
http://code.google.com/p/daysago 라는 프로젝트를 만들어서 공개를 했습니다. 적용사이트는 http://www.okjsp.pe.kr 이죠. 날짜 표기를 몇일전(days ago)처럼 표시합니다.
어느날 버그리포트를 받았습니다. 한달 전을 지나면 날짜 표기가 이상해진다는 내용이었죠.

추가된 테스트 코드

추가된 테스트 코드

버그 내용을 확인하고 테스트 메소드를 추가했습니다. 오류가 나는 날짜 데이터를 시료로 하고, 결과값을 기대한다고 했죠.

실패한 테스트 코드

실패한 테스트 코드

테스트 코드를 실행해보면 "어제"라는 값이 나와서 기대값인 "한달전"과 다릅니다. 소스를 열어봐야죠.

브레이크 포인트 걸기

브레이크 포인트 걸기

의심이 가는 곳에 브레이크 포인트를 겁니다. 그리고 디버깅을 시작해야겠죠.

start Debug

start Debug

JUnit 뷰에서 실패한 메소드에서 오른버튼을 클릭해서 Debug를 실행합니다.

변수 정보

변수 정보

디버그 퍼스펙티브에서 우측상단의 Variables 뷰를 보면 변수값을 확인할 수 있습니다.

코드 변경

코드 변경

day변수값이 먼저 조건에 걸리기 때문에 hour값에 의존해서 처리를 해야할 것 같습니다. 즉 hour를 날짜로 환산한 값이 30보다 작을 경우 day == 1 과 day == 2 가 어제, 그저께로 나와야 되는 것이죠. if 안으로 집어넣으면 될 것 같습니다.

테스트 재실행

테스트 재실행

테스트를 다시 돌립니다. JUnit 뷰의 툴바 중에서 5번째 있는 노란 화살표가 있는 플레이 아이콘을 클릭하면 됩니다. 녹색 바가 나오는 것을 보니 기대한 값이 나왔네요. 제대로 디버깅 되었습니다.

Regression Tests

Regression Tests

Regression Tests(회귀 테스트)를 수행합니다. 무슨 뜻이냐 하면 고친 코드로 인해서 다른 기능들에 Side Effect(부작용)가 생겼는지 확인을 하는 테스트를 회귀 테스트라고 합니다. De Bug가 En Bug로 돌변할 수도 있으니까요.

프로젝트 패키지

프로젝트 패키지


테스트가 완료되었으니 배포판을 만들겠습니다. 이클립스 프로젝트를 통째로 압축을 해서 공개를 하는 프로젝트입니다. 프로젝트 컨텍스트 메뉴에서 Export...를 선택합니다.
export type 선택

export type 선택

압축형태이기 때문에 zip이라고 필터 텍스트를 입력하지 마시고, ar을 입력하면 Archive File로 나옵니다. 프레스로 꽉꽉 누르는 아이콘 보이시죠.

배포판 등록

배포판 등록

배포판을 등록합니다. http://code.google.com/ 에서 프로젝트 관리자나 회원이면 파일을 등록할 수 있습니다.

등록된 배포파일

등록된 배포파일

daysago-0_22.zip 파일이 등록된 것을 볼 수 있습니다.

간단하게 시작할 수 있는 오픈소스 방법입니다. 복잡한 게시판 같은 것은 시간이 많이 걸립니다.  작은 소스부터 공유하면서 오픈소스에 대한 감각을 키워나가는 것이 필요하다는 생각이 듭니다.
아, 영어가 벅차면 그냥 한글로 하셔도 됩니다. 세계로 나아가는 프로그래머가 되고 싶다는 생각에 어설픈 영어를 썼습니다만 한글로 시작하셔도 됩니다.

오픈소스 프로젝트를 시작할 수 있는 곳은 구글코드 외에도 http://sf.net , http://kldp.net 등이 있습니다.

+ Recent posts