외주 개발 후 소스코드 인수인계, 이것만은 확인하세요
납품받았는데, 이게 끝인가요?
외주 개발이 끝나면 "결과물 잘 받았습니다"하고 끝내는 분들이 많아요. 근데 여기서 끝내면 나중에 큰 문제가 생겨요. 유지보수를 하려는데 서버 접근 권한이 없거나, 소스코드를 봐도 뭐가 뭔지 모르거나, 다른 개발자에게 넘기려는데 문서가 없거나.
인수인계를 제대로 안 받으면, 결국 처음부터 다시 만들어야 하는 상황이 올 수 있어요. 수천만 원을 쓴 프로젝트가 쓸모없어지는 거죠.
반드시 받아야 할 것들
1. 소스코드 전체. GitHub이나 GitLab 같은 코드 저장소에 소유자(Owner) 권한으로 접근할 수 있어야 해요. "보내드릴게요"라고 해서 ZIP 파일로 받으면 안 돼요. 코드 변경 이력(Git history)이 없으면 나중에 "어떤 이유로 이렇게 바꿨는지" 추적이 불가능해요.
2. 서버 및 인프라 접근 권한. 서버(AWS, Vercel 등), 데이터베이스, 도메인, SSL 인증서. 이 모든 것의 관리자 계정을 받아야 해요. 개발사 계정으로 되어 있으면 나중에 관계가 틀어졌을 때 서비스가 인질이 될 수 있어요.
3. 환경 변수(Environment Variables). API 키, 데이터베이스 접속 정보, 외부 서비스 인증 키 같은 것들이에요. 이게 없으면 코드가 있어도 서비스를 돌릴 수 없어요. .env 파일이라고 부르는데, 이걸 안 받는 경우가 정말 많아요.
4. 기술 문서. 최소한 이런 문서가 있어야 해요.
- 시스템 구조도: 프론트엔드, 백엔드, DB가 어떻게 연결되어 있는지
- API 명세서: 서버에 어떤 요청을 보내면 어떤 응답이 오는지
- DB 설계서: 데이터가 어떤 구조로 저장되어 있는지
- 배포 가이드: 코드를 수정한 후 서버에 반영하는 방법
5. 외부 서비스 계정. 결제(토스페이먼츠 등), 이메일 발송(SendGrid 등), 지도(카카오맵 등), 문자 발송 API 등. 외부 서비스 계정이 개발사 소유로 되어 있으면 반드시 이전받으세요.
자주 빠뜨리는 것들
테스트 계정. 관리자 계정, 테스트용 사용자 계정의 아이디/비밀번호. 이게 없으면 납품받은 서비스에 로그인도 못 해요.
빌드 및 배포 방법. 코드를 수정했는데 어떻게 서버에 반영하는지 모르면 코드가 있어도 소용없어요. "npm run build 후 Vercel에 푸시" 같은 구체적인 절차가 필요해요.
모니터링 도구 접근. 서버 상태 모니터링, 에러 로그 확인 도구(Sentry 등)의 접근 권한도 받아두세요.
인수인계 체크리스트
- [ ] GitHub/GitLab 소유자 권한 이전
- [ ] 서버 관리자 계정 이전
- [ ] 데이터베이스 접근 정보
- [ ] 도메인 관리 권한 이전
- [ ] 환경 변수 파일(.env) 전달
- [ ] API 명세서
- [ ] DB 설계서
- [ ] 배포 가이드 문서
- [ ] 외부 서비스 계정 이전
- [ ] 관리자/테스트 계정 정보
이 목록을 계약 단계에서 "납품 항목"에 포함시키세요. 구두로 약속하지 말고 계약서에 적어야 해요.
저희 딱4주는 프로젝트 시작일부터 고객 GitHub에 코드를 올려요. 인수인계가 별도로 필요 없도록, 처음부터 모든 권한이 고객에게 있는 구조로 진행해요. 기술 문서도 프로젝트 완료 시 함께 전달해드려요.