내사랑 자바 스크립트 +_+_+

참으로 오랜만에 긴시간을 코딩에 또 빠져들었다..
요샌 모 과제도 없고,.. 특별한 일 없으면,.. 거의 코드를 쳐다도 보지 않는데..ㅎㅎㅎ

근데.. 요새 말야.. 내가 자바스크립트와 Ajax 에 빠져버렸다.. 빠져서 완전 허우적 허우적…
어제는 거의 집에 오자마자 11시부턴가?..시작해서 밤을 꼬박새고 아침 7시에 밥을 먹고 잠이 들었다..
든든히 아침도 먹고 잤겠다.. 점심때쯤.. 일어나서.. 오후 12시부턴가.. 시작해서.. 지금 새벽 1시 좀넘었다..

지금까지… 완전 연속은 아니고.. 중간중간 네이트로 수다를 떤거를 제외하고는..
밥도 먹으면서 코딩하는 감행… 내 취미가 코딩이라서 참으로 다행스럽다.
안그랬음.. 머리가 터져 버렸을찌도..ㅎㅎㅎ

자바스크립트 개발을 시작하면서, 참으로 FireBug 에 대한 놀라움에 새삼 놀라고있다..
이젠 스크립트 디버깅까지 된다.. 이야~ +++++
놀랍지 아니한가..

그래도.. 여전히 Ajax 형태의 디버깅은 머리아프다..ㅜㅜ..
Java코드와 JSP 서버사이드 코드, 가끔 건드리는 SQL 쿼리문과  JavaScript 코드 거기에 CSS 코드까지..
한꺼번에 디버깅하기란 쉽지가 않다.. 정말로..ㅜㅜ.. 커기에 크로스 브라우징까지..++++

Ajax 를 하면서 한가지 습관이 생겨버렸다.. 그건 바로 머릿속으로 디버깅하기..ㅜㅜ 아~ 떠진다 떠져..
이 모든걸 가능하게 만드는건 바로 내 맥북~ +
+++
윈도우 개발환경에선 상상도 못했다.. ㅎㅎㅎ

래퍼드에서 가장 멋진 기능은 아무래도 스페이스 분할 기능과 화면 4각에 마우스 포인터 갖다 대면, 기능을 정의할수 있다는 것!! 아~ 훌륭해~ 훌륭해~ ++++
지금 내가 쓰는 방법은 Dock을 왼쪽 자동 수직바로 놓았기때문에 왼쪽의 위아래 각은 사용안한다..
단 오른쪽 위엣각은 스페이스 이동으로 정의를 했고.. 오른쪽 아래는 바탕화면 보기…

그리고 더욱더 놀라운건,.. 바로 Cyberduck!! 요 오리새끼가 정말 대단한 놈이 었다..
알 FTP 상에서 편집할수 잇는 기능이 요 오리새끼는 Textmate 와 훌륭히 짝을 맺고 있다.
거기에 단축키까지.. 오리새끼에서 Command + K 키가 바로 편집하는기능..  하긴 이건 어디나 있지..
근데 여기서 Command + S 를 눌러서 저장하면, 알 FTP에서 파일 편집하고 나서 업로드하고 확인을 누르는 작업을 자동으로 해준다. 이게 정말 좋다~ +
+++  췍오~!!

역시 개발자에게 개발환경이란 코딩의 욕구와 능률을 200% 까지 높일수 있는 중요한 요소다..

맥에서 이제 뱅킹만 되면 이제 더할나위가 없겠다.. 아니다.. 스타도 되면 좋겠다 +++_+
요새 스타 중계만 보고 안하니까.. 손이 근질근질하다.. ㅎㅎㅎㅎ

오늘은 넘 무리했으니.. 운동하고 자야지…

웹개발 중에 따옴표 처리 문제..

MySql 쿼리 처러하다 보니 따옴표 처리 이거 장난 아니구나~ ㅜㅜ
특히 이중 따옴표 처리.. ㅜㅜ.. 이것때메 어찌나 헤맷떤지..
이게 지금 이번뿐이 아니다.. 작년에도 이와 비슷한 문제로 좀 고생했는데…

그때는 쿼트나 떠블쿼트 전부 찾아서 다른문자로 replace 해서 DB로 저장하고, 불러들일때 다시 파싱해서 처리했떤 기억이 있다.

좀 찾아보니..  XML에는 CDATA 와 PCDATA 라는게 있더군..
암튼 난 그래서, 따옴표(“) 를 –> " 로 바꿔서 처리했다..
<a onclick=’comment_lists_toggle(&quot;”+rs.getString(6)+”&quot;, “+rs.getString(5)+”); return false;’ href=’./comment’> 댓글(“+rs.getString(3)+”) </a>

그렇다면, 과연 CDATA와 PCDATA 라는게 멀까?..
PCDATA(Parsed  Character DATA)는 말 그대로 파서가 해석하는 문자 데이타를 말한다.
쉽게 말하면, XML 문서를 브라우저가 읽을때, 브라우저 XML 파서가 문자열을 해석해서 디스플레이를 한다는 것이다.

예로들면, 아래와 같은

<title> XML &amp; JAVA </title>

XML 은  파서가 해석해서 <title> XML & JAVA </title> 로 치환하여 디스플레이 하는것이다.

그렇다면, CDATA 는 먼가?
CDATA는 XML 파서가 해석하지 않고 바로 Application 으로 보내버린다.

즉, <![CDATA[ 문자 데이타 ]]> 요렇게 섹션을 지정하면 안쪽의 문자 데이터는 파서가 해석을 안한다.
게시판에서 특수문자를 허용하는 경우엔 요렇게 CDATA로 묶어서 처리하면 된다.

특수문자를 정리하면 아래와 같다.

< –> &lt;       ex) 3 < 5  –> 3 &lt;  5
> –> &gt;      ex) 5 > 3  –> 5 &gt; 3
& –> &amp;   ex)<title>XML & Java</title>
                                  –><title>XML &amp; Java</title>
”  –> &quot;  ex)<book kind=”computer”>
                                  –><book kind=”&quot;computer&quot;”>
‘   –> &apos;  ex)<book kind=’rhmye’s book’>
                                  –><book kind=’rhyme&apos;s book’>

XML 에서 문자 참조를 할때는 10진수와 16진수를 구별해서 쓸때도 있다.
XML 문법은 간단하다. 

&#x(16진수 코드값);
&#(10진수 코드값);

스페이스 – 16진수: &#x20;    10진수: &#32;
  탭 – 16진수: &#x9   10진수: &#9;

———————– updated 2008.02.25 ————————
검색하다 찾아냈다..
그밖에 특수문자 , Escape Sequences

음… 찾은거 중엔.. 이곳이 가장 잘 정리 되어 있다!!
http://www.hybridelephant.com/computer/tutorial/spechar.html

JavaScript 크로스 도메인 문제..

크로스 도메인 문제로 검색을 타고 들어오는 분들이 많아..
제가 낚시글을 올린것 같아 따로 정리합니다.
아랫글은 너무 오래된 글이라서.. ㅇㅎㅎ
아래 링크에서 정리하도록 하죠..
——

지난 짬뽕나 프로젝트 기간동안 내내 문제를 일으켜온 크로스 도메인 문제…
일단 이 부분을 내가 맡은 파트가 아니라서 잠시 접어두고 있었는데…

오늘 찬찬히 소스 코드를 디벼보았다..

일단 자바스크립트에서 크로스 도메인 문제란,.. 보안과 직결된다..
자세한 내용은 크로스 도메인으로 검색해보면 나올것이고…

내가 오늘 해결한 방법부터 정리하면…
브라우저에 따라 2가지가 있겠다..

먼저 인터넷 익스플로러.. !! 크로스 도메인 문제를 체크하기전에 먼저 체크해야할게 있다..
바로 인터넷 옵션 – 보안 – 사용자 지정 수준 – 도메인 간의 데이타 소스 엑세스!!!
바로 요부분이다. 이게 IE 에서 디폴트로 사용안함으로 되어 있기때문에..

OpenAPI 로.. 특히 자바스크립트로 먼가를 할때.. 자꾸 접근제한 에러가 생긴다..
정확히 말하면,.. Ajax에선 XMLHttprequest 객체를 선언하고.. 이 객체의 Open() 메쏘드를 호출할때..
바로 이 접근 제한 문제가 발생한다..

은근히 해결책은 간단했다.. 오늘 정말 4시간동안.. 소스코드 분석하고.. GWT로 작성된거 ASP.NET 예제코드로 바꿔서 테스트해보고.. 쌩쑈를 한 기분이다. 그런데 결론은 ㅎㅎㅎ 삽질 삽질 삽질…. 하는 소리가 들리는군….

바로 IE 저 도메인 간 데이타 소스 엑세스를 사용안함에서 사용 이나 확인 으로 바꿔만 주면 되는것이었다..젠장..ㅜㅜ.. OTL ….난 왜, 또 삽질을 한것이더냐..ㅎㅎㅎ 삽질은 디버깅의 어머니라고 누가 말했떠냐.ㅎㅎㅎ

옵션에서 “사용함”보다는 “확인”을 권장한다.. 사용으로 해놓으면.. 브라우져로 서핑할때 마다 이상한 코드 저절로 다운받아서 실행하게 될찌 아무도 모르기 때문에… 확인으로 하는것을 적극 권장한다..
그럼 실제 OpenAPI로 호출했을때.. 접근권한 경고 메시지를 보게 될것이다..
가비~얍게… 확인 눌러주시고.. 다시해보면.. 잘 된다..ㅋㅋㅋ

반면 파이어폭스는 여러책을 참조한 결과.. 보안정책이 달라서..
보안메니져를 직접 호출해야한다고 하넹..-_-
요부분은 나중에 좀더 공부해서 정리해봐야겠땅..

오늘은 여까지.. 나랑 비슷한 문제를 가진사람들 제발 삽질을 안했으면 하는마음으로…작성했다..ㅎㅎ