Technote

개발 워크플로우 입문

연재 사이트 이전 실전 8부 중 1부

이전 전 목록화 — 잊는 것은 사이트 밖에 있습니다

파일과 데이터베이스는 빠뜨리기 어렵습니다. 전환 당일에 사고를 만드는 것은 몇 년 전에 한 번 등록해 두고 잊어버린 사이트 밖의 설정들입니다.

이전 작업에서 실제로 잃는 것은 사이트 안에 있지 않습니다. 파일과 데이터베이스는 눈에 보이고 도구도 잘 갖춰져 있어서 빠뜨리기가 오히려 어렵습니다. 사라지는 것은 사이트 밖에 등록해 둔 것들입니다 — 몇 년 전에 한 번 설정하고 그 뒤로 열어 본 적 없는 화면에 들어 있는 값들이요.

그래서 이전의 첫 단계는 복사가 아니라 목록화입니다. 표 한 장이면 충분하고, 이 한 장이 전환 당일에 벌어질 일의 대부분을 미리 없앱니다.

사이트 안 — 여기는 대체로 안전합니다

사이트 안의 자산은 네 덩어리입니다. 대부분의 백업 도구가 앞의 두 덩어리를 담고, 뒤의 두 덩어리는 담지 않습니다.

사이트 안의 네 덩어리 — 아래 둘은 백업 파일에 들어 있지 않다

여기서 실제로 자주 빠지는 것이 웹서버 설정과 크론입니다. 둘 다 워드프레스 바깥에 살기 때문에 사이트 백업에 담기지 않습니다. 옛 주소에서 새 주소로 보내던 리다이렉트 규칙, 업로드 용량 제한, 정기 실행하던 시스템 크론 항목이 여기 들어갑니다. 이전 후에 “왜 갑자기 큰 파일이 안 올라가지” 하는 일의 절반은 이 항목입니다.

사이트 밖 — 여기가 진짜 목록입니다

이제 본론입니다. 아래 항목들은 우리 서버가 아니라 남의 서비스에 저장돼 있습니다. 사이트 코드를 아무리 들여다봐도 나오지 않고, 각 서비스에 로그인해야만 보입니다.

사이트 밖 의존물 — 각 서비스에 로그인해야만 확인되는 값들

이 중에서 특히 조심할 것이 결제 웹훅입니다. 웹훅 주소는 결제사 쪽 설정 화면에 저장돼 있고, 결제사는 그 주소로 계속 요청을 보냅니다. 우리가 서버를 옮겨도 결제사는 그 사실을 모릅니다. 더 나쁜 것은 우리 쪽에 아무 에러도 남지 않는다는 점입니다 — 요청이 오지 않으니 로그도 비어 있고, 주문은 그냥 입금 확인이 안 된 채로 쌓입니다. 이 항목은 목록의 맨 위에 둡니다.

API 키의 도메인 제한도 비슷합니다. 지도나 소셜 로그인 키에 “이 도메인에서만 사용” 제한이 걸려 있으면, 도메인이 바뀌는 순간 그 기능만 조용히 멈춥니다. 사이트는 정상으로 보이고 한 블록만 비어 있습니다.

표 한 장의 형식

목록은 항목만 적어서는 쓸모가 없습니다. 각 항목마다 네 칸을 채웁니다.

항목        | 지금 값          | 어디서 바꾸나        | 누가 접근권을 갖나
결제 웹훅   | https://…/hook   | 결제사 관리자 화면   | 대표 계정
소유 확인   | TXT 레코드       | 도메인 등록 업체     | 대표 계정
지도 API 키 | 도메인 제한 있음 | 클라우드 콘솔        | ?  ← 여기가 문제

네 번째 칸 “누가 접근권을 갖나” 가 이 표의 핵심입니다. 계정이 퇴사한 담당자나 예전 외주사 이름으로 돼 있는 경우를 전환 당일에 발견하면 이미 늦습니다. 계정 복구에는 며칠이 걸리고, 그동안 사이트는 반쪽 상태로 서 있게 됩니다. 물음표가 하나라도 남아 있으면 그 물음표를 지우기 전까지 전환 일정을 잡지 않습니다.

운영 문서를 만드는 방법 전반은 개발 워크플로우 아카이브에 정리돼 있고, 이전과 최적화를 한 번에 맡기고 싶다면 작업 과정에 실제 절차가 공개돼 있습니다.

다음 회차

목록이 만들어졌으면 이제 옮깁니다. 다음 회차는 파일과 데이터베이스인데, 큰 사이트에서 시간이 걸리는 지점은 정해져 있습니다 — 그리고 그 지점은 용량이 아닙니다.

이 주제의 다른 글

노하우 목록으로

개발 워크플로우 심화

CI 에서 WP-CLI 돌리기 — 검사 자동화의 실제 구성

사람이 기억해서 돌리는 검사는 바쁜 주에 건너뛰게 됩니다. 싼 검사부터 순서대로 쌓고, 일회용 워드프레스 위에서 명령으로 확인하면 그 기억이 필요 없어집니다.

개발자 5분 읽기

₩270,000 · 신청하기