BufferedReader가 Scanner보다 빠른 이유, 그리고 느낀 점

Harry·2021년 7월 20일
0

내용 출처

  • Buffer를 사용하기 때문
  • Buffer Flush → 버퍼에 남아있는 데이터를 출력 [ 버퍼를 비우는 동작 ]

입력

  • 사용자가 키보드를 누를 때마다 전달을 하는 것이 아니라, 버퍼에 용량만큼 모았다가 전달한다.
  • 하나씩 움직이면서 옮기는 것보단, 한 번에 최대로 모았다가 옮기는 게 더 빠르다고 생각하면 된다.

출력

  • 마찬가지로 버퍼를 거쳐서 간접적으로 출력장치로 전달된다.
  • 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적인 입출력이 가능

"BufferReader가 Scanner보다 빠른 이유 → 한 번에 옮기기 때문" 이걸 곰곰히 생각해보자

애플리케이션의 성능을 높이는 데에 있어서, 대부분의 경우가 이런 경우에 속하지 않을까?
요즘 Java Spring Jpav 인터넷 강의를 접하고 있는데, 여기서 나오는 강사님이 말씀하시는 성능 최적화와 매우 밀접하다고 느껴진다.
즉, "여러번 전달하는 게 아닌 한 번에 전달하는 것" 이게 핵심인 것 같다.
이 핵심이 결국엔 애플리케이션 성능 최적화에 있어서 모두 적용이 되는 것 같다.
추가로, 필요하지 않는 data는 "요청하지/가져오지" 않는다.

결국엔 데이터 입출력을 여러번 가져오지 않고 어떻게 한 번에 가져올 수 있는가?
데이터 입출력을 어떻게 해야 최소화할 수 있는가?
이게 핵심이 아닐까? 라는 생각이 든다.

0개의 댓글