'전체'에 해당되는 글 404건

  1. 2012/02/08 [프로그래머 이야기] 공동 집필 참여
  2. 2012/01/30 [Java GC] 자바의 Perm 영역에서도 GC가 일어날까? (4)
  3. 2012/01/26 [Linux] top에서의 VIRT와 RES
  4. 2012/01/16 [OO 자바] 나의 네번째 책 집필 진도율 90%
  5. 2012/01/16 [subclipse] 맥에서 subclipse 사용하기
  6. 2011/12/09 원격 장비의 MAC address (맥 어드레스) 확인하는 방법
  7. 2011/12/08 [TCP 설정] 리눅스에서 TCP 설정하기
  8. 2011/11/16 [자바 성능 튜닝] 트위터 엔지니어가 쓴 자바 성능 튜닝에 대한 경험
  9. 2011/11/13 ApacheCon 2011 참관 후기 (2)
  10. 2011/11/04 [vi] .vimrc 파일을 OS 기본 설정값으로 만들기 + vi color sample pack 설치하기
  11. 2011/10/14 [자바 애플릿] 애플릿에서 사용하는 메모리 크기 증가시키기
  12. 2011/10/10 [Conference] 2011 JavaOne 자료 다운로드
  13. 2011/09/16 성능 테스트에 대한 영어 용어에 대한 정리
  14. 2011/09/07 [id_rsa] ssh 서버에 쉽게 로그인하기
  15. 2011/09/01 [Java Spec] JVM Spec과 Java Language Spec 문서 업데이트
  16. 2011/08/30 [JDK7] 2011년 8월 현재 JDK 7은 시기상조인듯 (2)
  17. 2011/08/29 [집필 방법론] How to write a book
  18. 2011/08/20 [맥] 맥에서 아파치 웹서버 설치하기
  19. 2011/08/19 [My Fourth Book] 나의 네번째 책 (2)
  20. 2011/08/17 [브라우저] 브라우저가 작동하는 방식들...
  21. 2011/07/27 [Linux] vi 에서 커서 이동이 잘 안되고, 이상한 문자가 찍힐때 로케일(locale) 수정방법
  22. 2011/07/26 발표자료 잘 만들기 !!!
  23. 2011/07/21 [자바 메모리 모니터링] JVM에서 사용하는 전체 메모리를 모니터링하는 방법
  24. 2011/07/09 [Navigation Timing] 화면처리 시간 측정에 대한 자료 (2)
  25. 2011/07/05 [Java Optimizer] Soot라는 자바 옵티마이저
  26. 2011/07/05 [Java GC] GC가 성능에 미치는 영향에 대한 고찰 -링크
  27. 2011/06/13 [JCO 2011] 제니퍼도 울고갈 BTrace 교육 준비
  28. 2011/06/03 [Blog2Book] Troubleshooting 트러블 슈팅 책 링크 (2)
  29. 2011/05/25 [Blog2Book 자바 트러블 슈팅] 조만간 자바 트러블 슈팅 책이 나옵니다. (2)
  30. 2011/05/16 [컨퍼런스] SDEC 행사가 열립니다.
작년 12월 초에 세미나 강의하러 갔다가 "프로그래머의 이야기를 책으로 만들자"라는 이야기가 나와서,
출판사 부장님이 오랫동안 고심한 기획서가 하나 나왔다.

아마도 6월정도엔 출시될 것 같은데, 한 사람이 쓰는 분량은 A4기준 30페이지 정도 될 것 같다. 
기술서도 아니라서 말을 풀어나가기가 쉬울것 같으면서도 어려울 것 같다.
(책을 찍어 낸 다음에는 수정도 못하니까...)

지금 쓰고 있는 책 진도율이 608 페이지에 94% 정도 되고, 2개 장이 남았는데 다 쓰고 이걸 쓸까? 아니면 이걸 먼저 쓰고 지금 쓰는 책을 끝낼까 고민된다.


여하튼 올해 내로 내 집필서 두권이 나오면 이제 집필서로 5권 채우는구나~~~ ㅎㅎㅎ

크리에이티브 커먼즈 라이선스
Creative Commons License

'Books > 프로그래머 이야기' 카테고리의 다른 글

[프로그래머 이야기] 공동 집필 참여  (0) 2012/02/08
Posted by tuning-java Trackback 0 : Comment 0
내가 기고한 어떤 글에 어느 분께서 질문을 올려서 여기에 정리한다.
질문의 골자는 "다른분께서 Perm 영역에서는 GC 가 발생 안한다고 했는데, Perm영역에서도 GC발생한다는 것이 이상하다"는 내용이다. 
나도 내 눈으로 확인하기 전까지는  GC가 발생안한다고 생각했으므로 당연한 질문이라고 생각한다.
지금까지 내가 무슨 이야기하는지 이해가 안되시는 분은
이글 (http://helloworld.naver.com/helloworld/1329) 먼저 읽으시면 조금 이해가 쉬울 것이다. 

다음의 소스를 보자.

public class InternTest {

  public static void main(String[] args) throws Exception{

    InternTest test=new InternTest();

    Thread.sleep(10000);   System.out.println("Starting");

    while(true) {

      test.callIntern();Thread.sleep(5000);

      System.out.print(".");

    }

  }

  private void callIntern() {

    for(int loop=0;loop<10000;loop++) {

      String a="1234567890"+System.nanoTime();

      String newString=a.intern();

    }

  }

}

 아주 간단한 소스인데, callIntern() 이라는 메소드를 보면 새로운 String을 계속 만들어 intern() 메소드를 호출하고 있다. 
이 클래스를 컴파일하고 jstat으로 모니터링하면 다음과 같은 결과를 볼 수 있다.
(jstat에 대해서는 "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"를 참조하거나,
http://helloworld.naver.com/helloworld/6043 를 참고하기 바란다.)

예를 들어 이 프로그램의 프로세스 ID가 4800 일 때 결과는 다음과 같이 출력된다.  

$ ./jstat -gcutil  4800 3s
  S0   S1   E     O    P     YGC  YGCT  FGC FGCT  GCT
  0.00 0.16 10.43 8.79 
98.37 3869 1.247 87  1.815 3.061
  0.02 0.00 52.12 8.77 
45.21 3884 1.250 88  1.840 3.090
  0.00 0.16 83.39 8.77 
98.89 3903 1.257 88  1.840 3.097
  0.00 0.16 27.11 8.78 
15.04 3919 1.262 89  1.857 3.119

 
P라고 표시되어 있는 내용의 값이 계속 변경되는 것을 볼 수 있다.
여기서 P가  Perm 영역의 사용량(%)인데, 보는 것과 같이 그 크기가 지속적으로 바뀌는 것을 볼 수 있다.
그리고 우측에 있는 FGC라는 값도 증가하는 것이 보인다.

자바의 Perm 영역에 클래스와 메소드 정보만 저장되어 있다고 생각하는 것이 일반적이지만,
실제로는 intern된 String 값도 이 영역에 저장된다. 

참고) intern된 String은 뭘까?
String은 기본적으로 equals()메소드로 값을 비교한다. 그렇게 되면 char값들을 비교하기 때문에 성능이 느릴 수 있지만, String 의 실제 값에 대해서 intern() 메소드를 호출하면 해당 값은 equals() 메소드가 아닌 == 으로 비교가 가능하다. 추가로 이  intern()메소드는 native 메소드로 선언되어 있다. 
하지만, 이렇게 String비교를 조금 빠르게 하기 위해서 intern() 메소드를 호출한 후 결과를 비교하는 것은 Perm영역을 마구잡이로 사용하겠다는 의미이기 때문에 "절대" 권장하는 방법은 아니다. 그냥 이런 것이 있구나 정도로 참고하고 있기 바란다. ^^;

추가로,
Perm영역에 어떤 데이터들이 저장되어 있는지 보려면 
jmap -permstat pid
명령어로 확인하면 되며,
그 결과에 가장 첫 출력물을 보면 interned String 크기가 출력된다.
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 4

top이라는 명령어로 리눅스를 모니터링하다보면
VIRT 와 RES가 있는 것을 볼 수 있다. 


man top 에서 확인해 보니

VIRT  --  Virtual Image (kb)

          The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have been swapped out. (Note: you  can define the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.)

          VIRT = SWAP + RES.


RES  --  Resident size (kb)

          The non-swapped physical memory a task has used.

          RES = CODE + DATA.


요렇게 나온다. 

결론적으로 해당 프로세스에서 물리적인 메모리를 사용하는 크기는 RES 이며,

SWAP 영역에서 사용하는 메모리 + shared + swapped를 합친것이 VIRT 다.


따라서 VIRT 값과 RES 값의 차이가 크다는 이야기는 SWAP 을 쓸 확률이 높다는 의미 인 것으로 보인다. 자바에서는 Shared 메모리의 크기가 그리 크지 않으므로, 만약 VIRT 만 크다면 SWAP 확인해 보고, 애플리케이션에서 도대체 무슨 일이 일어나는지를 잘 째려봐야 할 듯 하다.

어떻게 째려 봐야 할지는 좀 고민 해봐야 할 듯~~~ 

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
지금까지 알만한 분들에게만 이야기한 지금 집필중인 책의 진척사항을 정리해보고자 한다.

현재 열심히 집필중인 "OO 자바"의 집필 진도율을 오늘 확인해 봤더니 90%다.
1월 중순이니 2월말까지 본문에 대한 집필은 끝낼 수 있을 것 같다. ㅎㅎㅎ

3월부터 두달간은 베타 리더들을 선정하여 베타리뷰 진행하고,
그 사이에 부록을 정리할 예정이다. (부록을 열심히 보는 사람은 그리 많지 않으므로. ㅎㅎ)
4월말, 5월초에 출판사에 넘기면 7월초에 나올 듯 하다.

이 글을 읽는 여러분들이 지금까지 봐 왔던 자바책과는 완전히 다른,
현업에서 꼭 필요한 주옥같은(?) 내용들만 포함되어 있는 책이라 기대해도 좋을 것이다.

마음 같아서는 모두 대박나라는 뜻에서 "대박 자바"라고 하고 싶지만,
이 책의 이름은 벌써 정해 졌다.
(7월달이면 모두 알게 되겠지만... ) 

이 책 출간이 완전히 끝나면,
잠시 쉬었다(?)가
나의 첫 책 리뉴얼에 들어갈 것이다.  
("자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"의 2nd edition ... ㅎㅎㅎㅎㅎ )  
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
subversion이라는 소스 저장소를 사용할 때 이클립스와 연동하려면,
suvversive 나 subclipse 중 하나를 선택해서 일반적으로 사용한다.

이번에는 subclipse를 설치했고,
방법은 다음과 같다.

1) Java HL 설치
subclipse가 c 기반으로 개발되어 있으므로, 이클립스와 통신하기 위해서는 자바 기반으로 되어 있는 Java HL 이라는 것을 설치해야만 한다. 여러가지 방법이 있겠지만, 맥에서는 그냥 맥포트를 사용하면 된다.
$ su
(root 권한으로 로긴)
$ port install subversion-javahlbindings
(Java HL 설치... 별걸 다 설치한다. ant, junit 등을 최신버전으로 ...)
마지막에 나오는 Java HL의 버전을 꼭 확인한다. 


2) subclipse 설치
http://subclipse.tigris.org/ 
에서 Java HL 버전에 맞는 subclipse 업데이트 URL을 확인한 후 이클립스에서 설치 작업 진행.
그냥 모두 선택하고 설치하면 됨.
(뭐 자세한 내용은 다 알테니 패스)
 
이렇게 설치 해서
이클립스 -->  환경 설정 --> Team --> SVN 으로 이동했을 때, 중간에 있는 Java HL 드롭다운 박스에서 Java HL이 잘 먹혀 있다는 메시지가 나오면 끝.
(버전이 안맞으면 다시 설치해야함. 너무 앞서가서 subclipse를 최신 버전으로 깔아버리면 안됨 - -) 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
현재 사용하는 장비와 물려있는 네트워크 상의 장비에 대한 맥 어드레스를 확인할 일이 생겼는데, 알 방법이 없서 막막했다.
(맥 주소는 보통 16 진수의 조합으로 나타나는데, 해당 장비에서 제공한 맥 주소는 그냥 숫자로 나와서리 - -)

하지만, 구글링을 통해서 확인해 본 결과 다음의 명령어를 사용하면 된다.

arp -a

확인 결과 맥에서도 되고 윈도우에서도 된다. 그러나 리눅스에서는 안된다. (이것도 뭔가 있겠지? ㅎㅎ)
 
그런데, 그냥 숫자인 10진수로 나타나도 공학용 계산기로 16진수로 변환하면 동일하다는 것도 확인했다.  
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0

 http://publib.boulder.ibm.com/wasce/V1.0.1/ko/Tasks/Tuning/Linux.html  
링크를 보면 TCP 설정을 어떻게 해야만 성능을 최적화 할 수 있는지 나와 있다.

timeout_timewait : TCP/IP가 닫힌 연결을 해제하여 자원을 다시 사용하기 전에 경과되어야 하는 시간은 
/proc/sys/net/ipv4/tcp_fin_timeout
파일에

tcp_keepalive_time : TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도 값은 
/proc/sys/net/ipv4/tcp_keepalive_time
파일에 (초 단위임)

tcp_keepalive_intvl : 상대로부터 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도 값은
/proc/sys/net/ipv4/tcp_keepalive_intvl
파일에

tcp_keepalive_probes : TCP/IP가 기존 연결에 대한 수신확인되지 않은 활성화 상태 지속 메시지를 재전송하는 횟수를 결정 값은
/proc/sys/net/ipv4/tcp_keepalive_probes
파일에 각각 선언되어 있다.  
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.slideshare.net/aszegedi/everything-i-ever-learned-about-jvm-performance-tuning-twitter

링크 참조 하셔요. 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0

주의 : 본 내용은 지극히 개인적인 의견과 잘못 알아들은 부분도 있을 수 있으므로, 실제 제대로 된 내용은 PT 자료를 통해서 확인하셔야만 합니다요.

회사를 옮긴 이후에 운이 좋아서 작년에 이어 여차저차해서  ApacheCon이라는 해외 컨퍼런스에 참석하게 되었다. 

올해는 밴쿠버에서 열렸고, Westin Bayshore라는 호텔(다운타운에서 20분은 걸어야 하는… 하지만 전망은 좋은)에서 진행했다.

벤쿠버에 4~5년전에 와이프랑 왔었기 때문에 여기저기 여행은 하지 않았다. 


전반적인 분위기 :
전반적으로 그들만의 리그라는 생각이 많이 들었다. 
여기서 그들은 Committer들과 영어 잘하는 (?) 사람들을 말한다.
컨퍼런스에 두번째이지만, 보통 동양사람들에게는 안면이 트이지 않는한 말을 잘 걸지 않고,
엄청나게 적극적이지 않으면 많은 대화를 하지 못한다는 것.
하지만, Meet up 이라는 야간 행사(20시~22시)에 관심사가 있는 사람들 및 커미터들과 이야기 할 기회가 있으니 적극 활용해야만 한다.

그리고, 한가지 더 중요한것은 매우 조촐했다는 것이다.
한 300명 정도밖에 안온것 같았고, 그 중 100명은 커미터라고 보면 될 듯 하다.

같은 기간에 하둡월드인가 뭔가가 있어 많은 사람들이 그 곳으로 간 것으로 보이며,
하둡과 클라우드 관련 세션은 3일 내내 진행되었기 때문에 클라우드가 전 세계적(?)으로 얼마나 인기가 많은지 알 것이다.


개략적인 진행 순서 : 참고로 각 기술에 대한 내용은 아래에 따로 정리하겠다.

D-1 : 컨퍼런스는 총 3일이지만,
그 전날에 University라고 해서 거진 70~100 만원을 내고 수업을 듣는게 있는데,
거의 신청한 사람이 없는듯 했다. (나도 물론 신청은 안했다.)
하지만 barCamp라는 것이 있고, 각 분야의 전문가들과 이야기할 수 있는 기회가 있다.
만약 앞서 이야기한대로 매우 적극적으로 뭔가 알아가려면, 하루 더 전에 와서 이 행사에 참여하는 게 좋을 듯 하다.
(스케줄에도 나와 있지 않다.)
예전에 같이 일하다가 다른 회사로 옮긴 X구라라는 선배를 우연찮게 만났고,
검색엔진인 Lucene을 만든 커미터도 잠깐 얼굴을 봤다.
(오며가며 보면 가장 인기가 많은 듯 해 보인다.)


Day 1 : 
주제별로 Track이 있고 거기서 필요한 내용들을 찾아 들으면 된다.
보통의 우리나라 세미나와 다를게 거의 없다.
이날은 Tomcat 위주의 내용을 들었으며 TomEE와 죽어가는 Geronimo에 대해서 들었다. 
첫날 저녁에는 식사를 제공하고 Meet up 이 있는데
나는 Callback이라는 PhoneGap의 오픈소스 버전에 대한 설명을 듣다가 Rave라는 것에 대해서 듣다가 나와서 잤다. 


Day 2 : 

첫째날과 동일하며 대부분 Httpd와 관련된 내용을 들었다.

Httpd 2.4와 Apache Traffic 서버가 인상 깊었고, 특히 Apache Traffic 서버 만든 아저씨는 오덕중에 오덕이었다. 이렇게 쌀쌀한 날씨에 반바지 입고 모자쓰고 발표했다. 게다가 유머 감감도 최고 였다. 누군가 올해 내로 정식 릴리즈가 되냐고 앞에서 조그맣게 이야기 했는데, "Go the hell"이라고 말하고 넘어가버렸다는... 

저녁에는 앞에 나와서 아무런 주제로 한사람당 5분간 이야기하는게 있는데,

이건 뭐 슬라이드도 없어서 이해하기가 매우 어려워 듣다가 Tomcat Meet up 을 위해서 7-11에 가서 과자 부스러기를 갖고 와서 Tomcat Meet up 에 참석했다.

이 Meet up 의 결과에 대해서도 아래에 정리하겠다. 


Day 3: 

마지막 날에는 약간 어수선한 분위기와 함께 좀 흥미가 떨어지는 내용들이 많았다.
하지만 Kafka라는 것을 알게되어서 이날의 일정은 아깝지가 않았다.
마지막날은 5시에 땡~ 하고 끝나서 다운타운 가서 뭐 살거 없나 두리번 거리다가,
그냥 방에 와서 짐 정리하고 이 글을 쓰는 중이다.


그럼 이제 기술적인 이야기를 해보자.

Tomcat :
Tomcat Comet에 대해서 설명을 들었는데, 2001년부터 커미터로 있는 스페인 아저씨가 진행했다.
그냥 헬로월드 찍고 끝났다. 뭐 그 이하도 그 이상도 아니였다. 
둘째날 저녁에 참석한 Meet up 은 조촐하게 10명 남짓이 모였으며, 그 중에서 5명 정도가 커미터였고 Comet 설명한 아저씨 옆에 앉았다. 사람이 적으니 각자 자기 소개를 하라고 했는데, 커미터들 소개를 하더니 모든사람에게 자기 소개를 하라고 했다. 
내가 가장 마지막에 소개를 했고, 내가 어떤 회사에 일한다고 하니 다 알지 못했다.(뭐 당연하지…)
Tomcat 이 설치된 서버가 X대 정도 있다고 하니 모두 놀랐는데, 지금 생각해보면 한 두배 이상(세배가 될수도...)은 뻥튀기 한거 같다. ㅎㅎㅎ - -;
여하튼 내가 몇가지 궁금한 것과 Tomcat의 고칠점들에 대해서 이야기했는데, 대부분 잘 들어 주고 답변들도 잘 해줬다. 
근데, 첨에 이야기한 항목은 고칠 생각이 없는듯 했다. 그냥 방법만 다들 알고 있는 알려주었을 뿐.(이건 사내 보안상 이야기 하긴 어렵고…) 5분이면 된다면서…

두번째 이야기한건 Web Socket 을 사내에 구현한게 있는데 연결당 메모리가 높아서 다른 웹서버로 갈까 하고 있다고 하니까 그건 들여다 봐야겠다고 했다.

그리고, 마지막 질문은 Tomcat 8은 언제 나오냐고 물어봤는데, 모두 일단 웃고 시작했다. 

Servlet Spec 3.1의 Spec인 JSR 340( http://jcp.org/en/jsr/detail?id=340 ) 기준으로 할 것이며, 다들 아직 구현할 준비는 되어 있지 않아 보이고, 2013년에나 나올까? 라는 답만 들었다. 그렇다는 이야기는 Tomcat 8은 JDK 7 기반으로 된 WAS이기 때문에 JDK  7 기반의 서비스를 뭔가 하려면 Tomcat을 쓰는 회사는 적어도 2년 뒤인 2013년까지 기다려야 하고, 2014년은 되어야 안정적인 버전을 쓸수 있지 않을까하는 개인적인 생각이다. 

추가로 25명 정도 되는 커미터중에 10명 남짓만 일하고 있으니, 참여하고 싶으면 언제든지 받아주겠다면서 Meet up이 끝났다. 그리고, Web Socket 관련된 이야기로 Meet up을 시작했었는데, 관련된 구현체가 없어서 일단 Apache Incubator 에 올리자고 결정이 되었다. 

참고로 커미터중에 일본 친구가 한명 있어서 하둡쪽에 있는 일본 커미터와 같이 일했던 선배 4명이서 같이 저녁 식사를 했다. 많은 이야기를 나누었는데, 그 중에 "니네들 언제 만나냐?"고 물어보니 "ApacheCon 에서만 만난다. ㅎㅎ"라고 대답했다. 특히 Tomcat은 다국적인 친구들이 일을 하고 있어서 대부분 이슈 관련 보드와 메일로 내용을 주고 받으며, 그 일본 친구가 커미터에 들어가기 위해서 50번이나 트라이했다고 들었다. 


TomEE(그냥 타미라고 발음하면 됨) :

J2EE 를 구현한 올해 초에 시작된 프로젝트로 OpenEJB와 OpenSSL등으로 구성되었다고 한다. 
그러면서 절대 J2EE 자체가 무거운 것은 아니라고 재차 강조하고, WAS를 embedded 버전으로 띄워서 자동으로 테스트 코드를 실행하고 프로세스를 shutdown까지 하는데 4초밖에 안걸리는 데모를 보여주었다. 그러면서, 방금 돌린건 첫번째라서 그렇고, 두번째는 더 빨라집니다 하면서 돌렸는데도 4초 걸렸다. ㅎㅎㅎ 뻘쭘해 하면서 그냥 4초 걸린다고 알아라하고 넘겼다. 


Geronimo :

그냥 죽은 WAS라고 생각하면 되며, 누군가 TomEE랑 뭐가 틀리냐고 물어보니 OSGi 적용이 가능하다고 이야기하면서 끝냈다. ㅋㅋ


Callback (PhoneGap) : 

Apache incubator 에 있는 것이며, PhoneGap과 동일한데 아파치라이센스를 준수한다고 보면 된다. 그런데, 여기서 Apache incubator가 뭔지 잠깐 설명하면, 정상적인 Apache 프로젝트가 되기 위해서는 이 과정을 거친다고 한다.

여하튼 Callback은 웹앱을 하나 만들면 모든 플랫폼에서 돌아갈 수 있도록 하는 것이라고 생각하면 된다. 안드로이드, 아이폰, 블랙베리, 심지어는 바다 폰에서도 돌아간다고 한다. 어도비에서 나온 사람이 발표했고, 어도비에서 후원한다는 이야기를 많이 했다.


Rave :

이건 사내 인프라나 어떤 사이트를 아주 빠른 속도로 만들 수 있도록 미리 많은 기능들을 포함해 놓은 일종의 플랫폼이라고 보면 된다. 나중에 커미터에게 다국어 지원하냐고 물어봤는데, 다 된다고 이야기는 했다. 되는지는 확인해 봐야겠지만…


HTTPD(흔히 이야기하는 아파치 웹서버)  v. 2.4 :
Jim이라는 백발이 성성한 Tomcat / Httpd 커미터 아저씨가 발표했다. 
이번달에 최종 버전이 나온다고 한다. (지금까지는 베타)
Async I/O를 제공하고, 실시간 설정값 변경이 가능하며, Load Balancer  관리화면에서 실시간으로 부하를 분산하는 설정을 변경하는 것을 보여줬다. 
참고로 Nginx가 가장 큰 경쟁자로 보였고, Nginx와의 성능 비교자료를 보여줬다. 


Apache Traffic 서버 :

1999년 부터 사용되었고, Yahoo 로 넘어갔다가 올해 Apache 로 제공하는 Traffic 서버다. 정적인 데이터를 캐시해 놓는 능력이 탁월한 서버라고 보면 된다. 여튼 성능 하나는 가장 상위 목록에 들어가는듯 하다. 


Apache Kafka :

이것도 인큐베이터에 있으며, Pub/Sub 서버(문서에서는 Broker라고 표현)라고 보면 된다. Producer가 대량의 데이터를 저장하고, 대량의 사용자에게 정보를 제공할 수 있는 서버다.
Linked In 에서 나온 인도 출신으로 보이는 여자 엔지니어가 발표했는데 매우 차분하게 말을 했는데도 불구하고 특유의 인도 억양이 좀 있어서 100 % 알아듣지는 못했다. (물론 다른 설명들도 100% 알아 들었다는건 절~대 아니다.)
여하튼 파일 기반의 데이터를 핸들링하며, 속도는 빠르지만 아직 해결해야 하는 항목들이 좀 남아있었다. 

관심있는 분들은 함 보시길…


컨퍼런스 자료는 아직 공유되지 않았으며,

http://na11.apachecon.com/ 를 눈이 빠지게 지켜보면 조만간 나올것이다. (누구나 다운로드 가능)

음성자료는 이미 있으니, PT 자료와 함께 보면 내가 얼마나 힘들었을지 알게 될 것이다. (그런데 확실히 음성만 들으면 잘들리긴 한다. ㅎㅎㅎㅎㅎ)

결론적으로 나는 가장 필요했던 것이 Tomcat과 Apache Httpd 서버와 관련된 부분이라 필요한것들은 어느 정도 얻었으니 큰 후회는 없다. 

하지만, 다시는 참석은 안(못) 할 것 같다는거~~~.

추가로 NexR에서 참가한 분중 한분의 후기는
http://pudidic.wordpress.com/ 
를 참고 하시면 될 듯 하다.
그리고 실황 중계를 하신 안XX 선배의 트위러는
https://twitter.com/#!/grazieash 
이니 참고하기 바란다. (사실 이분 트위러 좌표 확인하느라 좀 늦게 올린다.)

See you at Korea ~~~~~ 
 

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
.vimrc 파일과 컬러 스키마를 변경하여 vi의 색을 원하는 대로 변경해보자. 

1. .vimrc 파일 만들기 
맥에서는 .vimrc 파일이 기본으로 생성되어 있지 않다. 
따라서, 다음의 절차를 따라가면 샘플에 있는 내용으로 .vimrc 파일이 생성된다. 
vi
:edit ~/.vimrc
:read $VIMRUNTIME/vimrc_example.vim
:write

근데 개인적으론 그냥 웹에 있는 걸 다운로드 받아서 쓰는게 깔끔할 듯...

2. color pack 다운로드하고 필요한 폴더에 복사하기 
이제 
http://www.vim.org/scripts/script.php?script_id=625
으로 가서 가장 아래에 있는 zip 파일을 다운로드하고 나서 풀자.
plugin 과 colors라는 디렉터리를 계정 디렉터리 아래에 있는 .vim 디렉터리 밑으로 이동한다.
즉,
~/.vim/plugin

~/.vim/colors 
가 되도록 하면 된다.

만약 .vim 디렉터리가 없더라도 당황하지 말고
mkdir .vim
이라고 하나 만들어 주자.

3. color 를 선택한 후 지정하기
vi .vimrc
를 쳐서 .vimrc 파일을 만들자.
위의 링크에 있는 여러 샘플중 마음에 드는걸 골라서 .vimrc 파일의 가장 첫줄에 다음과 같이 추가하자.
colorscheme darkblue
(갑자기 dark한게 좋아져서...)
이제 :wq 로 저장한 후 다시 vi를 들어가면 설정한 컬러 테마로 vi가 바뀌어 있을 것이다.

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.webmo.net/support/java_memory.html

요즘 애플릿을 사용하는 프로그램을 쓰고 있는데,
메모리가 부족해서 항상 버벅거린다.
이러한 문제를 해결하기 위한 방법은 바로 메모리 크기를 증가시키는 것 !!!

위의 옵션대로 값을 변경 한 후 해당 브라우저를 재시작하면 지정한 값이 먹는다.
나는
-Xms256m -Xmx512m 으로 설정해 놨다. ㅎㅎㅎ  
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
https://oracleus.wingateweb.com/scheduler/eventcatalog/eventCatalogJavaOne.do

솔직히 돈 500~600 정도 써가며 JavaOne을 갈 필요가 이제는 없어졌다고 생각한다. 
(오라클로 넘어간 이후에...)

하지만, 자료들은 반드시 확인해 봐야만 한다.
무슨일이 있어도...

이 링크들이 언제 깨질지는 모르겠지만,
필요한 자료들 잘 살펴보시길...
(MP3도 같이 제공하면 더 좋았을 것을 ~~~)  
크리에이티브 커먼즈 라이선스
Creative Commons License

'Seminar/Conference > JavaOne' 카테고리의 다른 글

[Conference] 2011 JavaOne 자료 다운로드  (0) 2011/10/10
Posted by tuning-java Trackback 0 : Comment 0
페북을 보다가 예전에 같이 일하던 분이 잘 정리한 링크를 올려 두어서 내 블로그에도 같이 정리한다. 

http://www.softwaretestingstuff.com/2011/09/performance-testing-vs-load-testing-vs.html 

Performance Test 와  Load Test 그리고, Stress Test 의 차이를 잘 설명해 두었다.
(다행히 지금 회사에서 강의하고 있는 내용과 동일한 설명이네... ㅎㅎ ) 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://blog.nextcube.pe.kr/entry/ssh-%EC%9D%B8%EC%A6%9D%ED%82%A4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8


나중에 다시 보고 정리 ^^; 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
몇년간 업데이트가 되지 않았던 
JVM Spec 문서(1999년이 최종이었음)와
JLS (2005년이 최종이었음)
문서가 이번에 JDK 7이 나오면서 새로운 버전의 문서가 제공되고 있다.

기존의 버전 번호를 그대로 가지 않고,
Java SE 7 Edition
이라는 이름으로 문서 이름이 바뀐 점이 특이하다.

다운로드 링크는 요기다. 
http://download.oracle.com/javase/cmn/spec_index.html 

영어인건 다 아시죠?  
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.theserverside.com/discussions/thread.tss?thread_id=62891
이 글을 읽어 보면,
JDK7에 적합한 Tomcat 8 을 준비한다고 한다.

게다가 JDK7은 Crash가 발생하는 버그도 있고...
Tomcat 8이 나온 후 안정화 되려면 멀었으니,
결론적으로는 JDK 7을 제대로 쓰려면 1년 이상 기다려야 한다는 이야기...

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
얼마전 만든 자료다. 

관심있는 분들은 한번 보시길...

나중에 시간 나면 좀 더 업그레이드 할 예정이다.
(10분짜리 발표를 위해서 만든 자료라...)

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
맥에 기본적으로 아파치 웹서버는 설치되어 있다.
하지만, 별도의 웹서버를 설치하려면 다음과 같이 하면 된다.

0. 컴파일을 위한 Xcode 설치
컴파일을 위해서 Xcode를 설치한다.
Apple App Store에서 무료로 다운로드 할 수 있다.

1. Apache 다운로드
http://httpd.apache.org/download.cgi
여기서 적당한 것을 다운로드한 후 압축을 푼다.

2. 설치
설치할 때 다운로드 압축을 해제한 디렉터리에서 다음과 같이 컴파일 하면 된다.

./configure
make
make install



그런데 만약 특정 위치에 설치하려면 다음과 같이  --prefix를 지정해 주면 된다.
예를 들어 /develop/apache 에 설치하려면

./configure --prefix=/develop/apache/

 라고 지정하면 된다.

3. 설정 변경
그냥 실행하면 80포트가 충돌난다고 하기 때문에
/develop/apache/conf/httpd.conf 파일을 열어서

Listen 80

이라고 되어 있는 것을

Listen 9999

로 변경하자.

 4. 실행
/develop/apache/bin/ 으로 이동하여
./httpd
라고 실행하면 된다.
제대로 도는지 확인하려면,
브라우져을 열어

http://localhost:9999

로 접속해보면 된다.
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
나의 네번째 책 집필 진도율이 51%를 찍었다. ㅎㅎㅎ
부록을 빼고 계산한 진도율이니,
아직도 많이 남은거다.  - -;
처음에 계획한 Chapter수가 20개 였는데,
지금은 어느새 36개가 되었다. 
(쓰다보니 필요한 것을 추가하고, 하나의 장이 너무 길면 자르고 해서 늘어났다.)

내년 초에나 나올것 같은 느낌이다.
그래도 제대로 된 책이 나가는게 좋지 ...

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
http://www.vineetgupta.com/2010/11/how-browsers-work-part-1-architecture/

브라우저가 어떤 방식으로 데이터를 처리하여 화면을 보여주는지에 대해서 자세히 설명된 글이다.

웹 UI로 먹고 사는 분이라면 꼭 읽어 보시길 바란다.
그런데, 작년 11월에 작성된 Part - 1 문서인데, 아직까지도 Part-2 문서는 엄따.
작성자가 좀 바쁜가부다. 
크리에이티브 커먼즈 라이선스
Creative Commons License

'UI' 카테고리의 다른 글

[브라우저] 브라우저가 작동하는 방식들...  (0) 2011/08/17
Posted by tuning-java Trackback 0 : Comment 0
가끔 어떤 서버에 들어가서 작업할때 vi와 같은 에디터에서 
편집모드에서 커서 이동이 잘 안되고, 이상한 문자가 찍혀버릴때가 있다.
그런 경우에는 로케일이 한글로 되어 있을 확률이 높다.
따라서 콘솔 창에서

$  locale

이라고 쳐 보면 지역 정보가 어떻게 되어 있는지를 볼 수 있다.
어떤 로케일을 지원하는지 보려면,

$ locale -a

이라고 입력해보면 된다.
서버의 설정을 변경하지 않고,
지금 작업하고 있는 장비의 터미널창에서만 사용하는 로케일을 변경하려면

$ export LC_ALL=C

라고 지정하면, 모든 로케일을 C에 맞추어준다.

 나도 어깨너머로 배운거라서,
더 자세한것을 물어보면 모른다는 답변밖에~~~ ㅋㅋ 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.enigmastation.com/?p=640

뭐 당연한 말일 수도 있지만,
읽어둬서 나쁠 것은 없을 듯 하네요.

나중에 시간나면 요약해야지~~~
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
회사 동료분이 공유해 주신 자료가 있어 그 링크를 적어놓는다.

http://www.ibm.com/developerworks/linux/library/j-nativememory-linux/ 

리눅스에서 특정 프로세스의 메모리 사용량을 모니터링하는 방법이다.

이걸 진작에 알았더라면, 트러블 슈팅 책에 썼을텐데.
- -;

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
W3C 라는 사이트에 화면을 처리하는데 소요되는 시간을 어떻게 측정하는지에 대한 자료가 있다는 것을 처음 알았다.

http://www.w3.org/TR/2011/WD-navigation-timing-20110111/

중간에 그림만 봐도 큰 도움이 될 듯... 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
Soot 이라는 자바 옵티마이징 프레임웍이 있다고 해서 소개해본다.

http://www.sable.mcgill.ca/soot/

자세한 내용은 나중에 시간 있을 때 한번 볼 예정이다.
언제가 될지는 모르겠지만... ㅎㅎ



크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
GC가 얼마나 성능에 영향을 주는지에 대한 설명이 잘 되어 있는 내용 링크...

http://blog.dynatrace.com/2011/03/24/the-impact-of-garbage-collection-on-java-performance/ 

그리고 Sun, JRockit, IBM의 JVM이 각각 어떻게 다른지에 대해서도 알아보는 것도 좋을 것이다.

http://blog.dynatrace.com/2011/05/11/how-garbage-collection-differs-in-the-three-big-jvms/

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
2011년 6월 19일에 진행되는 JCO 교육에 참석하실 분들은 아래의 가이드대로 준비한 후 교육장에 참석하셔야만 합니다. (그렇지 않으신 경우 제대로 된 교육이 진행되지 않습니다.)

1. BTrace 다운로드
아래 URL에서 본인이 지참하시는 PC의 OS에 맞는 라이브러리를 다운로드 합니다.
http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2 

2. JDK 설치
Mac 사용자는 상관 없지만,
윈도우 사용자분들은 JDK를 반드시 6.0 이상 설치하셔야 하며,
C:\jdk1.6 폴더에 설치해 주시길 권장합니다.
C:\Program files 아래에 JDK를 설치하시면 실습이 매우 어려우니,
귀찮으시더라도 해당 폴더에 설치해 주시길 권장합니다.

3. 샘플 소스 다운로드
아래의 샘플 소스를 참석하실 PC에 다운로드 하셔서 갖고 오셔야만 합니다.



이렇게 필요한 파일들만 받고 설치해 주시면 교육 준비는 끝납니다.
실제 필요한 설정은 교육 시간에 진행되오니 걱정 안하셔도 됩니다.

감사합니다. 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0



2011. 6월 출간되는 
자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기의 출판사 링크입니다.


출판사

Yes24

강컴

교보문고

알라딘

인터파크

리브로

반디앤루니스

 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
"자바 개발자와 시스템 운영자를 위한 트러블 슈팅 이야기"라는 깔끔한(?) 제목의 책이 조만간 나온다. (아마도 6월 중순에는 시중에 풀릴겁니다.)

2010년 1월 3일부터 집필을 시작하여 6개월간 딴 책(안드로이드)을 쓰다가 너무 광활한 범위에 포기하고, 올해 1월부터 다시 정리하기 시작하여 집필한 책이다. 

이번 주말에 마지막 원고 리뷰 후 정리하면 6월 중순쯤 될 예정이다.

이 책의 구성은 다음과 같다.
- 웹 기반의 시스템의 장애 유형
- 쓰레드 문제와 해결 방법
- 메모리 문제와 해결 방법
- 진단을 위한 무료 툴들
- 많은 자바 개발자들이 취약한 리눅스에서 리소스를 모니터링 하는 방법
- 장애 유형에 따른 진단 절차
뭐 울트라 킹왕짱 자바 개발자 및 자바 엔지니어는 다 알고 있는 내용이므로 보실 필요는 없겠지만, 장애에 허덕이고 있는 분들은 이 책을 보면 문제 해결의 답이 보일 수도 있다.

WebTune, Jennifer, Pharos등의 APM들을 사용하는 분들이라도 그 툴들에서 잡을 수 없는 문제들을 잡는 방법이 나와 있기 때문에 분명 도움이 될 것이다. (이 툴들이 나쁘다거나 부족하다는 것은 저~~~얼대 아님) 

지금까지의 내 책들과 다르게, 출판사에서 적극적으로 내가 쓴 모든 문장을 가독성이 좋도록 바꿨기 때문에 책에 대한 가독성은 크게 문제하지 않아도 된다.

최초에 보낸 원고의 페이지는 그리 많지 않았는데, 조판 작업 후 페이지가 많아져서 부득이하게 가격은 24,000 원으로 책정했다고 한다. T T;
내가 책정한 것은 아니니 저를 원망하지는 말아주시구요~~~

아무쪼록 이 책이 장애에 허덕이고 있는 많은 개발자와 시스템 운영자 분들에게 도움이 되길 바랍니다.
 
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
2011년 6월 27~28일 양일간 SDEC이라는 행사가 열린다.

http://www.sdec.kr/ 
를 보면 자세한 내용을 알 수 있을 것이며, 
Twitter, Facebook등의 엔지니어들이 대용량 데이터를 어떻게 처리했는지.
어떤 문제를 어떻게 해결했는지에 대한 정보를 공유할 예정이다.

행사에 대한 문의가 있으면  sdechelp@naver.com 로 메일 보내면 된다.

만약 스폰서에 참여하고 싶은 회사 및 조직이 있으면 여기로 문의하면 성심성의껏 답해 준다고 한다. ㅋㅋ





크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
prev 1 2 3 4 5 ... 14 next