기타(개발관련)
자바개발 및 운영툴
날아올라↗↗
2015. 12. 12. 18:00
728x90
반응형
1. 개발 툴 소개
netbeans // java tool 외국 개발자들이 많이 사용
intelliJ //굉장히 편하다 , 단점 : 유료
2. JDK 툴 소개
1) jstat : jvm의 상황을 모니터링 하는 프로그램
메모리릭 났을 때
자바 객체 생성시 ==> new 영역 , old 영역 , 퍼머넌트 영역?? ==GC 모니터링
2)javap : 해당 클래스 파일 메소드 변수 정보 출력 ( 다른 사람의 자바 소스를 볼때 유용하다)
3) jstack : 쓰레드 덤프 발생 시킴
콜스텍 , 데드락 정보를 보여준다.
==> kill - 3 ?? 이걸 써라
4) jmap : 힘 덤프를 발생 시킴
jvm에 올라가 있는 모든 객체를 파일덤프로 남긴다.
==> 운영 서버가 멈쳤을때 그때 사용한다.
3. TEST TOOLS
1) Unit test tool
단위 테스트 (junit ) ==> 해당 메소드 콜 테스트
2) UI test tool : pass
3) Acceptance test tool
: 보통 인수 테스트
4) 성능 테스트 툴 (Perormance test tool)
- load runner : 굉장히 비싸다 , 300 유저 퍼머넌트에 1억 라이센스
소켓, 프로토콜 추가할때마다 가격 올라감
# 무료 툴
- Grinder : nhn에서 사용? ㅋ
nGrinder 오픈 소스로 올라와 있다. ==>
- JMeter
4. Profiling Tool
: 프로그램의 성능, 메모리 사용량, 코드 커버리지등을 확인할 수 있다.
- 운영 서버에 많은 성능 저하를 발생시키므로 반드시 개발자 pc및 개발 서버에서 사용해야 한다.
-상용 툴 권장 함
- 자바 프로그래머들이 IDE 만큼 옆에 끼고 살아야 하는 툴
- 대부분 사용 프로파일링 툴은 IDE 연계가 가능하여, IDE 에서 바로 성능 측정이 가능
==> 우리가 짠 코드 라인에서 얼마의 응답속도를 나타내는지 까지 확인이 가능하다.
메모리를 얼마나 먹었는지 확인가능 , 상세하게 보여준다. ==> 부하가 크다
==> 상용 프로파일링 툴은 소스의 라인단위까지 분석이 가능하다.
1) DevPartner for Java
2)JProbe(Quest)
3)JProfiler(ej-technologies) : cpu 프로파일 기능도 제공,
시작 점 찍고, 프로그램 돌리고, 끝점 찍으면 ===> 프로파일링 파일로 떨굼
==> 어떤 클래스 , 어떤 메소스 콜이 많은지 그래프로 보여줌
==> 시작, 끝의 메모리 차이
==> 스레드 락 정보 , 그 락에서 얼마나 걸렸고, 어떤 객체에서 호출 된건지 보여줌
4)YourKit : 해외에서 많이 씀
5. Monitoring tool
- 애플리케이션이 정상적으로 작동하는지 확인하는 목적
-애플리케이션 상황을 전반적으로 확인하는 APM과 JVM 상태를 간단히 확인할 수 있는
JMX 기반의 툴로 나뉨
1) APM : Application Performance Monitor(사용이 많음)
- Jennifer
- WebTune
- Pharos
2) JMX :Java Management Extensions (무료 툴로 충분)
- Visual VM : JVisual VM과 Visual VM으로 나뉨 (Visual VM 사용 권장 , 별도로 다운로드 해서 사용 가능 )
- JConsole
6. TroubleShooting Tool
: 운영중인 시스템이 비정상적인 동작을 할때, 원인을 찾기 위해 사용
- 어떤 장애가 발생했을때 해당 장애와 관련된 자료를 수집하는 것이 가장 중요
1) MAT
2) BTrace : 특정 장비에서만 이상이 있을때 , 실시간 운영중인 서버에 접속해서 확인할 수 있다.
netbeans // java tool 외국 개발자들이 많이 사용
intelliJ //굉장히 편하다 , 단점 : 유료
2. JDK 툴 소개
1) jstat : jvm의 상황을 모니터링 하는 프로그램
메모리릭 났을 때
자바 객체 생성시 ==> new 영역 , old 영역 , 퍼머넌트 영역?? ==GC 모니터링
2)javap : 해당 클래스 파일 메소드 변수 정보 출력 ( 다른 사람의 자바 소스를 볼때 유용하다)
3) jstack : 쓰레드 덤프 발생 시킴
콜스텍 , 데드락 정보를 보여준다.
==> kill - 3 ?? 이걸 써라
4) jmap : 힘 덤프를 발생 시킴
jvm에 올라가 있는 모든 객체를 파일덤프로 남긴다.
==> 운영 서버가 멈쳤을때 그때 사용한다.
3. TEST TOOLS
1) Unit test tool
단위 테스트 (junit ) ==> 해당 메소드 콜 테스트
2) UI test tool : pass
3) Acceptance test tool
: 보통 인수 테스트
4) 성능 테스트 툴 (Perormance test tool)
- load runner : 굉장히 비싸다 , 300 유저 퍼머넌트에 1억 라이센스
소켓, 프로토콜 추가할때마다 가격 올라감
# 무료 툴
- Grinder : nhn에서 사용? ㅋ
nGrinder 오픈 소스로 올라와 있다. ==>
- JMeter
4. Profiling Tool
: 프로그램의 성능, 메모리 사용량, 코드 커버리지등을 확인할 수 있다.
- 운영 서버에 많은 성능 저하를 발생시키므로 반드시 개발자 pc및 개발 서버에서 사용해야 한다.
-상용 툴 권장 함
- 자바 프로그래머들이 IDE 만큼 옆에 끼고 살아야 하는 툴
- 대부분 사용 프로파일링 툴은 IDE 연계가 가능하여, IDE 에서 바로 성능 측정이 가능
==> 우리가 짠 코드 라인에서 얼마의 응답속도를 나타내는지 까지 확인이 가능하다.
메모리를 얼마나 먹었는지 확인가능 , 상세하게 보여준다. ==> 부하가 크다
==> 상용 프로파일링 툴은 소스의 라인단위까지 분석이 가능하다.
1) DevPartner for Java
2)JProbe(Quest)
3)JProfiler(ej-technologies) : cpu 프로파일 기능도 제공,
시작 점 찍고, 프로그램 돌리고, 끝점 찍으면 ===> 프로파일링 파일로 떨굼
==> 어떤 클래스 , 어떤 메소스 콜이 많은지 그래프로 보여줌
==> 시작, 끝의 메모리 차이
==> 스레드 락 정보 , 그 락에서 얼마나 걸렸고, 어떤 객체에서 호출 된건지 보여줌
4)YourKit : 해외에서 많이 씀
5. Monitoring tool
- 애플리케이션이 정상적으로 작동하는지 확인하는 목적
-애플리케이션 상황을 전반적으로 확인하는 APM과 JVM 상태를 간단히 확인할 수 있는
JMX 기반의 툴로 나뉨
1) APM : Application Performance Monitor(사용이 많음)
- Jennifer
- WebTune
- Pharos
2) JMX :Java Management Extensions (무료 툴로 충분)
- Visual VM : JVisual VM과 Visual VM으로 나뉨 (Visual VM 사용 권장 , 별도로 다운로드 해서 사용 가능 )
- JConsole
6. TroubleShooting Tool
: 운영중인 시스템이 비정상적인 동작을 할때, 원인을 찾기 위해 사용
- 어떤 장애가 발생했을때 해당 장애와 관련된 자료를 수집하는 것이 가장 중요
1) MAT
2) BTrace : 특정 장비에서만 이상이 있을때 , 실시간 운영중인 서버에 접속해서 확인할 수 있다.
728x90
반응형