이글루스 백업을 워드프레스(설치형)로 가져오기(with ChatGPT)

이글루스가 2023년 6월 결국 문을 닫았습니다.

블로그 서비스가 설 곳을 잃어가면서 비중이 급격하게 줄어들었고 SKT에도 인수되었다가 결국 줌 인터넷에 인수된 후 서비스 비중이 줄어들다가 결국 서비스 종료라는 결정을 한 것 같습니다. 블로그 서비스의 비중이 줄어들긴 했어도 이글루스에는 여러 전문적인 글들도 많았기 때문에 아쉬운 결정입니다. 어떤 이들은 “한국어 웹의 후퇴”로 받아들이기도 하는 것 같습니다.

저도 원래는 이글루스에서 블로그를 운영했었습니다. 가장 처음 이용했던 블로그 플랫폼이 이글루스였죠. 그때도 티스토리의 전신인 태터툴즈나 네이버 블로그 등 여러 플랫폼이 있었지만 이글루스는 뭐랄까.. 약간 마이너하면서도 세련된 느낌이었달까요? SNS로 따지면 약간 트위터 같은 이미지에 가까웠습니다.
(물론 지금의 트위터를 보면.. 현 상태가 막장이라는 측면에서 여전히 이글루스랑 비슷하긴 하네요.)

2020년부터 이글루스가 워낙 답답해서 워드프레스로 옮겨온 상태였지만, 여전히 대부분의 글들은 이글루스에 있었습니다. 어떻게 옮겨올 수 있는 방법이 없었거든요. 그래서 한편으로는 이번 서비스 종료로 백업을 받게 되면 이걸 워드프레스로 올릴 수 있겠구나 하며 기대했습니다. 어쩌면 이글루스가 타서비스로 전환할 수 있는 전환툴도 챙겨주지 않을까?하는 생각도 있었죠.

하지만 이글루스는 (당연히) 그렇게까지 할 생각이 없었고, 심지어 다른 블로그로 업로드하기에도 적합하지 않은 방식으로 백업 파일을 제공해줬습니다. 압축된 html 형식이었는데 그냥 브라우저로 실행하면 옛날 이글루스 기본 테마 같은 스타일로 예전에 썼던 글과 이미지를 브라우저로 볼 수 있는 방식이었습니다. 차라리 xml로 제공해줬더라면 여러 전환툴을 이용할 수 있었겠지만.. 끝까지 (후반기의) 이글루스 답다는 생각이 들었습니다.

결국, 방법이 없다면 직접 마련해야겠죠. 코딩은 잘 모르지만 그래도 생업에서 얻은 이런저런 것들을 활용해 마이그레이션할 수 있는 방안을 직접 설계해보기로 했습니다. 일단 머리속으로 대략적인 설계를 그리고, 실제 코딩은 ChatGPT에게 맡겨봤습니다. 그 결과 의외로 별다른 어려움 없이 성공적으로 마이그레이션할 수 있었습니다. 지금 이 블로그의 아카이브가 2005년부터 시작하는데, 다 이글루스에서 옮겨온 글들입니다.

실력이 부족한 관계로 좀 더 편한 인터페이스를 만들지 못해서 약간 복잡한 과정일 수 있습니다만 천천히 해보신다면 충분히 성공하실 수 있을 것입니다. 참고로 저는 설치형 워드프레스를 운영하고 있어서 이런 방식이 가능했지만 만약 wordpress.com 을 운영하신다면 이 방법이 안될 수도 있습니다.

이글루스 백업 파일 받기

가장 먼저 필요한건 이글루스 백업입니다. 이글루스 백업은 기존에 운영하시던 이글루스 블로그에 들어가면 받으실 수 있습니다.

백업 파일 다운로드에는 하루 ~ 이틀 정도 시간이 필요한 경우도 있습니다. 다운로드하면 압축 파일이 나오는데 적당한 장소에 풀어줍니다.

파이썬 설치하기

이번 마이그레이션 작업에는 파이썬을 이용하기로 했습니다. 파이썬은 스크립트 기반 언어라서 완전 문외한인 저도 어느정도는 접근할 수 있는 난이도가 높지 않은 언어입니다. 또한 이번 작업의 목표는 완전한 프로그램을 개발하는게 아니라 스크립트로 자동화 작업을 하는게 목적이므로 파이썬이 딱 적합하죠.

운영체제마다 파이썬을 설치하는 방법이 다릅니다. 저 같은 경우 맥에서 진행했습니다. 다른 운영체제에서는 맞는 방식을 선택해서 설치하면 됩니다. 참고로 맥에서는 파이썬이 기본 설치되어있기 때문에 만약 터미널에서 아래 명령어를 실행했을 때 파이선 버전이 나온다면 넘어가시면 됩니다.(근데 저는 기본 설치되어있지 않아서 설치했습니다.)

python --version

1. 일단 가장 먼저 터미널을 실행합니다. 맥OS에서는 런치패드 > 기타 > 터미널을 실행하면 됩니다.

2. 리눅스라면 좀 간단하겠지만 맥에서는 패키지 관리를 위해 Brew를 설치해야 합니다. 아래 명령어를 입력해 Brew를 설치합니다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

3. Brew 설치를 완료한 다음 아래 명령어를 입력하여 파이썬을 설치합니다.

brew install python3

4. 파이썬 설치를 완료하면 아래 명령어를 실행하여 파이썬 버전을 확인합니다.

python3 --version

python 명령어가 아니라 python3 으로 실행해야하는게 좀 신경쓰이지만 저희는 어차피 파이썬 스크립트를 실행하는게 목적이기 때문에 그냥 넘어가겠습니다.

파이썬 파일 편집하기

다음 단계부터는 몇가지 파이썬 파일을 편집해야합니다. 이 작업을 위해서는 텍스트 에디터가 필요합니다. 윈도우에서는 메모장을 쓰시면 되고, 리눅스에서는 기본 텍스트 에디터 아무거나 쓰시면 되는데, 맥OS는 쓸만한 텍스트 에디터가 기본 탑재되어있지 않습니다.

개인적으로 맥에서 써본 텍스트 에디터 중에 가장 좋아하는 텍스트에디터는 Sublime Text 입니다. 아래 주소에서 무료로 받으실 수 있습니다. 이외에도 맥에서 실행되는 어떤 텍스트 에디터든 상관 없습니다.

https://www.sublimetext.com

1. 아래 파일을 취향에 따라 다운로드합니다. 하나는 이글루스 포스팅을 CSV로 변환하고, 하나는 XML로 변환합니다. 두개 다 어차피 Import에 쓸 파일들이므로 취향에 따라 선택하시면 됩니다.(이 글에서는 csv를 기준으로 설명합니다.)

https://opensea.kr/pbs/egloos2wp_csv.py

https://opensea.kr/pbs/egloos2wp_xml.py

2. 해당 파일에서 경로를 세군데 수정해줘야 합니다.

첫번째 경로에는 이글루스 백업 파일의 압축을 푼 경로를 입력합니다. 반드시 post 경로까지 입력합니다.

두번째 경로는 이미지 경로인데 이건 뒤에서 설명 드리겠지만, 이글루스 백업 파일 상의 이미지가 올라갈 경로를 입력합니다. 저 같은 경우에는 절대경로를 입력했지만, 상대경로를 입력하시는걸 추천합니다.

세번째 경로는 csv 파일(또는 xml 파일)이 생성될 경로를 입력합니다.

3. 파일을 하나 더 다운로드 합니다. 이 파일은 이글루스 백업 파일 폴더 구조를 재배치하여 FTP로 올리기 좋게 만드는 역할을 하는 파일입니다.

https://opensea.kr/pbs/egloosdir.py

4. 해당 파일을 열어서 경로를 수정합니다.

source_directory 부분에는 마찬가지로 이글루스 백업을 압축 푼 파일 경로를 입력합니다. 반드시 post 까지 입력해야합니다.

destination_directory 부분에는 이미지들이 저장될 경로를 입력합니다. 저 같은 경우 눈에 잘 띄도록 바탕화면에 생성되도록 했습니다.

파이썬 파일 실행하기

경로를 수정하셨으면 이제 파이썬 파일을 실행해주면 됩니다.

1. 터미널에서 아래 명령어를 입력합니다.(아래는 바탕화면에 있다고 가정하였습니다. 파이썬 실행 파일 경로를 입력해주세요.)

python3 ~/Desktop/egloos2wp_csv.py

2. 성공적으로 실행된다면 output.csv 파일이 생성됩니다.

만약 성공적으로 실행되지 않는다면 아래 명령어를 입력하신 다음 한번 더 시도합니다.

pip install bs4

3. 터미널에서 아래 명령어를 입력합니다.

python3 ~/Desktop/egloosdir.py

4. 성공적으로 실행된다면 post-image 폴더가 생성됩니다.

5. post-image 폴더에는 2020-07 같은 형식의 빈폴더들이 들어있는데 이 폴더들은 삭제해주셔도 무방합니다. 이미지들은 906754 같은 숫자로 되어있는 폴더에 있습니다.

자 이제 다 거의 다 되었습니다.

이미지 파일 업로드

이제 파일질라와 같은 FTP 프로그램을 이용해서 워드프레스 호스팅 쪽으로 업로드 해줘야 합니다. 바로 이 과정 때문에 wordpress.com 같은 임대형 블로그에서는 이 방법이 불가합니다. 아름답게 워드프레스의 미디어 라이브러리에 올라갈 수 있다면 좋겠지만, 기존 포스팅의 이미지 경로를 일일이 다 수정해줄 수 없기 때문에 post-image 폴더를 그냥 호스팅으로 통째로 올렸습니다.(더 좋은 방법이 있다면 제안해주시면 좋겠습니다. ㅠ)

여기에서 올린 이미지 경로가 맨 처음 파이썬 파일을 수정할 때 이미지 경로가 되어야 합니다. FTP로 이미지 파일을 전부 올렸다면 output.csv에서 아무 포스팅이나 하나 선택하여 이미지 경로가 잘 입력되었는지 테스트해봐야 합니다. 만약 이미지가 제대로 나오지 않는다면 egloos2wp_csv.py 파일의 이미지 경로를 한번 더 수정한 다음 해당 파일을 재실행합니다.

csv 파일(xml 파일) 임포트

이미지 파일 경로 확인까지 완료되었다면 이제 정말 다 끝났습니다. 이제 워드프레스의 플러그인을 활용해서 csv 파일을 워드프레스 블로그 쪽으로 임포트해주면 됩니다. csv나 xml을 임포트할 수 있는 플러그인이면 아무거나 상관 없지만, 저는 아래 플러그인을 사용했습니다.

1. 플러그인에 csv 파일을 업로드합니다.

2. 파일을 업로드하면 새로운 포스팅으로 Import 할 건지 기존 포스팅을 Import 할 건지 선택할 수 있습니다. 새로운 포스팅이기 때문에 New를 선택합니다.

3. 플러그인에 csv를 업로드하면 제목, 내용, 날짜를 매칭하는 인터페이스가 나오는데 각각 항목을(Title에는 Title, Content에는 Body, Publish Date에는 Time) 매칭시켜줍니다. 만약 이 과정을 잘못하면 돌이키기가 좀 어렵기 때문에 신중하게 설정합니다.

4. 모든 과정을 다 끝내고 임포트를 시작하면 다음과 같은 화면이 나오면서 Import가 진행됩니다. 저 같은 경우 약 5분 정도 소요되었는데 포스팅 양이 많다면 훨씬 오래 걸릴 수 있습니다.

여기까지 진행하시면 모든 포스팅 임포트가 마무리됩니다.

마무리

이 과정까지 진행하셨다면 모든 포스팅이 워드프레스로 성공적으로 임포트 되었을 겁니다. 결과가 궁금하신 분들은 제 블로그에서 2020년 이전의 글을 보시면 됩니다. 이미지와 업로드 시간까지 잘 들어가 있고, 심지어 옛날 포스트의 이미지에도 WordPress의 CDN까지 잘 적용되어있는걸 보실 수 있습니다.

다만 옛날글 중 줄바꿈이 제대로 안된 것 같은 글들이 많이 있는데, 이건 이글루스 백업할 때부터 줄바꿈 데이터가 날아가버렸던 문제라 백업 데이터에서 줄바꿈이 잘 되어있으신 분들은 큰 문제 없으실겁니다.

이번 작업의 설계는 한 이틀정도 머리속으로 설계하고 코딩은 ChatGPT에게 전적으로 맡겼습니다. 위에 있는 파이썬 파일들 모두 ChatGPT가 만든 결과물입니다. 저는 그저 머리속에 있는 내용을 ChatGPT에게 프롬프트로 효과적으로 전달하는 방법을 고민했을 뿐이죠.

물론 한번에 만족스러운 결과물이 나오진 않았습니다. 결과물을 보고 수정할 부분에 대해 말해주고 마음에 안드는 부분을 약간씩 다듬으면서 코드를 완성시킬 수 있었습니다. 마치 아이언맨을 만드는 토니 스타크처럼 귀찮은 일은 자비스에게 맡기고 좀 더 중요한 곳에 집중할 수 있었던 것 같습니다.

ChatGPT가 나온지 얼마 안되었을 때도 이런 방식으로 코딩을 해본적이 있었는데 그때는 60% 정도는 다시 짰는데 이번에는 거의 손댈게 없었습니다. 물론 상대적으로 간단한 작업이기도 했지만 실제로 결과물을 확인하니 소름이 돋을 정도였어요.

물론 그렇다고 AI가 실제 개발자를 대체할 수 있느냐하면 그건 역시 아니라고 생각합니다. 사실 명확한 프롬프트를 만들지 못했다면 이런 결과물을 얻어내지 못했을 것이고 프롬프트가 명확할 수 있었던건 설계 과정에서부터 프롬프트를 미리 생각해놨기 때문에 가능한 일이었거든요.

그리고 ChatGPT가 내놓은 코드를 읽고 검증하는 과정도 필수적입니다. 가끔 정확하지 못한 결과물을 내놓거나 요구사항과 정 반대로 구현해놓기도 하거든요. 이래서 마이크로소프트도 Co-Pilot이라는 이름으로 인간을 보조하는 수단으로 AI를 활용하고 있는거겠죠.

하지만 그렇다고 해도 확실히 ChatGPT 같은 생성형 AI는 많은 귀찮은 부분을 대신해준다는 부분에서 놀라운 것 같습니다. 만약 ChatGPT가 아니었다면 저로서는 애초에 머리속으로만 그리고 시도조차 못했을 일인데, 덕분에 이 모든 작업을 세시간 정도만에 다 마무리할 수 있었거든요.

사실 저는 이 글이 이글루스에서 워드프레스로 옮기는 분들에게 도움이 되는걸 넘어서 이를 바탕으로 좀 더 고도화된 방법이 나오게 되길 바라고 있습니다. 사실 제가 쓴 방법은 어떻게 보면 좀 무식한 방법이거든요. 좀 더 우아한 방법이 나올 수 있다면 좋을 것 같습니다.

만약 위의 파이썬 파일을 좀 더 용도에 맞게 수정하고자 하신다면 ChatGPT에게 소스를 그대로 던져주시고 요구사항을 말씀하시면 됩니다. 좀 더 커스텀 되거나 나은 결과물이 나올 수도 있습니다.

많은 이글루스의 난민들을 워드프레스나 다른 블로그 서비스에서 다시 만날 수 있기를 기대해봅니다.