3년 간이나 방치해 왔던 작업을 해낸 것입니다.

그것이 무엇인고 하니...

제로보드에서 태터툴즈로 이사하기 입니다.

후...

이런 끔찍한 작업을 위해 거의 오늘 하루를 다 바쳤네요.

약 3년 전 블로그로 이사한 뒤로 내용 업데이트도 버전 업도 되지 않은 제로보드의 내용물을

태터로 이사시키는 끔찍한 짓은.... 절대로 두번은 하지 못할 것 같습니다. ㄱ-


1. 동기

 그간 방법도 모르고 손 댈 엄두도 나지 않아 미뤄왔지만, 사실 제가 만들어온(늘어놓은?) 데이터를 한가지 포맷으로 관리하고 싶다는 생각은 계속 하고 있었습니다. 현재로서는 백업과 관리가 편한 태터 포맷이 이상적이지요. 혹시 나중에 다른 툴이 나온다고 해도 아무튼 그 때는 태터의 xml 데이터를 처리하는 툴을 개발하면 되니까요. 그러니까 말하자면, 나름 티스탯을 만들며 생긴 노하우를 믿고 일을 저지른 셈이죠. -_-;;;;



2. 발단

 사실 아무런 사전 정보도 없이 그냥 구글만을 믿고 작업을 시작했습니다. 제가 참조한 글은 다음과 같습니다.


물론 그 밖에도 궁금한 것이 있으면 구글님이 도와주었습니다. -.-

제로보드4 pl6 버전과, 태터툴즈 1.0.2 버전을 사용하라고 되어 있어서 그렇게 했습니다. (원래 시키는 대로 하는 것이 잘못될 가능성이 가장 적습니다.)

제로보드 이전 버전 모음 : http://www.zeroboard.com/zb4_download
태터툴즈 이전 버전 모음 : http://www.textcube.org/download/entry/priors


글 1번을 보면서 따라하면 좋고, 글 2번은 제가 사용한 툴을 개발하신 분의 블로그 페이지입니다.
상당히 괜찮은 툴이고 없다면 끔찍한 작업을 했어야만 했겠지요. -0-

1번글의 팁인데, 제로보드에서 미리 몇가지 작업을 해 두면 좋습니다. 방명록으로 보내고 싶은 데이터는 방명록 형으로, 방명록으로 보내고 싶지 않은 데이터는 게시판형으로 미리 설정을 해 두면 좋습니다.




3. 진행

그런데 문제는 글 2번의 툴에는 약간의 버그가 있어, 저는 개인적으로 수정을 좀 거쳤습니다.

 첫번째 버그는, 제가 제로보드를 설치해놓은 저희 학교 서버가 utf-8을 지원하지 않기 때문에 내부에서 isUTF8 모듈을 호출하는데 이 모듈에 버그가 있는지 일부 글씨가 계속 euc-kr로 나오더군요. 저는 애인님의 조언을 받아 무식한 방법으로 해결 했습니다.

 애인님 : 애초에 같은 DB에 있는 내용이 인코딩이 왔다 갔다 할 리가 없잖아.

그래서 그냥 isUTF 함수를 무식하게 항상 false를 리턴하도록 하는 방법을 사용해 버렸습니다.



 두번째 버그는 첨부파일을 잘 읽어오지 못하는 문제였는데, 이 문제는 다음에서 발생합니다.

/*
$_POST 처리
2008.12.14 웅파(http://jblove.net)
*/
$tt_path=$_POST[zb_path];
$zb_path=$_POST[zb_path];

zbConversion.php의 최상단(1~4라인 부분입니다.) 보다시피 뭔가 이상하죠. 저는 다음과 같이 해결했습니다.

<?                                                                  
/*                                                                  
$_POST 처리                                                  
2008.12.14 웅파(http://jblove.net)                      
*/                                                                  
$tt_path=$_POST[tt_path]; // zb_path --> tt_path //by Raz
$zb_path=$_POST[zb_path];    


패스가 잘못 설정되어 있어 디렉토리를 생성을 못하고 덕분에 파일을 복사하지 못하는 문제가 발생, 이미지 파일은 이것으로 잘 해결했습니다.

이 수정으로 이미지 파일은 전부 잘 옮겨졌고 기타 다른 종류의 확장자를 갖는 첨부파일은 잘 옮겨지지 않았는데 걍 귀찮아서 포기 했습니다. 아무래도 제가 무리하게 제로보드 상위버전을 덧씌워서 일어난 문제인 것 같아서요. (말씀드렸다시피 3년간 방치한 제로보드라 버전이 얼마인지도...-.-;;;) 제로보드 내에서 데이터가 잘 불러와지지 않았습니다. 애초에 첨부파일을 포기하고도 10메가가 넘는 데이터라...

그 밖에 >_< 와 같은 이모티콘이 &gt;_&lt;와 같이 출력되는 문제가 있었는데 이것도 아주 구질구질한 방법으로 해결 했습니다. -_-;;;;;

//  $memo = preg_replace("/\'/", "&#039;", $data[memo]);
//  $name = preg_replace("/\'/", "&#039;", $data[name]);
  $memo = preg_replace("/&gt;/", ">", $data[memo]);
  $memo = preg_replace("/&lt;/", "<", $memo);
  $memo = preg_replace("/&nbsp;/", " ", $memo); // add by Raz

주석처리 된 두 줄 아래 아래 세줄을 주루룩 덧붙여 줬는데요. 결과는 잘 출력되지만 나중에 방명록 데이터를 살펴보니 뷁과 같은 글자가 다 깨져 있더군요. -_-;;;;;; 하지만 이시점에 이미 10시간 가량 경과해 있어서 포기했습니다.

작업하다 열받았던 점 가운데 하나는, 현재 학교 서버의 php 버전이 4.3 이라는 점입니다. 솔직히 오로지 웹서버로 가동하고 있는 서버의 php 버전은 왜 이리 낮은지? 뭔가 좀 해보려 하니 php 5.0의 함수는 돌아가지를 않는군요. -.-;;




몇 번의 시행 착오를 거쳐 tatter 1.0.2로의 백업에 성공을 했습니다.

 버그를 수정하느라 시간을 꽤 소모했는데 1.0.6 버전으로 옮기려 하니 그것도 상당한 일이더군요. 처음엔 순진하게 용량 확인을 안하고 하드디스크에 백업하고 다시 업로드 하는 방식으로 복원하려고 했었습니다. 그런데 데이터 백업 파일이 16MB나 되다 보니 ftp를 사용해야만 되더군요. -_-;;; 업로드 하는데만 10분이 넘게 걸렸습니다. 그런데 업로드를 하고 나니 마음에 들지 않는 gtlt 문제가 발생해서 그걸 수정하느라 또 한 세월 보냈습니다.

그 뒤로는 하드디스크 백업 후 웹 주소로 업로드하는 방법을 사용했습니다만 서버에 백업을 선택하면 도대체 어디로 가는지...-.-????
불쌍한 저에게 구글님이 알려주었습니다.

서버에 백업을 선택하면 태터설치폴더 - cache - backup 밑에 저장 됩니다.

그 뒤로 무사히 업로드를 해서 1.0.6 버전을 거쳐 태터 1.1.0 버전을 설치하고 데이터 복원을 하는데, 아무리 해도 이넘이 진도가 나갈 기미를 보이지 않았습니다.

역시 구글님께서 말씀하시길, 그 버전은 느려 라고 하셔서 1.1.0.2 버전을 가지고 해서 무사히 성공했습니다.

 1.0.2에서는 문제가 없더니 1.0.6 이후의 버전으로 업데이트 하면 자꾸 방명록의 하위 글이 별도의 상위글인양 나타나는 문제가 발생하고 있긴 하지만 (하위 글은 하위 글대로 잘 생기는데... 지워도 백업-복원을 거치면 부활하는군요. 좀비인가...-_-;;;) 태터는 어차피 방명록에는 큰 관심이 없는 것 같아서 저도 관심을 두지 않기로 했습니다.(...) 없어지는게 아니고 단순 duplicate라면야 뭐...



4. 결과

여기까지가 오늘의 삽질의 기록입니다. 아무 생각 없이 시작했더니 시간이 지나면서 귀찮아져서 걍 거의 포기상태 -_-...
옮겨진 데이터에는 불만스러운 구석이 꽤 보이지만 소기의 목적인 글의 보존에는 성공했습니다. 사실 비교적 좋은 툴이 있어서 쉽게 했어야만 되는데... 제로보드를 버전관리를 못하고 너무 방치했고... 노후된 서버 등의 문제로 제법 시간이 들었네요.

덕분에 이번의 경험은 이글루스에서의 이사때와는 비교도 되지 않는 끔찍함이었습니다. -_-;;; 아니 사실 이글루스에서의 이사는 아무런 신경쓸 일이 없었지요...







,