전체 글 327

min/max 쿼리 튜닝시 random access 감소를 위한 목적으로 index_desc + rowid 사용시 주의할 것

INDEX 컬럼 순서에 따라 결과 값이 달라진다. 결과적으로, select * from ( 메인 쿼리(/*+ index_desc */) order by min/max대상) where rownum = 1 과 같이 한번 감싸줘야 의도한 대로 결과값이 나온다. (다소 성능은 감소되지만... index drop 이나 unusable, plan 변경으로 인한 데이터 오류보다 무섭진 않겠지...) 아래는 test script. drop table test5 cascade constraints purge; create table test5 (a number, b number, c number); insert into test5 values (1, 1, 6); insert into test5 values (1, 3, ..

DB 2011.05.25

SWT Subclassing

몇가지 이유로 SWT 에서 Subclassing 이 금지된다고 한다. (has-a 관계로 이용하도록 권장하는 듯 하다) http://www.eclipse.org/swt/faq.php#subclassing RCP 개발중 Main ToolBar(CoolBar)에 콤보박스를 추가할 일이 있었는데, setWidth 나 어떠한 방법을 이용해도 ToolBar에서 크기가 고정되는 것이었다. 호출 구조를 따라가다 보니 Combo 사이즈를 미리 정해주는 법 밖에 방법이 없었다. 아래와 같이 computeSize 및 checkSubclass 를 재정의 해 주었다. protected Control createControl(Composite parent) { combo = new Combo(parent, SWT.READ_ON..

Key Binding 바꾸기

기존 binding은 org.eclipse.ui.contexts.window 을 통해 이루어 진다. 1. 새 context 를 생성하여 parentId 를 org.eclipse.ui.contexts.window 로 함 2. org.eclipse.ui.bindings 에 새 key binding 추가 - contextId를 새로만든 contextId 로 지정하고 commandId 를 적절히 지정한다. (연결할 command) 3. context 를 바꿔줘야 한다. (기존 책이나 pdf 등에 나오질 않음) - workbench 가 생성된 이후에 아래 코드를 호출하여 바꿔준다. PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public v..

XML-RPC Java / Android 개발 환경 구축

XML-RPC Spec. http://www.xmlrpc.com/ Apache XML-RPC Java Lib. http://ws.apache.org/xmlrpc/ Android XML-RPC Lib. (Java) http://code.google.com/p/android-xmlrpc/ ws-commons-java5-1.0.jar (JDK 5 이전 버전에서 JDK 5의 클래스를 이용하기 위한 class) http://mirrors.ibiblio.org/pub/mirrors/maven2/ws-commons-java5/ws-commons-java5/1.0/ws-commons-java5-1.0.jar Retrotranslator (JDK 5 이후 class, jar 들을 이전 버전 호환으로 만들어 주는 툴) h..

RMI Trouble Shooting

* 포트 사전 점검 RMI는 별다른 지정이 없으면, 기본적으로 2개의 포트를 쓴다. local이 아니라면, OS/NW 방화벽 확인해야 한다. 1) rmiregistry: 1099 1099에서 다른 포트로 변경시 rmiregistry [port] 로 실행 2) rmi server(implemented): random rmi server 의 생성자에서 super(port) 로 임의 포트 지정 가능 1. Connection 에러 1) rmiregistry 에러 이미 다른 rmiregistry가 떠있거나 1099 포트가 사용 중이므로, 기존것 kill 하거나 다른 포트로 open 2) server 가 즉시 timeout 되며 에러 메시지가 떨어짐 rmiregistry 실행 확인 3) rmi server 시작이 ..

카테고리 없음 2011.01.28

RMI 개발 지원 도구

1. RMI Plug-in for Eclipse (http://www.genady.net/rmi/v20/downloads.html) Eclipse 에서 RMI 관련 개발시 must-use(?) 플러그인이다. 자동으로 skel, stub 파일을 생성해주고, rmiregistry를 버튼으로 실행시킬 수 있게 지원해주는 플러그인. 현재 2.0까지 나와있고, 개인에 한해 4개월까지 무료로 체험해볼 수 있다. (.metadata 지우고 재설치로 갱신도 가능한 듯) 일반 java 프로젝트 생성후에 .settings에 net.genady.rmi.prefs 파일을 아래 내용으로 생성해주면, 프로젝트에서 RMI 관련 기능을 사용할 수 있다. (stubsVersion=2 로 하면 skel파일은 필요없는 듯 하다. jdk ..

카테고리 없음 2011.01.28

웹브라우저 동작 분석 및 흉내내기 소개 (로그인 과정으로 살펴보는)

특정 작업 자동화시에 로그인과 같은 인증 과정이 반드시 필요할 때 사용할 수 있는 방법이다. 1. HttpWatch 같이 전송 내용을 살펴볼 수 있는 프로그램을 설치한다. 2. 원하는 사이트에 로그인 하기 전에 HttpWatch 의 Record 버튼을 누른다. 3. 로그인 하면, 전송 정보가 남게 된다. 4. Stop 누르고 어떤 페이지를 거쳐갔고, 어떤 정보를 주고 받았는지 확인한다. (Stream 탭을 보면 Request, Response Header를 볼수 있다.) 5. 이 Header 정보를 이용하여 브라우저를 통한 정상 로그인 절차를 흉내낼 수 있다. [Request] POST [서버주소를 제외한 파일전체경로] HTTP/1.1 Accept: image/gif, image/x-xbitmap, im..

카테고리 없음 2011.01.26

Apache + Tomcat + Python + ... (vhost)

웹서버인 Apache 에 각종 Connector 를 이용해 다른 서버(WAS)들을 붙일 수 있다. [APACHE_HOME/conf/httpd.conf] 1. 모듈 Load LoadModule jk_module modules/mod_jk.so # Apache - Tomcat LoadModule python_module modules/mod_python.so # Apache - Python 2. 모듈 설정 JkWorkersFile conf/workers.properties JkShmFile d:/logs/httpd_jkshm.log JkLogFile d:/logs/httpd_jklog.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" * 만약 별도..

카테고리 없음 2011.01.17

SSH 터널링

서버 - 클라이언트간 통신을 암호화하여 강화된 보안 레벨로 이용할 수 있게 해주는데 목적이 있다. 실제로 암호화 하지 않은 FTP 프로토콜 같은 경우 중간에서 ID / PASSWORD 를 평문으로 확인가능하다. 준비물 1. SSH Tunnel 역할을 할 중간 클라이언트 (한가지만 있어도 됨) 1) Bitvise Tunnelier - GUI를 지원하며, 개인 사용자의 경우 무료이다. - 사용하기 쉽다는 점, 트레이에 상주하여 창을 번거롭게 띄워놓을 필요가 없다는 것, 지속적인 연결 모니터링이 가능하다는 것에 큰 점수를 주고 싶다. 2) Putty - 용량이 작고, 개조되지 않은 버전의 경우 별도 설치가 필요없다. 2. SSH 서버 1) WinSSHD - Bitvise Tunnelier 를 만든 곳과 같은 ..

카테고리 없음 2011.01.11