정보 공간

외주 인수인계 전 기술 부채 체크리스트 20

외주 인수인계 전 기술 부채 체크리스트 20

외주 프로젝트가 “오픈 완료”로 끝나는 순간, 담당자는 안도하기 쉽습니다.

그런데 실제 비용은 그 다음 주부터인 경우가 많습니다. 소스 위치가 불명확하고, 서버 접속 정보가 개인 메일에 흩어져 있으며, “이 부분만 아시는 분”이 퇴사하면 작은 수정도 견적이 커집니다.

흔히 기술 부채라고 부르지만, 발주자 언어로 바꾸면 나중에 청구될 미정산 작업 목록입니다.

이 글은 개발자가 아니어도 인수인계 미팅에서 확인할 수 있는 점검 항목 20가지를 정리합니다. 모든 항목을 완벽히 통과해야 하는 것은 아닙니다. 다만 미완료 항목이 문서에 남고, 잔여 비용·일정과 연결되어 있어야 합니다.

외주 인수인계 전 기술 부채 체크리스트 20 — 핵심 개념 시각 자료

이렇게 쓰면 좋아요

  1. 검수 회의 전, 항목을 스프레드시트로 옮깁니다.
  2. 각 항목을 통과 / 부분 / 미흡 / 해당 없음으로 표시합니다.
  3. 미흡 항목은 “누가, 언제, 어떤 산출물로” 닫을지 적습니다.
  4. 계약 잔금·유지보수 전환 조건과 연결합니다.

부분 통과를 통과로 바꿔 쓰지 않는 것이 핵심입니다.

점검 항목 20

A. 소유권·접근 (1~5)

  1. 소스 저장소 소유

    코드 저장소 권한이 발주자(또는 발주자가 지정한 조직) 계정 아래인가? 개인 계정만 쓰지 않는가?
  2. 배포 권한

    운영 서버·스토어 콘솔·자동 배포 키가 제작사 개인에게만 있지 않은가?
  3. 도메인·인증서

    도메인 등록 주체, 네임서버, 인증서 갱신 책임이 문서화돼 있는가?
  4. 외부 서비스 계정

    결제, 문자, 푸시, 지도, 소셜 로그인, 클라우드 콘솔 소유자가 발주자 쪽인가?
  5. 비밀값 관리

    API 키·DB 비밀번호가 채팅/문서에 평문으로 남아 있지 않고, 교체 가능한가?

B. 코드·구조 (6~10)

  1. 실행 방법

    로컬/테스트 서버를 켜는 방법이 문서에 있는가?
  2. 환경 분리

    개발·테스트·운영 설정이 섞여 있지 않은가? 운영 키가 코드에 박혀 있지 않은가?
  3. 모듈 경계

    회원/주문/콘텐츠 등이 한 파일에 모두 섞이지 않고, 수정 지점을 안내할 수 있는가?
  4. 의존성 목록

    사용 라이브러리·버전·라이선스 제약이 정리돼 있는가?
  5. 검수 기록

    가입, 결제, 주문 취소 등 핵심 시나리오 통과 기록이 남아 있는가?

C. 데이터·운영 (11~15)

  1. 데이터 구조 설명

    주요 테이블 역할과 백업 주기가 문서화돼 있는가?
  2. 변경 이력

    데이터 구조 변경이 “운영 DB 직접 수정만”이 아니라 추적 가능한가?
  3. 로그·모니터링

    오류 로그 위치, 보관 기간, 알림 채널이 정해져 있는가?
  4. 정기 작업

    정기 전송·정산·알림 작업 목록과 실패 시 재처리 방법이 있는가?
  5. 개인정보·동의

    수집 항목, 보관, 탈퇴/삭제 절차가 구현·문서와 일치하는가?

D. 제품 완성도·유지보수 전환 (16~20)

  1. 관리자 운영 매뉴얼

    콘텐츠 수정, 주문 처리, 회원 조회 등 일상 운영이 매뉴얼에 있는가?
  2. 에러 메시지

    장애 시 사용자/관리자에게 보이는 메시지와 내부 확인 절차가 있는가?
  3. 성능 전제

    예상 동시 접속·데이터 규모에 대한 가정이 기록돼 있는가?
  4. 미완·알려진 이슈

    남은 버그, 우회책, 의도적 미구현이 목록에 남아 있는가?
  5. 유지보수 합의 초안

    응답 시간, 범위(기능 추가 vs 장애), 비용 단위가 합의됐는가?

이렇게 보면 쉬워요

점수보다 중요한 것은 미흡 항목에 가격을 붙이는 것입니다.

미흡 유형 방치 시 전형 비용 인수 전 조치 예
계정 소유 불명 서비스 중단, 재발급 수주 소유 이전 체크리스트 실행
소스 부재 전면 재개발 저장소 이관·빌드 검증
비밀값 평문 공유 유출·키 교체 비용 안전한 저장소·교체
로그 없음 장애 장기화 최소 기록 범위 합의
이슈 목록 없음 잔금 후 분쟁 알려진 이슈 첨부 후 잔금

표의 “전형 비용”은 업계에서 반복되는 패턴 설명이며, 특정 수치 보장이 아닙니다.

이렇게 준비하면 좋아요

인수인계 미팅에서는 시연만 보지 말고, 가능하면 저장소 받기 → 빌드 → 테스트 서버 배포 중 하나 이상을 함께 수행합니다.

“문서 나중에 드리겠습니다”는 잔금 조건에 날짜를 겁니다. 개인 메신저 산출물은 공식 산출물로 인정하지 않고, 이슈·위키·저장소로 모읍니다. 디자인 원본, 콘텐츠 원고, 외부 서비스 계약서도 기술 산출물과 같이 목록화합니다.

20항을 한 번에 못 채울 때는 중단 위험 순으로 닫습니다.

  1. 소유권(1~5)

    계정·저장소·도메인이 없으면 서비스 자체가 남의 손에 있습니다.
  2. 운영 최소(11, 13, 14)

    백업·로그·정기 작업을 모르면 장애 시 복구가 어렵습니다.
  3. 알려진 이슈(19)와 유지보수 합의(20)

    미완을 숨긴 채 잔금을 치르면 분쟁만 남습니다.
  4. 코드 구조(6~10)

    중요하지만, 소유권과 백업이 확보된 뒤에도 개선할 여지가 있습니다.
  5. 성능 전제(18)

    트래픽 계획이 있으면 앞당기고, 없으면 가정만이라도 문서화합니다.

부분 통과 항목은 “기술 부채 대장”에 남겨 유지보수 백로그 1호로 삼습니다. 대장이 없으면 부채는 사라지지 않고 기억에서만 사라집니다.

체크리스트는 감사 도구이기도 하지만, 제안 요청 단계에 미리 첨부하면 저가·고위험 제안을 걸러내는 필터가 됩니다. “인수 시 이 20항을 통과 기준으로 합니다” 한 문장이 견적 품질을 바꿉니다.

자주 하는 실수

체크리스트 없이 잔금을 치르면, 기술 부채는 제작사 책임이 아니라 발주자 자산의 결함으로 남습니다.

이후 다른 업체에 유지보수를 맡길 때 가장 먼저 나오는 말이 “현황 파악 비용”입니다. 현황 파악만으로 수 주가 걸리면, 기능 개선 예산이 조사비로 소진됩니다.

인수인계 부실은 보안 사고로 이어질 수 있습니다. 퇴사한 외주 인력의 개인 클라우드에 운영 키가 남아 있는 상태는, 계약이 끝났다고 자동으로 해소되지 않습니다.

LB Contents는 앱·홈페이지·쇼핑몰 제작과 운영 구조를 함께 설계합니다. 인수인계·유지보수 전환 전 점검이 필요하면, 요구사항이 완전히 정리되기 전에도 상담할 수 있습니다.