[카테고리:] 글로벌 개발 운영

  • 서버 운영 유지보수, 출시 다음 날 장애가 나면 누가 대응하는가 — 인수 전에 정해야 할 6가지

    서버 운영 유지보수, 출시 다음 날 장애가 나면 누가 대응하는가 — 인수 전에 정해야 할 6가지

    서버 운영 유지보수는 개발이 끝난 뒤에 생각하면 이미 늦습니다. 출시 당일까지는 모두가 화면을 보고 있습니다. 그런데 그 다음 주 화요일 새벽 두 시, 결제가 되지 않는다는 문의가 쌓이기 시작하면 상황이 완전히 달라집니다. 발주사 담당자는 개발사 PM에게 전화를 걸지만 받지 않습니다. 아침이 되어 연락이 닿으면, 프로젝트를 만들었던 개발자는 이미 다른 프로젝트에 배정되었다는 답을 듣습니다. 계약서에는 ‘유지보수 1년’이라고 적혀 있습니다. 그런데 그 한 줄이 지금 이 장애를 누가 몇 시간 안에 고치는지는 아무것도 정해주지 않습니다.

    디비컨설팅은 100건 이상의 웹·앱·플랫폼 프로젝트를 구축하고 운영까지 이어받아 왔습니다. 삼성물산 홈닉, GS건설 엘리시안 리조트, 하나투어 하나오픈챗, LS일렉트릭 테크스퀘어, 가천대학교 학사관리 시스템처럼 출시 이후에도 계속 돌아가야 하는 시스템들입니다. 그 경험에서 반복적으로 확인한 것은, 운영 단계의 사고가 기술 문제로 시작되는 경우는 드물다는 사실입니다. 대부분은 ‘누가 책임지는지’를 발주 단계에서 정하지 않은 결과로 나타납니다.

    출시 직후가 가장 위험한 구간인 이유

    개발 기간 중에는 모든 관심이 프로젝트에 집중되어 있습니다. 개발자도 배정되어 있고, PM도 매주 회의를 잡고, 문제가 생기면 그 자리에서 잡힙니다. 문제는 검수가 끝나고 잔금이 지급된 다음부터입니다. 프로젝트 조직은 해산되고, 시스템은 그때부터 실제 사용자를 받기 시작합니다. 관심이 가장 낮아지는 시점과 부하가 가장 높아지는 시점이 겹칩니다.

    실사용자는 테스트 데이터처럼 행동하지 않습니다

    검수 환경에서는 수십 건의 데이터로 확인합니다. 실제 서비스에서는 첫 주에 수천 건이 들어옵니다. 동시 접속, 이미지 업로드 용량, 푸시 발송량, 결제 재시도 같은 항목은 실사용 트래픽을 받아본 뒤에야 한계가 드러납니다. 개발 검수 단계에서 기능이 모두 통과했다는 것과, 실제 부하에서 견딘다는 것은 다른 이야기입니다.

    장애는 대부분 코드가 아니라 연결 지점에서 납니다

    운영 중 실제로 서비스를 멈추는 원인은 대개 외부와 맞닿은 부분입니다. 결제 대행사 인증서 만료, 문자·알림톡 발송 한도 초과, 도메인이나 SSL 인증서 갱신 누락, 서버 디스크 용량 초과, 외부 API 사양 변경. 어느 것도 개발사가 잘못 만들어서 생긴 문제가 아닙니다. 그래서 ‘하자보수’에 해당하지 않고, 그래서 아무도 자기 일이라고 생각하지 않습니다.

    만든 사람이 남아 있지 않으면 대응 시간이 몇 배로 늘어납니다

    같은 장애를, 그 코드를 직접 쓴 개발자는 한 시간 안에 원인을 찾습니다. 처음 보는 개발자는 구조를 파악하는 데만 이틀이 걸립니다. 문서가 없으면 더 걸립니다. 유지보수 계약이 ‘월 몇 시간 지원’ 형태로만 되어 있으면, 발주사는 그 파악 시간까지 자기 비용으로 지불하게 됩니다.

    SLA를 꼼꼼히 써도 해결되지 않는 부분

    이 문제를 검색하면 대부분 ‘SLA를 제대로 쓰라’는 조언이 나옵니다. 응답 시간, 복구 시간, 가동률을 숫자로 못 박으라는 것입니다. 맞는 조언이고, 개발 외주 계약서에 반드시 들어가야 하는 항목입니다.

    다만 SLA는 약속을 문서로 만드는 장치이고, 그 약속을 실행할 사람이 남아 있는지는 다른 문제입니다. 프로젝트 단위로 발주하면, 개발사는 납품 시점에 그 인력을 다음 프로젝트로 옮깁니다. 계약상 ‘4시간 내 응답’은 지켜집니다. 접수 담당자가 4시간 안에 접수했다는 뜻이기 때문입니다. 실제로 코드를 열어볼 사람이 언제 붙는지는 SLA에 적혀 있지 않습니다.

    그래서 운영 문제는 조항의 문제가 아니라 팀 연속성의 문제입니다. 계약서를 강하게 쓰는 것보다, 만든 팀이 남는 구조로 발주하는 것이 먼저입니다.

    발주사가 실제로 선택하는 세 가지 구조

    운영을 누가 맡느냐는 결국 어떤 구조로 발주했는지에 따라 결정됩니다. 선택지는 세 가지입니다.

    국내 개발사 (프로젝트 단위)해외 직접 발주한국 PM + 글로벌 개발팀
    개발 단가높음낮음낮음
    출시 후 인력 잔류낮음보통높음
    장애 시 1차 응답 주체접수 창구발주사 본인한국 PM
    업무시간 외 장애 대응어려움발주사가 직접 대응시차를 활용해 커버
    커뮤니케이션 언어한국어영어한국어
    발주사 담당자 투입 시간보통매우 많음적음
    총비용 관점비쌈기대만큼 안 싸다실질 절감

    해외에 직접 발주하면 단가는 분명히 내려갑니다. 문제는 운영 단계입니다. 장애가 났을 때 상황을 정리하고, 우선순위를 정하고, 영어로 지시하고, 조치 결과를 검증하는 일이 전부 발주사 담당자에게 넘어옵니다. 사내에 그 일을 할 개발 인력이 없다면, 절감한 단가는 담당자의 밤과 주말로 지불됩니다.

    반대로 시차는 제대로 설계하면 오히려 자산입니다. 한국 시간 새벽은 인도 기준으로 업무 시간입니다. 한국인 PM이 접수와 판단을 맡고 글로벌 개발팀이 그 시간대에 손을 대는 구조라면, 국내 개발사가 ‘내일 오전에 확인하겠습니다’라고 답하는 시간에 이미 조치가 진행됩니다.

    인수 전에 정해야 할 6가지

    운영을 넘겨받기 전에 다음 여섯 가지는 문서로 확정하시기를 권합니다. 여섯 항목 모두 개발이 끝난 뒤에는 협상력이 급격히 떨어지는 항목입니다.

    1. 장애 등급과 등급별 대응 시간

    ‘신속히 대응’은 기준이 아닙니다. 서비스 전체 중단, 핵심 기능 장애, 일부 화면 오류를 등급으로 나누고, 등급별로 최초 응답 시간과 임시 복구 목표를 각각 적으십시오. 특히 ‘최초 응답’과 ‘복구 착수’를 구분해서 쓰는 것이 중요합니다. 이 둘을 한 문장으로 합쳐 두면 접수만으로 의무가 이행됩니다.

    2. 대응 시간대와 시차 처리 주체

    평일 09-18시인지, 24시간인지, 주말과 공휴일은 어떻게 되는지를 명시합니다. 해외 인력이 포함된 팀이라면 시차를 누가 흡수하는지가 핵심입니다. 발주사가 영어로 직접 연락해야 하는 구조인지, 한국인 PM이 창구가 되는 구조인지에 따라 담당자의 실제 부담이 완전히 달라집니다.

    3. 서버·도메인·계정의 명의

    클라우드 계정, 도메인, SSL 인증서, 앱스토어와 구글 플레이 개발자 계정, 결제 대행사 가맹점 계정. 이것들이 개발사 명의로 되어 있으면 나중에 업체를 바꿀 때 서비스를 인질로 잡힌 상태가 됩니다. 가능하면 전부 발주사 명의로 개설하고, 개발사에는 접근 권한만 부여하십시오. 이미 개발사 명의로 진행되었다면 개발사 교체를 검토하기 전에 명의 이전 절차부터 확인해야 합니다.

    4. 운영 서버 배포 권한과 절차

    누가 운영 서버에 코드를 반영할 수 있는지, 반영 전에 누구의 승인이 필요한지, 문제가 생겼을 때 되돌리는 절차가 무엇인지를 정합니다. 권한이 한 사람에게만 있으면 그 사람이 휴가일 때 서비스가 멈춥니다. 반대로 아무나 반영할 수 있으면 원인 추적이 불가능해집니다.

    5. 하자보수와 유지보수의 경계

    계약한 기능이 명세대로 동작하지 않는 것은 하자이고 무상입니다. 새 기능을 추가하는 것은 유상입니다. 분쟁은 그 사이에서 발생합니다. 외부 API 사양이 바뀌어서 연동이 깨진 경우, OS 버전이 올라가서 화면이 틀어진 경우, 사용자가 늘어서 느려진 경우는 어느 쪽인지 미리 적어두어야 합니다. 비용 산정 구조 자체는 앱 유지보수 비용에서 항목별로 정리해 두었습니다.

    6. 원 개발 인력의 잔류 여부와 인계 문서

    가장 중요하지만 가장 자주 빠지는 항목입니다. 만든 개발자 중 몇 명이 운영 기간에도 남는지, 남지 않는다면 무엇을 문서로 남기는지를 확정하십시오. 최소한 API 명세, DB 스키마, 배포 절차, 외부 연동 계정 목록, 알려진 이슈 목록은 인계 대상이어야 합니다. 이 문서가 없으면 나머지 다섯 항목을 아무리 잘 써도 대응 속도가 나오지 않습니다.

    디비컨설팅이 운영을 이어받는 방식

    IT 아웃소싱을 전담팀 형태로 진행하기 때문에, 운영은 별도 단계가 아니라 같은 팀이 계속 맡는 구간입니다. 진행 절차는 다섯 단계입니다.

    1. 상담 및 요구 분석 — 비즈니스 목표와 기술 요건을 한국어로 문서화합니다. 이 단계에서 운영 기준까지 함께 정의합니다. 장애 등급, 대응 시간대, 계정 명의를 개발 착수 전에 정해두면 인수 시점의 협상이 사라집니다. 무엇을 문서로 정리해야 하는지는 요구사항 정의서에서 다뤘습니다.
    2. 개발팀 구성 — 전담팀을 2~4주 안에 구성합니다. 인력 단위가 아니라 팀 단위로 배정되기 때문에, 출시 이후에도 같은 인원이 유지됩니다.
    3. 프로젝트 개발 — 애자일 방식으로 진행하고 진행 상황을 투명하게 공유합니다. 발주사 담당자가 하루를 조율에 쓰지 않는 것이 기준입니다.
    4. 테스트 및 배포 — QA 프로세스를 거친 뒤 배포합니다. QA를 전담 조직이 맡는지 개발자가 겸하는지의 차이는 QA 전담팀에서 설명했습니다.
    5. 운영 및 유지보수 — 문서와 함께 인계하고 장기적으로 지원합니다. 소스코드는 발주사에 귀속되며, API 명세·DB 스키마·배포 절차 문서까지 인계 대상입니다.

    구조의 핵심은 단순합니다. 발주사는 한국인 PM 한 사람과 한국어로 소통하고, 그 PM이 요구사항 정의·일정·검수·장애 접수와 판단을 책임집니다. 글로벌 개발팀을 발주사가 직접 관리하지 않습니다.

    출시 후에도 계속 돌아가고 있는 시스템들

    운영을 감당할 수 있는지는 실제로 운영해 본 시스템으로 판단하시는 편이 정확합니다.

    • 삼성물산 — 홈닉 · 주거 플랫폼 앱. 입주민이 매일 쓰는 서비스로, 중단이 곧 민원이 되는 유형입니다.
    • GS건설 — 엘리시안 리조트 · 리조트 웹과 앱 통합 구축. 예약이 몰리는 성수기 부하를 전제로 설계했습니다.
    • 하나투어 — 하나오픈챗 · 여행 상담 채팅 서비스. 실시간 응답이 서비스 품질 그 자체인 구조입니다.
    • LS일렉트릭 — 테크스퀘어 · 산업 B2B 거래 플랫폼.
    • 직방 — 호갱노노 · 부동산 데이터 서비스.
    • 가천대학교 · 학사관리 시스템. 수강신청처럼 특정 시점에 부하가 집중되는 시스템입니다.
    • 센터필드 · 센트로폴리스 · 그랑서울 · 프라임 오피스 빌딩 관리 시스템.
    • 교보생명 · 사내벤처(글펍) 커뮤니티 서비스.

    교육, 금융·핀테크, 헬스케어, 제조·물류, 이커머스, 스마트빌딩·IoT 영역의 구축 경험이 있습니다. 전체 목록은 포트폴리오에서 확인하실 수 있습니다.

    이런 기업에 적합합니다

    • 사내에 개발 인력이 없거나 한두 명뿐이어서, 장애 시 판단을 내려줄 사람이 없는 기업
    • 이미 출시한 서비스가 있는데 만든 개발사와 연락이 잘 되지 않는 기업
    • 구축과 운영을 한 팀에 맡겨 인계 손실을 줄이고 싶은 기업
    • 실사용자가 매일 쓰는 서비스여서 중단 시간이 그대로 비용이 되는 기업
    • 웹 개발 외주 또는 앱 개발 외주를 준비 중이면서, 발주 단계에서 운영 조건까지 함께 정하고 싶은 기업

    반대로 권하지 않습니다

    • 사내에 운영 조직이 이미 있는 경우. 인프라 담당과 백엔드 인력이 상시 대기하는 조직이라면, 외부에 운영을 맡기는 것이 오히려 단계를 늘립니다. 필요한 구간만 인력 단위로 보강하는 편이 낫습니다.
    • 내부 정책상 외부 인력의 운영 서버 접근이 불가능한 경우. 접근 권한 없이 장애 대응을 위탁하면 책임만 이전되고 조치는 되지 않습니다.
    • 월 운영 예산을 전혀 잡지 않은 경우. 구축비만 확보하고 운영비를 0으로 두면, 어떤 구조를 택하든 두세 달 안에 같은 문제가 반복됩니다. 이 경우에는 구축 범위를 줄여서 운영 예산을 확보하는 것이 먼저입니다.
    • 단순 서버 임대나 모니터링 도구만 필요한 경우. 그것은 호스팅 업체의 영역이고, 개발팀을 붙일 필요가 없습니다.

    자주 묻는 질문

    해외 개발팀이 대응하는데 의사소통은 어떻게 하나요?

    발주사는 한국인 PM하고만 한국어로 소통합니다. 장애 접수, 상황 판단, 우선순위 결정, 조치 결과 확인이 모두 PM 책임입니다. 발주사가 영어로 개발자에게 직접 지시하는 상황은 발생하지 않습니다.

    소스코드와 서버는 누구 소유가 되나요?

    소스코드는 발주사에 귀속됩니다. API 명세, DB 스키마, 배포 절차 문서까지 인계 대상입니다. 서버와 클라우드 계정도 발주사 명의로 개설하는 것을 권장하며, 저희는 필요한 접근 권한만 받아 운영합니다. 언제든 다른 업체로 이관하거나 내부 인력으로 전환할 수 있는 상태를 유지하는 것이 원칙입니다.

    다른 회사가 만든 시스템의 운영만 맡길 수 있나요?

    가능합니다. 다만 인계 자료의 상태를 먼저 확인해야 합니다. 소스코드 접근, 서버와 계정 권한, DB 구조, 외부 연동 목록이 확보되는지에 따라 착수 시점이 달라집니다. 자료가 부족하면 구조 파악 기간을 별도로 잡고, 그 결과를 문서로 남긴 뒤 운영에 들어갑니다.

    기획서나 문서가 없는데 견적을 받을 수 있나요?

    가능합니다. 해결하려는 문제, 주요 사용자, 필수 기능 3~5개, 일정과 예산 범위만 있으면 개략 견적을 드립니다. 운영 위탁의 경우에는 현재 서비스 주소, 월 사용자 규모, 최근 발생한 장애 유형 정도만 알려주시면 검토가 가능합니다.

    운영 중에 팀 규모를 조정할 수 있나요?

    가능합니다. 전담팀, 장기 협업, 인력 단위, 프로젝트 단위 중에서 선택할 수 있고 진행 중에도 조정할 수 있습니다. 출시 직후 몇 달은 인력을 두텁게 두고 안정화된 뒤 축소하는 방식이 일반적입니다.

    정리

    서버 운영 유지보수에서 실제로 문제가 되는 것은 계약서에 적힌 시간이 아니라, 그 시간을 지킬 사람이 남아 있는지입니다. 장애 등급, 대응 시간대, 계정 명의, 배포 권한, 하자와 유지보수의 경계, 원 개발 인력의 잔류 여부 — 이 여섯 가지를 인수 전에 문서로 정해두면 대부분의 분쟁이 사라집니다. 그리고 이 여섯 가지가 자연스럽게 지켜지는 구조는 구축과 운영을 같은 팀이 맡고, 그 팀과의 소통을 한국인 PM이 책임지는 형태입니다. IT 외주에서 분쟁이 반복되는 이유도 결국 같은 지점에 있습니다.

    무료 상담

    인도 개발팀, 직접 관리하지 않아도 됩니다

    디비컨설팅은 한국인 PM이 요구사항 정의부터 일정 관리까지 책임집니다. 언어와 시차 부담을 고객사가 떠안지 않는 구조로 진행됩니다.

    개발팀 구성 상담받기 →

    한국인 PM 직접 응대 · 영업일 기준 24시간 이내 회신 · 상담 무료

  • 외주 개발 보안, 소스코드는 어디까지 안전한가 — 해외 개발팀에 맡길 때 실제로 통제해야 하는 것

    외주 개발 보안, 소스코드는 어디까지 안전한가 — 해외 개발팀에 맡길 때 실제로 통제해야 하는 것

    외주 개발 보안은 대개 견적이 끝난 다음에 문제가 됩니다. 개발사를 정하고, 금액을 맞추고, 착수 일정까지 잡아 둔 상태에서 사내 정보보안 담당자나 법무 검토가 들어옵니다. 질문은 거의 항상 같은 세 가지입니다. 개발자가 어느 나라에 있습니까. 우리 고객 데이터에 접근합니까. 사고가 나면 누구에게 책임을 묻습니까.

    이 세 질문에 문서로 답하지 못하면 프로젝트는 그 자리에서 멈춥니다. 개발사의 기술이 부족해서가 아닙니다. 통제 구조를 설명할 수 있는 사람이 발주사 안에 없기 때문입니다. 그리고 이 검토는 착수 직전이 아니라 개발사를 고르는 단계에서 이미 끝나 있어야 하는 일입니다.

    디비컨설팅은 삼성물산, GS건설, 하나투어, 직방, LS일렉트릭, 교보생명, 가천대학교 등과 100건 이상의 웹·앱·플랫폼 프로젝트를 수행해 왔습니다. 대기업 건설·상사, 보험, 대학, 산업 B2B 플랫폼이 모두 포함됩니다. 그 과정에서 반복해서 확인한 것이 있습니다. 보안 문제는 개발팀이 해외에 있어서 생기는 것이 아니라, 통제 지점이 계약서와 프로세스 어디에도 정의되지 않아서 생깁니다.

    사고는 “해외라서” 나지 않습니다

    국내 개발사에 맡기든 해외 팀에 맡기든 실제로 문제가 생기는 자리는 같습니다. 다만 국내 발주에서는 그 자리가 관행으로 덮여 있고, 해외 발주에서는 덮이지 않은 채 드러납니다. 반복해서 나타나는 구멍은 세 개입니다.

    계정이 사람이 아니라 팀 단위로 발급됩니다

    서버, 코드 저장소, 관리자 페이지 계정을 개발사에 하나씩 넘기고 “개발팀에서 알아서 쓰세요”로 끝나는 경우가 많습니다. 이 상태에서는 누가 언제 무엇을 봤는지 기록이 남지 않습니다. 인력이 교체되어도 계정은 그대로 남고, 계약이 끝나도 회수 대상이 특정되지 않습니다.

    사고가 났을 때 발주사를 실제로 곤란하게 만드는 것은 유출 자체보다 경로를 특정할 수 없다는 사실입니다. 감사에도, 고객 문의에도 답할 근거가 없습니다.

    실제 데이터가 개발 환경으로 넘어갑니다

    테스트를 제대로 하려면 실제와 비슷한 데이터가 필요합니다. 그래서 운영 데이터베이스를 그대로 복사해 개발 환경에 붓는 일이 흔하게 일어납니다. 이 순간 고객 이름, 연락처, 결제 이력이 관리 범위 밖으로 나갑니다.

    이 결정은 보통 계약서에 없습니다. 개발 중반에 실무자끼리 구두로 정해집니다. 발주사 담당자가 승인한 기억조차 없는 경우가 드물지 않습니다.

    계약 상대와 코드를 만지는 사람이 다릅니다

    해외 개발사나 프리랜서 플랫폼을 통해 직접 발주하면, 계약서에 서명한 주체와 실제로 코드를 쓰는 사람이 서로 다른 나라에 있는 구조가 만들어집니다. 재하도급이 한 단계 더 들어가면 발주사는 최종 작업자가 누구인지 알지 못합니다.

    이 구조에서 비밀유지 약정은 서류로만 존재합니다. 위반을 확인할 방법도, 실행할 관할도 발주사 쪽에 없기 때문입니다. IT 외주 프로젝트가 납기 후 분쟁으로 끝나는 구조와 같은 뿌리에서 나오는 문제입니다.

    발주 전에 문서로 확인해야 할 다섯 가지

    보안 인증서를 받아 보는 것보다 아래 다섯 개의 답을 문서로 받는 편이 실제로 더 효과가 있습니다. 인증은 조직의 상태를 말해 주지만, 아래 항목은 이 프로젝트에서 무엇이 어떻게 다뤄지는지를 말해 주기 때문입니다.

    1. 접근 권한 — 누가, 어떤 계정으로, 무엇에

    투입 인력별로 계정을 따로 발급하는지, 접근 대상이 역할에 맞게 제한되는지, 접속 기록이 남는지를 확인하십시오. 요청할 문서는 한 장이면 됩니다. 이름, 역할, 접근 대상 시스템, 권한 수준이 적힌 표입니다. 이 표를 만들 수 없다는 답이 돌아온다면 그 답 자체가 결론입니다.

    2. 개발·테스트 데이터 — 실데이터를 쓸 것인가

    원칙은 쓰지 않는 것이고, 대안은 가명 처리한 데이터셋입니다. 불가피하게 실데이터가 필요한 구간이 있다면 그 구간과 기간, 승인 절차를 요구사항 정의서 단계에서 미리 적어 두어야 합니다. 개발 중반에 정하면 대부분 편한 쪽으로 결정됩니다.

    3. 개인정보 처리 위탁과 국외 이전

    개인정보가 포함된 시스템을 외부에 맡기면 위탁 관계가 생기고, 처리 인력이 국외에 있으면 국외 이전 문제가 따라옵니다. 확인할 것은 두 가지입니다. 위탁 계약이 문서로 존재하는지, 그리고 수탁자로 누가 적히는지입니다.

    계약 상대가 국내 법인이면 발주사의 책임 추적 지점이 국내에 남습니다. 재위탁이 있다면 그 범위와 대상을 그 법인이 문서로 관리하고, 발주사는 한 단계만 확인하면 됩니다. 반면 해외 개발사와 직접 계약하면 위탁 관계의 관리 책임이 통째로 발주사에게 넘어옵니다. 단가를 아끼려던 결정이 법무·보안 업무를 발주사 내부로 옮겨오는 결정이 되는 지점입니다.

    4. 코드와 산출물이 누구 계정에 보관되는가

    이 항목은 순서 하나로 결과가 뒤집힙니다. 개발사 조직 계정에 저장소를 만들고 발주사를 초대하는 방식이면, 계약이 끝날 때 나가는 쪽이 발주사입니다. 반대로 발주사 계정에 저장소를 두고 개발 인력을 초대하면, 종료 시점에 초대를 해제하는 것으로 끝납니다.

    서버와 클라우드 계정도 같습니다. 결제 수단이 개발사 카드로 등록되어 있으면 인프라의 소유권이 개발사에 있는 것과 같은 상태가 됩니다. 착수 첫 주에 정하면 비용이 들지 않고, 종료 직전에 정하려 하면 협상 사안이 됩니다.

    5. 종료 시점의 회수 절차

    계약 종료일에 무엇이 회수되는지 목록으로 받아 두십시오. 계정 비활성화, 로컬 사본 삭제 확인, 외부 연동 서비스의 키 재발급, 문서 인계입니다. 특히 결제·문자 발송·지도·푸시처럼 개발사 계정으로 붙어 있는 외부 서비스는 계약이 끝나도 서비스의 일부가 개발사 손에 남습니다.

    이 다섯 항목은 별도 보안 부속서로 만들기보다 개발 외주 계약서의 산출물·검수 조항과 한 묶음으로 두는 편이 실효성이 있습니다. 부속서는 읽히지 않지만 검수 기준은 대금과 연결되어 있기 때문입니다.

    세 가지 발주 방식은 보안에서 이렇게 갈립니다

    한국 기업이 실제로 마주하는 선택지는 “국내냐 해외냐”가 아닙니다. 위의 다섯 항목을 누가 정의하고 누가 관리하는가로 갈립니다.

    국내 개발사해외 직접 발주한국 PM + 글로벌 개발팀
    계약 상대국내 법인해외 법인 또는 개인국내 법인
    보안 요구사항 작성개발사발주사 본인한국 PM
    접근 권한 관리 주체개발사발주사 본인한국 PM
    최종 작업자 확인가능어려움가능
    사고 시 책임 추적가능어려움가능
    커뮤니케이션 언어한국어영어한국어
    개발 단가높음낮음낮음
    발주사 담당자 투입 시간보통매우 많음적음

    해외 직접 발주가 위험한 이유는 개발자의 국적이 아닙니다. 통제의 주체가 발주사 본인으로 넘어오기 때문입니다. 보안 요구사항을 영어로 쓰고, 계정 권한 표를 직접 관리하고, 위탁·이전 문서를 직접 챙길 인력이 사내에 있다면 직접 발주가 가장 쌉니다. 정말 그렇습니다. 그 인력이 없는 회사에서만 단가 절감이 법무·보안 업무로 되돌아옵니다.

    인도를 비롯한 해외 개발 시장이 단순 인력 공급에서 관리 체계를 갖춘 파트너십으로 이동해 온 배경은 인도 IT 아웃소싱의 진화에 따로 정리해 두었습니다.

    디비컨설팅이 이 지점들을 통제하는 방식

    IT 아웃소싱 프로젝트는 다음 5단계로 진행됩니다. 위의 다섯 항목이 각 단계 어디에서 정해지는지 함께 적었습니다.

    1. 상담 및 요구 분석 — 비즈니스 목표와 기술 요구사항을 한국어 문서로 정리합니다. 실데이터 사용 여부, 개인정보가 지나가는 구간, 접근이 필요한 시스템 범위를 이 단계에서 확정합니다. 개발 중반에 구두로 정해지는 일이 없도록 하는 것이 목적입니다.
    2. 개발팀 구성 — 전담팀을 2~4주 안에 구성합니다. 팀이 확정되면 인력별 계정과 권한 수준이 표로 정리됩니다. 팀 계정 하나를 넘기는 방식이 아닙니다.
    3. 프로젝트 개발 — 애자일로 진행하며 진행 상황을 투명하게 공유합니다. 발주사는 한국인 PM하고만 한국어로 소통하고, 개발팀과의 영어 소통과 권한 관리는 PM이 맡습니다.
    4. 테스트 및 배포 — QA 프로세스를 거쳐 릴리스합니다.
    5. 운영 및 유지보수문서와 함께 인계합니다. 소스코드는 발주사 귀속이며 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시간 이내 회신 · 상담 무료