WORKS / PORTFOLIO
RPA (Robotic Process Automation)

콘텐츠 이관·301 검증 시스템 구축

기존 콘텐츠 인벤토리와 필드 매핑, 사전 검증, 이관 실행, 실패 재시도, 301 리디렉션 확인을 한 화면에서 관리하는 이관 시스템

콘텐츠 이관·301 검증 시스템 구축

RESULT

원본 콘텐츠 2,400건과 첨부 1,800건의 전체 검색·매핑·상세 수정 구현
사전 검증·일괄 이관·실패 군집·개별 재시도 흐름과 12,000개 이벤트 연결
2,400개 301 리디렉션 검증과 WXR·CSV 내보내기 구성
자동 테스트 12건, 프로덕션 빌드, 데스크톱·태블릿·모바일 여정 검증 완료

TECH STACK

Node.jsJavaScriptHTML5CSS3

CHALLENGE

클라이언트는 기존 홈페이지의 페이지·공지·자료실·갤러리를 새 콘텐츠 관리 시스템으로 옮기면서, 첨부 파일과 기존 URL까지 보존해야 했습니다. 하지만 인벤토리, 필드 매핑, 실패 재처리, 301 리디렉션 확인이 개별 스크립트와 스프레드시트에 흩어져 있어 전체 진행률과 남은 위험을 판단하기 어려웠습니다.

클라이언트가 필요로 한 이유

이관 준비 단계에서 클라이언트가 확인한 핵심 위험은 “몇 건 옮겼는가”만으로 품질을 판단할 수 없다는 점이었습니다. 본문은 옮겨졌지만 첨부가 빠질 수 있고, 새 페이지는 열리지만 기존 검색 유입 URL이 끊길 수 있습니다. 성공 건수 하나로는 누락된 필드와 리디렉션 위험을 설명할 수 없었습니다.

전체 실행 뒤에 오류를 발견하면 되돌리기와 재처리 범위도 지나치게 커졌습니다. 그래서 원본 인벤토리를 먼저 확정하고, 필드 매핑과 전송 결과 미리보기로 누락을 확인한 뒤, 품질 게이트를 통과한 범위만 실행하도록 설계했습니다. 실패한 항목만 다시 처리하고 마지막에 301 연결을 검증하게 한 이유도 성공 건수보다 누락 없는 전환을 보장하기 위해서였습니다.

인벤토리 → 매핑 → 사전 검증 → 실행 → 실패 재시도 → 301 확인을 하나의 운영 흐름으로 구성했습니다.

이관 과제시스템에서 다룬 방식
원본 범위 불명확유형·상태·첨부·URL을 포함한 전체 인벤토리 생성
필드 누락매핑 커버리지와 영향 건수, 대상 구조 미리보기 제공
일괄 실행 위험실행 전 성공 예상·차단·첨부·301 품질 게이트 표시
실패 재처리 반복오류 코드별 군집과 개별·선택 재시도 구성

클라이언트 요청사항과 기획 방향

이관 실행 버튼부터 만드는 대신, 옮겨야 할 범위를 확정하고 누락을 차단한 뒤 실패한 단위만 복구하는 순서로 전체 운영 흐름을 설계했습니다.

클라이언트 요청이렇게 기획한 이유해결 방식
기존 콘텐츠와 첨부를 빠짐없이 옮기고 싶다원본 목록이 불완전하면 높은 성공률도 실제 누락을 가릴 수 있음콘텐츠 유형·첨부·기존 URL을 포함한 인벤토리를 먼저 확정
실행 전에 새 사이트의 결과를 확인하고 싶다전체 이관 뒤 필드 오류를 발견하면 되돌리기와 재작업 범위가 커짐필드 매핑·대상 구조 미리보기·차단 조건을 사전 검증 단계에 배치
검색 유입과 기존 주소를 유지하고 싶다본문이 옮겨져도 이전 URL이 끊기면 사용자와 검색엔진이 새 페이지를 찾지 못함이전·새 URL 매핑과 301 상태를 콘텐츠 이관 결과와 함께 검증

SOLUTION

클라이언트가 한 화면에서 이관 범위와 위험을 판단할 수 있도록 원본 인벤토리·필드 매핑·실행 결과·리디렉션을 하나의 운영 저장소에 두고, 대상 콘텐츠 관리 시스템(CMS)과의 연결은 분리했습니다. 운영자는 원본 상세를 고치고 변환 결과를 미리 본 뒤 선택 범위만 실행할 수 있습니다.

콘텐츠 한 건이 새 사이트로 옮겨지는 과정

먼저 기존 사이트의 페이지·공지·자료실·갤러리와 첨부 파일, 이전 URL을 전부 목록으로 만듭니다. 운영자는 제목과 원본 ID, 콘텐츠 유형, 첨부 여부, 이전 주소를 검색해 이관 범위가 빠지지 않았는지 확인합니다. 이 단계가 없으면 성공 건수는 높아도 애초에 목록에 들어오지 않은 콘텐츠를 발견하기 어렵습니다.

다음으로 기존 필드를 새 CMS의 제목·본문·분류·첨부 필드에 연결합니다. 시스템은 실제 전송 전에 변환 결과를 미리 만들고 필수값, 첨부 파일, 주소 충돌을 검사합니다. 예시 배치가 94점이어도 첨부 누락이 차단 등급이면 실행 버튼을 열지 않습니다. 담당자는 누락 파일이나 매핑을 고친 뒤 해당 항목만 다시 검사합니다.

검사를 통과한 콘텐츠만 단건·선택·조건별로 이관합니다. 실패 항목은 원본 오류, 변환 오류, 대상 오류, 첨부 오류로 나눠 보여주며 성공한 항목은 다시 보내지 않습니다. 마지막에는 이전 URL 2,400개가 새 주소로 연결되는지 확인해 검색 유입과 기존 즐겨찾기가 끊기지 않도록 마무리합니다.

시스템 흐름

대상 CMS 연결부는 콘텐츠 생성·수정·오류 응답 형식을 통일했습니다. 연결 방식이 REST API나 관리 명령으로 달라져도 인벤토리, 사전 검증, 재시도, 301 확인의 운영 순서는 유지됩니다.

이관 준비 점수

실행 가능 여부를 진행률이 아닌 네 개의 품질 항목으로 계산합니다. 점수는 위험을 요약하는 용도이며, 차단 항목이 하나라도 있으면 높은 점수여도 실행하지 않습니다.

판단 항목반영 비중확인 내용
필드 매핑30%필수 필드 연결과 변환 규칙 커버리지
첨부 유효성25%파일 존재, MIME, 참조 관계
URL 연속성25%slug 충돌과 301 목적지 완성도
사전 검증20%대상 payload 규칙과 차단 오류

예시 배치는 94점이지만 첨부 누락이 차단 등급이면 실행 버튼을 비활성화합니다. 실제 실행 조건은 준비 점수 90점 이상, 차단 오류 0건, 선택 범위 확정, 복원 지점 기록을 모두 만족하는 것입니다.

배치 실행과 재시도 규칙

각 원본에는 안정적인 외부 키를 부여해 같은 콘텐츠를 다시 실행해도 중복 생성되지 않게 했습니다. 실패는 원본 오류, 변환 오류, 대상 오류, 첨부 오류로 나누고, 수정으로 해결 가능한 항목만 선택 재시도합니다. 성공한 항목은 재시도 배치에 포함하지 않습니다.

운영 화면

  • 페이지·공지·자료실·갤러리 전체 검색과 25·50건 페이지 이동
  • 2페이지 이후 원본 상세 조회·수정
  • 필드 매핑 저장, 커버리지·영향 건수, 대상 payload 미리보기
  • 단건·선택·조건별 이관과 실패 군집·재시도
  • 301 URL 검색·수정·상태 변경과 CSV 내보내기
  • WXR 1.2 형식 콘텐츠 내보내기

BUILD

마스터 용어, 원본 콘텐츠, 첨부 메타데이터, 필드 매핑, 이관 실행, 시도 이력, URL 리디렉션, 사건, 감사 로그를 관계형 운영 데이터로 분리했습니다. 정상, 차단, 변환 실패, 대상 오류, 복구 상태가 실행 이력에 지속되며 재시도는 실패한 레코드만 대상으로 삼습니다.

데이터를 이관 단위로 푸는 방식

원본 유형별 필드를 공통 인벤토리 형식으로 정규화하고, 매핑 규칙이 대상 payload를 생성합니다. 사전 검증기는 payload와 첨부·URL 관계를 검사해 통과·경고·차단을 구분합니다. 운영 화면은 요약 집계를 먼저 보여주고, 각 건의 원본·변환값·시도 타임라인까지 내려갈 수 있게 구성했습니다.

검증한 데이터 규모

데이터규모
원본 콘텐츠2,400
첨부 메타데이터1,800
URL 리디렉션2,400
이관 사건12,000
이관 시도 이력533
일별 시계열365일

VALIDATION

  • 자동 테스트 12건 통과
  • 프로덕션 빌드와 정적 산출물 확인
  • 2페이지 이후 원본 상세·수정과 전체 검색 확인
  • 차단 오류가 있는 고득점 배치의 실행 방지 확인
  • 정상·실패·재시도·복구와 새로고침 지속성 확인
  • WXR·리디렉션 CSV 응답 확인
  • 데스크톱·태블릿·모바일에서 콘솔 오류와 가로 넘침 없음

RESULT

이관 장면기존에 생기던 문제구축 후 처리 방식
범위 확정목록에 들어오지 않은 콘텐츠와 첨부 누락을 발견하기 어려움콘텐츠·첨부·이전 URL을 먼저 전체 인벤토리로 구성
실행 전 확인전체 이관 뒤에 필드·첨부 오류를 발견대상 구조 미리보기와 차단 오류를 확인한 범위만 실행
실패와 전환성공 항목까지 다시 보내거나 이전 URL이 끊김실패 항목만 선택 재시도하고 301 목적지를 별도로 검증

원본 콘텐츠 2,400건, 첨부 1,800건, 리디렉션 2,400건을 사용해 첫 화면의 일부가 아니라 전체 범위에서 매핑·누락·재시도·주소 연속성을 확인했습니다.

비슷한 업무에 적용할 수 있는 부분

대상은 WordPress 이관에 한정되지 않습니다. CMS 교체, ERP·CRM 데이터 이전, 파일 저장소 재구성처럼 원본과 대상의 구조가 다르고 누락 방지, 실행 전 검증, 되돌릴 범위가 중요한 프로젝트에도 이어집니다.

본 프로젝트는 고객사 실제 업무 요건을 바탕으로 설계한 결과물이며, 보안 정책에 따라 일부 화면만 공개했습니다.

문의하기