원격지에 있는 리눅스 서버에서 GUI를 써야할 일이 있을 경우에는 보통 넷사랑의 X Manager를 사용하곤하죠. 하지만 상용이라는 점과... 서버상의 설정을 해줘야 한다는 문제점이 있더군요.
그래서 구글님께 여쭤봤더니 Xming이란걸 보여주더군요. 간단하게 화면을 띄워주는게 맘에 들더군요.


요렇게 바로 화면을 보여주네요.

프로젝트 홈페이지 : http://sourceforge.net/projects/xming

 접속한 계정의 .bash_profile 내용이 적용이 안 되있던데... 이건 뭐가 문제인지 좀더 알아봐야될것 같은데요. 그래도 일단은 오라클이 잘 깔린것 같네요. 흠... DB 만들고 기동시키는것 까지 잘 되어야 할텐데요...
이번에 한번 해보고 안 되면 "조용한 설치 모드"로 한번 설치해볼까합니다. 아마 이런 이름이었던것 같습니다. GUI없이 설치하는거라던데 한번 해봐야죠뭐...
 [Power*Architect Data Modeling & Profiling Tool]라는 툴을 아십니까? 흔히들 알고 있는 ERWin과 비슷한 모델링 툴이죠. 큐브리드 홈페이지에 Power*Architect에서 큐브리드를 사용하는 법이 소개된 글이 있어서 링크를 겁니다.

 원문보러가기 : Power*Architect 에서 CUBRID 사용하기

.소개: 본 문서는 보다 편리하게 CUBRID를 사용할 수 있도록 사용자 중심의 편의성 및 기능을 제공하기 위한 데이터 모델링 도구인Power*ArchitectJDBC를 이용하여 연결하는 방법을 소개합니다.

- 예전에 한번 사용해보려다가 모델링과 모델링 툴에 대한 이해 부족과 영문 메뉴얼에 좌절해서 접었던 적이 있었는데, 이렇게 문서도 올라오고 하니... 다시한번 사용해볼까 합니다. ^^;
 OTN 홈페이지에 [고성능 Oracle JDBC 프로그래밍]이라는 문서가 올라왔네요.
원문보러가기 : 고성능 Oracle JDBC 프로그래밍

고성능 Oracle JDBC 프로그래밍

연결 및 명령문 풀링 기능을 이용하여 Oracle 기반의 JDBC 프로그램 성능을 개선하는 방법을 학습합니다.

By Yuli Vasiliev

2009년 4월 게시

연결 풀링 및 명령문 풀링과 같은 풀링 기능을 사용하면 데이터베이스 집약적인 애플리케이션의 성능을 크게 개선할 수 있습니다. 풀링 기능을 사용하지 않을 경우, 처음부터 객체를 새로 만들어야 하므로 시간과 리소스가 많이 소모되지만 풀링을 사용하면 객체를 다시 사용할 수 있기 때문입니다.

애플리케이션에서 사용한 물리적 데이터베이스 연결을 나타내는 데이터베이스 연결 객체를 다시 사용할 경우, 성능을 크게 개선시킬 수 있습니다. 단, 해당 애플리케이션은 동일한 매개 변수를 사용하여 연결을 수시로 재설정하면서 데이터베이스와 끊임없이 상호 작용해야 합니다. 반면, 애플리케이션이 기본 데이터베이스에 연결하는 경우가 거의 없다면 연결 풀을 사용하는 이점이 별로 없을 것입니다. 그러나 실제로는 허용되는 최대/최소 연결 수에 대한 한도 설정 같은 풀 설정이 특정 애플리케이션에 맞게 최적화되어 있다면 많은 데이터베이스 집약적인 애플리케이션이 연결 풀을 사용함으로써 이점을 누릴 수 있습니다.

연결 풀처럼 명령문 풀도 애플리케이션 성능을 개선할 수 있는 방법을 제공합니다. 프로그램을 실행하는 중에 여러 번 실행되는 명령문을 풀링함으로써 추가적인 성능 개선을 얻을 수 있습니다. 그러나 명령문 풀링이 성능 문제를 해결할 수 있는 특효약은 아니라는 점을 기억하십시오. 만약 프로그램에서 명령문이 실행되는 횟수를 구분하지 않고 모든 단일 명령문을 캐시 한다면 성능 개선을 이루지 못할 수 있습니다. 프로그램 실행 중에 한 번만 실행되는 명령문을 캐시할 경우, 해당 명령문을 캐시에 넣고 보관하는 작업과 관련된 오버헤드로 인해 실제로는 성능이 저하될 수 있습니다.

이 문서에서는 Oracle JDBC 씬 드라이버를 통해 Oracle Database와 상호 작용하는 데이터 집약적인 JDBC(Java DataBase Connectivity) 프로그램의 성능을 개선하기 위해 연결 및 명령문의 풀링을 이용하는 방법을 설명합니다. 특히 JDBC 연결을 캐시하기 위해 모든 기능을 갖춘 연결 풀 구현을 제공하는 JDBC용 Oracle Universal Connection Pool(UCP)을 살펴보겠습니다. 마지막으로 Oracle의 JDBC 드라이버뿐 아니라 명령문 인터페이스에 추가되고 JDK(Java Development Kit) 1.6 이상 버전을 지원하는 Oracle JDBC 드라이버에서 사용할 수 있는 새로운 JDBC 4.0 메소드에 관련된 기능을 사용함으로써 명령문 풀링에서 이점을 얻을 수 있는 방법을 설명하겠습니다.


 AIX 서버의 성능 문제가 생겨서 리포트를 작성할 일이 생겨서 nmon을 이용하기로 했습니다. 예전에 제 블로그에 소개했던 nmon 관련 문서를 떠올리곤 TAG목록에서 nmon을 찾아서 문서를 열었죠.
원문보기 : [소개] IBM DeveloperWorks : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

우선 nmon으로 10시간 가량 모니터링을 하기로 하고 아래와 같이 옵션을 줘서 모니터링을 시작했습니다.

-fT : 파일로 저장하도록 한다. 대문자 T는 top process까지 저장하도록 하는 옵션이다. 이 옵션이 필요없으면 -f로 하면 된다.
-s : 스냅샷을 찍는 간격. 초 단위이다. 300은 5분 간격을 의미한다.
-c : 스냅샷을 찍는 횟수. 5분간격으로 132번을 찍으니까... 10시간이 된다.

# nmon -fT -s 300 -c 132

5분 간격으로 10시간동안 스냅샷을 찍도록 했죠. 그리고 최신 버전의 nmon analyser를 다운로드 받았습니다. 현재 3.3버전이 최신이네요. IBM의 영문 웹 사이트에서 다운로드 받을수 있습니다. nmon analyser을 이용하면 보기좋게 그래프까지 만들어 주네요
저장되는 파일이름은 [호스트명_년월일_시분.nmon]의 형식이며, 모니터링을 시작한 시분이 표시된다. 파일 하나에 데이타가 저장된다.(5분마다 하나씩 생성될줄 알았는데... 하나에 통채로 들어가네요. ^^;)



 최근에 회사에 신청했던 [Blog2Blog 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기]를 소개하려합니다. 회사돈으로 산거라 다른책 읽을때보다는 서둘러서 읽고 있습니다. ^^;
아직 다 읽지는 못했지만 저같은 어중간한 레벨의 개발자들에게 필요한 내용들을 찾아보기 쉽게 정리해놓은 책이라고 생각합니다. 개발에서 손뗀지가 일년 정도 되다보니 기억나지 않는게 너무 많더군요. ^^;

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
카테고리 컴퓨터/IT
지은이 이상민 (한빛미디어, 2008년)
상세보기

아래는 이 책을 읽은 분이 책 내용중에서 오류를 찾아내서 정리해 놓은 블로그 내용입니다. 저도 읽으면서 찾아봐야 겠네요.


 요즘 DB가 거의 매일 문제를 일으켜서 성능관련 문서들을 많이 찾아보며 분석중에 있습니다. 그러다보니 wait event에 많은 시간을 투자하고 있죠.

OTN에는 많은 Oracle 관련 문서들이 있는걸 아시죠. 그중에서 이번에 찾은 [Oracle Wait Event 모니터링]이라는 문서가 눈에 띄더군요.

원문보러가기~!
(주)웨어벨리의 책임 컨설턴트인 안진철님이 2003년경에 작성한 문서로 순서는 아래와 같습니다.

 이 글을 읽으면서 맘에 와닿았던 글귀가 있습니다.

흔히 DBA를 3D업종이라고 부르는 이유 가운데 하나는 몸은 고달픈데 반해 그 성과가 별로 티가 나지 않는다는 사실 때문일 것이다. 실제로, DBA가 수행해야 하는 일상적인 관리 업무들은 몸은 다소 피곤하게 만들지 몰라도 어느 정도 경험이 쌓이면 그리 부담을 주는 일은 아니다. 우리가 한단계 업그레이드된 전문가로서 인정 받는 DBA가 되기 위해서는 장애상황 혹은 유사 장애 상황에서 DB 모니터링 작업을 수행하고 분석할 수 있어야 한다. 시스템이 갑자기 느려지고 업무가 마비되는 상황에 맞닥뜨렸을 때 문제의 원인이 무엇인지를 집어낼 수 있는 능력이 있어야 하며 최소한 오라클의 문제인지 아닌지를 판단할 수는 있어야 몸으로 야간작업이나 때우는 DBA가 아니라 조직에 없어서는 안될 전문가로서의 나의 존재가치를 인정 받을 수 있을 것이다.


다음은 시중에 나와있는 OWI(Oracle Wait Interface) 관련 책들입니다.
오라클 진단 & 튜닝
카테고리 컴퓨터/IT
지은이 RICHMOND SHEE (엑셈, 2005년)
상세보기

OWI Advanced Oracle Wait Interface in 10g
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2006년)
상세보기

PRACTICAL OWL IN ORACLE 10G
카테고리 컴퓨터/IT
지은이 엑셈 (엑셈, 2007년)
상세보기

ADVANCED OWI INTERNALS AND PERFORMANCE IN...
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기


 정규식(혹은 정규표현식)에 대해서 자료를 찾다가 괜찮은 문서들이 있길래 정리해봅니다.
1. IBM DeveloperWorks의 Special Issue중에서 초보 개발자 코드 트레이닝,Part 5 : 정규 표현식

2. www.wonchu.net의 자바스크립트 정규식 문서(아래 두개중 어떤 링크를 이용해도 됨.)
http://www.wonchu.net/board.do?method=bview&boardId=003&boardSeq=36 (검색엔진에서 찾은 링크)
http://www.wonchu.net/issue/00336 (게시판에 표시된 링크)

3. [똥싼너구리의 정리노트]라는 스프링노트에 올라온 문서
정규표현식 카테고리

4. [카알의 적당한 인생 이야기]에 올라온 정규표현식 문서
정규 표현식(Regular Expressions)


아래는 [카알의 적당한 인생 이야기]의 내용을 정리한 것입니다.
(1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시
    
$ (dollar) : 라인의 끝이나 문자열의 끝을 표시
    
. (period) : 임의의 한 문자를 표시
예)
^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓)
aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓)
^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓)
a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참)


(2) [] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-"는 범위를 나타낸다.
[]내에서 "^"이 선행되면 not을 나타낸다.
이외에도 "문자클래스"를 포함하는 [:문자클래스:]의 형태가 있다. "문자클래스"에는 alpha, blank, cntrl, digit, graph, lower, print, space, uppper, xdigit가 있다.
이외에 [:<:]와 [:>:]는 어떤 단어(숫자, 알파벳, '_'로 구성됨)의 시작과 끝을 나타낸다.
예)
[abc] (a, b, c 중 어떤 문자, "[a-c]."과 동일)
[Yy] (Y 또는 y)
[A-Za-z0-9] (모든 알파벳과 숫자)
[-A-Z]. ("-"(hyphen)과 모든 대문자)
[^a-z] (소문자 이외의 문자)
[^0-9] (숫자 이외의 문자)
[:alpha:] ([A-Za-z]와 동일)
[[:digit:]] ([0-9]와 동일)

(3) {} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타냄
예)
a{3} ('a'의 3번 반복인 aaa만 해당됨)
a{3,} ('a'가 3번 이상 반복인 aaa, aaaa, aaaa, ... 등을 나타냄)
a{3,5} (aaa, aaaa, aaaaa 만 해당됨)
ab{2,3} (abb와 abbb 만 해당됨)
[0-9]{2} (두 자리 숫자)
doc[7-9]{2} (doc77, doc87, doc97 등이 해당)
[^Zz]{5} (Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당)
.{3,4}er ('er'앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)

(4) * (asterisk) : "*" 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
예)
ab*c ('b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등)
* (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열도 해당됨)
.* (선행문자가 "."이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨)
ab* ('b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등)
a* ('a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등) doc[7-9]* (doc7, doc777, doc778989, doc 등이 해당)
[A-Z].* (대문자로만 이루어진 문자열)
like.* (직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이됨, like, likely, liker, likelihood 등)

(5) + (asterisk) : "+" 직전의 선행문자가 1번 이상 나타나는 문자열
예)
ab+c ('b'를 1번 또는 여러번 포함하므로 abc, abckdddd, abbc, abbbbbbbc 등, ac는 안됨)
ab+ ('b'를 1번 또는 여러번 포함하므로 ab, abccc, abb, abbbbbbb 등)
like.+ (직전의 선행문자가 '.'이므로 like에 하나 이상의 문자가 추가된 문자열이 됨, likely, liker, likelihood 등, 그러나 like는 해당안됨)
[A-Z]+ (대문자로만 이루어진 문자열)

(6) ? (asterisk) : "?" 직전의 선행문자가 0번 또는 1번 나타나는 문자열
예)
ab?c ('b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨)

(7) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용

(8) | (bar) : or를 나타냄
예)
a|b|c (a, b, c 중 하나, 즉 [a-c]와 동일함)
yes|Yes (yes나 Yes 중 하나, [yY]es와 동일함)
korea|japan|chinese (korea, japan, chinese 중 하나)

정규식에서는 위에서 언급한 특수 문자를 제외한 나머지 문자들은 일반 문자로 취급함




+ Recent posts