파일 I/O의 중요성
파일 입출력은 프로그래밍의 기본입니다. 40년간 시스템 프로그래밍을 해온 저로서는 파일 I/O를 제대로 이해하면 많은 문제를 예방할 수 있다고 확신합니다. 설정 파일, 로그, 데이터 저장에 필수입니다. 올바른 처리가 데이터 손실과 보안 문제를 방지합니다.
기본 파일 연산
열기(Open): 파일 핸들을 얻습니다. 모드(읽기, 쓰기, 추가)를 지정합니다. 읽기(Read): 내용을 가져옵니다. 전체, 줄 단위, 바이트 단위. 쓰기(Write): 내용을 저장합니다. 덮어쓰기 또는 추가. 닫기(Close): 리소스를 해제합니다. 자동 정리(with, using)를 사용합니다.
경로 처리
절대 경로와 상대 경로를 이해합니다. 경로 구분자는 OS마다 다릅니다(/, \). 경로 조작에 라이브러리를 사용합니다. Python os.path, Node.js path. 경로 인젝션에 주의합니다. 사용자 입력을 경로에 직접 사용하지 마세요.
인코딩과 바이너리
텍스트 파일은 인코딩(UTF-8 등)을 명시합니다. 인코딩 불일치는 깨진 문자의 원인입니다. 바이너리 파일은 바이너리 모드로 열어야 합니다. 이미지, 동영상 등. 대용량 파일은 스트리밍으로 처리합니다. 메모리에 전부 올리지 마세요.
에러 처리와 성능
파일이 없을 수 있습니다. 권한이 없을 수 있습니다. 디스크가 가득 찼을 수 있습니다. 예외를 적절히 처리합니다. 버퍼링을 이해합니다. 쓰기 후 flush가 필요할 수 있습니다. 동시 접근에 주의합니다. 락이 필요할 수 있습니다.
댓글
0