반응형
문제 상황
사내 생성형 AI는 보안 정책으로 인해 프로그래밍 코드 입력이 차단되어 있습니다. 내부망 환경에서는 VMWARE/개인 노트북을 통해 별도 접속해야 하는 번거로움이 존재하죠. 더 큰 문제는 영어 기술 용어나 오류 메시지 조차도 코드로 오인되어 차단되는 경우가 빈번하다는 점입니다. -> 예시를 보면 필터 기준을 알 수 없음.
예시 차단 케이스:
"Have you ever gone to korea를 한국어로 뭐라고 해석해?" → 차단
"AWS EC2에서 CloudeFront로 연동하는 방법이 뭐야?" -> 차단
"Python에서 AWS S3 버킷 리스트 조회 방법" → 허용
업무 효율성을 위해선 비즈니스 로직 노출 없이 기술 및 영어 해석 질문을 할 수 있는 방법이 시급했습니다.
🛠 시도 1 : 코드 감지 로직 역공학
가장 먼저, AI가 어떤 기준으로 프로그래밍 코드를 감지하는지 파악하려고 했습니다.
여러 형태의 영어 문장과 오류 메시지를 입력해봤지만, 특정 패턴이나 단어가 포함되면 코드로 오인되어 차단되는 현상이 반복되었습니다. 필터의 기준이 꽤 보수적으로 잡혀 있는 듯합니다.
결론
- 키워드 기반 필터링 + 구조 분석 복합적으로 동작
- 순수 영어 텍스트 조차 위험 요소로 판단하는 과잉 보안 정책 확인
🛠 시도 2 : AI가 해석한 뒤 답변하기 (암호화 전략)
아이디어
"질문을 암호화 → AI가 복호화 후 답변 생성"
Base64 인코딩 시도
import base64
question = base64.b64encode("Python ValueError 해결법".encode()).decode()
# Output: UHl0aG9uIFZhbHVlRXJyb3Ig7ZiE7YSw66W8
결과
- 입력 길이 초과 또는 암호화된 텍스트 입력시 오류발생 → 실패 ❌
✅ 최종 해결책 : 알파벳 → 한글 발음 변환
전략
"AWS S3" → "에이더블유에스 에스쓰리"
영어 알파벳을 한글 발음으로 치환하여 의도적으로 자연어 형식으로 변조
구현 코드
def translate_and_quote():
# 알파벳을 한글로 바꿀 딕셔너리 정의
alphabet_dict = {
'A': '에이', 'B': '비', 'C': '씨', 'D': '디', 'E': '이',
'F': '에프', 'G': '지', 'H': '에이치', 'I': '아이', 'J': '제이',
'K': '케이', 'L': '엘', 'M': '엠', 'N': '엔', 'O': '오',
'P': '피', 'Q': '큐', 'R': '알', 'S': '에스', 'T': '티',
'U': '유', 'V': '브이', 'W': '더블유', 'X': '엑스', 'Y': '와이', 'Z': '제트'
}
# 사용자 입력을 저장할 리스트
lines = []
print("변환할 텍스트를 입력하세요. 입력을 마치려면 | (파이프)를 입력하세요.")
while True:
line = input()
if line.strip() == "|":
break
lines.append(line)
text = "\n".join(lines)
'''이하 생략'''
실행 프로세스
- 질문 → 한글 발음 변환 (수동/자동화)
- AI에 자연어 질문 전달 -> 따옴표로 깜싼 부분은 영어단어로 바꾸고 거기에 대한 답변을 달라고 질문
- 답변에서 특수 기호("")로 감싼 단어 자동 복원
🚨 주의사항 & 한계
- 비즈니스 로직 포함 금지
- AI 답변 정확도 하락할 확률 증가. -> 만약 긴 로직이 포함된 코드를 올리더라도 질문 길이가 비대해져서 AI가 오인할 가능성이 높음. -> 긴 코드 질문엔 부적절하고 영어해석, 간단한 오류에 적합함.
반응형