자바의 System.out 과 System.err 의 차이에 대해서 알아보자. 사실 별 차이가 없는 줄 알았는데 생각보다 흥미로운 차이가 있어서 정리하게 되었다. out과 err는 다른 타이밍에 flush를 한다는 것이 차이점이다. out스트림은 자체적으로 자신의 버퍼를 가지고 있다. 여러개의 print request를 버퍼에 넣고 기다렸다가 적절한 타이밍에 한번에 출력하는 것이다. 이렇게 하는 이유는 속도 때문이라고 한다. print구문이 있을때마다 바로 콘솔에 메시지를 flush해서 출력하면 JVM 성능 상에 영향을 주기 때문이라고 한다. err스트림도 자체적으로 자신의 버퍼를 가지고 있다고 한다. 하지만 err라는 것을 보면 알 수 있듯이 에러 상황과 같이 일반적이지 않은 상황에서의 출력을 의미하기..