진행을 위해 먼저 해야할 일 분석과 필요 지식 확인

17년간 사용한 게시판 프로그램의 모든 내용을 새로운 게시판 프로그램으로 이전 하기로 했습니다. 새로운 플랫폼은 워드프레스의 플러그인인 Kboard를 사용하기로 결정했습니다. 워드프레스의 범용성과 확장성과 관리의 편의성을 이용할 수 있기 때문입니다. 기존 게시판 프로그램이 특정회사의 서버에서만 운영되게 해 놓은 프로그램이라 한계가 있기 때문입니다.

옮길것은 기존 17년간의 모든 게시판의 내용들을 그대로 옮기는 것입니다. 그대로 다 옮긴다는 것이 많은 용량의 데이타베이스라서 조금 더 신경을 쓰는 작업이어야 했습니다.

다음과 같은 작업이 필요합니다.

1.기존 게시판에서 추출한 데이타를 새로운 게시판의 데이타 구조에 맞도록 변경하는 작업을 해야 합니다.

2.새로운 게시판에 기존 게시판의 데이타를 업로드 합니다.

그리고 이 작업을 위해서 필요한 지식은 다음과 같습니다.

MySQL db를 다운로드, 업로드 할 수 있어야 한다.

데이타베이스를 분석하고 수정 할 수 있어야 한다.

그럼 실재 작업을 진행하도록 하겠습니다.

  1. 기존 게시판에서 추출한 데이타를 새로운 게시판의 데이타 구조에 맞도록 변경하는 작업

1-1 먼저 새로운 게시판의 데이타 구조를 알아야 합니다. Kboard를 사용하기로 했는데 이 게시판의 테이블이 다음과 같은걸 찾았습니다.

kboard_board_content : 게시글 정보 ,그외 kboard_board_option : 게시글의 옵션 데이터 저장 ,kboard_comments : 댓글 정보,kboard_board_attached : 첨부파일 정보, kboard_board_setting : 게시판 기본 정보 (uid 컬럼은 게시판 ID입니다.),kboard_board_meta : 게시판의 추가 설정 정보 등이 있는데

가장 중요한것은 그리고 게시판 데이타를 업로드 할 kboard_board_content 테이블이고 먼저 이곳의 주요 컬럼을 확인해 봅니다. 이 부분이 사용자의 눈에 보이는 것이고, 이것을 확실히 기존 게시판에서 찾아 매칭 시켜 주면 되는것입니다.

board_id : 게시판 ID
member_display : 작성자 이름
title : 제목
content : 내용
date : 작성일
update : 수정일

1-2 기존 게시판의 컬럼들을 이전할 게시판의 컬럼 기준으로 맞추기

기존 게시판의 컬럼들을 이전할 게시판의 컬럼 기준으로 이름을 바꿀 것은 바꿉니다. 예를 들어 제목인 kboard의 title 컬럼은 기존 게시판 에서는 subjet고, content는 기존 게시판에서는 contents 입니다. 이렇게 핵심적인 컬럼을 이전할 게시판에 맞춰 바꿔줍니다.

바꾼 예
*`writer`(기존 게시판의 테이블 컬럼) 는 `member_display`로 변경
*`subject`(기존 게시판의 테이블 컬럼) 는  `title`로 변경
*`count`(기존 게시판의 테이블 컬럼) 는 `view`로 변경
*`contents`(기존 게시판의 테이블 컬럼)는 `content`로 변경

컬럼의 값들도 일괄 변경해 줄건 해줍니다. 예를 들어 Kboard의 게시판 id에 해당하는 board_id 컬럼은 1,2 등 숫자로 되어 있는데, 기존 게시판의 컬럼은 notice 등 영문으로 지정되어 있습니다. 이 부분은 이전할 게시판에 맞춰 일괄 변경해주면 됩니다.

1-3 기존 게시판에만 있는 컬럼들을 kboard_board_content 테이블에 추가하기

날짜, 제목, 내용 등 일반적인 것 외에 기존 게시판에만 있는 몇가지 컬럼들이 있었습니다.

그 부분을 데이타베이스에서 모두 삭제해서 컬럼을 케이보드에 맞추는 것도 방법이겠지만, 저는 기존 데이타베이스도 모두 사용하기 위해,
kboard_board_content 테이블에 컬럼을 추가했습니다. 컬럼이 증가 하더라도 보이지는 않는것이고, 또 추 후 기존의 것들 중 향후 꺼내 사용할 여지를 주기 위해서 였습니다.

예를 들어 board_no1, board_no2 라는 컬럼을 추가하고 싶으면 SQL 문으로 다음과 같이 하면 됩니다.

alter table `kboard_board_content` add(
  `board_no1` text,   
  `board_no2` text
);

그 외 소소한 변경 들 : 17년간 된 게시판이다 보니 에디터가 web1.0 시대의 것이고 그래서 발생하는 \r\n 등의 것들도 찾아 일괄 변경해 주면 됩니다.

이제 데이타는 완벽하게 구성되었습니다.

2.새로운 게시판에 기존 게시판의 데이타를 업로드 합니다.

이제 이 데이타를 새로운 kboard로 업로드 해야 합니다.

문제는 17년간 사용한 게시판의 DB 용량이 상당히 크다는 것입니다. 이런경우는 업로드 뿐 아니라, 데이타베이스를 다운로드 하는데도 phpmyadmin 의 export방법으로는 안되고, db dump를 받아야 합니다. (참고: 대용량 DB를 MySQL 로 가져오는 방법)

phpmyadmin 에서 업로드가 안되는 용량이 큰 데이타베이스를 mysql 로 import 할때는 ssh에서 다음과 같이 명령을 주시면 됩니다.

mysql -u 데이타베이스유저아이디 -p 데이타베이스이름 < SQL 파일  

용량이 크다 보니 오류가 날 경우가 있으므로 강제로 진행하는 -f 옵션을 사용하셔도 됩니다. (물론 컬럼을 맞추고 SQL 문법에 맞추는 등 기본적인 것은 해 줘야줘. -f은 소소한 오류만을 위해 사용하시는것이 온전한 이전을 할 수 있게 해 줍니다.)

mysql -f -u 데이타베이스유저아이디 -p 데이타베이스이름 < SQL 파일  

그리고 엔코딩의 문제가 있을 경우도 확인해 보셔야 합니다. 즉, 글이 깨질 경우 utf8 로 엔코딩 하시고, 또는 데이타베이스 자체의 언어셋업이 문제 일 경우는 BOM 없는 uft8로 한다든지 시도해 보셔서 적절하게 작업하시면 됩니다.

참고로 엔코딩 변경 관련 무료 에디터는 notepad ++ 가 있습니다.

결과

17년간 쓰여진 많은 추억과 활동들이 있는 소중한 게시물들이 새로운 환경에 적용된 좋은 게시판 프로그램으로 온전히 마이그레이션 되었습니다.