보안 기업 RedAccess는 AI 코딩 도구로 만들고 해당 도구 자체의 호스팅에 게시한 앱을 조사해, 보안이나 인증이 사실상 전혀 없는 앱을 5,000개 넘게 발견했습니다. Wired에 제공한 스크린샷 중에는 의사의 개인정보까지 포함된 병원 업무 배정표로 보이는 화면도 있었습니다.
AI 코딩 도구가 쉽게 만든 부분은 앱을 만드는 작업입니다. HR 팀의 AI 제작 앱에서 데이터가 노출되는 것은 그다음입니다. 휴가 관리 도구나 면접 평가표가 공개 링크 하나, 관리자 로그인 하나, 그 뒤의 전체 직원 테이블이라는 데모 상태 그대로 운영을 시작할 때 문제가 생깁니다.
요약
- 누구를 채용하거나 승진시킬지, 또는 사람을 어떻게 평가할지 결정하는 데 도움을 주는 도구는 EU AI Act에 따라 고위험으로 분류될 수 있습니다. 누구든 점수를 매기기 전에 IT와 법무 또는 DPO에게 검토를 요청해야 합니다.
- 직원 기록은 AI 코딩 도구 자체의 호스팅에 두지 않습니다. 기본은 팀이 관리하며 사설 네트워크에서만 접근할 수 있는 서버입니다. 관리자나 모든 직원의 접근이 필요해지면 입구에 회사 계정 로그인을 추가합니다.
- 수정은 앱을 만든 동일한 AI 도구에 요청합니다. 읽는 필드를 줄이고, HR 관리자와 관리직, 직원에게 서로 다른 화면을 제공하며, 자격 증명을 코드에서 빼고, 외부로 보내는 데이터를 줄입니다. 누가 어떤 기록을 여는지 기록하고, 보존 요건을 고려해 삭제 요청을 처리합니다. 각 작업을 확인하는 것은 직접 수행하는 검사이며, AI 자체의 보고서는 확인 근거가 되지 않습니다.
- 고용이 끝나는 날 도구 접근도 끝나야 하고, 이름이 명확히 지정된 한 사람이 도구를 책임져야 합니다. 서버 위치를 고르는 것만으로 규정을 준수하게 되는 것은 아닙니다.
직원 데이터를 노출하는 배포 실수
AI로 만든 HR 도구는 링크를 찾은 사람, 채팅이나 코드에 붙여 넣은 자격 증명을 가진 사람, 다른 사람의 기록을 여는 동료, 데이터를 받는 외부 서비스, 퇴사자에게 직원 데이터를 노출할 수 있습니다. 누가 봤는지 기록도 없습니다. 전체 직원 테이블을 읽으면 이 모든 경로의 노출 범위가 넓어집니다.
| 실수 | 노출되는 내용 | 해결책 | 수정할 부분 |
|---|---|---|---|
| AI 도구 자체의 호스팅에 공개 링크로 게시 | URL을 아는 누구나 읽을 수 있는 휴가 관리 도구의 합리적 편의 제공 및 의료 휴가 메모 | 팀이 관리하는 사설 네트워크의 서버로 이동 | 실행 환경 |
| 데이터베이스 비밀번호나 HRIS 또는 급여 API 토큰을 채팅이나 코드에 붙여 넣기 | 채팅 기록이나 저장소를 볼 수 있는 사람이 SSN과 국가 신분증 번호를 포함한 HR 시스템에 접근 | 자격 증명을 교체하고 코드 밖에 보관 | 자격 증명 |
| 도구에 세 열만 필요하지만 전체 직원 테이블을 읽기 | 휴가 잔여일을 보여 주는 도구 안에 SSN, 급여, 이민 및 취업 허가 상태가 저장됨 | 도구에 필요한 필드에만 접근하는 데이터베이스 계정 | 필드 |
| 로그인한 모두가 모든 기록을 봄 | 관리직이 동료 관리직의 급여를 보고, 회사 전체에 성과 평가 점수가 공개됨 | 세 가지 역할을 설정하고 서버에서 확인 | 역할 |
| 후보자 데이터를 외부 서비스로 전송 | 채용 과정의 개인 식별 정보(PII: 이력서, 면접 메모)가 AI API나 분석 스크립트로 복사됨 | 도구 밖으로 나가는 데이터를 감사하고 줄이기 | 외부 전송 데이터 |
| 고용 종료 후에도 남아 있는 접근 권한 | 퇴사자 계정이나 제작자 자신의 관리자 계정으로 여전히 모두의 기록을 열 수 있음 | 회사 계정 로그인과 세션 취소를 결합해 퇴사 처리 시 접근 차단 | 퇴사 처리 |
| 누가 무엇을 열거나 삭제했는지 기록이 없음 | 편의 제공 파일을 누가 봤는지 알 수 없고 삭제 요청에 안전하게 대응할 수 없음 | 추가만 가능한 감사 로그와 보존 요건을 지키는 삭제 도구 | 감사 로그와 삭제 |
첫 번째 행이 RedAccess가 대규모로 발견한 문제입니다. RedAccess의 조사 결과에 관한 Wired 보도에서 AI 코딩 회사 네 곳 중 세 곳은 연구진의 주장에 반박했고, 나머지 한 곳은 응답하지 않았습니다. 하지만 RedAccess가 발견한 바이브 코딩 앱들이 노출된 상태였다는 사실은 부인하지 않았습니다. 저는 이를 설정 문제이자 검토 단계가 생략된 결과로 봅니다.
채용, 승진 또는 평가 대상을 결정하는 데 도움이 되는 도구인지 확인하기

AI 코딩 도구로 만들었다는 이유만으로 HR 도구가 EU AI Act의 고위험에 해당하지는 않습니다. 무엇을 하는 도구인지가 결정합니다. EU AI Act 부속서 III는 모집·선발, 승진, 해고, 업무 배정, 성과 모니터링 및 평가에 관한 결정에 사용되는 AI 시스템을 열거합니다.
따라서 실행 위치를 정하기 전에 한 가지 질문을 하세요. 이 도구가 채용, 승진, 해고, 업무 배정 또는 성과 평가에 관한 결정을 내리거나 그 결정에 영향을 주나요?
휴가 관리 도구, 입사 체크리스트, 조직 명부는 기록을 저장하고 보여 주므로 ‘아니요’에 해당합니다. 후보자의 순위를 정하는 면접 평가표나 사람에게 점수를 매기는 성과 도구, 특히 AI 모델이 점수를 매기는 도구는 ‘예’일 수 있습니다. 어느 쪽인지 모르겠다면 저는 ‘예’로 취급하고 IT와 법무가 달리 판단하도록 합니다.
이 법은 EU 회사에만 적용되지 않습니다. 제2조는 AI 시스템의 출력이 EU에서 사용되는 경우 EU 밖의 공급자와 배포자도 포괄합니다. 개정된 제113조에 따라 부속서 III의 고위험 시스템 의무는 2027년 12월 2일부터 적용됩니다. 위험 관리 시스템, 데이터 거버넌스, 기술 문서, 기록 보관, 배포자에 대한 투명성, 사람의 감독(제9조~제14조)이 포함되며, 이에 대한 평가는 IT와 법무가 담당해야 합니다.
답이 ‘예’라면 실제 후보자나 직원 단 한 명에게도 점수를 매기기 전에 멈추세요. IT와 법무 또는 데이터 보호 책임자에게 전달하세요. DPO가 있다면 DPO에게 전달합니다. 이 검사가 특정 도구의 적용 여부를 확정하지는 않으며, 누가 판단해야 하는지를 알려 줍니다. 미국 일부 주도 자동화된 채용 결정을 규제하며, 해당 규칙은 아래 표에 있습니다.
검토 준비를 미리 할 수도 있습니다. 저는 AI 도구에 자기 점수를 옹호하기보다 문제점을 제기하도록 요청합니다.
이 앱은 채용 후보자나 직원에게 점수를 매기거나 순위를 정합니다. 점수 또는 순위에 사용되는 모든 데이터 필드와 계산 단계를 나열하세요. 각각이 나이, 인종, 성별, 국적, 민족적 출신, 장애, 임신, 종교, 성적 지향과 같은 보호 대상 특성을 직접 또는 간접적으로 반영할 수 있는지 설명하세요. 확실하지 않으면 추측하지 말고 그렇게 말하세요. 이어서 이 점수의 공정성에 관해 제가 묻지 않았지만 물어야 할 내용도 지적하세요.
확인: 답을 결론이 아니라 도구 검토자를 위한 초기 목록으로 취급하고 도구 자체와 함께 전달하세요. 이 프롬프트 실행은 편향 감사가 아니며 어떤 법적 요건도 충족하지 않습니다.
HR 도구를 어디에서 실행해야 할까

직원 기록을 AI 도구 자체의 호스팅에 두지 마세요. HR 팀만 쓰는 도구는 팀이 관리하며 사설 네트워크에서만 접근 가능한 서버가 기본입니다. 관리직이나 직원에게 필요해지면 앞단에 회사 계정 로그인을 둡니다. 채용 결정 검사를 통과하지 못했거나 서버를 책임질 사람이 없다면 IT에 전달합니다.
AI 코딩 도구 자체의 호스팅에 게시하면 앱 주소는 공급자 도메인에 생깁니다. 공개 범위를 비공개로 설정하지 않으면 주소를 찾은 누구나 접근합니다. RedAccess는 해당 도메인에 대한 일반적인 Google 및 Bing 검색으로 이런 앱 수천 개를 찾았습니다. 사설 네트워크는 반대로 작동해, 가입된 기기에만 도구가 응답합니다. 회사 계정 로그인(싱글 사인온)은 동료가 기존 회사 계정으로 도구를 열고, 계정을 관리하는 서비스인 ID 공급자가 확인한다는 뜻입니다.
| 실행 환경 | 적합한 경우 | 부적합한 경우 |
|---|---|---|
| AI 도구 자체의 호스팅 | 가짜 직원 기록으로 제작 및 테스트 | 실제 기록을 하나라도 입력 |
| 팀이 관리하며 사설 네트워크에서만 접근 가능한 서버 | HR 팀 전용 도구: 휴가 관리, 입사 진행 추적, 인원 계획 | 서버를 책임질 사람이 없음 |
| 동일한 서버 앞단에 회사 계정 로그인 추가 | 관리직이나 전체 직원의 접근이 필요 | 서버 책임자가 없거나 연결할 회사 ID 시스템이 없음 |
| 관리형 배포 플랫폼 | 이미 플랫폼 공급자와 공급자 검토 예산을 편성한 대규모 조직 | 관련 예산 항목이 없는 소규모 HR 팀 |
| IT 또는 내부 엔지니어링 | 채용 결정 검사를 통과하지 못했거나 IT에 여력이 있거나 서버 책임자가 없음 | 항상 적합하지만 때로는 지원받을 수 없음 |
팀의 서버에서 실행되기 전에는 합성 데이터로 제작·테스트하세요. 실제처럼 생긴 가짜 이름, 급여, 휴가 날짜를 뜻합니다. 노트북에서 공개 주소로 연결하는 무료 터널도 공급자의 호스팅과 똑같이 공개되므로 데모 단계에서만 사용해야 합니다.
이미 있는 로그인 페이지 대신 왜 사설 네트워크일까요? 사설 네트워크에서는 외부에 전혀 응답하지 않으므로 외부인이 도구를 로드하거나 탐색하거나 비밀번호를 추측할 수 없습니다. AI 도구가 작성한 로그인 페이지만으로는 충분하지 않습니다. 누구나 접근 가능하고, 강도는 뒤의 생성 코드에 달려 있습니다. Veracode의 2025 GenAI 코드 보안 보고서는 100개 넘는 모델의 코드 샘플 중 45%가 OWASP Top 10 취약점으로 보안 테스트에 실패했다고 밝혔습니다. 이는 가장 중요한 웹 앱 보안 위험을 정리한 널리 쓰이는 목록의 취약점입니다. 그래서 저는 AI가 만든 잠금장치에 기대기보다 앱 앞단에 잠금장치를 두는 편을 택합니다.
인계 시 도구는 팀이 완전히 관리하는 임대 서버인 VPS에서 Coolify나 Dokku 같은 배포 도구로 코드부터 실행합니다. Coolify는 대시보드에서 잘못된 업데이트를 이전 버전으로 되돌릴 수도 있습니다. Coolify와 Dokku 중 선택은 주로 서버에서 실행할 앱 수와 IT 지원자가 대시보드를 선호하는지에 달려 있습니다. 사설 네트워크에는 Tailscale이나 WireGuard를 씁니다. Tailscale이 더 빠르게 설정되지만 조정 서비스는 Tailscale이 운영하고, WireGuard는 완전히 자체 호스팅합니다. 회사 계정 로그인에는 Authentik이나 Keycloak 같은 ID 공급자를 씁니다. 로그인 입구가 웹에 노출되는 곳에는 Caddy나 Nginx Proxy Manager 같은 리버스 프록시가 HTTPS를 추가합니다. 이 부분은 마지막 체크리스트와 함께 IT 지원자에게 전달하세요.
내 AI 도구에 요청할 수정 프롬프트
AI 제작 HR 앱의 안전한 배포 작업 대부분은 제작 도구가 수행할 수 있지만, 요청했을 때만 그렇습니다. 보안 연구자 Joel Margolis는 Wired에 AI 코딩 도구가 ‘요청한 일을 한다. 안전하게 하라고 요청하지 않으면 굳이 그렇게 하려고 노력하지 않는다’고 말했습니다.
아래 프롬프트를 각각 시작점으로 삼고 필드 이름과 역할을 도구에 맞게 수정하세요. 저는 AI 도구를 엔지니어, 자신을 검토자로 보기 때문에 변경 완료 보고도 초안입니다. 증거는 각 프롬프트 아래의 검사이며, 어떤 검사도 코드 읽기를 요구하지 않습니다. 실패하면 수정을 AI 도구에 돌려보내고 교훈은 AI 도구용 규칙 파일에 기록해 다음 세션이 여기에서 출발하도록 합니다. 각 프롬프트는 불확실한 부분도 표시하도록 요청합니다. 부족한 점을 인정하는 도우미가 확신에 찬 도우미보다 유용합니다. 코드와 가짜 기록을 대상으로 실행하고, 실제 기록이나 비밀번호를 채팅에 붙여 넣지 마세요.
도구가 다루는 직원 필드를 찾고 나머지는 차단하기
도구가 보관하는지도 모르는 필드를 차단할 수는 없으므로 첫 프롬프트는 감사입니다.
이 앱의 데이터베이스, 코드, 화면, 내보내기를 모두 살펴보세요. 직원이나 채용 후보자의 개인 데이터가 들어갈 수 있는 모든 필드를 나열하세요. 이름, 직원 ID, SSN 또는 국가 신분증 번호, 납세 번호, 생년월일, 집 주소, 건강 정보, 장애 상태, 합리적 편의 제공 기록, 이민 또는 취업 허가 서류, 급여, 상여금, 지분, 성과 평가, 징계 메모입니다. 각 필드를 사용하는 화면이나 기능과 앱의 주된 목적에 필요한지 설명하세요. 알 수 없다면 추측하지 말고 불확실하다고 표시하세요.
확인: 주요 화면과 내보내기를 열고 보이는 모든 개인 데이터 필드가 목록에 있는지 확인하세요. 보이지만 목록에 없는 필드가 있다면 감사에서 놓친 것이므로 다시 요청하세요.
두 번째 프롬프트는 불필요한 것을 제거합니다. 특정 필드로 제한 가능한 데이터베이스 계정, 즉 앱이 데이터베이스와 통신하는 계정을 이용합니다.
이 앱이 다음 필드만 읽도록 변경하세요: [도구에 필요한 필드 나열]. 나머지 개인 데이터 필드는 앱의 데이터 사본, 코드, 모든 화면, 모든 내보내기에서 제거하세요. 이어서 해당 필드만 읽고 휴가 신청처럼 도구 자체가 쓰는 데이터만 변경할 수 있는 별도 데이터베이스 계정을 만드세요. 앱이 이 계정을 사용하도록 바꾸세요. 파일별로 변경 내용을 정확히 보고하고 수행하지 못한 모든 사항을 설명하세요.
화면만 수정해서는 충분하지 않습니다. 앱의 데이터베이스 계정이 급여 열을 읽지 못하면 AI가 쓴 코드의 다른 버그도 이를 보여 줄 수 없습니다. 저장 데이터의 암호화 여부는 IT에 물어야 합니다. 이는 서버와 디스크 설정에 속하며 코드를 읽는 도우미가 신뢰할 만하게 확인할 수 없기 때문입니다.
확인: 일반 사용자로 로그인해 모든 화면과 내보내기를 엽니다. 제거한 필드는 하나도 나타나면 안 됩니다. 이어서 서버 관리 IT 지원자 또는 출력을 보여 주는 AI 도구에 앱의 데이터베이스 계정으로 연결해 제거한 필드를 요청하도록 하세요. 권한 거부나 필드가 없다는 오류면 통과입니다. 연결, 구문, 기타 무관한 오류는 통과가 아닙니다. 빈 열이나 실제 값이 나오면 실패입니다. 삭제 도구에서 사용할 감사 목록은 보관하세요.
HR 관리자, 관리직, 직원에게 다른 화면 제공하기
동료가 다른 사람의 급여나 팀원의 편의 제공 메모를 열면 직원 데이터가 내부로 새어 나갑니다. 역할 기반 접근 제어로 해결할 수 있으며, 아래 프롬프트는 확인 위치를 명시합니다.
세 역할로 역할 기반 접근 제어를 추가하세요. 페이지의 버튼이나 링크를 숨기는 데 그치지 말고 모든 요청을 서버에서 확인하세요.
- HR 관리자: 모든 직원 기록을 읽고 편집할 수 있습니다.
- 팀 관리자: 자신의 직속 부하 기록만 읽으며, 급여·의료·편의 제공·징계·이민 필드는 절대 보지 못합니다.
- 직원: 자기 기록만 읽을 수 있습니다.
그 밖의 모든 요청은 ‘접근 거부’(403) 응답으로 거절하세요. 역할은 로그인한 계정에서 가져오고, 사용자가 페이지나 주소창에서 입력하거나 변경할 수 있는 값에서는 절대 가져오지 마세요. 검사를 추가한 모든 위치를 나열하고 적용 여부가 불확실한 페이지나 내보내기를 표시하세요.
일부 회사는 보상 검토 중 관리직이 급여를 보게 합니다. 귀사가 그렇다면 관리직 항목을 변경하세요.
확인: 테스트 관리직과 직원을 만듭니다. 관리직으로 로그인해 직속 부하의 기록을 열고 주소를 복사한 뒤, 기록 번호를 팀 밖 사람의 번호로 바꾸어 불러옵니다. ‘접근 거부’가 나와야 합니다. 직원으로도 동료의 기록 번호를 사용해 반복하세요. 그다음 관리직 화면에 급여, 편의 제공, 이민 필드가 절대 나타나지 않는지 확인하세요.
자격 증명을 코드와 채팅에서 빼기
데이터베이스 비밀번호나 HRIS·급여 API 토큰은 시스템이 다른 시스템에 로그인할 때 쓰는 긴 키입니다. 현재 코드에서 제거해도 이전 저장 버전에 남을 수 있어 프롬프트는 이력도 묻습니다. 환경 변수가 코드 측 문제를 해결합니다. 서버가 시작 시 앱에 전달하는 값이므로 코드는 값을 포함하지 않고 이름으로 참조합니다.
프로젝트의 모든 비밀번호, API 키, 접근 토큰, 데이터베이스 연결 문자열을 찾으세요. HRIS, 급여, 이메일 시스템용도 포함합니다. 코드의 각 값을 환경 변수로 바꾸고 변수 이름 목록을 주세요. .env처럼 실제 값을 담는 파일은 코드 저장소에서 제외됐는지 확인하세요. 이어서 이전 값이 프로젝트 이력에 남은 모든 위치를 나열해 교체할 자격 증명을 알 수 있게 하세요.
가장 중요한 단계는 프롬프트가 할 수 없습니다. 채팅이나 저장소에 한 번이라도 나타난 각 자격 증명에 대해 HRIS 또는 데이터베이스 관리 콘솔에서 새 것을 발급하고 기존 것을 끄세요.
팀이 보관하는 비밀번호 사본은 자체 호스팅 Vaultwarden 서버 같은 비밀번호 관리자에 넣습니다. 팀에 적합한 선택지는 별도로 결정할 문제입니다. 이는 사람을 위해 자격 증명을 저장하며 실행 중 앱에 값을 공급하지는 않습니다. 앱은 배포 도구에서 값을 받습니다. 실행 중 앱 자체가 읽는 비밀 정보에는 HashiCorp Vault라는 더 무거운 옵션이 있으며, 필요한 팀에 중앙 정책과 교체 기능을 제공합니다.
확인: AI 도구에 현재 파일에서 이전 값을 검색하게 하고 요약 대신 표시된 검색 결과를 읽으세요. 현재 파일에는 일치 항목이 없어야 합니다. 이력의 일치는 예상된 것이며 지울 필요가 없습니다. 교체할 자격 증명의 목록이기 때문입니다. 각 자격 증명이 무효라는 증거는 HRIS 또는 데이터베이스 관리 콘솔에 있습니다. 모든 기존 자격 증명이 취소됨으로 표시되거나 IT가 시스템에서 거부함을 확인합니다.
직원 데이터 중 무엇이 도구 밖으로 나가는지 확인하기
후보자 면접 메모가 외부 서비스에 전송된 뒤에는 내 도구의 기록을 삭제해도 그 서비스가 보관할 수 있는 사본까지 삭제되지는 않습니다. 따라서 처음부터 적게 보내는 것이 해결책입니다.
이 앱의 모든 외부 호출을 감사하세요. OpenAI, Anthropic, 기타 AI API, HRIS나 ATS 같은 HR 시스템, 분석·오류 추적 도구, 모든 webhook을 대상으로 합니다. 각 호출에 전송되는 직원 또는 후보자 필드를 정확히 나열하세요. 수신 내용을 저장하거나 로그로 남길 가능성이 있는 서비스를 표시하고, 어떤 호출이 더 적은 데이터로 동작할 수 있는지 설명하세요. 모든 불확실한 사항을 표시하세요.
확인: 독특한 가짜 이름의 직원이나 후보자를 만들고 외부 호출을 하는 각 기능을 사용하세요. 면접 요약 생성, webhook 실행, 분석 스크립트를 불러오는 페이지 열기 등이 해당합니다. 분석 도구, 오류 추적기, ATS의 수신 webhook 로그, 요청을 표시하는 AI 공급자의 사용 로그 등 각 외부 서비스 자체의 대시보드에서 그 이름을 검색하세요. 호출에 필요한 곳에서만 나타나야 합니다. 다른 곳에 나오면 AI 도구에 해당 호출의 데이터를 줄이게 하고 다시 확인하세요. 수신 내용을 보여 주지 않는 대시보드도 있습니다. 이런 서비스와 직원 데이터를 계속 받아야 하는 서비스는 데이터 보존 조건을 회사에서 공급자 계약에 서명하는 사람에게 전달하세요.
누가 어떤 직원 기록을 열었는지 기록하기
직원이 지난 분기에 누가 급여표를 내보냈는지 묻습니다. 누가 어느 기록에 무엇을 했는지 계속 기록하는 감사 로그가 없으면 아무도 답할 수 없습니다.
감사 로그를 추가하세요. 사용자가 직원 기록을 조회·편집·내보내기·삭제할 때마다 사용자 ID, 직원 기록 ID, 작업, 변경된 필드, 시간을 담은 행을 추가하세요. 앱의 데이터베이스 계정은 로그에 행을 추가할 수 있지만 편집·삭제할 수 없도록 설정하세요. 앱에서는 HR 관리자만 로그를 읽습니다. 편집·삭제 금지가 어떻게, 어디에서 강제되는지 알려 주세요.
‘추가만 가능’은 앱의 행동 약속이 아니라 데이터베이스 계정의 권한으로 구현해야 합니다. 누가 누구의 기록을 봤는지 나타내므로 로그 자체도 개인 데이터이며 HR 관리자만 읽어야 하는 이유입니다.
확인: HR 관리자로 기록을 열고 로그를 확인해 항목이 있는지 보세요. IT나 AI 도구에 앱의 데이터베이스 계정으로 로그 행을 삭제하도록 하고 출력을 보여 달라고 하세요. 권한 오류 자체를 확인해야 합니다.
보존 규칙을 위반하지 않고 삭제 요청 처리하기
직원이 삭제를 요청했는데 일부가 회사의 보관 의무가 있는 급여 파일이면 어떻게 될까요? 단순한 프롬프트(‘모든 테이블에서 이 직원의 모든 개인 데이터를 삭제’)는 그것도 지워 두 가지 문제를 만듭니다. 고용주는 급여, 세금, 취업 허가 파일 같은 일부 기록을 보관해야 하는 경우가 많습니다. 법적 의무 준수나 법적 청구를 위해 처리가 필요한 범위에서는 GDPR의 삭제권도 적용되지 않습니다(제17조 제3항 (b), (e)). 전체 삭제 버튼을 그냥 두는 것도 위험합니다. 더 안전한 방식은 ‘요청 시 삭제’와 요청에 관계없이 회사가 보관해야 하는 보존 요건 대상 기록을 나누고 삭제 전에 계획을 보여 줍니다.
HR 관리자만 여는 삭제 요청 도구를 만드세요. 직원 ID를 입력하면 그 사람의 데이터를 가진 모든 테이블과 필드를 필드 감사의 분류별로 먼저 표시합니다. HR 관리자는 각 분류에 ‘요청 시 삭제’ 또는 ‘보관: 필수 보존’을 설정합니다. HR 관리자가 확인한 후 도구는 ‘요청 시 삭제’ 분류만 지웁니다. 로그에는 직원 ID, 시간, 확인자, 삭제 또는 보관한 분류만 남기고 그 사람의 다른 정보는 남기지 않습니다. HR 관리자가 아니면 ‘접근 거부’를 받습니다.
보존 설정은 AI 도구나 제작자의 추측이 아니라 준법 책임자 또는 DPO가 정합니다. 삭제 후에도 감사 로그에 직원 ID가 남는다고 알려 해당 식별자를 얼마나 보관할지 판단하게 하세요. 백업과 외부 서비스의 사본에는 별도의 보존 또는 삭제 절차가 필요합니다.
확인: 두 분류에 기록이 있는 테스트 직원을 만들고 하나는 ‘요청 시 삭제’, 다른 하나는 필수 보존으로 설정하세요. HR 관리자로 실행해 첫 분류만 없어졌는지 확인합니다. 이후 관리직 계정으로 도구를 열면 ‘접근 거부’여야 합니다.
DPO나 준법 책임자와 논의할 고용 규칙
HR 도구에 적용될 고용 규칙은 제작 방식이 아니라 기능과 누구의 데이터를 보관하는지에 달려 있습니다. 이는 DPO나 준법 책임자와 논의할 규칙 목록으로, 법률 자문이 아니며 어느 규칙이 귀사에 적용되는지 판단하지도 않습니다.
독일과 캘리포니아 직원의 편의 제공 메모를 보관하는 휴가 도구는 직책만 보관하는 인원 계획 도구와 다른 규칙을 수반합니다. EU AI Act 문제는 채용 결정 검사에서 다룹니다.
| 도구가… | 논의할 규칙 | 공식 출처 |
|---|---|---|
| 콜로라도 사람의 채용·승진 결정에 자동 점수나 순위를 사용 | 콜로라도 SB 26-189는 고용을 포함한 중대한 결정에 쓰이는 자동 의사결정 기술을 다루며, 의무는 2027년 1월 1일부터 시작됩니다 | 콜로라도 SB 26-189 |
| 캘리포니아 사람의 채용·승진 결정에 자동 점수나 순위를 사용 | 캘리포니아의 자동 의사결정 기술(ADMT) 규정은 2026년 1월 1일 발효했지만, ADMT로 중대한 결정을 내리는 기업은 2027년 1월 1일부터 ADMT 고유 요건을 준수해야 합니다 | CPPA의 ADMT 규정 |
| 일리노이에서 모집, 채용, 승진, 징계, 해고 또는 기타 고용 결정에 AI를 사용 | 일리노이 HB 3773은 2026년 1월 1일부터 일리노이 인권법을 개정해, 고용주가 보호 대상 집단을 차별하는 방식으로 AI를 사용하거나 우편번호를 그 대리 지표로 사용하는 것을 금지하고, 이러한 결정에 AI를 사용할 때 직원에게 알리도록 의무화했습니다 | 일리노이 Public Act 103-0804 |
| EU 내 사람의 건강·장애·편의 제공 기록 보관 | GDPR 제9조: 건강 데이터는 특별 범주이며, 고용법 의무에 필요한 처리 등을 포함한 예외가 적용되지 않으면 처리가 금지됩니다(제9조 제2항 (b)) | GDPR 제9조 |
| EU 내 직원이나 후보자의 개인 데이터 보관 | GDPR 제6조: 각 용도에는 계약이나 법적 의무 같은 적법한 처리 근거가 필요합니다 | GDPR 제6조 |
| 영국 직원 데이터 보관 | UK GDPR과 ICO의 고용 정보 지침 | ICO 고용 정보 지침 |
| 캘리포니아 직원이나 지원자 데이터 보관 | CCPA/CPRA: 조직이 CCPA 적용 대상 기업이라면 직원·지원자 데이터 면제는 2023년 1월 1일 종료되어 고용 관련 개인정보가 일반적으로 범위에 포함됩니다 | 캘리포니아 법무부 CCPA 페이지 |
서버 위치는 기록의 물리적 보관 장소를 정할 뿐 위의 규칙을 그 자체로 충족하지 않습니다. 다른 지역의 직원에 대해서는 해당 국가·주·지역의 개인정보 또는 고용 규제기관이나 법무·준법 책임자에게 먼저 확인하세요.
고용이 끝나면 접근도 끝나야 합니다
퇴사자의 마지막 날 회사 계정을 끄면 이메일, 일정, 파일이 한 번에 닫힙니다. HR 도구도 같은 단계에서 닫혀야 합니다. 회사 로그인 뒤에 두고 퇴사 처리에서 활성 세션까지 취소하면 가능합니다. 회사 로그인 뒤에 있지 않은 도구는 퇴사 체크리스트의 별도 항목으로 넣어 누군가 수동으로 계정을 제거하게 합니다.
제작자도 언젠가는 퇴사합니다. 제작자가 퇴사하거나 역할을 바꾸면 관리자로 로그인할 수 있고 서버 위치를 아는 지정된 후임자에게 책임을 넘기고 제작자 자신의 관리자 계정을 닫습니다. 퇴사 통보 기간에 찾기는 어려우므로 저는 운영 시작 전에 후임자를 정하겠습니다.
정해진 주기로 누가 각 역할을 가지고 있는지와 도구가 여전히 사용되는지 검토하세요. 접근을 넓힐 때는 HR 팀, 관리직, 전체 직원 순서로 한 단계씩 진행하고 단계마다 주소창 테스트를 다시 합니다. 사용이 끝나면 폐기하세요. 데이터베이스 계정과 자격 증명을 끄고 삭제 도구의 보존 설정에 따라 데이터를 삭제한 뒤 실행을 중지하고 사설 네트워크나 로그인 시스템에서 제거합니다.
지정된 후임자는 누군가 구축한 서버와 배포 도구, 사설 네트워크, 더 넓은 접근을 위한 회사 로그인을 인계받습니다. 당사의 Linux VPS는 root 접근을 제공하며 Coolify, Tailscale, Authentik는 각각 원클릭 앱으로 배포돼 IT 지원자가 검사에 시간을 쓸 수 있습니다. 위치는 EU의 프랑크푸르트와 암스테르담, 영국 런던, 미국 여러 도시를 포함합니다. 이는 서버가 있는 나라를 정해 DPO와의 논의에 자료를 제공하는 것이며 논의를 대신하지 않습니다.
운영 시작 체크리스트
직원 기록을 넣기 전에 아래 각 항목의 완료 여부를 확인하며, 서버 설정 담당자에게 이 목록을 전달합니다.
- 채용 결정 질문에 답했고, 모든 ‘예’를 IT와 법무에 전달했습니다.
- 도구는 AI 도구의 호스팅이 아니라 팀이 관리하는 서버에서 실행됩니다.
- 사설 네트워크나 회사 로그인을 통해서만 접근 가능합니다.
- 앱의 데이터베이스 계정이 나열된 필드만 읽습니다.
- 테스트 관리직과 직원 모두 주소창 테스트에서 ‘접근 거부’를 받습니다.
- 채팅이나 코드에 나온 모든 자격 증명을 교체했고 이전 것은 취소했습니다.
- 외부 전송 데이터 감사를 마쳤고 불필요한 필드를 제거했습니다.
- 감사 로그가 조회를 기록하고 앱 계정은 이를 편집·삭제하지 못합니다.
- 보존 설정과 고용 규칙을 DPO나 준법 책임자가 검토했습니다.
- 이름이 지정된 책임자와 대체 담당자가 있습니다.
자주 묻는 질문
HR에서 섀도 AI란 무엇인가요?
HR의 섀도 AI는 IT의 인지나 승인 없이 AI 도구 또는 그 도구로 만든 앱을 HR 데이터에 사용하는 것입니다. Cornerstone OnDemand가 전한 Sapient Insights 2026 연례 HR 시스템 조사는 HR 전문가의 80% 넘게 개인 AI 도구를 매일 쓰는 반면, HR 시스템 내장 AI를 쓰는 비율은 3%라고 밝혔습니다.
도구 제작 중 실제 직원 기록을 사용해도 되나요?
아니요. 바이브 코딩 HR 도구를 만드는 동안 실제 기록을 채팅에 넣지 마세요. 채팅 도우미에 붙여 넣기는 앱 배포와 별개인 위험이며, 운영 시작 여부에 관계없이 붙여 넣는 순간 발생합니다. 팀이 관리하는 서버에서 실행될 때까지 가짜 기록으로 제작하세요.
HR 도구가 데이터를 사용하려면 직원이 동의해야 하나요?
일반적으로 동의는 적절한 근거가 아닙니다. EDPB의 동의 지침은 ‘자유롭게 제공될 가능성이 낮으므로 고용주가 현재 또는 미래 직원의 개인 데이터를 동의에 근거해 처리하는 것은 문제가 있다고 본다’고 합니다. GDPR 제6조의 어떤 적법한 근거가 적용되는지는 DPO에게 물어야 합니다.
HR 도구의 의료 메모에 HIPAA가 적용되나요?
일반적으로 아닙니다. HIPAA의 보호 건강 정보 정의는 적용 대상 기관이 고용주 자격으로 보유하는 고용 기록의 정보를 제외합니다(45 CFR 160.103). 그렇다고 해당 메모가 규제되지 않는 것은 아니므로 준법 책임자에게 적용 규칙을 확인하세요.
토론
댓글
토론에 참여하려면 로그인하세요.