본문 바로가기
728x90

BufferedReader2

[JAVA] Scanner vs BufferedReader : 성능과 효율을 결정짓는 입력 방식의 모든 것 자바(Java)를 처음 접하면 가장 먼저 배우는 것 중 하나가 콘솔 입력입니다. 이때 우리는 보통 Scanner를 사용하곤 합니다. 하지만 알고리즘 문제를 풀거나 대용량 데이터를 처리하는 현업 프로젝트에 투입되면 "왜 BufferedReader를 써야 하는가?"라는 질문을 마주하게 됩니다. 단순히 '빠르다'는 이유를 넘어, 두 클래스가 내부적으로 어떻게 동작하며 어떤 상황에서 진가를 발휘하는지 전문적인 관점에서 심도 있게 분석해 보겠습니다.1. 왜 입력 방식의 선택이 중요한가?컴퓨터 시스템에서 I/O(Input/Output) 작업은 CPU 연산에 비해 압도적으로 느린 작업입니다. 표준 입력(System.in)으로부터 데이터를 읽어올 때, 매번 한 바이트씩 가져오느냐 아니면 한꺼번에 뭉텅이로 가져와 메모리.. 2026. 1. 20.
[JAVA] 버퍼(Buffered) 스트림을 사용하는 이유 : 입출력 성능의 비약적 향상 자바 프로그래밍에서 파일 시스템이나 네트워크를 통해 데이터를 주고받을 때, 성능 최적화의 핵심으로 꼽히는 것이 바로 버퍼(Buffered) 스트림입니다. 단순히 FileInputStream이나 FileReader를 사용하는 것보다 왜 BufferedInputStream이나 BufferedReader를 권장하는지, 그 내부 메커니즘과 실무적인 가치를 심도 있게 분석해 보겠습니다.1. 버퍼(Buffer)란 무엇인가?버퍼는 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역을 의미합니다. 자바의 입출력 작업에서 버퍼는 '바구니'와 같은 역할을 합니다. 물 한 방울씩을 옮기기 위해 매번 수도가와 거실을 왕복하는 대신, 커다란 양동이(버퍼)에 물을 가득 채워 한 번에 옮기는.. 2026. 1. 20.
728x90