외주 개발 보안, 소스코드는 어디까지 안전한가 — 해외 개발팀에 맡길 때 실제로 통제해야 하는 것
외주 개발 보안은 대개 견적이 끝난 다음에 문제가 됩니다. 개발사를 정하고, 금액을 맞추고, 착수 일정까지 잡아 둔 상태에서 사내 정보보안 담당자나 법무 검토가 들어옵니다. 질문은 거의 항상 같은 세 가지입니다. 개발자가 어느 나라에 있습니까. 우리 고객 데이터에 접근합니까. 사고가 나면 누구에게 책임을 묻습니까.
이 세 질문에 문서로 답하지 못하면 프로젝트는 그 자리에서 멈춥니다. 개발사의 기술이 부족해서가 아닙니다. 통제 구조를 설명할 수 있는 사람이 발주사 안에 없기 때문입니다. 그리고 이 검토는 착수 직전이 아니라 개발사를 고르는 단계에서 이미 끝나 있어야 하는 일입니다.
디비컨설팅은 삼성물산, GS건설, 하나투어, 직방, LS일렉트릭, 교보생명, 가천대학교 등과 100건 이상의 웹·앱·플랫폼 프로젝트를 수행해 왔습니다. 대기업 건설·상사, 보험, 대학, 산업 B2B 플랫폼이 모두 포함됩니다. 그 과정에서 반복해서 확인한 것이 있습니다. 보안 문제는 개발팀이 해외에 있어서 생기는 것이 아니라, 통제 지점이 계약서와 프로세스 어디에도 정의되지 않아서 생깁니다.
사고는 “해외라서” 나지 않습니다
국내 개발사에 맡기든 해외 팀에 맡기든 실제로 문제가 생기는 자리는 같습니다. 다만 국내 발주에서는 그 자리가 관행으로 덮여 있고, 해외 발주에서는 덮이지 않은 채 드러납니다. 반복해서 나타나는 구멍은 세 개입니다.
계정이 사람이 아니라 팀 단위로 발급됩니다
서버, 코드 저장소, 관리자 페이지 계정을 개발사에 하나씩 넘기고 “개발팀에서 알아서 쓰세요”로 끝나는 경우가 많습니다. 이 상태에서는 누가 언제 무엇을 봤는지 기록이 남지 않습니다. 인력이 교체되어도 계정은 그대로 남고, 계약이 끝나도 회수 대상이 특정되지 않습니다.
사고가 났을 때 발주사를 실제로 곤란하게 만드는 것은 유출 자체보다 경로를 특정할 수 없다는 사실입니다. 감사에도, 고객 문의에도 답할 근거가 없습니다.
실제 데이터가 개발 환경으로 넘어갑니다
테스트를 제대로 하려면 실제와 비슷한 데이터가 필요합니다. 그래서 운영 데이터베이스를 그대로 복사해 개발 환경에 붓는 일이 흔하게 일어납니다. 이 순간 고객 이름, 연락처, 결제 이력이 관리 범위 밖으로 나갑니다.
이 결정은 보통 계약서에 없습니다. 개발 중반에 실무자끼리 구두로 정해집니다. 발주사 담당자가 승인한 기억조차 없는 경우가 드물지 않습니다.
계약 상대와 코드를 만지는 사람이 다릅니다
해외 개발사나 프리랜서 플랫폼을 통해 직접 발주하면, 계약서에 서명한 주체와 실제로 코드를 쓰는 사람이 서로 다른 나라에 있는 구조가 만들어집니다. 재하도급이 한 단계 더 들어가면 발주사는 최종 작업자가 누구인지 알지 못합니다.
이 구조에서 비밀유지 약정은 서류로만 존재합니다. 위반을 확인할 방법도, 실행할 관할도 발주사 쪽에 없기 때문입니다. IT 외주 프로젝트가 납기 후 분쟁으로 끝나는 구조와 같은 뿌리에서 나오는 문제입니다.
발주 전에 문서로 확인해야 할 다섯 가지
보안 인증서를 받아 보는 것보다 아래 다섯 개의 답을 문서로 받는 편이 실제로 더 효과가 있습니다. 인증은 조직의 상태를 말해 주지만, 아래 항목은 이 프로젝트에서 무엇이 어떻게 다뤄지는지를 말해 주기 때문입니다.
1. 접근 권한 — 누가, 어떤 계정으로, 무엇에
투입 인력별로 계정을 따로 발급하는지, 접근 대상이 역할에 맞게 제한되는지, 접속 기록이 남는지를 확인하십시오. 요청할 문서는 한 장이면 됩니다. 이름, 역할, 접근 대상 시스템, 권한 수준이 적힌 표입니다. 이 표를 만들 수 없다는 답이 돌아온다면 그 답 자체가 결론입니다.
2. 개발·테스트 데이터 — 실데이터를 쓸 것인가
원칙은 쓰지 않는 것이고, 대안은 가명 처리한 데이터셋입니다. 불가피하게 실데이터가 필요한 구간이 있다면 그 구간과 기간, 승인 절차를 요구사항 정의서 단계에서 미리 적어 두어야 합니다. 개발 중반에 정하면 대부분 편한 쪽으로 결정됩니다.
3. 개인정보 처리 위탁과 국외 이전
개인정보가 포함된 시스템을 외부에 맡기면 위탁 관계가 생기고, 처리 인력이 국외에 있으면 국외 이전 문제가 따라옵니다. 확인할 것은 두 가지입니다. 위탁 계약이 문서로 존재하는지, 그리고 수탁자로 누가 적히는지입니다.
계약 상대가 국내 법인이면 발주사의 책임 추적 지점이 국내에 남습니다. 재위탁이 있다면 그 범위와 대상을 그 법인이 문서로 관리하고, 발주사는 한 단계만 확인하면 됩니다. 반면 해외 개발사와 직접 계약하면 위탁 관계의 관리 책임이 통째로 발주사에게 넘어옵니다. 단가를 아끼려던 결정이 법무·보안 업무를 발주사 내부로 옮겨오는 결정이 되는 지점입니다.
4. 코드와 산출물이 누구 계정에 보관되는가
이 항목은 순서 하나로 결과가 뒤집힙니다. 개발사 조직 계정에 저장소를 만들고 발주사를 초대하는 방식이면, 계약이 끝날 때 나가는 쪽이 발주사입니다. 반대로 발주사 계정에 저장소를 두고 개발 인력을 초대하면, 종료 시점에 초대를 해제하는 것으로 끝납니다.
서버와 클라우드 계정도 같습니다. 결제 수단이 개발사 카드로 등록되어 있으면 인프라의 소유권이 개발사에 있는 것과 같은 상태가 됩니다. 착수 첫 주에 정하면 비용이 들지 않고, 종료 직전에 정하려 하면 협상 사안이 됩니다.
5. 종료 시점의 회수 절차
계약 종료일에 무엇이 회수되는지 목록으로 받아 두십시오. 계정 비활성화, 로컬 사본 삭제 확인, 외부 연동 서비스의 키 재발급, 문서 인계입니다. 특히 결제·문자 발송·지도·푸시처럼 개발사 계정으로 붙어 있는 외부 서비스는 계약이 끝나도 서비스의 일부가 개발사 손에 남습니다.
이 다섯 항목은 별도 보안 부속서로 만들기보다 개발 외주 계약서의 산출물·검수 조항과 한 묶음으로 두는 편이 실효성이 있습니다. 부속서는 읽히지 않지만 검수 기준은 대금과 연결되어 있기 때문입니다.
세 가지 발주 방식은 보안에서 이렇게 갈립니다
한국 기업이 실제로 마주하는 선택지는 “국내냐 해외냐”가 아닙니다. 위의 다섯 항목을 누가 정의하고 누가 관리하는가로 갈립니다.
| 국내 개발사 | 해외 직접 발주 | 한국 PM + 글로벌 개발팀 | |
|---|---|---|---|
| 계약 상대 | 국내 법인 | 해외 법인 또는 개인 | 국내 법인 |
| 보안 요구사항 작성 | 개발사 | 발주사 본인 | 한국 PM |
| 접근 권한 관리 주체 | 개발사 | 발주사 본인 | 한국 PM |
| 최종 작업자 확인 | 가능 | 어려움 | 가능 |
| 사고 시 책임 추적 | 가능 | 어려움 | 가능 |
| 커뮤니케이션 언어 | 한국어 | 영어 | 한국어 |
| 개발 단가 | 높음 | 낮음 | 낮음 |
| 발주사 담당자 투입 시간 | 보통 | 매우 많음 | 적음 |
해외 직접 발주가 위험한 이유는 개발자의 국적이 아닙니다. 통제의 주체가 발주사 본인으로 넘어오기 때문입니다. 보안 요구사항을 영어로 쓰고, 계정 권한 표를 직접 관리하고, 위탁·이전 문서를 직접 챙길 인력이 사내에 있다면 직접 발주가 가장 쌉니다. 정말 그렇습니다. 그 인력이 없는 회사에서만 단가 절감이 법무·보안 업무로 되돌아옵니다.
인도를 비롯한 해외 개발 시장이 단순 인력 공급에서 관리 체계를 갖춘 파트너십으로 이동해 온 배경은 인도 IT 아웃소싱의 진화에 따로 정리해 두었습니다.
디비컨설팅이 이 지점들을 통제하는 방식
IT 아웃소싱 프로젝트는 다음 5단계로 진행됩니다. 위의 다섯 항목이 각 단계 어디에서 정해지는지 함께 적었습니다.
- 상담 및 요구 분석 — 비즈니스 목표와 기술 요구사항을 한국어 문서로 정리합니다. 실데이터 사용 여부, 개인정보가 지나가는 구간, 접근이 필요한 시스템 범위를 이 단계에서 확정합니다. 개발 중반에 구두로 정해지는 일이 없도록 하는 것이 목적입니다.
- 개발팀 구성 — 전담팀을 2~4주 안에 구성합니다. 팀이 확정되면 인력별 계정과 권한 수준이 표로 정리됩니다. 팀 계정 하나를 넘기는 방식이 아닙니다.
- 프로젝트 개발 — 애자일로 진행하며 진행 상황을 투명하게 공유합니다. 발주사는 한국인 PM하고만 한국어로 소통하고, 개발팀과의 영어 소통과 권한 관리는 PM이 맡습니다.
- 테스트 및 배포 — QA 프로세스를 거쳐 릴리스합니다.
- 운영 및 유지보수 — 문서와 함께 인계합니다. 소스코드는 발주사 귀속이며 API 명세서, DB 스키마, 배포 절차 문서까지 넘깁니다.
핵심은 계약 상대가 한국 법인이라는 점입니다. 발주사는 국내에서 계약하고, 국내에서 책임을 묻고, 한국어 문서로 검수합니다. 개발 인력이 어디에 있든 발주사가 관리해야 하는 대상은 한 곳으로 모입니다.
이 구조로 만든 것들
- 삼성물산 — 홈닉, 주거 플랫폼 앱
- GS건설 — 엘리시안 리조트 웹·앱 통합 구축
- 하나투어 — 하나오픈챗, 여행 상담 채팅 서비스
- 직방 — 호갱노노, 부동산 데이터 서비스
- LS일렉트릭 — 테크스퀘어, 산업 B2B 거래 플랫폼
- 교보생명 — 사내벤처 글펍, 커뮤니티 서비스
- 가천대학교 — 학사관리 시스템
- 센터필드 · 센트로폴리스 · 그랑서울 — 프라임 오피스 빌딩 관리 시스템
- 와디즈 — 글로벌 플랫폼
100건 이상의 프로젝트, 50개 이상의 글로벌 파트너사, 고객 만족도 98%. 다른 사례는 포트폴리오에서 확인하실 수 있습니다.
이런 기업에 적합합니다
- 고객 개인정보나 결제 정보가 지나가는 서비스를 외부에 맡겨야 하는데, 사내에 보안 요구사항을 정의할 인력이 없는 기업
- 내부 정보보안 검토나 그룹사 심사를 통과해야 하는데 제출할 문서를 개발사에서 받지 못하고 있는 기업
- 해외 단가는 매력적인데 계약과 책임 소재를 국내에 두어야 하는 기업
- 웹 개발 외주 또는 앱 개발 외주를 3개월 이상 규모로 검토 중인 기업
반대로 권하지 않습니다
- 사내에 보안 담당자와 개발 리드가 이미 있는 기업. 권한 표와 위탁 문서를 직접 관리하실 수 있다면 해외 인력을 직접 계약하는 편이 더 쌉니다. 저희 구조의 가치가 정확히 그 관리 업무에 있기 때문입니다.
- 망분리 환경 안에서만 개발이 가능한 프로젝트. 물리적으로 격리된 내부망 상주가 조건이라면 원격 전담팀 구조는 맞지 않습니다.
- 2~3주 안에 결과물이 필요한 프로젝트. 전담팀 구성에만 2~4주가 걸립니다.
- 가장 낮은 견적이 유일한 기준인 발주. 권한 분리, 가명 데이터셋 준비, 문서 인계를 계약에 넣으면 견적은 올라갑니다. 그 차액이 무엇을 사는 것인지가 이 글의 내용입니다.
자주 묻는 질문
개인정보가 포함된 시스템도 맡길 수 있나요?
가능합니다. 다만 상담 단계에서 개인정보가 지나가는 구간을 먼저 정리하고, 개발·테스트에 실데이터를 쓰지 않는 것을 기본으로 설계합니다. 위탁 계약과 접근 권한 표는 착수 전에 문서로 확정합니다. 국외 이전 고지가 필요한 경우 그 범위도 이 단계에서 정리합니다.
소스코드 소유권은 어떻게 되나요?
발주사 귀속입니다. API 명세서, DB 스키마, 배포 절차 문서까지 함께 인계합니다. 이후 유지보수를 다른 회사가 맡아도 이어받을 수 있는 상태로 넘기는 것을 기준으로 삼습니다. 저장소와 클라우드 계정을 발주사 명의로 두는 것도 같은 이유입니다.
해외 개발팀인데 의사소통은 어떻게 하나요?
발주사는 한국인 PM하고만 한국어로 소통합니다. 요구사항 정의, 일정 관리, 검수가 모두 PM의 책임 범위입니다. 개발팀과의 영어 소통은 PM이 담당하며 발주사가 부담하지 않습니다. 보안 관련 요청도 같은 경로로 처리됩니다.
기획서가 없는데 견적을 받을 수 있나요?
가능합니다. 해결하려는 문제, 주요 사용자, 필수 기능 3~5개, 일정과 예산 범위만 알려주시면 개략 견적을 드립니다. 개인정보나 결제가 포함되는지만 함께 알려주시면 보안 관련 공수도 처음부터 견적에 반영합니다.
비용은 어떤 기준으로 산정되나요?
등급별 단가에 투입 기간을 곱하는 방식입니다. 기획, 디자인, 개발, QA, 배포, 유지보수를 항목별로 구분해 제시합니다. 견적이 착수 후에 늘어나는 구조적 이유는 IT 외주개발 비용이 견적을 넘어서는 지점에 정리해 두었습니다.
진행 중에 팀 규모를 조정할 수 있나요?
가능합니다. 전담팀, 장기 협업, 인력 단위, 프로젝트 단위 중에서 선택하실 수 있고 진행 중 조정도 가능합니다. 인력이 빠질 때 계정 회수와 권한 해제가 함께 처리되는 것이 조정 절차의 일부입니다.
정리
외주 개발 보안에서 실제로 갈리는 것은 개발자가 어느 나라에 있느냐가 아니라, 접근 권한·실데이터 사용·위탁 관계·저장소 소유·종료 시 회수를 누가 정의하고 관리하느냐입니다. 이 다섯 가지를 발주사가 직접 관리할 수 있다면 해외에 직접 발주하는 것이 가장 저렴합니다. 관리할 사람이 없다면, 단가를 아끼는 결정이 법무와 보안 업무를 사내로 옮겨오는 결정이 됩니다. 이미 진행 중인 프로젝트에서 이 문서들을 받지 못하고 있다면 개발사 교체를 언제 결정해야 하는지를 함께 검토해 보시기 바랍니다.
무료 상담
인도 개발팀, 직접 관리하지 않아도 됩니다
디비컨설팅은 한국인 PM이 요구사항 정의부터 일정 관리까지 책임집니다. 언어와 시차 부담을 고객사가 떠안지 않는 구조로 진행됩니다.
한국인 PM 직접 응대 · 영업일 기준 24시간 이내 회신 · 상담 무료