화면 하나 뒤에 숨어 있는 자료 이동을 드러낸다
학교 규정 안내 챗봇에 “체험학습 신청은 언제까지인가요?”라고 물었다고 해 봅시다. 화면에서는 질문과 답만 보이지만 시스템은 질문, 사용자 권한, 규정 문서, 검색된 문단, 모델에 넣은 문맥, 생성된 답, 인용 위치와 운영 기록을 다룹니다. 이 가운데 하나라도 빠지면 답의 근거를 찾기 어렵고, 보관해서는 곤란한 개인정보가 기록 저장소에 남을 수 있습니다. 데이터 흐름도는 화면의 순서보다 데이터의 출발지·처리·저장·도착지를 표시하여 보안과 품질 검토의 대상을 구체적으로 만듭니다.[1]
외부 주체·처리·저장소·데이터 흐름을 구별한다
데이터 흐름도에는 네 요소가 핵심입니다. 외부 주체는 시스템 밖에서 데이터를 주거나 받는 사람·다른 시스템입니다. 처리는 입력 데이터를 바꾸어 출력을 만드는 일이며 동사로 이름을 붙입니다. 데이터 저장소는 문서·기록처럼 나중에 다시 읽을 자료가 머무는 곳입니다. 화살표는 데이터의 이동 방향이고, “요청”처럼 모호한 이름 대신 “사용자 질문”, “검색된 문서 구간”처럼 실제로 이동하는 내용을 적습니다. 표기법에 따라 도형 모양은 달라도 네 역할은 유지됩니다.
사용자질문 →처리
질문 정리검색어 →저장소
규정 문서
| 이름 규칙 | 처리는 ‘질문 정리하기’처럼 동사, 데이터는 ‘정리된 검색어’처럼 명사로 씁니다. |
|---|
문장에서 명사·동사·보관 표현을 각각 뽑는다
“사용자가 질문하면 서비스가 개인정보를 가리고 규정 문서에서 관련 부분을 찾는다. 모델은 질문과 검색 결과로 답변을 만들고, 서비스는 답변과 출처를 사용자에게 보낸다. 운영 기록에는 처리 시간과 오류 코드만 남긴다”라는 원문을 살펴봅시다. 사람과 시스템은 외부 주체 후보, ‘가린다·찾는다·만든다’는 처리 후보, 규정 문서와 운영 기록은 저장소 후보입니다. 각 동사 앞뒤의 명사를 연결하면 흐름이 됩니다. 원문에 기록 보존 기간이 없다면 도표에 임의로 30일을 쓰지 않고 확인 질문으로 남깁니다.
| 원문 표현 | 도표 요소 | 확인할 점 |
|---|---|---|
| 사용자가 질문한다 | 외부 주체 → 질문 데이터 | 로그인 정보 포함 여부 |
| 개인정보를 가린다 | 처리 → 정제된 질문 | 가림 규칙과 실패 처리 |
| 규정 문서에서 찾는다 | 저장소 → 검색 처리 | 문서 버전 |
| 처리 시간을 남긴다 | 운영 기록 저장소 | 질문 원문 저장 여부 |
검색 증강 답변은 검색어와 모델 문맥을 따로 본다
문서 검색을 붙인 LLM 서비스에서는 사용자 질문이 그대로 문서 저장소로 가는 경우도 있지만, 검색용 표현으로 정리되거나 여러 검색어로 나뉠 수도 있습니다. 검색기는 문서 전체를 모델에 보내는 대신 관련성이 높은 구간과 문서 식별자를 반환합니다. 문맥 구성 처리는 시스템 지시, 질문, 검색 구간과 출처 정보를 모델 입력으로 묶습니다. 모델이 만든 문장과 출처 표시는 같은 데이터가 아닙니다. 출처 표시는 검색 결과의 문서 식별자와 답변의 개별 주장을 다시 대응하여 만들어야 합니다.
번역·요약·상담에서 저장해야 할 데이터가 달라진다
번역 서비스는 원문, 언어 설정과 번역문을 다루며 용어집을 별도 저장소에서 읽을 수 있습니다. 회의록 요약 서비스는 음성 파일을 전사 처리로 보내고, 전사문에서 요약과 할 일 목록을 만듭니다. 상담 보조 서비스는 민감 정보가 많으므로 원문 저장 대신 식별자를 제거한 통계만 남길 수 있습니다. 세 서비스 모두 LLM을 써도 데이터 종류와 보관 정책은 다릅니다. 따라서 ‘LLM’이라는 처리 하나만 그리면 어떤 정보가 외부 도구로 전달되고 무엇이 기록되는지 검토할 수 없습니다.
| 서비스 | 주요 입력 | 참조 저장소 | 남길 기록 |
|---|---|---|---|
| 번역 | 원문·대상 언어 | 승인 용어집 | 문서 ID·처리 결과 |
| 회의 요약 | 음성·참석자 | 전사문 | 요약·할 일 |
| 상담 보조 | 식별정보가 포함된 대화 | 승인 지침 | 비식별 통계 |
데이터 목록과 시스템 경계를 먼저 준다
LLM에 데이터 흐름도를 요청할 때는 화면 기능만 설명하지 말고 입력·출력·저장소·외부 시스템을 목록으로 줍니다. 어느 데이터가 개인정보인지, 원문을 저장하는지, 외부 검색 서비스로 무엇을 보내는지, 오류가 났을 때 남기는 기록도 적습니다. 원문에서 확인할 수 없는 저장 기간과 접근 권한은 추정하지 말고 질문으로 분리하도록 지시합니다. 결과를 받은 뒤에는 모든 처리에 최소 한 개의 입력과 출력이 있는지, 저장소끼리 직접 화살표가 이어지지 않는지 확인합니다.
다음 학교 규정 안내 서비스를 데이터 흐름도 초안으로 정리해 주세요. 목적: 질문·검색 자료·모델 입력·답변·운영 기록의 이동과 저장을 검토한다. 외부 주체: 학생, 교사, 문서 관리 시스템. 처리: 질문 정리 / 권한 확인 / 규정 검색 / 모델 문맥 구성 / 답변 생성 / 출처 대응. 저장소: 승인된 규정 문서, 운영 기록. 데이터: 사용자 질문, 학년 정보, 검색어, 문서 구간, 문서 ID, 모델 입력, 답변, 출처, 처리 시간, 오류 코드. 규칙: 처리에는 동사, 화살표에는 실제 데이터 이름을 쓴다. 개인정보가 외부로 나가거나 기록되는 흐름을 따로 표시한다. 금지: 원문에 없는 보존 기간·암호화 방식·자동 승인을 확정하지 않는다. 출력: ① 요소표 ② 1단계 데이터 흐름도 ③ 누락·과잉 흐름 ④ 확인 질문.
모든 일을 ‘LLM 처리’ 한 상자에 넣지 않는다
잘못된 초안은 사용자에서 ‘LLM 처리’로 화살표 하나를 보내고 곧바로 답변을 돌려줍니다. 이 그림에는 문서 저장소, 검색 결과, 권한 확인, 출처 대응과 로그가 보이지 않습니다. 반대로 세부 API와 함수 이름을 수십 개 적으면 데이터의 큰 흐름을 읽기 어렵습니다. 수정할 때는 질문 정리, 검색, 문맥 구성, 답변 생성, 출처 대응처럼 데이터의 형태가 바뀌는 지점을 처리로 나누고, 각 화살표에 변환 전후의 데이터 이름을 적습니다. 구현 함수는 10회의 시스템 구성도나 더 상세한 기술 문서로 넘깁니다.
데이터 흐름도는 시간 순서보다 자료의 출처와 변환을 묻는다
제7회의 시퀀스 다이어그램은 누가 누구에게 어떤 메시지를 먼저 보내는지 보여 줍니다. 제8회의 활동도는 조건과 병렬 실행을 다룹니다. 데이터 흐름도는 같은 시스템에서 어떤 데이터가 생성·변환·저장·전달되는지에 집중합니다. 따라서 데이터 흐름도의 화살표를 위에서 아래로 읽는다고 실행 시간이 확정되는 것은 아닙니다. 10회의 시스템 구성도는 서비스·애플리케이션·저장소 같은 구조적 부품과 책임을 보여 줍니다. 중심 질문에 따라 같은 대상도 서로 다른 도표가 필요합니다.
| 도표 | 중심 질문 | 화살표가 주로 뜻하는 것 |
|---|---|---|
| 데이터 흐름도 | 어떤 자료가 어디로 이동하는가? | 데이터 이동 |
| 시퀀스 | 메시지가 어떤 시간 순서로 오가는가? | 요청·응답 |
| 활동도 | 어떤 행동이 언제 가능한가? | 제어 흐름 |
| 시스템 구성도 | 어떤 부품과 경계가 있는가? | 사용·연결 관계 |
기록 정책을 바꾸며 위험한 데이터 흐름을 찾아보자
아래 실습은 교육용 학교 규정 안내 서비스입니다. 운영 기록에 처리 시간과 오류 코드만 남기면 질문 원문은 기록 저장소로 가지 않습니다. 질문 원문까지 저장하면 민감 정보가 들어갈 가능성을 검토하고, 접근 권한·보존 기간·삭제 절차가 추가로 필요합니다. 외부 검색을 선택하면 정제된 검색어가 조직 밖으로 이동하므로 개인정보 가림 처리가 선행되어야 합니다. 설정에 따라 어떤 흐름이 추가되는지 확인해 보세요.