2009년 12월 17일 목요일

OpenSSL 명령어들

openssl 관련 명령어들...

1. key 생성
openssl genrsa -des3 -out server.key 1024

2. key 내용 확인
openssl rsa -noout -text -in server.key

3. key password 제거
openssl rsa -in server.key -out server.key.unsecure

4. csr 생성
openssl req -new -key server.key -out server.csr

5. csr 내용 확인
openssl req -noout -text -in server.csr

6. 인증서 내용 확인
openssl x509 -noout -text -in server.crt

7. 원격지 cert 확인
openssl s_client -connect URL:Port

 
8. DER 형식의 인증서를 pem 형식으로 바꾸기
x509 -in cert.cer -inform DER -out cert.pem -outform PEM

9. pem 형식의 인증서를 DER 형식으로 바꾸기
x509 -in cert.pem -inform PEM -out cert.der -outform DER
(키는 rsa)

10. pfx에서 키 추출
OpenSSL> pkcs12 –in filename.pfx –nocerts –out key.pem

11. pfx에서 인증서 추출
OpenSSL> pkcs12 –in filename.pfx –clcerts –nokeys –out cert.pem
출처 : Tong - Mashup님의 Dummy통

2009년 9월 23일 수요일

Lab Computer를 Hachintosh로 만들자

설치 대상 Computer의 중요 사양은 다음과 같습니다.

Mainboard: P5LD2 - i945P, ICH7R
CPU: PentiumD presler 930
Sound: ALC882M
Lan: Marvell 88E8053
Graphic: Sapphire ATI Radeon HD3650 256mb
Keyboard, Mouse: USB
HDD, ODD: Sata

자, 설치를 해볼까요?

부팅은 boot-132로 USB에 넣어서 했습니다.
중요한 드라이버만 준비해서 initrd.img를 제작했구요.

설치용 OSX는 배포본으로 iPC와 XxX를 준비했었습니다. 주로 iPC를 가지고 계속 했었는데요, 이게 생각만큼 잘 되지는 않았습니다. 뭐, 그래도 어느정도 준비는 했던터라 부팅은 가능한 상황까지는 갔습니다.

그래도 부팅은 할 수 있었으니까, Mac은 느껴볼 수 있었습니다. 하하하~
가장 큰 문제는 Graphic였지요. 이게 그래픽 드라이버를 선택해서 설치하면 화면이 깨져서 검은 화면에 깨 뿌린 것마냥 나오더군요. 그 상태에서 안전모드로는 부팅이 가능했기 때문에 그렇게 부팅을 해서 집에서 설치할 것들을 준비했습니다.

일단 집의 Computer 설치를 계속 준비하는 터라 Lab PC는 뒤로 미뤄뒀었는데, 그래픽이 너무 아쉬웠던 터라 다시 삽을 집어 들었습니다. 하지만 역시나 그래픽은 넘기 어려운 산이더군요. 이래저래 kext들을 구해봤으나 죄다 똑같은 상황이 벌어졌습니다. 드라이버를 모두 삭제하면 기본 정보로 standard 부팅은 잘 되는 상황이었습니다.

그때쯤 ideneb 10.5.8 version을 구했었고, 요것도 금방 다시 설치를 했고 꿈을 안고 부팅을 했으나.....음하하하하~ 안되더군요... OTL..
그래도 해상도를 수정하는 방법을 통해서 아쉬운데로 해상도만 높여서 사용하다가 EFI String이나 dsdt로 하려했으나...어렵더군요. 정보는 인식하지만 Mac의 최고봉~ QE/CI가 안되었습니다. 그대로 포기할까 하다가 검색을 해서 그전과는 다른 이름인 드라이버(사실 완전히 다른 건 아니라 단어가 추가된)를 구해서 설치했는데!!!!!!!


드디어!!!!!!!! 드디어~!!!!!!!!! 인식!!!!!!!! 으하하하하~ 기쁨의 환호성~ 예예~~

흐흐~ 지금 상태는 E/E는 사용하지 않고 다 S/L/E에 다 들어있고요, 타임머신 픽스해서 잘 되고 있습니다.

자~ 이제는 리테일로~ 고고~~

x86 PC를 Hackintosh로 만들자- 현재까지의 요약

얼마 전부터 Mac을 써보겠다고 용을 쓰고 있다고 했었습니다.
괜히 주위에 Mac을 쓰고 있는 사람들 때문에 이렇게 된건데요.

Mac을 살 돈은 없으니까, 자연히 Hachin으로 눈을 돌렸더랬지요.
처음의 시도는 무모함이기에 보란듯이 실패!!! OTL....

하하하~ 당연한 일이니 크게 낙심하지 않았습니다.
약간의 준비가 필요하니 자료 수집과 설치 공부를 해서 나름 준비를 했습니다.

부팅방법이나 설치방법, 설치 자료 등을 준비했고요.
일단 배포판 부터 시작했습니다.

학교 Lab에 있는 것부터 시작했습니다.
일단 얘는 설치가 됐고, 부팅도 했습니다. 즐겁더군요~ 되니까~~
그러나 뭐 완벽한 것은 아니고, 그래픽과 사운드는 아직...

이상태에서 집에서 설치할 것들을 준비했고, 집에서는 약간의 삽질 끝에 설치했습니다.
허나 여기도 문제는 있었구요. 불안불안 상태로 설치되었습니다.

나중에 안 사실이지만 집의 Computer나 Lab Computer,
둘다 기본적으로 Mac의 vanilla kernel이 사용불가한 펜티엄D 프레슬러 CPU 였습니다.

voodoo kernel이나 뭐 그런 걸 썼어야 했던 겁니다.
Lab에서는 그냥 우연찮게 설치했던 것을 집에서는 바닐라를 설치 해보겠다고
엄청 고생을 했던 겁니다. 이 사실도 나중에 우연히 부두커널을 설치하고 나서
검색하다가 알아낸 거죠.

그 때만 생각하면 눈물이...ㅠ.ㅠ


어쨌든 결론은 둘 다 부팅은 가능한 상태까지는 갈 수 있다는 겁니다~~~

2009년 9월 9일 수요일

Aaron Minick - The Gospel



CD1
1. He Lives
2. Amazing Grace
3. Cleanse Me
4. Sing Low, Sweet Chariot
5. Had It Not Been For Jesus
6. Jesus Is The Sweetest Name I Know / There's Something About That Name
7. His Hand In Mine
8. Just A Closer Walk With Thee
9. Pass Me Not
10. That's Just Like Jesus
11. Wayfaring Stranger

얼마전에 구매한 앨범입니다.
처음 나왔을 때, He Lives의 1분 듣기를 들어보고
'이거...좋은데?' 이러고 살 듯 하면서 말았다지요~

시간이 좀 지나서 20%가 10%(ㅠ.ㅠ)로 바뀌었을 때... 구매했습니다.

음악 평론가도 아니고, 단지 음악을 좋아하는 사람이기 때문에
그냥 전 1번 트랙이 좋아요! 이런 느낌~?

재즈라 한다해도 현란, 자유한 재즈가 아니라서
가벼운 마음으로, 재즈를 잘 몰라도 들을 수 있습니다.

재즈는 언젠가는 꼭 해보고 싶은 음악입니다.

2009년 9월 7일 월요일

해킨, 그거 별거 아니더군!

일전에 포스팅했듯이

해킨토시를 시도하고 있었습니다.


별다른 준비 없이, 무모한 시도는 실패를... 좌절하고 말았지요.

그래서 몇일간 자료 수집과 공부를 통해 차근차근 준비를 했더랬습니다.


부트로더와 몇개의 배포판들,  최종적으로 넘어갈 리테일 버젼까지.

또, 충돌이나 패닉이 날 상황, 드라이버 종류들을 알아보고

메뉴얼이나 팁 등을 찾아보면서 나름 준비를 했습니다.


대망의 9월4일.

집에 돌아와 설치시작!!

실패! 실패! 실패!  OTL...


나름 준비했다고 생각했으나, 별다른 방법을 알아내지 못한체 좌절...


그러다가 다시 마음을 가다듬고, 재설치!!

이때는 iPC 배포판으로 설치를 시작했고, 커널 종류를 변경했습니다.

그리고 몇가지 드라이버들을 잘 살펴보면서 기본적으로 필요한 것만 설치했습니다.


오오!!

성공입니다!!!!

이래저래 추가 드라이버를 설치하고 나니 아주 마음이 흡족합니다.

물론 아직 ODD 불능, 잠자기 불능, 가끔 커널 패닉이 일어나지만

그래도 그래픽이나 사운드 잘 되고 씽씽 돌아갑니다.


흐흐흐.

이제는 다음 산으로 넘어갈 때인 듯!


2009년 9월 4일 금요일

Hachin의 길은 멀고도 험하다.

일전에 밝혔듯이

현재 hachin을 시도하고 있는 보드는 intel p43, ich10인 보드다.

요것이 그닥 해킨에 좋은 칩셋은 아닌 듯 싶다.


가장 큰 어려움은 이 칩셋으로 성공했다는 보고가 거의 없는 터이고,

이 것에 관련된 좋은 내용들도 그닥....잘 보이지 않는다.


P43 칩 자체가 P45와 크게 차이가 없는 것이고,

ich10 도 ich10R과 크게 차이가 없으니 해킨에 무리없는 것 같기는 한데..

이상하게 잘 안되고 있다.


지금은 한발 물러서서 성공을 위한 자료 수집과 연구 중이다.

배포판 version은 iPC, XxX 두가지를 준비했고, Retail을 시도하기 위해 하나 준비했다.

boot-132로 부팅하기 위해 적절한 kext를 모아 전용 bootloader 만들었다. 으하하~

그래픽카드가 지원이 잘 안되는 경향이 있는 듯하고, 사운드칩이 via 것이라 없는듯..


이번 주말에 다시!!!




2009년 9월 1일 화요일

공인인증서 변환 시 openssl의 파싱 문제

현재 만들고 있는 Credential Management Service는 Globus의 simple CA를 통해 발급한 인증서를 인식하도록 되어있다.  이 인증서는 x509 v3를 따르고 있다.
 이 서비스가 좀 더 general하고 tool로 자리잡기 위해서는 직접 발급한 인증서가 아닌 공인 인증서를 사용할 수 있어야 했다.

 대부분의 기능이 구현된 상황에서 이러한 부분을 무시할 수 없기 때문에 공인 인증서 사용을 테스트하기로 했다.

공인 인증서의 변환은 다음과 같다. ( 변환된 파일들은 pem 형식이다. )

1. 인증서 관리도구를 사용하여 공인 인증서를 내보내기 한다.
2. 내보낸 파일을 openssl을 사용하여 변환한다.
3. 이 파일을 인증서 파일과 키 파일로 분리해야 한다.
$ openssl pkcs12 -in export_file.pfx -nokeys -out usercert.pem
$ openssl pkcs12 -in export_file.pfx -nocerts -nodes -out userkey.pem
4. 분리된 파일에서 필요없는 헤더를 삭제한다.
 - BEGIN HEADER 전의 내용
5. 사용하려는 인증서의 issuer를 hash.0, hash.signing_policy 파일을 만들어야 한다.
6. der형식의 인증서로 pem 형식으로 바꾼다. 여기에서는 yessign을 사용했다.
 - CA file path: /program files/NPKI/yessign/yessign.der
$ openssl x509 -inform DER -in yessign.der -out yessign.crt
7. 변환된 인증서로 부터 해쉬값을 얻는다.
$ openssl x509 -hash -in yessign.crt
8. crt파일을 hash.0로 변경하고 hash.signing_policy 파일을 만든다.
9. signing_policy는 다른 파일을 참조하여 구성한다.
 - 중요: access_id_CA, cond_subjects

이러한 과정을 거친 후 공인인증서를 확인해본다.
$grid-proxy-init -verify -debug

이때, 다음의 error가 발생되었다.
이 error에서는 extension, numeric id 89 등의 keyword를 발견 할 수 있다. 역시 우리의 친구, google은 해결책을 알려주었다. openssl의 pasing이 제대로 되지 않는다는 것이다.

이미 비슷한 일을 하고 있는 사람들이 꽤 있었기 때문에 쉽게 알아낼 수 있었던 것인데, kldp.org는 확실히 우리나라에서는 좋은 사이트인 것 같다. 흐흐흐~
http://kldp.org/node/104403 <- 요것은 링크~

diff -ru openssl-0.9.8b/crypto/x509v3/v3_purp.c openssl-0.9.8b.new/crypto/x509v3/v3_purp.c
--- openssl-0.9.8b/crypto/x509v3/v3_purp.c 2005-04-10 01:07:10.000000000 +0900
+++ openssl-0.9.8b/crypto/x509v3/v3_purp.c 2008-06-02 17:05:48.000000000 +0900
@@ -285,7 +285,9 @@
NID_key_usage, /* 83 */
NID_subject_alt_name, /* 85 */
NID_basic_constraints, /* 87 */
+ NID_certificate_policies, /* 89 */
NID_ext_key_usage, /* 126 */
+ NID_policy_constraints, /* 401 */
NID_proxyCertInfo /* 661 */
};
이것은 중요한 부분! 위에 보면 89번이 보인다~ 쟤가 없어서 그런거다.
소스를 고치고 다시 컴파일 하면 될껄? 아직 안하고 있다.

==============================================================================================

......실패했다.. ㅠ.ㅠ 엉엉

2009년 8월 27일 목요일

Mac 눈 앞에 보이는 것 같았다.

설치 화면까지는 나도 봤다!!!

그러나..버뜨!!!

Mac framework successfully initialized
Using 16384 buffer headers and 4096 cluster IO buffer headers

에서 멈춘다.

frozen 된다고 ...... -_-


Googling 중...OTL

설치 준비~

1. CPU : Pentium D 925 3.0Ghz


2. Mainboard: asrock P43DE
   Sound: Via VT1708S
   Lan: realtek RTL8111DL

3. Graphic: ATI x1300pro


대충 이러한 사양의 컴퓨터에서 설치 시도 중이다.

일단은 부팅하고 나서 따로 명령어를 사용해야 설치화면까지 진행할 수 있다.

>cpus=1 -v

가져보자! 써보자! 맥!

게임을 잘 안하는 나로써는

개발, 영화, 웹 등의 용도로 맥으로도 충분하다.


괜히 써보고 싶은 마음에...

나도 설치 해보고자 하나...


안되더라. ㅠ.ㅠ 털썩...


현재는 iPC, xXx 두가지로 테스트 중

2009년 5월 29일 금요일

Connection reset

java.net.SocketException: Connection reset

globus의 Delegation service 부분에서 발생한 문제.

웹 서비스를 제공하던 서버에서 인증과 GridFTP에 대한 변경사항이 발생하면서

이전에 제공되던 service와 connection이 올바로 셋팅되지 않음


web service를 찾지 못하던 문제이기 때문에

globus service를 다시 실행하여 현재 셋팅을 적용하게 함.

===============================================================================


Mgrid04을 다시 셋팅하는 과정 중에

simple CA라던지 GridFTP라던지를 새로 설치하고 셋업을 했더니

기존에 서비스되고 있던 globus web service가 제대로 동작하지 않게 되었다.


특히 Delegation 쪽에서 java.net.Secket(뭐시기)가 exception을 만들어냈다.

'Connection reset'이라고..


원래 이 exception이 처음(내가 mgrid04 셋팅을 날려먹기 전)엔 발생하지 않았던 문제인데

내가 뭔가 건드리기 시작하니까 발생했다.

기본적으로 Java swing 프로그램(Execution tool)문제는 아닌게 확실하니까,

서버 쪽에서의 문제인 것까지는 알아냈는데,

구글링으로 connection reset을 검색해보면,

내 상황에서의 문제보다 thread나 data 전송에 관련된 부분이 많았다.


일단 제대로 connection이 이루어지지 않았다는 것을 알아냈고,

Globus page에서 이리저리 쑤시고 다니다 보니까,

Delegation service라는 것까지 알아냈다.


이쯤 되니까, 혹시 내가 인증부분을 건드렸기 때문에

service security 문제인가 싶어 차근차근 살펴봤지만

여전히 이 부분에 대한 내용도 실제로 내가 건드릴 부분은 아니었다.


동료가 서비스가 제대로 콜 되지 않을 때 그렇다 라는 말을 해주어서,

init.d에서 globus를 다시 실행했더니 정상 작동 되었다.

장장 하루를 소비했던 이 exception은 단 3분만에 해결....ㅠ.ㅠ 어흑..

2009년 5월 26일 화요일

Proxy server와 certficate의 issuer matching fault

globus가 설치되어있는 서버에 새로운 simple CA를 설치한 뒤

인증서를 새로 발급 받아 proxy server에 사용하려고 하는데,

다음과 같은 인증 실패 에러가 발생한다.

Authentication failed
[Caused by: Failure unspecified at GSS-API level
[Caused by: Bad certificate
(The signature of 'O=Grid,OU=AGC,OU=KMU,CN=KMU Grid CA' certificate does not match its issuer)]]

Simple CA를 다시 설치한 뒤부터는 아예 proxy 서버로 put이 되지를 않는다.

벌써 수없이 다시 설치하고 인증서도 새로 발급했지만 여전히 같은 문제가 나타난다.

아...모르겠다...ㅠ.ㅠ

금요일까지 해야하는데..ㅠ.ㅠ

====================================================================================

진짜 하루 종일 붙잡고 늘어진 덕에 반은 해결했다.

일단, 기존에 설치되어있던 Simple CA를 설치한 것이 root인지 globus인지

명확하지 않은 상태에서 root에서 새로 설치한 것이 문제.

그리고 다시 globus에서 설치하여 어떤 CA를 레퍼런스하고 있는 것인지 불명확.

그리고 CA와 실제 인증서들간의 issuer가 같은 것이 아니었던 것.

마지막으로 Proxy server에서 레퍼런스하고 있는 CA의 위치가

/root/.globus/certificates 였던 것을 확인하지 못했던 것이 가장 큰 실수다.


분명히 proxy server를 debug 했었다면 쉽게 해결했을 문제를

대충 겉에서의 리턴 메세지만 가지고 해결하려고 했기 때문에

본질적인 문제를 발견하지 못했던 것이다.


debug를 한다는 것, 매우 중요하고 본질을 볼 수 있는 시작이다.


일단 certficate를 issuer랑 매칭하지 못했던 것은 해결되었지만,

기존 mgrid의 proxy process가 제대로 작동하지 못해서

web server쪽에 인증 작업이 되질 않고 있다.

proxy server로 proxy는 put하고 있지만,

이것을 web server로 다시 받아오지 못하고 있는 상황이다.

==========================================================================

현재 saturn에서 서비스되고 있는 데모 포탈 버젼은

인증서를 proxy servert로부터 가져와서 스토리지에 저장하여 사용하고 있다.

이 과정에서 인증서를 다시 리딩할때 CA 인증서가 존재하지 않기 때문에

Unknown CA라는 exception이 발생하게 되었다.


내가 mgrid04에 Simple CA를 새로 설치했기 때문에

인증서와 signing policy를 갱신하지 않았으므로 Exception이 발생하면서

로그인 과정이 진행되지 않았다.

2009년 5월 19일 화요일

ExtJS 2.X file upload

If you are having problem with file uploads using ExtJs and Grails, this might help you.

To upload file with the latest ExtJs 2.0, you need to specify the theExt.form.BasicForm to be configured as fileupload, just pass "fileUpload:true" to the config options. Then add a textfield as specify the "inputType" as "file". This will get you a ExtJs form with a standard File browser button to choose file.

CheckboxSelectionModel.getSelections()의 return array의 처리

if ( caSelectionModel.getCount() > 0  ) {
var selectedCA = caSelectionModel.getSelections();
Ext.Ajax.request({
url: '/gridsphere/gridsphsere?cid=managerclock',
success: function() {
caListStore.load();
},
params: {
'action': 'delete_ca',
'target_list': selectedCA
}
});
}

일단...

selection model에서 user가 선택한 rows를 array로 리턴한 값을

request로 실어 보내야 하는 상황이다.


기본적으로 array가 어떻게 사용되는지는 javascript를 봐야할 듯 싶고..

request로 보낼때는 어떻게 해야할지 감이 안잡힌다.


==================================================================================

if ( caSelectionModel.getCount() > 0  ) {
// 삭제할 CA들의 정보를 array로 바꾸어서 전달해야한다.
var selectedCAs = caSelectionModel.getSelections();
var selectedCARecords = []; // javascript
for ( idx in selectedCAs ){
if ( typeof selectedCAs[idx] == 'object' ) {
selectedCARecords.push(selectedCAs[idx].data.uid);
selectedCARecords.push(selectedCAs[idx].data.name);
selectedCARecords.push(selectedCAs[idx].data.path);
selectedCARecords.push(selectedCAs[idx].data.caCertificateName);
selectedCARecords.push(selectedCAs[idx].data.signingPolicyName);
selectedCARecords.push(selectedCAs[idx].data.release);
}
}
Ext.Ajax.request({
url: '/gridsphere/gridsphere?cid=managerclock',
success: function() {
caListStore.load();
},
params: {
'action': 'delete_ca',
'target_list': selectedCARecords
}
});
}

여기에서의 문제는 ExtJS에서 request로 넘긴 target_list가 server에서는 올바로 읽혀지지 않는다는 것이다.

request에서 넘겨질 때부터 이미 무명 object로 넘어가기 때문에 server side에서 알아챌리가 만무하다.

ExtJS에선 request에 array를 전달하면 알아서 개별 값으로 풀어 넘겨주기는 하지만, 실제로 getSelections()에서 넘어온 Array는 ExtJS에서나 통용되는 Array일 뿐이지, server에서는 모르는 값이 넘어올 뿐인 거다.


이 부분을 해결하려면,

ExtJS에서 자체적으로 변환 과정을 거쳐 request에서 올바로 인식할 수 있는 array 형태로 보내주면 된다.

여기서 주의할 부분은 SelectionModel에서 넘어온 Array에는 다양한 형태의 properties(array, function..)가 존재하기 때문에 data를 가진 property만 array로 만들어 주어야한다. 이 확인 과정은 위 코드의 if문에 해당한다.


※ 이 문제를 해결하기 위해서는 request의 array 전달 과정과 javascript에 대한 기본 지식이 필요하다.

2009년 5월 14일 목요일

죽은 소녀의 아버지, 혈루병 걸린 여인, 맹인

공통점은?

믿음으로 변화를 얻은 자들. (마 9:18-38)

메디테이션은 잘 안 읽어서 그냥 넘어갔는데,
거기선 그러더라, 믿음보다는 간절한 사모함이었다 라고...


이들은 예수님께서 해결해 주실 것이라는 믿음 하나로 변화를 얻었다.

그렇다면 나는????


나의 모습에서 흐려저가고 있는 모습이지 않을까...

내 입술의 고백들은 여전히 하나님을 향하고 있지만,

내 마음이 방향은 어떠한가 돌아보게 된다.



이쯤에서 항상 등장하시는 우리의 '바리새인들'.

귀신 들린 자에게서 귀신을 쫓아내는 모습을 보고는

귀신의 왕에게 붙어 귀신을 쫓는다고까지 한다.


얘네들 참... 예수님이 싫었나보다.

그런데...

가만 살펴보면 이 치들의 모습이 나에게도 있지 않나 싶다.


분명 주님이 하셨으나 그렇게 생각하지 않는 모습.

물론 부정은 아닌 망각이지만,

하나님이 하신 건데, 다~ 잘 해주시는데, 나는 외면하고 있는 것이니,

마찬가지.


믿는 자와 부정하는 자.

종이 한장 차이인가 보다.

Admin Tool

Portal 관리자가

Portal에서 사용되는 인증서의 CA를 관리하는 tool을 만들고 있다.


ui는 ExtJS로 하고 있는데

어떻게 ui를 구성해야할지 좀 난감하다.


트리나 뭔가 직관적인 인터페이스를 사용하고 싶지만,

일단은 그냥 그리드 패널.......ㅎㅎㅎㅎㅎ


Drag&Drop을 사용해서 CA release를 갱신하는 process를 만들고 싶은데...

우째야 하나...

2009년 5월 8일 금요일

Portlet? Action?

요즘 Lab에서 개발하는 것들은

대부분 gridsphere를 사용하고 있다.


사실상 portlet이란 것도 연구실에 들어와서 처음 접한 것이고,

웹 프로그래밍이란 것도 아주 낯선....상태라 할 수 있다.


정확한 개념없이 무작정 사용만 하다가


그냥 대충 사용하는게 아니라

내가 직접 portlet을 작성하거나, gridsphere service를 만들어 붙이고 하려니까

뭐가 뭔지 모르겠고, 좀 더 깊숙히 프로그래밍하는게 어려운 상황이 되버렸다.


여튼

action을 사용해야겠는데...

gs_action은 뭐고, 자바스크립트에서 넘기려면 어쩌라는겨....

process action은 또 어떻게 된다는 말인가~~

블로깅의 시작

사실,

프로그래밍을 하면서 경험하게 되는

수많은 구글링 중에서는 블로그를 상당히 많이 만나게 된다.


그게 참 부럽더라.

자신이 해온 것들, 어려웠던 것들, 알게 된 것들... 등등..


이러한 자료들을 차곡 차곡 쌓고,

자신의 지식 창고를 만들고 있다는 사실이 부러웠다는 거지.


그래서 나도 한번 시작해 보려고 했는데...

이게 또 만만치 않은 일인게야...


귀찮고.....잘 모르겠고.... 이쁘게는 안되는데....

전형적인 귀차니스트. 허허.


우연히 들른 구글 블로그.

텍스트 큐브? 응? 그게 뭔데?


괜시리 베타테스트라는 말에 동해

나도 이제 블로거~~~~ 으하하하하


이왕 이리된거 한번 시작해 봅시다.