첫 삽 뜬지(?) 얼마 되지도 않았는데 두번째 삽질을 했다.
로 가는데...
를 넣기위해 무려 사흘동안이나 삽질을 했다. oTL
"도대체 뭐길래 목매달고 사흘동안이나 삽질을 한단 말인가?"라는 질문을 하고 싶으신 분은...
목매달만하다. -ㅅ-
여기저기 블로그 탐색을 하다가 태터에 달려있는 저 엄청난 물건을 보고 "나도나도~!"라고 생각하고 바로 작업에 착수했다.
일단 기본적으로 티스토리는
태터앤프렌즈의 검증을 거친 플러그인만을 관리 페이지에서 제공하고있다.
덕분에 사용자가 직접 플러그인을 추가하려면 험난한 고통의 가시밭길을 걸어야만 하는 것이다. -ㅂ-
이번 삽질도 마찬가지였는데, 태터툴즈용 TGIF는 PHP 페이지를 이용해 태터의 설정 정보들을 가져와서 DB에 접속한 다음 태그들을 꺼내와서 정렬, 그리고 다시 그 정보를 Flash로 넘겨주는 방식을 사용하고 있었다.
문제는 세가지.
- PHP를 사용한다는 것
- MySQL DB에 접속해야한다는 것
- Flash 자체가 PHP파일에서 정보를 얻도록 만들어져 있다는 것
이렇게 세가지였다.
아시다시피 티스토리는 PHP와 MySQL DB 접속은 꿈도 못꾼다. 태그 정보를 얻어오려면 HTML 페이지를 직접 파싱하는 방법 밖에 없는 것이다. -ㅅ-
다행히도 Flash파일은 소스가 오픈되어있어 변경이 가능한 상태였다.
결국 나에게 남은 건 JavaScript와 Flash의 Action Script 뿐이었다. -┏
아예 처음부터 태그 페이지에만 적용할 생각을 하고 만들었기 때문에...
처음엔 태그 페이지에 기존의 스킨이 출력해주는 방식대로 태그를 출력하고, 한 번 더 데이터 가공에 쓰기 좋은 상태로 출력한 다음 CSS 스타일을 이용해 숨겨놓고 데이터로 사용하려 했으나...
두 번은 출력 불가. -┏
결국 방향을 바꿔서, 기본 출력되는 태그의 HTML 코드를 그대로 가져와 정규식으로 재가공하는 방식을 사용했다.
이리저리 레퍼런스도 검색해보고해서 조잡한
하드코어 코딩 스타일 코드를 만들었다. -ㅅ-
그렇게해서 태그를 가공하여 알흠다운 변수 목록으로 넘겨줄 수 있는 상태로 만들었다.
이게 이틀을 잡아먹었다. -ㄴ-
다음은 Flash였는데...
Flash에도 뭔가 언어 비스무리한게 있을거란 생각은 했지만, 실제로 본 건 처음이었다. -ㅅ-
다행히도 많이 봤던 스타일이라 어렵지않게 적응할 수 있었지만, 고치는 건 별개의 문제였다. -┏
LoadVar란 객체의 load란 메소드를 통해 PHP로 출력된 페이지를 읽어오는 방식이었는데...
티스토리에선 PHP가 사용 불가능한데다가 계정에 별도의 파일을 스크립트로 직접 생성하는 것도 불가능했다.
결국 ExternalInterface.call을 이용해 HTML 페이지의 JavaScript를 실행해 그 결과 값을 가져온 다음, LoadVar.decode를 이용해 위의 알흠다운 변수 목록을 Flash로 가져오는데 성공했다.
그런데 이게 또 발목을 잡을 줄이야... -ㅅ-
실제로 돌려보니 몇 번은 성공하고 몇 번은 실패하는 것이었다. 바로 디버깅에 들어갔다. -┏
분석해 본 결과...
페이지 로딩, 특히나 태그가 출력되는 부분이 마무리되지도 않았는데 약삭빠른(?) Flash 파일이 먼저 로드되어 JavaScript를 실행하여 태그 목록을 날로 먹으려는 사태가 발생한 것이었다.
긴급히 JavaScript를 이용해 페이지 로딩이 끝나면 특정 <div> 태그 내부에 innerHTML로 Flash 파일을 쏙 넣어주는 걸로 해결을 봤다.
정말 파란만장한 사흘간이었지만...
Firefox에서의 테스트를 다 끝내고 쾌재를 부르고 난 다음, IE로 접속해보니... -┏
innerHTML로 바로 넣어주는 부분에서 뭔가 스크립트 오류가 발생한 모양이다.
내가 비표준인가, IE가 비표준인가. -┏
아무튼... 또 피곤하다. =ㅅ=