
PMO 실전 노트 · Note 19
테스트 서버였다.
데이터는 진짜였다.
테스트 데이터에 실제 이름이 있었다 · HFC Consulting
통합테스트 3주차였다. 결함 하나를 재현하려고 개발자 옆에 앉았다.
화면에 이름이 떴다. 가명이 아니었다. 그 아래 휴대전화번호가 열한 자리로 온전히 찍혀 있었다.
장면
개발자는 당황하지 않았다. 이미 알고 있는 사람의 얼굴이었다. "운영 데이터를 받아서 마스킹 스크립트를 돌렸습니다. 그런데 일부 테이블은 스크립트가 안 탔습니다. 컬럼명이 달라서요."
확인하는 데 30분이 걸렸다. 마스킹이 누락된 테이블은 네 개. 그중 하나는 고객 연락처였고, 하나는 수급인 정산 이력이었다. 테스트 서버는 개발망에 있었고, 접속 계정은 팀 단위로 공유되고 있었으며, 접근 기록은 남지 않았다. 누가 이 데이터를 언제 조회했는지 확인할 방법이 없었다.
과업지시서를 다시 읽었다. 정보보호 요건은 두 쪽이 있었다. 전부 운영 환경에 관한 것이었다. 개발 환경과 테스트 환경이라는 단어는 그 두 쪽 어디에도 없었다.
그때의 선택
선택은 둘로 보였다. 누락된 네 테이블만 다시 마스킹하고 테스트를 이어 간다. 또는 전부 멈춘다. 첫 번째는 그날 오후에 끝나는 일이었고, 두 번째는 최소 2주짜리였다. 통합테스트는 이미 일정에 여유가 없었다.
나는 두 번째를 택하되 범위를 잘랐다. 테스트를 중단하고, 적재된 데이터는 네 테이블이 아니라 전량 폐기했다. 스크립트가 네 개를 놓쳤다면 놓치지 않았다는 증거도 없다고 판단했다. 재적재는 마스킹 결과 검증 절차를 붙여 5일이 걸렸다.
가장 어려운 일은 데이터 폐기가 아니었다. 그날 오후에 발주기관에 보고하는 일이었다. 보고하지 않고 조용히 덮는 선택지가 머릿속에 있었다는 사실을, 지금도 기억한다.
복기
개발 환경과 테스트 환경은 오랫동안 계약의 사각지대였다. 과업지시서는 운영 환경을 지키고, 감리는 산출물을 보고, 보안 점검은 개통 직전에 온다. 그 사이에서 실제 데이터는 아무 조항의 보호도 받지 않은 채 개발자 노트북까지 흘러간다. 데이터가 어디까지 갈 수 있는지를 사전에 규정해 두는 일의 중요성은 채팅창 앞에서 멈춰야 할 데이터에서 다룬 분류 기준과 정확히 같은 문제다. 판단을 개인에게 맡기면 바쁜 순간에 반드시 진다.
지금이라면 세 가지를 착수 단계에 넣었을 것이다. 테스트 데이터 생성 방식을 착수 산출물로 요구한다. 마스킹 대상 컬럼 목록을 문서로 확정하고 검수기준에 포함한다. 마스킹 검증 결과를 테스트 시작의 선행 조건으로 건다. 셋 다 착수 시점에는 20분이면 되는 일이고, 사고가 난 뒤에는 2주가 되는 일이다. 검수의 기준을 첫날 합의해 두라는 검수 방어: 검수는 마지막 주에 시작되지 않는다의 논지가 보안 요건에도 그대로 적용된다.
보고에 관해서도 하나 남았다. 그날의 보고는 사고의 규모를 키우지 않았다. 오히려 발주기관이 내부 절차를 여는 근거가 되었고, 재적재 5일은 공식 일정으로 인정받았다. 덮었다면 그 5일은 수급인의 지연이 되었을 것이다.
원칙 — 운영 데이터가 개발 환경에 들어오는 순간, 개발 환경은 운영 환경이다. 환경의 등급은 서버가 아니라 데이터가 정한다.
그날 이후 나는 통합테스트 착수 회의에서 같은 질문을 먼저 한다. 이 데이터는 어디에서 왔습니까. 대답이 한 번에 나오지 않으면, 그것이 답이다.
본 사례는 실제 경험을 바탕으로 재구성·익명화되었습니다. 발주기관·수급인·사업명·시기는 특정할 수 없도록 처리했으며, 복수 사업의 요소가 합성되어 있습니다.
본 글은 일반적인 실무 관점을 정리한 것으로 개별 사안에 대한 법률 자문이 아닙니다. 개인정보 처리에 관한 구체적 판단은 관계 법령과 소관 기관의 해석을 확인하시기 바랍니다.
HFC 관점
개인정보 사고의 다수는 운영 환경이 아니라 개발·테스트 환경에서 시작됩니다. 에이치에프씨 컨설팅은 과업지시서의 정보보호 요건을 개발 환경까지 확장하고, 마스킹 기준과 검수기준을 하나로 묶어 설계해 드립니다.
1영업일 이내 답변 · 주식회사 에이치에프씨 컨설팅 · 대표이사 장기석
'PMO 실전 노트' 카테고리의 다른 글
| 이력서의 그 사람은 오지 않았다 (0) | 2026.08.24 |
|---|---|
| 그 리스크는 보고서에서 지워졌다 (0) | 2026.08.24 |
| 오픈 사흘 전, 아무도 멈추자고 말하지 않았다 (0) | 2026.08.17 |
| 장애는 하나였다, 책임질 곳은 없었다 (1) | 2026.08.17 |
| 그 지시는 회의록에 없었다 (0) | 2026.08.17 |