최근 마주한 OutOfMemoryError 분석기
최근 마주한 OutOfMemoryError에 대해 사실 꽤 전부터 우리 회사에는 OutOfMemoryError(이하 OOME)가 발생하는 어플리케이션이 있었다. 그런데 아무도 그 원인을 해결하지 못했다(…). 이번에 어쩌다 그 원인을 파악하게 되었는데, 이에 그 경험을 적어보고자 한다. 일반적으로 OOME가 발생하는 이유 OOME가 발생하는 이유...
최근 마주한 OutOfMemoryError에 대해 사실 꽤 전부터 우리 회사에는 OutOfMemoryError(이하 OOME)가 발생하는 어플리케이션이 있었다. 그런데 아무도 그 원인을 해결하지 못했다(…). 이번에 어쩌다 그 원인을 파악하게 되었는데, 이에 그 경험을 적어보고자 한다. 일반적으로 OOME가 발생하는 이유 OOME가 발생하는 이유...
OutOfMemoryError OutOfMemoryError(이하 oome)에 대한 악명은 개발자라면 익히 들어서 익숙할 것이다. 하지만 익숙한만큼 이 정도는 별 거 아니지 라고 생각하게 되고, JVM 위에서 돌아가는 Java는 메모리 관리를 알아서 해주기에 실제로 oome와 마주칠 기회는 그리 많지 않았던 것 같다. 그러나 언제나 예외는 있는 법이...
postgres 이중화는 뭘로 할까? 일반적으로 IT 분야에서 제일 많이 사용하는 DB 중 하나는 PostgreSQL일 것이다. 안정적인 성능과 다양한 타입의 컬럼 등, DB 랭킹을 매기는 DB 엔진에서 4위에 자리매김할 정도로(2024년 현재 기준) 인기 있는 DB인 postgres는 지금도 여러 곳에서 쓰이며 활약하고 있다. postgres의 장...
MVC VS Webflux 스프링에는 웹 서버를 다루기 위해 크게 2개의 프레임워크가 있다. spring-boot-starter-web과 spring-boot-starter-webflux가 바로 그것이다. 전자는 스프링 MVC라고도 불리는, 서블릿 스펙을 준수하는 동기 호출 기반의 웹 서버를 제작하는 프레임워크이며, 후자는 Reactive Strea...
우리가 sysout을 사용하지 않는 이유 보통 java에서 로그를 찍을 때 System.out.println이라는 함수 대신 log.debug(log는 때때로 대문자이거나 LOGGER 등으로 다를 수 있다.) 함수를 쓰라는 이야기를 들곤 한다. sysout 함수 대신 log.debug라는 함수를 쓰는 이유는 여러 가지가 있다. 첫 번째는 sysout...