본문 바로가기

java

jvm 버그 테스트 하는방법! (java heap memory) 고맙다 JVM, 사과해라 JVM 크래시많은 개발자가 버그 원인을 인프라 탓으로 돌리곤 합니다. 전혀 이상이 없는 것 같은데 버그가 발생하니 애꿎은 장비나 DBMS(database management system), JVM(Java virtual machine)을 탓하는 것입니다. 하지만 거의 대부분, 아마도 99.9%는, 인프라의 잘못이 아닙니다. 그러나 이 글에서는 JVM 실행이 멈춘, 0.1%에 해당될 만한 이야기를 하려 합니다. JVM의 실행이 멈췄다는 것은 0.1%라고 무시할 수 없는 사례입니다.JVM은 마치 자동차의 엔진과 같은 것이라 인위적으로 시동을 끄지 않는 이상(System.exit 등) 외부적인 요인으로 실행이 멈추면 안 됩니다. JVM이 멈춘다는 것은 단순히 특정 시간의 장애로만 끝나.. 더보기
jps 사용법 jps 사용법자바로 개발할 때 보통 java와 javac만 사용하지만, JDK에는 이 이외에도 많은 도구가 포함되어 있다. 그 중 하나인 jps를 살펴보자. jps는 JVM 프로세스 상태를 보는 도구로 UNIX의 ps와 비슷하다. ps는 운영체계의 모든 프로세스 상태를 보여주지만 jps는 JVM 프로세스만 보여준다는 차이가 있다. jps 실행 시 목표 시스템(target system)을 지정하면 원격 시스템의 JVM 프로세스 상태도 확인할 수 있다.사용법$ jps [options] [hostid]옵션-q 클래스 이름, JAR 파일 이름, main 메서드에 전달된 인자를 모두 생략하고 JVM 아이디(보통 OS 프로세스 아이디와 동일. 반드시 그럴 필요는 없음)만 표시한다.-m main 메서드에 전달된 인자.. 더보기
Visitor 자바 디자인 패턴 16 - Visitor 1. Visitor 패턴은.. 복잡한 구조체 안을 돌아다니면서 어떤 일을 해야 할 경우가 있습니다. Visitor는 어떤 구조체에 대해 그 안을 돌아다니면서 어떤 일을 하는 것입니다. 이 때, 구조체 1개에 하는 일이 딱 1개라는 보장은 없습니다. 하나의 구조체에 대해 다양한 일들을 할 수 있습니다. 하고 싶은 일이 추가된다고 해서 구조체를 변경하는 것은 무리입니다. 이런 때는 Visitor를 추가하면 됩니다. 예제에서는 PC의 디렉토리-파일 구조에 대해 야동을 찾는 일을 하는 Visitor를 구현해보았습니다. 2. 예제 --------- Component, Composite, Leaf 등은 Composite 패턴 설명에 썼던 것을 거의 그대로 사용했습니다. 바뀐.. 더보기