하나씩 각개격파!

하핫!!! 드뎌 익스플로러6 에서 escape한 값을 화면에 찍는데 성공했다!!! 상황을 다시 한번 정리하자면,

익스6의 자바스크립트 함수에서 한글이 들어간 URL을 escape한다. cgi에서 넘겨받은 URL의 파라미터의 한글값을 읽지 못한다. cgi에서 출력한 한글을 넘겨받은 자바스크립트가 출력하면 한글이 와장창 깨진다.

원인은 이렇다. 익스플로러6은 내부적으로 unicode로 동작한다. 따라서 한글이 들어간 URL을 escape할때도 한글 값을 해당 unicode 값으로 치환해서(예를들어 한 ==> %uD55C, ‘한’의 unicode값이 ‘D55C’ 다) 넘긴다. 우리쪽 cgi는 %HH 방식, 즉 0-9,a-z,A-Z, 몇가지 특수기호(자세한건 RFC URL Escape 관련 문서를 찾아보라)를 제외한 모든 문자를 ascii 코드값을 16진수로 변환해서 %HH로 출력하는 방식을 사용하기 때문에 스크립트와 cgi가 주고받는 값들을 서로 인식하지 못해서 한글이 와장창 깨지는 것이다.

해결방법은 이렇다. 일단 쿼리 로그를 비롯해서 다른 모든 데이터들이 %HH 방식으로 동작하므로 브라우저에서 넘겨받은 unicode를 일단 파싱을 해서 코드값만 추려낸 다음에 UTF-8로 변환을 한다([http://nlp.kookmin.ac.kr/data/unitoutf.html 변환하는 루틴은 국민대 강승식 교수의 자연어처리 연구실 홈페이지에 가면 자료를 찾을 수 있다]). 이렇게 변환을 하면 OS의 iconv 라이브러리를 이용해서 euc-kr로 변환해서 쌓아둔 로그를 가지고 작업을 할 수 있게 된다.

화면에 출력할 때는 UTF-8 로 출력을 한다(이걸 몰라서 어제 하루종일 삽질했다). 유니코드 값을 뿌린다고 브라우저가 알아먹는것이 아니라는 것을 꼭 명심하라. 반드시 UTF-8로 변환을 해야 익스플로러6이 알아 먹는다. 익스플로러5는 또 얘기가 다르다. 이 녀석은 우리 cgi가 동작하는 %HH 방식대로 동작한다. 이 녀석에 대한 처리는 아직 못 했다. 아직 모질라에서는 테스트를 못해봤고 테스트 할 여력이 못 된다. 나 또한 싸이월드를 모질라에서도 잘 돌게 제대로 안짰다고 욕하지만, 모질라까지 잘 돌게 할 힘도 열정도 남아 있지 않다. 브라우저 종속적인 코드는 사용하지 않았으니 잘 돌거라 믿는다. 나중에 여력이 되면 테스트 해보자.

관련글은 [http://iam312.pe.kr/moniwiki/wiki.php/NaverRecommendKeyword 여기]로.

익숙한 것과의 작별

비 온다. 신을 갈아 신을 때가 됐나보다. 지난 일년동안 내가 가는 곳이면 어디든 나와 함께 한 이 신과 이제 그만 이별할 때가 됐나보다. 가죽이 찢어지긴 했지만 신고다니는데는 지장이 없었는데 비오는 날엔 좀 곤란하다. 밑창이 떨어져서 비가 오면 물이 새거든. 낼은 새 신을 신고 가야겠다.

안녕. 그 동안 고생 많았다.

수정 블로그 카운터 문제

엊그제 새로 인스톨을 하고 봤더니 어째 카운터가 전혀 변화가 없다. 이상하다. 소스를 함 들여다 봤더니 일단 조건문에 간단한 오타가 있었다. == 을 != 로 잘못 넣었다. 그건 그렇고 계속 따라가 봤더니 ip를 체크해서 동일 아이피면 업데이트를 안 시키는 루틴이 걸렸다. 문제는 그거였다. 나는 일기장으로 쓰다 보니 URL을 공개하지 않아서 방문자가 거의 없다. 아이피 목록이 전혀 변화가 없으니 매일 접속해도 최근에 접속한 사람으로 알고 카운터를 업데이트 하지 않는 것이었다.
쿠키를 이용해서 브라우저가 새로 열릴때마다 카운터가 한번씩 올라가도록 소스를 수정해서 패치 파일을 버그 리포트에 올렸다.

수정 블로그의 export 문제

저번에 얘기했던 수정 블로그의 export가 안되는 문제를 해결해야만 했다. 방문자 카운터가 문제가 있는지 계속 고대로 멈춰 있어서 손대다가 초기화를 시키면서 고만 파일 소유자가 nobody로 바뀌는 바람에 내가 수정 권한이 없어져서 하는수 없이 수정 자체를 언인스톨을 해야 했거든. 언인스톨을 하자면 반드시 데이터를 export 해야 했다.
소스를 찬찬히 디버깅 해 보니 문제는 업로드 시킨 파일을 xml로 변환시킬때 사이즈가 900KB가 넘는 파일들을 fread 하다가 웹서버의 타임 아웃에 걸리고 있었다. 호스팅 받고 있는 업체의 아파치 설정이 연결시간을 매우 짧게 잡고 있는 듯 하다. 서버 세팅을 변경할 수 없어서, 결국 문제가 있는 파일들을 로컬에 다운로드하고 서버에서 지운후에 export를 했다. 그리고 수정을 언인스톨하고 새로 설치한 후에 데이터를 다시 import하고 지웠던 용량 큰 첨부파일들도 다시 업로드 시켰다. 내가 직접 관리하는 서버가 아니라 업체에서 호스팅을 받는지라 서버 세팅을 변경할수 없어서 여간 불편한게 아니다. 어쨌든 새로 설치하고 나니 깔끔해져서 좋다.

동작대교

퇴근하고 나서 자전거에 삼각대 묶고 한강에 나갔다. 효사정에 가서 몇장 찍고 동작대교 근처에 가서 몇장 찍었다. 효사정에서 내 사진도 몇장 찍었는데 완전 실패다. 배경은 밝은데 내 얼굴은 완전 어둡게 나와서 알아 볼수가 없네. 야간 인물 촬영이 참 어렵다…

효사정에서 건너편 아파트 단지를 찍었다. 수동으로 세팅해서 찍은 건데 아직 미숙하다. 너무 밝다.

이건 동작대교 근처에서 야경모드로 찍었다. 수동으로 세팅해서 찍었을 때 보다 물에 비친 가로등 빛이 훨씬 예쁘다. 아직 멀었나 보다.

그런데 그림판이 미친건가? 어째 스케일링 배율은 똑 같은데 이미지 크기가 다르지??? 이상타.

우진형과 나

오늘 우진형과 한강에 나갔다. 길가에 튤립이 피었길래 앉아서 한장 찰칵 ^^

우진형은 내가 대학 2학년때 처음 알고 지내게 된 동아리 선배다. 내게는 형이 없지만 말 못할 고민 있을 때도 맘 편히 얘기할 수 있는 친형과 같은 사람이다.

고추 새싹과 이름모를 들꽃

어제 카메라를 받았다. 애플 파워북을 사려고 돈을 모으고 있었는데 3초 더 빨리 프로그램이 돈다고 내 인생이 더 즐거워 지는 것도 아니고 해서 노트북은 때려치우고 카메라를 질러버렸거든. 좀 행복해지자구. 그래서 열심히 사용법 익히는 중이다.

오늘 아침에 정식형 만나러 한남대교로 가는 길에 찍은 들꽃이다. 이름은 나도 잘 모르니 대충 패랭이 꽃이라고 해 두자.

요건 우리집 주인 할아버지가 심으신 고추 새싹이다. 정말 파릇파릇한 새싹이지 않은가?

마지막으로 어제 처음 카메라에 들어가서 열심히 맡은바 소임을 다하고 운명하신 배터리 두개. 나머지 두 녀석은 바닥에 자빠져 있는데 안보인다.

정수라 – 난 너에게

난 네가 기뻐하는 일이라면 뭐든지 할수 있어
난 네가 좋아하는 일이라면 뭐든지 할수 있어
별보다 예쁘고 꽃보다 더 고운 나의 친구여
이 세상 다주어도 바꿀수 없는 나의 친구야
네 곁에 있으면 사랑은 내것
네 곁에 있으면 세상도 내것
 

난 네가 기뻐하는 일이라면 뭐든지 할수 있어
난 네가 좋아하는 일이라면 뭐든지 할수 있어

난 네가 기뻐하는 일이라면 뭐든지 할수 있어
난 네가 좋아하는 일이라면 뭐든지 할수 있어
별보다 예쁘고 꽃보다 더 고운 나의 친구여

이 세상 다주어도 바꿀수 없는 나의 친구야
네 곁에 있으면 사랑은 내것
네 곁에 있으면 세상도 내것
 

난 네가 기뻐하는 일이라면 뭐든지 할수 있어
난 네가 좋아하는 일이라면 뭐든지 할수 있어

난 네가 좋아하는 일이라면 뭐든지 할수 있어

//<![CDATA[
writeCode2("http://iam312.pe.kr/attachment/dlm1230.asf“)//]]>

흥! 내 마음이 이렇다고! 이렇단 말이다!

조금씩 원상 복귀

교통카드 재발급 받음. 인터넷 뱅킹 보안 카드 재발급 받음. 복지카드 재발급 받음. 신용카드 조만간 도착한다고 연락 옴. 마포 경찰서에서 분실 지갑 등기로 보낸다고 연락 옴. 카드 분실 기간 동안 빌린 돈 전부 갚음. 주민등록증 재 발급 신청 함. 운전면허증 재발급 신청함.