Skip to content

Laeyoung/ModuSorry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

보안 사고를 가정한 사과문을 미리 작성 할 수 있는 무료 서비스 입니다. 평정심이 있을 때 미리 사과문 초안을 써두고 관리하다가, 진짜 사고가 터지면 그 초안을 토대로 빠르게 진짜 사과문과 대응 산출물을 완성하세요.

서비스 주소

소개 영상

mayday-demo.mp4

왜 만들었나

바이브 코딩으로 서비스를 빠르게 찍어내는 흐름이 커지면서, 사고 대응 역량은 그 속도를 따라가지 못하고 있습니다. 보안 문제나 데이터 유출은 "일어날지"가 아니라 "언제 일어날지" 의 문제에 가깝습니다.

그런데 정작 사고가 터지면:

  • 방어 본능이 작동해 사과문이 아니라 변명문("~때문에 어쩔 수 없었다")이 나옵니다.
  • 별도 보안·법무 인력이 없는 소규모 주체는 한국 개인정보보호법상 통지·신고 의무를 무엇부터 어떤 순서로 해야 할지 모른 채 시간에 쫓깁니다.

모두의 사과문은 화재 대피 훈련처럼, 사고를 미리 가정해 사과문과 대응 자료를 작성·관리해 두게 합니다. 좋은 사과문의 구조와 톤을 평상시에 확정해 두고, 사고 시에는 구체적 사실만 채워 넣으면 AI가 완결된 산출물로 만들어 줍니다. 즉 사고 상황에서의 판단력·문장력에 의존하지 않도록 설계했습니다.

누구를 위한 도구인가

별도의 보안·법무 인력이 없어, 사고가 나면 개발팀이 직접 사과문과 재발방지대책을 써야 하는 소규모 주체 — 인디 개발자 개인, 소규모 스타트업이 대표적입니다. 평소 사고 대응을 준비할 여력이 없고, 막상 사고가 터지면 개인정보보호법상 통지·신고 의무까지 혼자 처리해야 하는 사람들을 위한 도구입니다. (v1은 1인 사용 전제)

핵심 설계 원칙: 사과문 vs 변명문

사고 직후에는 방어 본능이 작동해 "~때문에 어쩔 수 없었다"는 변명문이 나오기 쉽습니다. 좋은 사과문은 구조가 정해져 있습니다:

인정 → 책임 → 경위 → 영향 → 현재 조치 → 재발방지 → 연락처

이 제품의 핵심 전략은 이 구조와 톤·가치관을 평정심이 있을 때 미리 확정해두고, 사고 시에는 구체적 사실만 채워 넣게 하는 것입니다.

어떻게 쓰나

평상시 — "대피 훈련"

  1. 시나리오 라이브러리에서 사고 유형을 선택합니다 (예: DB 유출, 인증 토큰 노출, 외부 침입).
  2. 서비스 기본 정보를 한 번 입력해 모든 시나리오에서 재사용합니다.
  3. 7단계 구조 템플릿을 따라 사실 조각만 입력하면, AI가 완결된 사과문 초안을 작성합니다.
  4. 변명 감지가 책임 회피로 들리는 문장에 피드백을 줍니다.
  5. 완성된 초안을 시나리오별로 저장합니다 — 이 묶음이 사고 시 꺼내 쓰는 "비상 키트" 가 됩니다.

실제 사고 발생 시

  1. "사고 발생"을 누르고 사고 유형을 선택합니다.
  2. 두 가지 진입 경로 — (a) 평상시 써둔 초안을 불러오거나, (b) 미리 준비하지 못한 유형이면 빈 구조 템플릿에서 바로 시작합니다.
  3. 이번 사고의 구체 사실만 채워 넣습니다 (발생 시각, 영향 범위, 유출 항목, 발견 경위 등).
  4. 산출물 세트를 생성합니다: 사과문 + 재발방지대책 + 개인정보보호법 통지문 + 신고 절차 체크리스트.
  5. 사과문을 채널별 텍스트(이메일 / 공지·상태페이지)로 변환해 복사·내보내기 합니다. (실제 발송·신고는 사용자가 직접 수행)

주요 기능

기능 설명
시나리오 라이브러리 기본 제공 6종 (DB 유출, 인증 토큰 노출, 외부 침입, 결제정보 노출, 제3자 위탁사 사고, 소스코드 유출). 각 시나리오는 설명·예시 문구·통지 체크리스트 프리셋을 포함
사과문 초안 작성기 사용자가 문장을 쓰지 않고 사실 조각만 입력하면 AI가 7단계 구조·톤에 맞춰 초안을 생성
사과문 점수 · 변명 피드백 책임 회피·수동회피·변명성 문장을 감지·하이라이트하고 대안을 제시. Lighthouse식 100점 만점 긍정 지표 하나로 진짜 사과에 가까워지게 유도
사고 발생 모드 비상 키트 불러오기 또는 빈 템플릿 시작. 신고 대상 기준을 공통 질문으로 물어 신고 의무·체크리스트 생성
산출물 세트 사과문 / 재발방지대책 / 통지문 / 신고 체크리스트를 한 화면에서 세트로 모아보고 일괄 내보내기. 신고 체크리스트는 팀 업무 분배 목록으로 바로 사용
배포용 텍스트 변환 이메일용·공지용 채널별 톤으로 변환, 복사·마크다운/텍스트 내보내기

사과문 점수 (Lighthouse식 100점 만점)

요약 지표는 긍정 프레이밍의 "사과문 점수" 하나만 둡니다 (변명 지수 같은 부정 지표는 두지 않음). 책임 인정·구체성·변명 표현 부재·필수 항목 충족·피해자 관점·톤을 합산합니다.

  • 0–49 🔴 변명문에 가까움 — 대폭 수정 필요
  • 50–89 🟡 사과문이지만 보완 필요
  • 90–100 🟢 진짜 사과에 가까움

점수는 비난이 아니라 개선 동기로 작동하며, 진지한 사고 상황을 가볍게 만들지 않도록 보조 지표로만 노출합니다.

개인정보보호법 대응

v1에서 법 관련 산출물은 두 가지로 한정합니다.

  1. 통지문 텍스트 — 정보주체에게 보낼 통지 내용을 사과문과 별도로 생성
  2. 신고 절차 체크리스트 — 누구에게·무엇을·언제까지 신고·통지해야 하는지를 항목화

⚠️ AI 생성물은 참고용이며 법적 자문을 대체하지 않습니다. 법령은 개정되므로 실제 대응 시 최신 기준을 반드시 재확인하세요. 법정 양식 자동 제출·기한 자동 계산은 v1 범위가 아닙니다.

보안 · 프라이버시

이 서비스가 보관하는 데이터(사고 사실 + 미리 작성한 사과문 초안)는 그 자체로 민감합니다. 유출되면 "이 주체가 어떤 사고를 겪었다 / 유출을 대비하고 있었다"는 사실이 드러납니다. 따라서 제품이 스스로 자기 사과문 기준을 지킨다(도그푸딩) 를 설계 가치로 삼습니다.

  • 피해자 PII 원본 비입력 원칙 — 사고 사실은 "무엇이·언제·어느 범위"만 기록하고, 실제 피해 고객의 개인정보 원본은 넣지 않도록 안내
  • 사용자는 초안·사고 기록을 언제든 삭제 가능
  • OpenAI API 키는 서버 환경변수로만 다루며 클라이언트에 절대 노출하지 않음
  • Firestore 보안 규칙으로 본인 데이터만 read/write

기술 스택

Next.js (App Router) · React · TypeScript · Tailwind · Firebase (Auth + Firestore) · OpenAI · Vercel 배포.

AI 호출은 Next.js Route Handler(서버 경계)가 담당하며, 클라이언트는 이 서버 엔드포인트만 호출합니다.

범위 (v1)

포함 — 평상시 초안 작성·저장, 사고 발생 모드, 산출물 세트 생성, 채널 변환, 사과문 점수·변명 감지.

비목표 — 사고 자동 감지·연동, 자동 발송·신고 제출, 법정 양식 자동화·기한 자동 계산, 커스텀 시나리오, 정기 리마인더, 팀 협업·권한, PII 자동 마스킹, 한국 외 법규·다국어 대응.

대상 사고는 고객의 개인정보가 침해되었거나 영구적인 서비스 장애에 한합니다. 일시적 다운타임이나 일반 버그는 대상에서 제외합니다.


소스 코드 공개 계획

현재 이 저장소는 이 README(README.md)와 PRD 문서(MayDay_PRD.md) 만 공개하고 있습니다.

이 저장소의 Star가 31개를 넘으면, 전체 소스 코드를 오픈소스로 공개할 예정입니다.

Star가 31개에 못 미친다면, 소스 코드 전체를 공개할 때 드는 작업과 그 후에 생기는 이슈 대응 비용이 그로 인한 효용보다 크다고 판단하여, 지금처럼 PRD 문서까지만 공개해 두었습니다.

참고로, PRD 문서를 Claude Code나 Codex에게 던지고 만들어 달라고 하며, 안드레 카파시의 LLM-wiki.md처럼 결과물까지 쉽게 가실 수 있으실 겁니다. 저도 Fable 5로 oneshot으로 prompt 한번 시켜서 거의 최종 버전이 나왔었거든요.

About

모두의 사과문

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors