목록으로
KRDS 체크리스트 분석

제출 전까진 서버에 안 보내기

이번 532편은 사용자가 입력폼을 제출할 때까지 파일을 서버에 업로드·저장하지 않게 하라는 규칙입니다.

VViewCheck Insight
·2026.07.22 4분 38
제출 전까진 서버에 안 보내기
KRDS CP-412 — 사용자가 입력폼을 제출할 때까지 파일을 서버에 업로드하거나 저장하고 있지 않다.

0. 들어가며 — 취소했는데 파일이 이미 서버에 있으면

이번 532편은 사용자가 입력폼을 제출할 때까지 파일을 서버에 업로드·저장하지 않게 하라는 규칙입니다.

파일을 선택하자마자 서버에 올려버리면 — 사용자가 폼을 취소하거나 파일을 바꿔도, 이미 올린 파일이 서버에 남죠. 개인정보 파일이라면 문제가 됩니다. CP-412는 제출 시점에 업로드하라고 규정합니다. 이번 편을 풀어냅니다.

1. 원문 — 제출까지 서버 업로드·저장 금지

CP-412 (컴포넌트 > 파일 업로드) “사용자가 입력폼을 제출할 때까지 파일을 서버에 업로드하거나 저장하고 있지 않다.”

파일을 선택했더라도 사용자가 폼을 최종 제출하기 전까지는 그 파일을 서버에 업로드·저장하지 말라는 뜻입니다.

정리: 폼 제출 전까지 파일을 서버에 올리지 마라. 이게 CP-412입니다.

2. 왜 제출 시점에 업로드인가

파일 업로드의 구현에는 — 두 가지 시점이 있습니다:

선택 즉시 업로드 — 사용자가 파일을 선택하자마자 — 바로 서버로 보내 저장하는 방식.

제출 시 업로드 — 파일은 — 사용자가 폼을 최종 제출할 때 함께 서버로 보내는 방식.

CP-412는 — 제출 시 업로드를 요구합니다. 선택 즉시 서버에 올리지 말라는 거죠.

선택 즉시 업로드의 문제:

취소해도 파일 남음 사용자가 파일을 선택해 서버에 올라간 뒤, 폼 작성을 취소하거나 이탈하면, 이미 올라간 파일이 서버에 남습니다. 사용자는 ’나는 제출 안 했는데 내 파일이 서버에 있다’는 걸 모르죠. 특히 주민등록등본·신분증 같은 개인정보·민감 파일이면, 제출하지도 않은 파일이 서버에 저장돼 개인정보 보호 문제가 됩니다.

교체해도 이전 파일 남음 — 잘못 올린 파일을 — 다른 파일로 바꿔도, 처음 올린 파일이 서버에 남을 수 있죠.

의도와 불일치 사용자는 ‘제출’ 버튼을 눌러야 ’내 정보를 제출했다’고 인식합니다. 그런데 선택만으로 서버에 저장되면, 사용자 의도(아직 제출 안 함)와 실제(이미 저장됨)가 어긋나죠.

불필요한 서버 저장 — 제출 안 할 파일까지 — 서버에 쌓여 저장 공간·정리 부담이 생깁니다.

그래서 CP-412는 — 파일을 폼 제출 시점에 업로드하라고 합니다:

클라이언트에 보관 — 사용자가 파일을 선택하면 — 우선 브라우저(클라이언트) 에만 보관합니다(미리보기·목록 표시). 서버로는 안 보내죠.

제출 시 전송 — 사용자가 — 모든 입력을 마치고 ‘제출’ 버튼을 누르면, 그때 파일을 폼 데이터와 함께 서버로 보냅니다. 제출이 곧 ’내 정보를 보낸다’는 사용자 의도와 일치하죠.

취소 시 흔적 없음 — 사용자가 취소·이탈하면 — 파일은 서버에 안 갔으니 흔적이 없습니다. 개인정보가 불필요하게 남지 않죠.

개인정보 보호 정신. 공공 서비스는 — 개인정보·민감 파일(신분증, 증명서)을 많이 받습니다. 제출 안 한 파일을 서버에 저장하지 않는 건 — 개인정보 최소 수집·보호 원칙과 직결되죠. 사용자가 명시적으로 제출한 것만 받습니다.

예외 대용량·청크 업로드. 매우 큰 파일을 제출 시 한 번에 보내면 시간이 걸려, 미리 청크로 올리는 기법도 있죠. 그 경우도 임시 저장이되 제출 전엔 ’미확정’으로 두고, 취소 시 삭제하는 정책으로 CP-412의 정신(제출 안 한 파일 미보관)을 지킵니다. 핵심은 제출하지 않은 파일을 영구 저장하지 않는 것입니다.

이 규칙은 파일 업로드의 ’제출 의도 일치·개인정보 보호’를 담당합니다 — 제출 시점에 업로드해(412), 사용자가 제출 하지 않은 파일이 서버에 남지 않게 하죠. 개인정보 최소화의 핵심입니다.

정리하면 — 선택 즉시 서버에 올리면 취소·이탈 시 제출 안 한 파일(특히 개인정보)이 서버에 남으므로, 파일을 폼 제출 시점에 전송해 사용자가 명시적으로 제출한 것만 저장해야 합니다.

3. 점검 / 개선

무엇을 점검하나

제출 시 업로드 — 파일이 폼 제출 시점에 서버로 전송되는가(선택 즉시 아님).

클라이언트 보관 — 선택한 파일이 제출 전엔 브라우저에만 있는가.

취소 흔적 없음 — 취소·이탈 시 제출 안 한 파일이 서버에 안 남는가.

개선 방향

선택 즉시 서버 업로드 제거. 제출 시점에 폼 데이터와 함께 전송.

클라이언트 미리보기·목록. 청크 업로드 시 미확정 임시 저장 + 취소 시 삭제.

4. 누가 담당하나 / 우리 사이트에 해당될까?

역할책임
백엔드/개발제출 시 업로드·임시 파일 정책 구현
보안/개인정보개인정보 파일 보관 정책
기관 유형CP-412 적용
중앙행정기관(대표·운영) / 공공기관 / 지자체✅ 필수 (개인정보 파일 업로드 시)

개인정보·민감 파일을 받는 사이트에 특히 해당됩니다.

5. 30초 자가진단 + FAQ

✅ 30초 자가진단

□ 파일이 폼 제출 시점에 서버로 전송되나요(선택 즉시 아님)?

□ 선택한 파일이 제출 전엔 브라우저에만 있나요?

□ 취소·이탈 시 제출 안 한 파일이 서버에 안 남나요?

❓ FAQ

Q1. 선택 즉시 올리면 빠르지 않나요? 빨라 보이지만 취소·이탈 시 제출 안 한 파일(특히 개인정보)이 서버에 남습니다. 개인정보 보호상 제출 시점이 맞죠. Q2. 대용량 파일도 제출 시 한 번에 보내나요? 청크로 미리 올리는 기법도 있지만, 미확정 임시 저장 + 취소 시 삭제로 ‘제출 안 한 파일 미보관’ 정신을 지킵니다. Q3. 왜 개인정보 보호와 연결되나요? 신분증·증명서 등 민감 파일을 제출 안 했는데 서버에 남으면 개인정보 최소 수집 원칙에 어긋나죠.

6. 마무리

CP-412의 메시지:

제출 전까진 서버에 안 보내기 — 폼 제출 시점에 파일을 업로드하라.

선택 즉시 올리면 취소·이탈 시 제출 안 한 파일이 서버에 남습니다. 제출 시점에 전송해 사용자가 명시적으로 제출한 것만 저장하는 게 핵심이죠(개인정보 보호). 다음 편은 파일 오류 메시지입니다.

다음 편 예고 ▶ 「533. (CP-413) 오류 상태에 대한 구체적인 오류 메시지를 제공하고 있다.」

ViewCheck는 파일이 제출 시점에 업로드되는지를 진단합니다.

📚 참고 출처

KRDS 컴포넌트 — 파일 업로드(File upload) 가이드 — https://www.krds.go.kr/html/site/component/component_41.html

KRDS #ViewCheck #공공웹사이트 #전자정부 #디지털정부 #웹접근성 #디자인시스템 #UIUX #UI컴포넌트 #웹표준

KRDS,ViewCheck,공공웹사이트,전자정부,디지털정부,웹접근성,디자인시스템,UIUX,UI컴포넌트,웹표준

#KRDS#공공웹#컴포넌트#파일업로드#제출시점업로드#서버저장#폼제출#개인정보보호

관련 글