◆ ESSAY

Ghost 연간 구독 연장 화면을 띄워놓고 있었다. 금액과 다음 결제일이 적혀 있고 그 아래 결제 버튼이 있는, 1년에 한 번씩 보는 그 화면이다. 커서를 버튼 위에 올려놓고 누르기 직전에 손이 멈췄다.
돈이 아까웠던 건 아니고, 그 자리에서 떠오른 건 그동안 이 블로그에서 하려다 만 것들이었다. 원하는 플로우차트를 못 넣어서 그림으로 만들어 올렸던 것. 그림으로 올리면 상자 하나를 고칠 때 그림 전체를 다시 그려야 하는데, 그걸 두어 번 겪고 나서는 아예 도식을 안 쓰게 됐다. 연재를 묶어 보여주고 싶어서 제목 앞에 손으로 번호를 달았던 것. 국문과 영문을 나란히 두려다가 블로그를 두 개 만들어야 한다는 답을 알고 접었던 것.
그러다 문득 이런 생각이 들었다. 블로그는 내가 직접 만들어 쓰면 되는 거 아닌가?
1) 구독을 연장하려다, 내가 포기해온 것들이 전부 남의 규칙 때문이라는 걸 알았다.
2) 코드는 못 쓰지만 판단은 할 수 있으니, 그 둘을 갈라놓고 판단만 내가 맡았다.
3) 글을 통째로 들고 나오기, 내 취향을 숫자로 확정하기, 내 몫이 된 보안. 세 개였다.
4) 이 블로그가 그 결과물이다.
먼저 말하자면 Ghost는 매우 편리하고 좋은 블로그 플랫폼이다.
글쓰기 화면에 들어가면 도구모음이 사라지고 흰 바탕에 커서만 남는다. 발행 버튼을 누르면 그걸로 끝이라 배포라는 단어를 떠올릴 일이 없었고, 서버가 죽을까 걱정한 적도 인증서가 만료될까 신경 쓴 적도 없다. 글 쓰는 사람에게 이건 생각보다 큰 값어치라서, 지금도 누가 블로그를 시작하겠다고 하면 가장 먼저 권한다.
문제는 도구가 아니라 그 위에서 내가 변해가는 방식이었다.
글을 쓰다가 흐름도를 하나 넣고 싶어진다. 그러면 손이 본문에서 떠나 새 탭을 열고 검색창에 플랫폼 이름과 "다이어그램"을 같이 친다. 결과 몇 개를 열어보면 대개 테마 파일을 고쳐야 한다는 말로 끝나고, 나는 탭을 닫고 본문으로 돌아와 그 자리를 문장으로 때운다. 이게 몇 번 반복되면 그 다음부터는 그림을 넣고 싶다는 생각 자체가 떠오르지 않는다.
포기가 쌓이는 게 아니라 욕심이 줄어드는 쪽이라 스스로도 잘 눈치채지 못했다.
값을 확인해보니 Ghost(Pro)의 가장 싼 요금제가 연납 기준 월 18달러였다. (출처) 1년에 216달러다. 큰돈은 아닌데, 결제 화면 앞에서 나를 멈춰 세운 건 액수가 아니라, 이 돈으로 내가 정확히 무엇을 사고 있었느냐였다. 편의를 산 건 맞는데, 다만 그 편의에는 내가 규칙을 정할 수 없다는 조건이 딸려 있었다.
네이버나 티스토리로 옮기는 선택지도 그날 같이 따져봤는데, 판단은 금방 끝났다. 셋 다 편하고 셋 다 남의 집이라, 무엇을 내가 정하고 무엇을 남이 정하는지가 다를 뿐이었다.
| 도메인 | 디자인 | 기능 추가 | 광고 | 글의 형태 | |
|---|---|---|---|---|---|
| 네이버 블로그 | 플랫폼 | 정해진 스킨 | 안 됨 | 플랫폼이 정함 | 플랫폼 안에만 |
| 티스토리 | 내 것 | 부분 편집 | 제한적 | 플랫폼이 정함 | 내보내기 가능 |
| Ghost | 내 것 | 테마 범위 | 테마 범위 | 없음 | 내보내기 가능 |
| 직접 만들기 | 내 것 | 전부 | 제한 없음 | 내가 정함 | 처음부터 파일 |
만들겠다고 마음먹은 다음 가장 먼저 한 일은 코드를 배우는 게 아니라, 내가 이 일을 할 수 있는지 따져보는 것이었다.
나는 코드를 못 쓴다. 읽지도 못하니 "직접 만든다"는 말이 성립하려면 만드는 일의 어느 부분을 내가 맡을 수 있는지부터 정해야 했다. 화면 가운데 세로줄을 하나 긋고 왼쪽에는 내가 못 하는 것, 오른쪽에는 할 수 있는 것을 적어 내려갔다.
| 내가 못 하는 것 | 내가 할 수 있는 것 |
|---|---|
| 코드를 쓰는 것 | 무엇을 만들지 정하는 것 |
| 코드가 맞는지 보는 것 | 결과가 내가 원한 것인지 보는 것 |
| 왜 안 되는지 아는 것 | 안 된다는 걸 알아채는 것 |
적고 보니 왼쪽은 전부 코드에 관한 것이었고 오른쪽은 전부 판단에 관한 것이었다. 그러면 질문은 하나로 좁혀진다. 오른쪽 열만 가지고 블로그가 만들어질까?
그래서 Claude Code를 켜놓고 한번 돌려봤다. 내가 한국어로 원하는 걸 말하면 Claude가 그걸 코드로 옮기고, 나는 돌아온 결과를 열어보고 맞다 아니다를 말한다. 터미널에 요구를 적는 것 말고 내가 한 일은 없다.
한 장면만 옮기면 이렇다. 터미널에 태그 목록 화면이 밋밋하다고 적는다. 잠시 뒤 바뀐 화면이 돌아온다. 브라우저를 새로고침하고 태그를 하나 골라 눌러본 다음, 원하는 걸 찾는 데 몇 초가 걸렸는지를 적어 보낸다. 그 화면이 어떤 코드로 돼 있는지는 끝까지 모르고 어떻게 고쳤는지도 모르는데, 해보니 그게 걸림돌이 아니었다. 코드가 맞는지는 내가 판단할 수 없어도, 결과가 내가 원하던 것인지는 내가 제일 잘 안다.
이 분업이 성립한다는 걸 확인한 게 사실상 이 일의 전부였다. 나머지는 문제를 하나씩 넘는 일이었고, 문제는 세 개 있었는데...
가장 먼저 확인해야 했던 건 디자인도 기능도 아니고 퇴로였다. 옮기다 글이 깨지면 되돌릴 방법이 없다. 실패하면 다시 하면 그만인 일이 아니라, 한 번 어긋나면 원본까지 같이 사라지는 일이었다.
들고 나와야 할 것은 글 22편만이 아니었다. 본문 곳곳에 끼워둔 이미지 74장과 첨부 4개, 그리고 이미 밖에 돌아다니고 있는 옛 주소들이 함께 딸려 있었다. 앞의 둘은 파일이라 옮기면 그만인데 마지막이 까다로웠다. 누군가 예전에 단톡방에 붙여둔 링크, 검색 결과에 걸려 있는 주소, 다른 사람 글에 인용된 주소는 내가 회수할 수 없다. 그 주소를 누른 사람 화면에 뜨는 건 내 글이 아니라 404 페이지고, 그러면 그 글은 세상에서 사라진 것과 다르지 않다.
그래서 조건을 하나 걸고 시작했다. 옛 주소가 하나라도 깨지면 이사는 실패로 친다.
이 조건이 작업 순서를 바꿔서, 먼저 옛 주소를 전부 목록으로 뽑고 새 주소로 보내는 규칙을 40개 만들어 걸었다. 그 다음에 글을 옮겼고, 옮기고 나서는 본문이 부르는 이미지와 첨부가 하나도 빠지지 않았는지 Claude에게 전수 대조를 시켰다.
이 대조를 눈으로 하겠다고 생각한 적이 잠깐 있었는데, 계산해보고 그만뒀다. 글 스물두 편을 하나씩 열어 이미지 일흔네 장이 제자리에 떠 있는지 확인하려면 화면을 몇 백 번 오르내려야 하고, 그중 한 장이 안 뜨는 걸 놓칠 확률은 100퍼센트에 가깝다. 빠뜨리면 안 되는 확인은 사람이 아니라 기계가 할 일이었다.
옮기면서 하나를 더 했다. 22편 전부의 영문판을 만드는 일이었는데, Ghost에서는 블로그를 두 개 만들어야 한다는 답을 알고 접었던 그 요구다. 여기서는 파일 이름 뒤에 언어를 붙이는 규칙 하나로 끝났다. 지금 국문 30편에 영문 30편이 짝으로 붙어 있다.
이사를 끝내고 나서 진짜 문제를 만났다. 이제 뭐든 바꿀 수 있게 됐는데, 정작 무엇으로 바꾸고 싶은지를 내가 몰랐다.
설정 화면을 띄워놓고 커서가 깜빡이는 걸 한참 보고 있던 순간이 있었다. 본문 글자 크기를 정하라는데, 지금 값이 맞는지 아닌지 판단할 기준이 나한테 없었다. 결제 화면 앞에서 멈췄던 손이 여기서 다시 멈춘 셈이다.
플랫폼 위에서는 이걸 알 필요가 없었다. 주어진 것 중에 고르면 되니까 취향은 선택지 안에서만 존재했다. 그런데 제약이 사라지자 "이게 마음에 드나"라는 질문에 답할 근거가 나한테 없다는 게 드러났다.
본문 줄간격이 대표적이었다. 처음 값이 답답해 보여서 넓혀봤더니 이번엔 문단이 흩어져 보였다. 반대로 더 좁혀봤더니 답답한 정도가 아니라 줄과 줄이 붙어 한 덩어리로 읽혔다. 이 상태로는 하루 종일 만져도 답이 안 나오겠다 싶어 방식을 바꿨다.
값을 한 번은 끝까지 넓히고 한 번은 끝까지 좁혀놓은 다음, 예전에 쓴 긴 글 한 편을 처음부터 끝까지 실제로 읽었다. 좁은 쪽에서는 한 줄을 다 읽고 눈이 다음 줄로 내려갈 때 자꾸 방금 읽은 줄을 다시 읽게 됐다. 넓은 쪽에서는 문단이 문단으로 안 묶이고 문장들이 각각 떠 있었다. 그 사이 어딘가에 눈이 줄을 놓치지도 않고 문단이 뭉쳐 보이는 구간이 있었고, 거기서 값을 잡았다.
결과만 보면 처음 값 근처로 돌아온 셈이라 아무 일도 없었던 것처럼 보인다. 다만 이제 나는 그 값이 왜 그 값인지 대답할 수 있고, 그게 전과 다른 점이다.
같은 방식으로 하나씩 정해나가다가 한글과 영문은 잘 읽히는 조건이 아예 다르다는 것도 알게 됐다. 한글은 자간을 좁히고 굵기를 살짝 올려야 글자가 단단해 보이는데, 같은 설정을 영문에 그대로 주면 알파벳이 서로 붙어 답답해진다. 그래서 페이지의 언어에 따라 자간과 굵기를 다르게 주도록 갈랐다. 플랫폼 위에서는 애초에 꺼낼 수조차 없던 종류의 요구였다.
자간과 줄간격이 이 정도인데 디자인은 두말할 것도 없다. 색과 여백과 글자 크기와 화면 구성까지, 눈에 보이는 것 전부가 이제 내가 정하는 값이 됐다.
배포하기 직전에 마지막으로 한 가지가 남아 있었다. 이 집이 안전한지 나는 확인해본 적이 없었다.
Ghost를 쓸 때는 한 번도 해본 적 없는 걱정이다. 그쪽에서 알아서 해줬고, 정확히 말하면 그 값이 요금에 포함돼 있었다.
외부 기관의 인증이 아니라 내가 직접 점검을 돌렸다. 결과는 73건이었고 사이트를 통째로 빼앗기는 종류는 없었는데, 그중 한 건은 실제로 데이터가 새고 있었다.
Claude에게 구조적으로 뚫릴 구멍이 있는지 확인해달라고 했더니, 주소창에 붙여넣어 보라며 이상하게 생긴 주소를 하나 내놨다. 글 주소인데 중간에 점 두 개와 알 수 없는 기호가 섞여 있는 형태였다. 붙여넣고 엔터를 쳤더니 브라우저에 글이 아니라 내 문서가 떴다. 사이트 설계를 정리해둔, 남에게 보여줄 생각이 없던 문서가 처음부터 끝까지 화면에 펼쳐져 있었다. 로그인도 필요 없고 주소만 알면 누구나 볼 수 있는 상태였다.
여기서 중요한 건 구멍 자체가 아니라 그걸 찾아낸 방식이다. 나는 코드를 읽을 줄 모르고 돌아온 답이 맞는지 검증할 능력도 없다. 대신 무엇을 물어야 하는지는 안다. "안전한가요"라고 물으면 안전하다는 대답이 돌아오고 거기서 끝난다. "이 주소에 이상한 값을 넣으면 어떻게 되나"라고 물어야 눈으로 확인할 수 있는 답이 나온다.
결국 AI를 쓰는 능력은 코드를 아는 능력이 아니라 질문을 설계하는 능력이었다. 두루뭉술한 요구를 확인 가능한 질문으로 바꾸고, 돌아온 답을 보고 다시 좁혀 묻고, 어디까지 믿고 어디부터 의심할지 정하는 일이다. 사람과 일할 때 필요한 것과 크게 다르지 않았다.
이 구멍을 막고 나서 같은 종류가 더 있는지 훑었다. 지금은 이렇게 돼 있다.
| 문제 | 조치 |
|---|---|
| 글 폴더 밖 파일이 읽힘 | 두 겹으로 막고 실제 요청으로 재확인 |
| 미발행 글이 주소로 열림 | 주소를 직접 쳐도 안 나오게 함 |
| 보안 설정이 흩어져 있음 | 한곳으로 모아 로컬에서 검증 가능하게 |
| 글에 실행 코드가 섞일 수 있음 | 배포 전에 자동으로 검사해 멈추게 |
이런 종류의 일은 원래 블로그 플랫폼 요금에 포함돼 있던 것이다. 플랫폼을 떠나면 그 항목이 청구서에서 사라지는 대신 내 할 일 목록으로 옮겨온다. 알고 한 교환이고, 지금까지는 후회하지 않는다.
세 개의 문제를 순서대로 넘고 나니 아래와 같은 화면이 남았다.
바로 위에 붙은 저 흐름도가 예전에는 못 넣어서 그림으로 만들어 올리던 그것이다. 지금은 본문에 그냥 들어가고, 상자 하나를 고치고 싶으면 그 상자만 고친다.
글은 파일로 있고 태그로 묶이며 검색된다. 연재는 시리즈로 이어지고, 링크를 공유하면 내가 정한 카드가 뜬다. 밤에는 어두운 화면으로 읽히고, 국문과 영문이 같은 자리에서 토글로 바뀐다.
이 목록만 놓고 보면 다른 플랫폼에도 대부분 있는 것들이라, 실제로 달라진 건 목록에 없다.
이 글의 줄간격이 거슬린다고 치자. 예전 같으면 새 탭을 열어 검색하고, 테마 설정에 그 항목이 있는지 찾아보고, 없으면 포기했다. 지금은 파일을 열어 숫자 하나를 바꾸고 저장한다. 그게 전부다.
이제 Ghost로 돌아갈 생각은 없다. 기성복을 입다가 몸에 맞춘 옷을 한 번 입어보면 어깨가 어디서 남고 소매가 어디서 짧았는지 알게 되는데, 알고 나면 되돌아가지지 않는다.
그날 그 버튼을 눌렀다면 나는 지금도 같은 블로그를 쓰고 있었을 것이다. 불편한 것도 딱히 없었을 테고, 무엇이 불가능한지도 계속 몰랐을 것이다. 안 되는 줄 알았던 것들은 안 되는 채로 남아 있었을 텐데, 그건 정말 안 되기 때문이 아니라 한 번도 확인해본 적이 없기 때문이다.
나는 여전히 코드를 한 줄도 못 쓴다. 그건 지금도 그대로인데, 달라진 건 그 사실이 더 이상 결론이 아니라는 것이다. 붙어보니 못 하는 건 코드를 쓰는 일 하나였고, 나머지는 전부 판단하는 일이었다. 그리고 판단은 내가 일하면서 매일 해오던 것이다.
이 블로그에는 크립토와 부동산과 투자, AI, 그리고 살면서 부딪힌 이야기를 쓴다. 남이 정해준 결론을 받지 말고 직접 재보고 판단하자는 이야기를 계속 써왔는데, 정작 그 글이 놓인 자리는 내가 아무것도 정할 수 없는 곳이었다. 글과 그 글이 놓인 자리가 이제야 같은 말을 한다.
한동안 기록이 뜸했다. 이제부터는 AI로 내가 할 수 있는 일의 경계를 어디까지 밀어냈는지, 지나온 것들을 하나씩 여기에 적어두려 한다.
결국 되는지 안 되는지는 해봐야 안다.
NOTHING
HAPPENS
UNLESS I ACT.