본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 22. 14:44

AI에 입력하기 전에 Excel과 Python으로 지정 어구를 로컬 치환하는 방법

요약

생성 AI에 데이터를 입력하기 전, 보안과 효율성을 위해 Excel과 Python을 활용하여 민감한 어구를 로컬에서 치환하는 방법을 소개합니다. 치환 규칙을 Excel로 관리하여 코드 수정 없이 유연하게 대응하며, 치환 후 사람이 직접 검토하는 프로세스를 강조합니다.

핵심 포인트

  • Excel을 활용한 유연한 치환 규칙 관리 방법
  • Python을 이용한 로컬 환경에서의 자동 치환 프로세스
  • 데이터 보안을 위한 사전 정보 정제 및 익명화 보조
  • 치환 후 반드시 사람이 검토해야 하는 보안 원칙

생성 AI (Generative AI)를 업무나 학습에서 이용할 때는 어떤 프롬프트 (Prompt)를 작성할 것인가뿐만 아니라, AI에게 전달할 정보를 사전에 정리하는 것도 중요합니다.

저는 AI에게 상담할 때, 목적에 불필요한 정보를 포함하지 않고 배경이나 조건도 필요한 범위로 좁히는 것을 기본으로 하고 있습니다.

또한, ChatGPT의 데이터 컨트롤 (Data Control)에서는 **「모든 사람을 위해 모델을 개선하기」 설정을 오프 (Off)**로 해두고 있습니다.

다만, 서비스 측의 설정에만 의존하는 것이 아니라, 입력 전 단계에서 불필요한 정보를 줄이는 것도 필요합니다.

그래서 AI에 입력할 문장에 대해, 직접 지정한 어구를 Excel로 관리하고 Python을 사용하여 로컬 환경에서 치환하는 방법을 만들었습니다.

이 기사에서는 다음 흐름을 소개합니다.

  • Excel로 치환 규칙을 관리하기
  • Python으로 지정 어구를 로컬 치환하기
  • 치환 결과를 사람이 확인하기
  • 확인이 완료된 문장을 프롬프트로 사용하기

이 처리는 완전한 익명화를 보장하는 것은 아닙니다.

입력 정보를 필요 최소한으로 하고, 사람에 의한 확인을 보조하기 위한 예방적인 방법으로서 사용합니다.

이번 목적은 생성 AI에게 문장을 전송하기 전에, 상담 내용에 불필요한 어구를 로컬 환경에서 치환할 수 있도록 하는 것입니다.

치환 대상을 Python 코드에 직접 쓰지 않고 Excel로 관리함으로써, 코드를 수정하지 않고도 규칙을 추가, 변경, 무효화할 수 있도록 합니다.

처리 흐름은 다음과 같습니다.

입력할 문장을 준비한다
↓
치환 규칙을 Excel에 등록한다
...

중요한 것은 치환 처리만으로 정보 관리가 완료된다고 생각하지 않는 것입니다.

단순한 문자열 치환으로는 표기 불일치, 오치환, 문맥으로부터의 추측 가능성 등을 완전히 처리할 수 없습니다.

따라서 치환 후에도 반드시 사람이 내용을 확인합니다.

치환 대상을 Python 코드에 직접 쓰면, 어구를 추가할 때마다 코드를 수정해야 합니다.

그래서 치환 규칙은 Excel로 관리합니다.

Excel에는 다음 열을 준비합니다.

열 이름내용
source_text치환 전 어구
replacement_text치환 후 어구
category어구의 분류
enabled치환 규칙 사용 여부

다음은 처리 방법을 설명하기 위한 가상의 샘플입니다.

source_textreplacement_textcategoryenabled
샘플 고유 어구 A일반 어구 AtermTRUE
...

Excel의 시트 이름은 rules라고 합니다.

enabledTRUE로 설정한 행만 치환 대상으로 합니다.

이 Excel에는 치환 전 어구가 포함되어 있으므로, 공개 리포지토리(Repository)나 일반 공유용 폴더에는 저장하지 않습니다.

액세스를 제한한 로컬 환경 또는 비공개 저장 영역에서 관리합니다.

다음 3개의 파일을 같은 폴더에 배치합니다.

masking_rules.xlsx
input_text.txt
mask_text.py

각각의 역할은 다음과 같습니다.

파일역할
masking_rules.xlsx치환 규칙을 관리한다
input_text.txtAI에 입력하기 전의 문장을 저장한다
mask_text.py로컬 치환을 실행한다

처리 후에는 같은 폴더에 masked_text.txt가 생성됩니다.

게재된 코드는 처리 개념을 보여주기 위해 간략화한 것입니다.

from pathlib import Path
from typing import Final
import pandas as pd
...

이 코드는 다음 처리를 수행합니다.

  • Excel에서 치환 규칙을 읽어오기
  • enabled가 유효한 행만 사용하기
  • 긴 어구부터 먼저 치환하기
  • 입력 텍스트를 로컬 환경에서 처리하기
  • 치환 후의 문장을 별도 파일로 저장하기
  • 치환 후의 어구와 건수를 화면에 표시하기

원래의 input_text.txt는 덮어쓰지 않고, 치환 후의 문장을 masked_text.txt로 저장합니다.

이 코드에서는 Excel을 읽기 위해 pandasopenpyxl을 사용합니다.

PowerShell 또는 터미널에서 다음 명령을 실행합니다.

python -m pip install pandas openpyxl

설치 후, 파일을 저장한 폴더에서 다음 명령을 실행합니다.

python mask_text.py

정상적으로 처리되면, masked_text.txt가 생성됩니다.

치환이 완료되어도, 그대로 AI에 입력하지는 않습니다.

masked_text.txt를 열어 다음 사항을 확인합니다.

  • 치환하고 싶은 어구가 남아있지 않은가
  • 무관한 부분이 잘못 치환되지 않았는가
  • 치환 후에도 문장의 의미가 통하는가
  • 약어나 다른 표기 방식이 남아있지 않은가
  • 배경으로부터 대상을 추측할 수 없는가
  • 상담에 불필요한 정보가 남아있지 않은가

필요에 따라 문장을 더욱 짧게 만들거나, 배경을 일반화합니다.

실제로 AI에 입력하는 것은 이 확인을 마친 문장입니다.

원문
↓
Excel 규칙으로 로컬 치환
...

치환된 문장을 사용할 경우에는 AI에 요구하는 처리 내용도 명확히 합니다.

다음 문장은 상담에 불필요한 정보를 줄이기 위해,
사전에 로컬 환경에서 일부 어구를 치환하였습니다.
치환된 명칭을 추측하거나,
...

이 프롬프트 자체가 정보 관리를 보장하는 것은 아닙니다.

중요한 것은 AI로 전송하기 전에 입력 내용을 필요 최소한으로 만들어 두는 것입니다.

치환 규칙이 담긴 Excel에는 치환 전과 치환 후의 어구 대응 관계가 기록되어 있습니다.

따라서 치환된 문장보다 Excel 쪽이 더 신중한 관리를 필요로 할 수 있습니다.

다음 장소에는 저장하지 않는 것을 원칙으로 합니다.

  • 공개 리포지토리 (Public Repository)
  • 일반 공유용 폴더
  • 공개용 기사 데이터
  • 불특정 다수가 액세스할 수 있는 저장소

Python 코드와 실제 치환 규칙 Excel은 분리하여 관리합니다.

공개하는 것은 처리 방식(Logic)을 보여주는 코드뿐이며, 실제 치환 규칙은 공개하지 않습니다.

어구를 바꾸더라도 다음 정보의 조합을 통해 대상을 추측할 수 있을 가능성이 있습니다.

  • 특징적인 업무 내용
  • 시기
  • 지역
  • 역할
  • 조건
  • 사용 환경
  • 특수한 경위

따라서 외부 서비스에 입력할 경우에는 단어의 치환뿐만 아니라 문장 전체의 일반화나 재구성도 필요합니다.

동일한 대상이라도 여러 가지 표기가 사용될 수 있습니다.

  • 정식 명칭과 약칭
  • 전각과 반각
  • 대문자와 소문자
  • 공백(Space)의 유무
  • 일본어 명칭과 영어 명칭
  • 한자, 히라가나, 가타카나 표기
  • 경칭의 유무

Excel에 등록되지 않은 표기는 단순한 문자열 치환으로는 처리되지 않습니다.

필요에 따라 다른 표기법을 여러 개의 규칙으로 등록합니다.

짧은 약어나 일반적인 단어를 등록하면 무관한 문장까지 치환할 가능성이 있습니다.

따라서 너무 짧은 어구의 등록은 가급적 피합니다.

코드에서는 긴 어구부터 먼저 치환하고 있지만, 오치환을 완전히 방지하는 것은 아닙니다.

일부가 겹치는 어구를 등록하면 치환 순서에 따라 결과가 달라질 수 있습니다.

예를 들어, 긴 어구와 그 일부를 포함하는 짧은 어구가 등록되어 있는 경우, 짧은 어구를 먼저 치환하면 긴 어구를 올바르게 처리하지 못할 가능성이 있습니다.

따라서 코드에서는 글자 수가 긴 어구부터 먼저 처리합니다.

원문을 직접 덮어쓰면 치환 실수가 있었을 때 확인할 수 없게 됩니다.

그러므로 원문과 치환 후의 파일은 분리하여 저장합니다.

input_text.txt
masked_text.txt

원본 파일도 액세스가 제한된 환경에서 관리합니다.

치환 대상을 로그나 화면에 표시하면 다른 장소에 정보가 남을 가능성이 있습니다.

이번 코드에서는 치환된 어구와 건수만을 표시하고 있습니다.

다음 장소에 치환 전의 어구를 부주의하게 출력하지 않도록 주의합니다.

  • 콘솔 로그 (Console Log)
  • 에러 로그 (Error Log)
  • 처리 이력
  • 스크린샷
  • GitHub Issue
  • 채팅
  • 메일

Python으로 치환할 수 있었다는 사실이나 AI가 문제없다고 답변했다는 사실만으로는 안전성의 근거로 삼지 않습니다.

최종적으로는 사람이 문장 전체를 확인합니다.

확인하는 내용에는 다음과 같은 것들이 있습니다.

  • 문맥으로부터 대상을 추측할 수 없는가
  • 제삼자에게 불이익을 주지 않는가
  • 계약상의 제약이 없는가
  • 제삼자의 권리를 침해하지 않는가
  • 입력할 필요성이 있는가
  • 일반화한 후에도 상담에 필요한 내용인가

어구를 치환했다고 해서 모든 정보를 자유롭게 이용할 수 있는 것은 아닙니다.

다음과 같은 내용은 치환 후라 하더라도 별도의 확인이 필요합니다.

  • 계약상의 비밀 유지 의무
  • 개인정보
  • 저작권
  • 제3자로부터 제공된 자료
  • 업무상 알게 된 비공개 정보
  • 성과물이나 지적 재산의 귀속
  • 영업 비밀
  • 각 조직의 정보 보안 규정

고유 어구를 치환한 것과, 그 정보를 이용할 권한이 있는 것은 별개의 문제입니다.

AI로 전송하기 전에 로컬 환경에서 처리하더라도, 그것만으로 안전성이 보장되는 것은 아닙니다.

다음 사항도 확인이 필요합니다.

  • PC 사용자 및 액세스 권한
  • OS 및 소프트웨어 업데이트
  • 멀웨어 (Malware) 대책
  • 백업
  • 클라우드 동기화 설정
  • 공유 폴더 설정
  • 파일 보관 기간
  • 폐기 시 삭제 방법

Excel 파일이 클라우드 동기화 대상인 경우에는 공유 설정이나 액세스 범위도 확인합니다.

이번 코드에서는 Excel을 읽기 위해 pandasopenpyxl을 사용하고 있습니다.

사용할 때는 다음 사항을 확인합니다.

  • 신뢰할 수 있는 배포처에서 설치할 것
  • 불필요한 외부 서비스에 파일을 업로드하지 말 것
  • 코드에 치환 대상 어구를 직접 작성하지 말 것
  • 샘플 코드와 실제 규칙 파일을 분리할 것
  • 공개 전에 코드 내의 경로(Path)나 주석을 확인할 것

Excel로 치환 규칙을 관리함으로써, Python 코드를 수정하지 않고도 치환 대상을 추가, 변경, 무효화할 수 있게 되었습니다.

또한, 원문을 덮어쓰지 않고 치환 후의 문장을 별도 파일로 확인할 수 있게 되었습니다.

이번 처리는 다음과 같은 흐름으로 요약할 수 있습니다.

불필요한 정보를 입력하지 않는다
↓
필요에 따라 지정 어구를 로컬 치환한다
...

단, 자동 치환만으로 확인 작업을 완료할 수 있는 것은 아닙니다.

표기 불일치, 오치환, 문맥을 통한 추측 가능성 등에 대해서는 사람에 의한 확인이 필요합니다.

생성형 AI (Generative AI)를 이용할 때는 프롬프트 (Prompt) 작성법뿐만 아니라, 무엇을 입력할지를 사전에 정리하는 것도 중요합니다.

이번 방법에서는 직접 지정한 어구를 Excel로 관리하고, Python을 사용하여 로컬 환경에서 치환했습니다.

치환 후의 문장은 반드시 사람이 확인하고, 필요에 따라 배경을 삭제하거나 일반화한 뒤에 AI로 입력합니다.

이번 방침은 다음 4가지 사항으로 요약됩니다.

AI 설정에만 의존하지 않는다
입력 전에 불필요한 정보를 줄인다
지정 어구는 로컬 환경에서 치환한다
...

한편, 치환 처리가 완전한 익명화를 보장하는 것은 아닙니다.

또한, 치환 후라 하더라도 계약상의 비밀 유지 의무, 제3자의 권리, 개인정보, 비공개 정보 등과 관련된 내용을 자유롭게 이용할 수 있다고 단정할 수 없습니다.

Python은 정보 관리의 판단을 대신하는 것이 아니라, 입력 전의 확인 작업을 보조하는 수단으로서 이용합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0