본문 바로가기

Java & Kolin6

Sentry에서 Cron 모니터링이 가능하다는 사실 크론 잡(Cron job)은 서버 관리나 작업을 자동화하는 데 많이 사용되는 방법 중 하나입니다. 예시를 들어보면 정기적으로 데이터베이스 백업을 수행하거나 문제가 되는 데이터를 정리하고, 이메일 알림을 발송하는 등 다양한 용도로 사용됩니다. 하지만 크론 작업을 무겁고 중요하게 사용할 경우 문제점이 하나 발생할 수 있는데요. 바로 모니터링이 쉽지 않다는 점입니다. 크론이 정상적으로 실행되고 종료되었는지, 오류가 발생하지 않았는지 혹시 중간에 배포가 있어서 끊기지 않았는지 확인하는 작업은 수동적이고 번거로울 수 있습니다. 개인의 퍼포먼스에 의존하는 만큼 관리하는 사람이 부재 중일 때, 문제가 발생한다면 꽤나 오래 문제가 지속될 수도 있습니다. 저 또한 비슷한 문제를 겪었습니다. 로직의 누락으로 크론이 실행 .. 2024. 10. 14.
M1 사용기 - JVM환경에서 ARM / Rosetta 번역 알아내기 개발을 하다보면 JVM만이 아닌 다른 환경에 종속적인 코드를 작성할 때가 있습니다. (ex. TestContainers - docker 컨테이너를 실행) 이때, JVM은 정상적으로 로제타로 번역이 되어서 잘 실행되지만, 이런 코드로 실행되는 것들은 M1에 맞지 않는 경우가 있습니다. 이런 경우를 대비하여 코드단에서 ARM / M1인지 알아보는 방법을 작성해보겠습니다. * 해당 내용은 Kotlin으로 작성되었습니다. 1. System.getProperty 먼저 해볼 수 있는 것은 아키텍쳐 이름을 가져오는 것입니다. 이 정보는 시스템 클래스에 os.arch로 저장되어있습니다. 아래와 같은 코드로 확인이 가능합니다. if (System.getProperty("os.arch").toLowerCase().cont.. 2021. 10. 10.
Garbage Collection 이 글은 Oracle의 Java Garbage Collection Basic, 그리고 JAVA SE 16의 HotSpot Virtual Machine Garbage Collection Tuning Guide 을 읽고 정리한 글입니다. Garbage Collection이란? Garbage Collection은 힙 메모리를 체크하여 사용되지 않는 객체를 확인하고, 삭제하는 프로세스입니다. C나 C++같은 언어가 수동으로 malloc이나 free로 메모리를 관리해주어야 하는 것에 달리 GC가 있는 언어는 각 언어의 Virtual Machine에서 관리해줍니다. 이러한 메모리 관리는 Reference Counting, Mark-and-Sweep 등등 많은 방법으로 이루어지지만, 오늘은 Oracle Hotspot.. 2021. 4. 4.
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. 1. JVM JAVA와 OS사이에 중재자 역할을 해주면서 재사용성을 증가시킴 스택기반의 가상머신, 메모리관리 및 GC를 수행함 실행시 JVM은 OS에서 필요한 메모리를 할당받는다. javac(Java Compiler)가 .java파일을 .class파일(Byte Code)로 변화시킨다 Class Loader가 런타임 시점에 Class파일을 JVM으로 로딩한다 로딩된 Class파일은 Execution Engine을 통해 해석된다 해석된 코드는 Runtime Data Area로 이동하여 실행된다. 실행 간에 지속적으로 메모리 관리가 이루어진다. 2. JVM의 요소 Class Loader class 파일 / ByteCode를 메모리에 로드한다. 객체가 생성되는 과정이라고 볼 수 있다? 상속이 된다. load 요.. 2021. 3. 30.