0Pricing
React Academy · 강의

파일 입력 및 파일 데이터 읽기

을 처리하고 파일 메타데이터를 읽으며 FileReader로 이미지를 미리 봅니다.

파일 입력 및 파일 데이터 읽기은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이 학습에서는 React에서 파일 입력을 처리하고, 파일 메타데이터를 읽고, 선택한 이미지를 미리 보며, FileReader API를 사용해 파일 내용을 처리합니다.

파일 입력 요소

`` 요소는 React의 value 프롭으로 제어할 수 없으며 항상 비제어 방식으로 동작합니다. onChange 핸들러에서 `e.target.files[0]`을 사용해 선택한 파일을 읽습니다.
function FileInput() {
  const handleChange = (e) => {
    const file = e.target.files[0];
    console.log(file.name, file.size, file.type);
  };
  return <input type="file" onChange={handleChange} />;
}

파일 객체 속성

파일 객체는 Blob을 확장하며 다음과 같은 속성을 가집니다. `name`(파일 이름), `size`(바이트 수), `type`('image/png'와 같은 MIME 유형), `lastModified`(타임스탬프)입니다. 업로드하거나 처리하기 전에 이러한 값을 읽으십시오.

특정 파일 유형 허용하기

`accept` 속성을 사용해 브라우저에 표시할 파일 유형을 알려 줍니다. MIME 유형과 확장자를 함께 지정하십시오. 항상 서버 측에서도 유효성을 검사해야 합니다.
<input type="file" accept="image/png,image/jpeg,.pdf" />

여러 파일 선택

여러 파일을 선택할 수 있도록 `multiple` 속성을 추가합니다. `e.target.files`는 FileList를 반환하므로 배열 메서드를 사용하려면 `Array.from()`으로 배열로 변환하십시오.
<input type="file" multiple />

const files = Array.from(e.target.files);

URL.createObjectURL로 이미지 미리 보기

`URL.createObjectURL(file)`을 사용해 선택한 이미지 파일의 임시 미리 보기 URL을 만듭니다. 메모리를 확보하려면 작업이 끝난 후 `URL.revokeObjectURL`로 해당 URL을 해제해야 합니다.
const [preview, setPreview] = useState(null);

const handleChange = (e) => {
  const file = e.target.files[0];
  if (file) setPreview(URL.createObjectURL(file));
};

useEffect(() => {
  return () => { if (preview) URL.revokeObjectURL(preview); };
}, [preview]);

{preview && <img src={preview} alt="Preview" />}

FileReader로 파일 내용 읽기

`FileReader` API를 사용해 파일 내용을 텍스트 또는 데이터 URL로 읽습니다. 텍스트 파일에는 `reader.readAsText(file)`를 호출하고, 이미지와 같은 이진 파일에는 `reader.readAsDataURL(file)`를 호출합니다.
const reader = new FileReader();
reader.onload = (e) => setContent(e.target.result);
reader.readAsText(file);

파일 크기 유효성 검사

업로드하기 전에 클라이언트에서 파일 크기를 검사합니다. 기준보다 큰 파일은 거부하고 오류 메시지를 표시하십시오.
const MAX_SIZE = 5 * 1024 * 1024; // 5 MB
if (file.size > MAX_SIZE) {
  setError('File must be under 5 MB');
  return;
}

파일 입력 지우기

파일 입력은 값을 설정해서 지울 수 없습니다(읽기 전용이기 때문입니다). 대신 ref를 통해 명령형으로 초기화하거나 입력의 `key` 프롭을 변경해 다시 마운트하십시오.
const inputRef = useRef();
const clear = () => { inputRef.current.value = ''; };
<input ref={inputRef} type="file" />

상태에 파일 참조 저장하기

파일 객체 자체를 상태에 저장하십시오(이름이나 URL만 저장하지 마십시오). 이렇게 하면 나중에 DOM에서 다시 읽지 않고도 파일을 업로드할 수 있습니다.
const [file, setFile] = useState(null);
const handleChange = (e) => setFile(e.target.files[0] || null);

빠른 확인

브라우저에서 선택한 이미지 파일의 미리 보기를 위한 임시 URL을 만드는 메서드는 무엇입니까?

복습

선택한 파일은 e.target.files에서 읽습니다. 미리 보기에는 URL.createObjectURL을, 내용 읽기에는 FileReader를 사용하고, 클라이언트에서 크기를 검사하며, 나중에 업로드할 수 있도록 File 객체를 상태에 저장합니다.

다음 학습

다음 학습: **파일 드래그 앤 드롭 업로드 UI** — React 이벤트를 사용해 시각적 피드백이 있는 드래그 앤 드롭 영역을 만듭니다.

자주 묻는 질문

“파일 입력 및 파일 데이터 읽기” 강의는 무료인가요?

네 — “파일 입력 및 파일 데이터 읽기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“파일 입력 및 파일 데이터 읽기”에서 뭘 배우나요?

을 처리하고 파일 메타데이터를 읽으며 FileReader로 이미지를 미리 봅니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“파일 입력 및 파일 데이터 읽기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. useRef를 사용한 비제어 입력
  2. 파일 입력 및 파일 데이터 읽기
  3. 드래그 앤 드롭 파일 업로드 UI
  4. 백엔드 API에 파일 업로드하기
← React Academy(으)로 돌아가기