Java Memory Monitoring

Java 메모리 모니터링두서 없이 이것저것 모아본 자바 메모리 모니터링 Heap Dump 힙에 있는 모든 객체 Dumpjmap -dump:format=b,file=HEAP_DUMP_OUTPUT_FILE_NAME.hprof PID 힙에 있는 Live 객체만 Dumpjmap -dump:live,format=b,file=HEAP_DUMP_OUTPUT_FILE_N
Continue reading

Java Native Memory Tracking

Java Native Memory TrackingDMA자바에서도 DirectBuffer를 이용해서 JVM이 아닌 Native 메모리를 사용하고 DMA(Direct Memory Access)의 장점을 활용할 수 있다. 구체적인 사용법 등 자세한 내용은 Java NIO Direct Buffer를 이용해서 대용량 파일 행 기준으로 쪼개기를 참고하고 장단점만 요약
Continue reading

Spring Data에서 Batch Insert 최적화

Spring Data에서 Batch Insert 최적화Spring Data JPA가 안겨주는 편리함 뒤에는 가끔 성능 손실이 숨어있다. 이번에 알아볼 Batch Insert도 그런 예 중 하나다. 성능 손실 문제가 발생하는 이유와 2가지 해결 방법을 알아본다. 전체 코드는 https://github.com/HomoEfficio/micro-benchmark-
Continue reading

GET이냐 POST냐 그것이 문제로다

GET이냐 POST냐 그것이 문제로다며칠 전에 페이스북에 올렸던 질문에 여러분께서 시간 내서 좋은 의견 나눠주셔서, 나만 꿀꺽하고 넘어가면 도리가 아닌 것 같아 다시 정리해본다. 먼저 이 글은 나름의 결론이 있기는 하지만, 그것이 정답이라고 단정할 수는 없다.또한 REST와는 아무런 관계가 없으며, 오직 HTTP Method에 대한 얘기다. 문제보통 클라이
Continue reading

IntelliJ에서 H2 연결하고 JPA Console 사용하기

IntelliJ에서 H2 연결하고 JPA Console 사용하기H2는 Web 콘솔도 지원해줘서 로컬 환경에서 웹을 통해 쉽게 데이터를 확인할 수 있다.IntelliJ Ultimate 버전에는 DB Client 도구가 포함돼있어서 로컬에서 H2 DB를 사용할 때 편리하게 사용할 수 있다.또한 JPA를 사용하는 경우 JPA Console을 사용할 수 있고, H
Continue reading

Java Optional 바르게 쓰기

Java Optional 바르게 쓰기Brian Goetz는 스택오버플로우에서 Optional을 만든 의도에 대해 다음과 같이 말했다. … it was not to be a general purpose Maybe type, as much as many people would have liked us to do so. Our intention was to p
Continue reading

Quartz 스케줄러 적용 아키텍처 개선 - 3

Quartz 스케줄러 적용 아키텍처 개선 - 31편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다. 2편에서는 Quartz 작업 클래스 모듈에 의존 관계를 주입하는 방법을 알아봤다. 이렇게 두 개의 고개를 성공적으로 넘었고 마지막으로 @Tranactional 고개가
Continue reading

Quartz 스케줄러 적용 아키텍처 개선 - 2

Quartz 스케줄러 적용 아키텍처 개선 - 21편에서는 Quartz 스케줄러 적용 시 변경 주기가 다른 스케줄러 모듈과 작업 클래스 모듈을 분리해서 클린 아키텍처에 다가가는 방법을 알아봤다. 분리된 작업 클래스 모듈은 DB 작업을 할 수도 있고, 하둡 인프라 관련 작업을 할 수도 있고, 알림 메일도 보내야하는 등 여러 작업을 할 수 있어야 한다. 그런데
Continue reading

Quartz 스케줄러 적용 아키텍처 개선 - 1

Quartz 스케줄러 적용 아키텍처 개선 - 1Quartz는 스프링에서도 지원하고 있어서 스프링 기반 프로젝트에도 쉽게 통합해서 사용할 수 있으므로 널리 사용되고 있다. 게다가 properties 파일 설정만으로 간단하게 클러스터를 구성해서 부하 분산 및 fail-over가 가능한 것도 장점이다. Quartz에 나오는 주요 등장 인물에 대한 설명이나 기본
Continue reading

HomoEfficio


Seoul, Korea.