로그를 저장하지 않는 AI 인시던트 코파일럿을 만들었습니다
모든 엔지니어가 이렇게 합니다.
운영 환경에서 무언가 고장 납니다. 로그를 가져옵니다. AI 채팅창에 붙여넣습니다. 도움을 요청합니다. AI는 좋은 답변을 내놓습니다.
대부분의 사람들은 이것이 정상이라고 생각합니다. 하지만 그렇지 않습니다. 이는 엄청난 보안 리스크입니다.
운영 로그에는 민감한 데이터가 포함되어 있습니다. 고객 ID, 인증 오류, 스택 트레이스, API 응답 등이 들어 있습니다. 때로는 비밀 정보(secrets)가 포함되기도 합니다.
현재의 디버깅 방식은 개인 데이터를 채팅창에 붙여넣고 운에 맡기는 것입니다. 저는 데이터 유출 리스크 없이 AI의 도움을 받고 싶었습니다.
그래서 AI 인시던트 코파일럿을 만들었습니다. 저는 한 가지 규칙을 따랐습니다. '데이터 저장을 거부하더라도 앱은 유용해야 한다'는 것입니다.
이 앱은 AI 워룸(war room) 역할을 합니다. 로그, 트레이스 또는 오류를 붙여넣으면 다음과 같은 작업을 도와줍니다:
• 변경 사항 요약 • 장애 지점 찾기 • 노이즈가 많은 로그 그룹화 • 스택 트레이스 설명 • 완화 단계 제안 • 사후 분석(postmortem) 타임라인 초안 작성
대부분의 개발자는 앱을 이렇게 만듭니다: 입력 → 백엔드 → 데이터베이스 → LLM → 데이터베이스 → UI.
이는 위험한 구축 방식입니다. 이제 여러분의 앱은 모든 운영 장애의 기록을 보유하게 됩니다. 침해 사고, 백업, 관리자 권한 등에 대해 걱정해야 합니다.
저는 SaaS 대시보드가 아니라 개인적인 스크래치패드(scratchpad)를 원했습니다.
저의 설계 규칙은 '데이터를 처리하되, 수집하지 않는다'입니다.
아키텍처는 다르게 작동합니다:
- 채팅 기록은 브라우저에 남습니다.
- 백엔드는 프롬프트를 저장하지 않습니다.
- 백엔드는 모델 응답을 저장하지 않습니다.
- 모든 요청은 일회성입니다.
저는 이 프라이버시 모델에 적합한 Icelake AI API를 사용했습니다. 서버는 세 단계를 수행합니다:
- 민감한 값을 마스킹(redact)합니다.
- 최소화된 프롬프트를 API로 전송합니다.
- 요청을 저장하지 않고 답변을 반환합니다.
마스킹이 도움이 되지만, 마법 같은 방패는 아닙니다. 모든 것을 잡아낼 수는 없습니다. 진짜 핵심은 요청이 끝난 후 보유하는 데이터의 양을 줄이는 것입니다.
마스킹은 호출 중의 리스크를 낮춥니다. 로그를 저장하지 않는 것은 리스크를 영구적으로 낮춥니다.
대부분의 AI 앱은 '무엇을 수집할 수 있을까?'라고 묻습니다. 이 앱은 '무엇을 수집하지 않을 수 있을까?'라고 묻습니다.
이러한 접근 방식은 제품을 더 좋게 만듭니다. 사용자는 안전함을 느낍니다. 자신의 생각이 제 데이터베이스에 기록되지 않는다는 것을 알기 때문에 실제 장애 상황에서도 기꺼이 사용할 수 있습니다.
차세대 AI 앱은 단순히 얼마나 똑똑한가로 경쟁해서는 안 됩니다. 절제(restraint)로 경쟁해야 합니다.
스스로에게 물어보세요: • 무엇을 저장하기를 거부합니까? • 스스로 접근하는 것을 불가능하게 만드는 것은 무엇입니까? • 세션이 종료될 때 사라지는 것은 무엇입니까?
AI 도구는 모든 것을 기억하지 않기 때문에 유용해야 합니다.
Optional learning community: https://t.me/GyaanSetuAi
