워드프레스 매니지드에서 고스트로 마이그레이션
워드프레스 매니지드에서 고스트 매니지드로 변경에서 왜 멀쩡한 워드프레스 매니지드를 놔두고 고스트 매니지드로 넘어오게 됐는지 설명했습니다. 핵심은 뉴스레터입니다. 그런데 뉴스레터를 쓰기 시작한 지 2주 째가 된 현재 이게 생각보다 만만한 일이 아님을 이제서야 깨닫고 있습니다. 이전처럼 그냥 글을 써서 마구 쌓아 두고 차츰 공유해 나가는 것과 시점을 정한 다음 정해진 분들께 메일을 보내 글의 존재를 알리는 것 사이에는 비교하기 어려운 각오와 깡다구가 필요했습니다. 여튼 오늘은 워드프레스 매니지드에서 고스트 매니지드로 옮기면서 일어난 일을 정리합니다.
먼저 워드프레스에서 고스트 플러그인을 사용하면 워드프레스 글을 고스트 형식으로 변환해서 파일로 받을 수 있습니다. 그런데 워드프레스 닷컴에서 플러그인을 사용하기 위해서는 2023년 봄 현재 한 달에 40달러나 하는 비즈니스 서브스크립션을 요구합니다. 기술적인 귀찮음을 회사가 대신 처리해주기 때문이기는 하지만 일회성으로 고스트 익스포트 플러그인을 사용하는데 40달러를 지불하는 건 좋은 방법이 아니라는 생각이 들었습니다.
고민 끝에 라이트세일에 워드프레스 인스턴스를 만든 다음 워드프레스 닷컴에서 워드프레스 형식으로 파일을 익스포트 한 것을 다시 임포트 해서 워드프레스 매니지드 서비스를 호스팅으로 이전했습니다. 텍스트만 이전하는 과정은 편하고 빠르고 문제 없이 진행됩니다. 텍스트를 다 긁어 모아 봐야 두 자릿 수 메가바이트 밖에 안 되어 여기서 잘못 될 일은 없어 보였습니다. 하지만 이미지는 문제였는데 워드프레스 닷컴에서 이미지를 백업하면 원본 이미지를 압축한 파일을 던져 주지만 이 파일을 워드프레스 호스팅에 올린다고 해서 이전이 완료되지 않습니다. 워드프레스 닷컴은 이미지를 업로드 하면 여러 해상도로 변환한 다음 각각을 저장하고 글 중간에 첨부한 이미지는 상황에 따라 서로 다른 해상도의 이미지를 호출하는 스크립트로 대체하는데 워드프레스 닷컴으로부터 백업 받은 이미지는 원본 이미지 뿐이어서 이미지를 복원해도 모든 글의 이미지가 깨지게 됩니다.
일단 이미지가 깨져 있는 상태를 그대로 두고 워드프레스 닷컴에서는 월 40달러를 내야 사용할 수 있었던 고스트 플러그인을 설치한 다음 실행하면 고스트에 바로 임포트 할 수 있는 JSON 파일을 받을 수 있고 이 과정 역시 텍스트만 처리하므로 빠르고 편안하게 작업이 끝납니다. 그런데 앞서 이미지가 모두 깨져 있는 상태임을 알고 있으므로 텍스트 에디터로 JSON 파일을 열어 이미지 파일 뒷부분의 -숫자x숫자.확장자
모양을 .확장자
모양으로 일괄 수정해 줘야 이미지를 찾을 수 있게 됩니다. 약간 워드프레스 닷컴이 다른 곳으로 이사 나가려는 사람들에게 던지는 똥이라는 느낌을 받았습니다.
처음에는 고스트 매니지드 대신 라이트세일에 고스트 인스턴스를 만들어 운영할 계획이었습니다. 어차피 방문자가 많지 않을 테니 고스트 매니지드에 비해 훨씬 낮은 비용으로 운영할 수 있을 것 같았습니다. 또한 고스트 매니지드에서는 CLI를 통해 제공하는 모든 기능에 접근할 수 없는데 비해 직접 호스팅 하면 CLI를 통한 기능에 모두 접근할 수 있을 뿐 아니라 한 가상 기계에서 여러 고스트 인스턴스를 호스팅 할 수 있다는 점도 마음에 들었습니다. 애초에 스트라이프는 한국에서 사용할 수 없으니 실험적인 유료화 계획은 완전히 취소하고 뉴스레터를 제대로 보낼 수 있는 수준에서 만족할 작정이었습니다.
그런데 고스트는 자체 SMTP를 지원하지 않고 오직 메일건을 통해서만 메일을 보낼 수 있었습니다. 사실 왜 이렇게 만들었는지 지난 20여년에 걸친 스팸메일의 역사를 생각해 보면 이해가 안 되는 것은 아니지만 고스트 매니지드 요금을 줄이려고 호스팅을 선택했는데 뉴스레터를 보내려면 최소 월 35달러를 내야 한다는 건 뉴스레터 실험을 아무리 해 보고 싶어도 좀 너무한 것 아닌가 싶은 생각이 들었습니다. 빠르게 계산해본 다음 고스트 매니지드에는 메일 전송이 포함되어 있었고 이를 감안하면 스타터 요금제인 월 9달러는 꽤 괜찮은 것 같다는 쪽으로 생각이 순식간에 바뀌었습니다. 심지어 윗 단계인 크리에이터 요금제도 월 25달러로 메일건을 단독으로 월 35달러에 구입하는 것에 비해 저렴했고 매니지드 서비스면 당연하게도 접속자가 늘어날 경우에 완전히 신경 꺼도 되고 사실상 백업이고 뭐고 아무것도 안 해도 되는 점을 감안하면 결코 나쁘지 않았습니다.
그래서 고스트 매니지드 서비스에 일단 무료 가입한 다음 위에서 준비한 JSON 파일과 이미지 파일을 올려 사이트를 복원합니다. 사실 이번에도 복원 과정은 별 무리 없이 끝났습니다. 텍스트 뿐만 아니라 이미지를 포함했음에도 별 무리 없이 복원이 돼서 당황했는데 일단 둘러보니 사이트는 정상 동작하는 것처럼 보였습니다. 하지만 글 각각을 눌러 보니 문제가 없는 것은 아니었습니다.
워드프레스든 뭐든 결국 글을 HTML 모양으로 보관하는데 고스트 플러그인은 워드프레스가 글을 보관하던 HTML 모양을 그대로 가져와 고스트 글 구분 모양으로 바꿔 주는 역할을 합니다. 그런데 워드프레스의 태그 모양과 고스트의 태그 모양이 서로 호환되지 않아 문제가 생길 가능성이 있으니 고스트의 HTML 블록 기능을 사용해 워드프레스에서 가져온 글 전체를 HTML 블록 안에 넣어 버렸습니다. 그래서 사이트를 겉으로 보기에는 글이 잘 이전 된 것처럼 보이고 실제로 이전도 된 셈이지만 이전해 온 글을 수정하려고 하면 문제가 생깁니다. 글을 수정하려고 보면 워드프레스에서 가져온 글 전체가 HTML 블록 안에 들어있어 고스트 에디터 네이티브로 편집할 수 없습니다. 글을 편집하려면 일단 HTML 블록을 열어 그 안에서 편집해야 하는데 HTML 블록 내부는 워드프레스에서 글을 저장하던 방식 그대로 태그가 글 사이사이에 끼어 있어 글을 편집하기 아주 어렵고 글의 일부를 인용하고 싶어 텍스트를 복사하기도 아주 어려웠습니다.
고민 끝에 워드프레스 매니지드에서 익스포트 해서 옮겨 온 글 전체를 삭제하고 글을 하나하나 직접 옮기기로 결정합니다. 기존에 공개되어 있던 글을 틈틈히 복사 붙여 넣기 해서 가져오는데 약 2주가 걸렸으며 이전에는 게임디자인 카테고리의 글만 가져와서 이전을 금방 마무리할 수 있었는데 이제는 모든 글을 가져오기로 방침을 바꾸면서 아직도 이전이 완전히 끝나지 않았습니다. 직접 글을 하나하나 가져오는 노가다를 했지만 그 댓가로 글은 모두 고스트 에디터 네이티브로 저장되어 편리하게 인용하고 또 수정할 수 있게 되었습니다. 한편 고스트의 CMS 환경과 에디터 환경은 좀 충격적인데 이건 고스트 리뷰 글에서 별도로 다루겠습니다.
결론. 워드프레스 매니지드에서 고스트 매니지드로 이전하려면 워드프레스에 고스트 플러그인을 설치해야 하는데 워드프레스 매니지드에서 플러그인을 설치하려면 월 40달러 짜리 요금제를 사용 중이어야 합니다. 만약 이보다 낮은 요금제를 사용한다면 그냥 워드프레스 포멧으로 백업 받은 다음 워드프레스 호스팅 버전에 복원하고 여기에 고스트 플러그인을 설치해 고스트 형식으로 익스포트 하는 방법이 있습니다. 워드프레스에서 백업해 준 이미지는 리사이즈 하기 전 원본 이미지 뿐이므로 리사이즈 된 이미지를가리키고 있는 워드프레스 익스포트 및 고스트 익스포트의 이미지는 깨지게 됩니다. 고스트 JSON 파일을 열어 이미지 주소를 일괄 수정해 이미지가 깨지지 않도록 할 수 있습니다. 고스트는 뉴스레터 발송을 메일건에 의존하므로 고스트를 직접 호스팅 하더라도 메일건을 별도로 구입해야 합니다. 그래서 계획을 바꿔 고스트 매니지드 서비스를 선택했고 메일건을 포함한 비용보다 훨씬 가격이 쌉니다. 단 워드프레스 고스트 플러그인을 통해 글을 옮기면 글 전체를 HTML 블록으로 감싸 겉보기에는 똑같지만 글을 수정하려 하거나 일부를 복사하려고 할 때 아주 고통스러울 수 있습니다. 끝.