개발&Development/태터툴즈

태터의 Migrator 개조하기

겐도 2006. 3. 18. 22:21
이번 TatterTools 1.02와 더불어 등장한 Migrator.php를 뜯어보자. 우선 주의할 것은 케릭터셋 변환을 위한 데이터가 들어 있어서 어정쩡한 에디터로 읽었다간 파일이 망가질 수 있다. 가능하면 UTF-8로 읽어 내기를 권장한다.

주의! 여기의 내용은 상당히 위험한 방법일 수 있기 때문에 어느정도 프로그래밍이 가능하고 특별한 처리를 하기 위한 상황에서만 실제 적용을 하기 바랍니다. 초보자를 위한 FAQ같은 것은 아닙니다. 또한.. 언제나 잊지 말것은 Backup!

UTF 판별하기 함수
이전에 UTF8의 판별에 대해 적은 글이 있는데 그 방법의 결정판이 이 파일의 250번째줄 근처에 있는 isUTF8과 adjustUTF8 함수일 것이다. 허나 이 함수에서 주의할 점이 하나 있다. 나름대로 제너럴 하게, 그리고 무난하게 판단하고 변환을 시켜주고 있지만 자신의 데이터가 특별한 경우 가차없이 '?'로 변신 시키는 함수기도 하다. 특수한 언어 체계(?)를 사용중이라던가 컨텐트 중에 특수한 케릭터 변환이 필요하다면 이 함수를 약간 손봐줘야 할 것이다. 0.96 즉 euc-kr에서 변환하는 경우에 xml에서 import 도중 에러가 날때도 역시 여기를 고민해 봐야 할 수 도 있다.

특정 영역의 변환 문제
1.02로의 변환중 특정 영역에 euc-kr로 남아 있어서 문제라거나 utf-8로 변환되어 버려 문제가 생기는 경우, 그리고 특정 문자의 치환이 필요하다면 300라인쯤 부터 펼쳐지는 "각부분처리기"에서 수정할 수 있다.
우선 변환과 관련된 것은 iconver, 그리고 치환자는 str_replace를 사용하고 있다. 특정 글의 특정 부분에 이런것을 적용하거나 해제하고 싶다면 바로 이부분에서 수정할 수 있다. 특히 420번째즘 나오는 $post->content 영역의 경우 글에 들어 있는 스크립트를 1.02에서 사용하기 위해 태터 플러그인족에 공개된 PureCode를 사용하도록 수정할 수 있게 자동 변환할때 사용해야할 키워드일 것이다. "<script>"의 "<"를 "&lt;"로 변환하고 앞뒤로 PURE를 붙여주는 작업등을 할 수 있다. 본인의 경우 글이 100개밖에 안되서 대충 보고 문제되는 놈들은 0.96을 옆에 뛰우고는 에디터로 Copy&Paste를 하는 식으로 작업했지만 도저히 수작업으로 불가능 하다면 이 방법을 생각해 볼 수 있다.

마이그레이션 이후
0.96에서 바로 1.02로 점프한 나로서는 일종의 "플랫폼 변환"을 당하고 말았다. 체계도 달라지고 에디터도 다르고 글을 쓸때 정보도 다르다. "Borland C++ for Windows"를 쓰다가 "Visual Studio 98"로 넘어갈때의 느낌이랄까? 좋아진점도 있지만 나빠진 것도 많고 그보다 중요한 것은 새로운 것을 배워야 하고 적응해야 한다. 그리고 이런 이동에서 격어야 하는 어려움들... Tatter&Company의 개발자도 죽어라 디버깅 했겠지만 나도 이 이동을 위해 한달 전 부터 나름대로 준비를 해 왔다. 그래도 여전히 이동 당일날 약간의 트러블은 생기게 되고 아직도 FF에서는 배경의 격자가 보이지 않고 등등..

그러나, 아픈만큼 성숙해 지는 법이다.