피드로 돌아가기
Dev.toBackend
원문 읽기
Java 파일 I/O 성능의 핵심, Buffer 계층을 통한 시스템 콜 최적화 전략
FileReader, BufferedReader, FileWriter, BufferedWriter in Java
AI 요약
Context
FileReader와 FileWriter 기반의 단일 문자 처리 방식. 빈번한 OS 시스템 콜 발생으로 인한 성능 저하. 대용량 파일 처리 시 비효율적인 디스크 액세스 구조.
Technical Solution
- 8KB 크기의 메모리 버퍼를 도입하여 디스크 읽기 횟수를 최소화하는 BufferedReader 설계
- 메모리 내 데이터 적재 후 애플리케이션에 전달하는 인메모리 읽기 방식 채택
- 줄 바꿈 문자(
\n) 기반의 문자열 추출 기능을 제공하는 readLine() 메서드 활용 - 쓰기 작업 시 메모리 버퍼에 데이터를 임시 저장 후 일괄 기록하는 BufferedWriter 구조
- Decorator Pattern을 적용하여 기본 파일 연결 기능과 성능 향상 기능을 계층적으로 분리
- Try-With-Resources 구문을 통한 자동 리소스 해제 및 메모리 누수 방지 전략
Key Takeaway
기능적 구현보다 하드웨어 인터페이스와 OS 수준의 비용을 고려한 버퍼링 전략이 전체 시스템 처리량에 결정적인 영향을 미침.
실천 포인트
파일 I/O 작업 시 단일 문자/바이트 처리 대신 반드시 Buffered 계층을 추가하여 시스템 콜 오버헤드를 줄일 것