자바 메모리 다이어트: 몇가지 자바 메모리 최적화 기법
자바 애플리케이션의 성능을 결정짓는 핵심은 효율적인 메모리 설계와 이를 뒷받침하는 검증 과정에 있다. 이번 포스팅에서는 문자열 최적화부터 가상스레드까지 메모리를 아끼는 5가지 기법을 소개하고자 한다.
배움의 즐거움, 나눔의 가치를 실천하는 DevLog
자바 애플리케이션의 성능을 결정짓는 핵심은 효율적인 메모리 설계와 이를 뒷받침하는 검증 과정에 있다. 이번 포스팅에서는 문자열 최적화부터 가상스레드까지 메모리를 아끼는 5가지 기법을 소개하고자 한다.
Spring Data MongoDB 변환 방식에 따라서 대량의 bulk insert를 수행할 때 성능상의 병목이 발생할 수 있다. 우리는 이런 문제를 bson4jackson과 RawBsonDocument를 이용하여 대량의 bulk insert를 처리할 때 성능의 극대화를 이룰 수 있다.
클라우드 네이티브와 마이크로 서비스 아키텍처(MSA)가 주류가 된 지금, 자바는 여전히 ‘무겁고 느리다’는 편견이 있는 것은 사실이다. Quarkus는 이러한 편견을 정면으로 돌파하며 “Supersonic Subatomic Java”라는 슬로건과 함께 등장했다. 이번 포스팅에서는 Quarkus가 무엇인지 어떻게 사용할 수 있는지에 대해서 간단히 소개하고자 한다.
boolean 타입 필드의 이름을 is로 시작하도록 하는 경우 주의해야 한다. JSON 변환시 boolean 필드의 is가 사라질 수 있기 때문이다. boolean 필드의 ‘is’가 사라지는 이유와 해결법에 대해서 알아보자.
Spring gRPC 1.0.0 버전이 정식 릴리즈 됐다. 이를 통해 이제 Spring 공식 지원을 통해 안정적인 고성능 RPC(Remote Procedure Call) 환경을 쉽게 구축할 수 있다. 이번 포스팅에서는 gRCP 1.0.0 정식 릴리즈가 되면서 기존의 gRPC 0.X 버전을 사용하던 기존 프로젝트에서 gRPC 1.0.0 버전을 적용하기 위해서 고려해야 할 사항과 적용 방법, 그리고 gRPC 사용법에 대해서 간단히 정리해 보고자 한다.
쿠버네티스 환경의 서비스에 애플리케이션 배포를 하기 전에 QA 검증 과정을 거칠 것이다. 검증 과정 중에 발생한 이슈의 원인을 확인 하기 위해서 때로는 추가적인 로그를 코드에 추가해서 다시 테스트 환경에 애플리케이션에 배포 후에 로그 내용을 확인하는 매우 번거로운 과정을 반복하는 경우가 있다. 추가한 로그를 통해서도 명확히 원인 파악이 안된다면? 또 다시 의심되는 부분을 찾아서 로그를 추가하고 또 배포해서 확인하고… 시간적으로 그리고 일의 능률 측면에서 매우 비효율적이 아닐 수 없다. 이번 포스팅에서는 테스트 환경에서 이러한 비효율을 단번해 해결할 수 있는 Remote Debugging 을 적용하여 Pod 내의 애플리케이션을 로컬에서 디버깅 할 수 있는 방법을 소개하고자 한다. (ft. IntelliJ)
최근 OpenAI의 GPT-5.1, 그리고 연이어 공개된 GPT-5.2 업데이트 소식이 개발 커뮤니티 사이에서 화제다. 겉으로 보면 단순한 버전업 같지만, 실제로는 AI를 운영 시스템에 어떻게 “설계해야 하는지”에 대한 방향성이 명확해진 업데이트라고 생각된다.
“모델이 좋아졌구나” 수준을 넘어 이제 AI를 시스템에 어떻게 붙여야 하는지가 명확해지고 있다.
이번 포스팅에서는 GPT-5.1의 핵심 변화와 GPT-5.2에서 추가로 보완된 점을 정리해 보고자 한다.
Java 빌드 프로세스에 jdeb를 통합하여 Windows나 MacOS 환경에서도 표준 리눅스 배포 패키지인 .deb 파일을 쉽고 자동화된 방식으로 생성하는 방법을 소개한다.
기존 JVM 배포 방식 보다 훨씬 빠른 구동 속도와 적은 메모리 사용량을 자랑하는 GraalVM Native Image는 클라우드 네이티브 환경에서 선택이 아닌 필수가 되어 가고 있다. Spring AOT의 사전 처리 과정과 Buildpacks와 Native Build Tools 두 가지 방식을 통해 spring boot graalvm native image를 빌드하는 방법을 정리하였다.
spring boot 에서 기본적으로 사용하는 logging 모듈인 logback에 대해서 상세히 정리하였다. spring boot logback을 통해서 애플리케이션 logging을 구성하는데 있어서 많은 도움이 될 수 있다.