'넥스트리소프트'에 해당되는 글 18건
- 2009/05/10 Ralph Johnson의 Evolving Frameworks
- 2009/04/26 [Java] 쌍따옴표를 " 로 치환하는 메소드 구현
- 2009/04/26 [Oracle sql] 전각문자 공백(Trailing Space)제거하기
- 2009/01/18 Google Syntax Highlighter를 이용한 티스토리에서 구문강조하기
- 2009/01/14 [Oracle] 쿼리 조회결과를 파일로 저장 - Oracle SPOOL Command
- 2009/01/07 OSGi 소개 및 참고자료
- 2008/12/29 [Trouble Shooting] IE에서 엑셀 다운로드 구현시 에러가 나는경우
- 2008/08/11 [2부] 직접 만들어 보는 wma to mp3 Converter (완결)
- 2008/08/10 [1부] 직접 만들어 보는 wma to mp3 Converter
- 2008/07/15 [Oracle] PL/SQL RowID 사용하기 (ORACLE 테이블 레코드의 유일한 키로 사용)
그의 논문인 Evolving Frameworks에서는 프레임워크가 어떠한 과정을 통해 발전해 나가는가에 대해 소개한다.
다음 그림은 시간흐름에 따른 패턴언어에서의 패턴들간의 관계를 보여준다.
원문 다운로드 : http://st-www.cs.uiuc.edu/~droberts/evolving.pdf
ArLoad님의 번역자료 : http://arload.wordpress.com/2008/09/15/evolvingframeworks/
>> 문제상황
사용자 메시지를 보여주기 위해 다음과 같이 구현하였다.
그런데, 사용자 메시지(userMessage)에 쌍따옴표가 포함된 경우,
쌍따옴표로 인해 의도하지 않게 해석되어 메시지가 잘려버리게 된다.
메시지(userMessage)가 아래와 같을때
다음과 같은 HTML코드가 생성된다.
화면에 출력되는 내용은
=> 채무자 앞의 쌍따옴표가 value속성의 값을 닫는 기호로 인식되어 뒤에 따라오는 내용이 잘려버렸다.
>> 해결방법
간단히 다음과 같은 태그라이브러리를 구현하였다. 쌍따옴표를 HTML 특수문자인 " 로 치환한다.
테이블 레코드의 데이터에 공백 문자가 2bytes 전각문자로 기록되어 있는 경우,
Trailing space를 제거하기 위해 trim()함수를 사용해도 제거되지 않는다.
오라클에서는 전각문자를 그에 상응하는 single byte 문자로 치환해 주는 내장함수를
제공한다.
이 함수를 사용하는 경우 2byte로 된 영문자, 숫자, 공백 등이 모두 1byte문자로 치환된다.
to_single_byte()
(참고) 반대로, single byte를 multi byte문자로 치환하려면 to_multi_byte() 함수를 사용하면 된다.
소스코드를 나타내야 하는 포스팅을 할 때면, 어떻게 보기 좋게 구문강조를 할까 고민하게 된다.
하나하나 변수, 메소드, 매개변수 등의 syntax마다 다른 색상을 입히는 수고를 하기도 하고,
귀차니즘에 직면할 때는 이클립스와 같은 편집화면을 캡쳐한 이미지를 그대로 올리기도 했다.
이런 삽질을 피하고 싶다면, 여기 쓸만한 물건이 있다.
Google Code에서 제공하고 있는 syntax highlighter가 바로 그것이다.
아래와 같은 코드가 있다.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!!!");
}
}
syntax highligher를 적용하면 요렇게 된다.
굿~~!!
적용 및 활용방법은 gyuha님의 블로그에 상세히 설명되어 있다.
유용한 정보를 깔끔히 정리해 주신 gyuha님께 감사~!!
[Oracle] 쿼리 조회결과를 파일로 저장 - Oracle SPOOL Command

다음과 같이 SPOOL Command를 사용하면 된다.
1. OSGi 소개
OSGi 프레임워크는 독립적인 자바/가상 머신 환경에서 제공하고 있지 못한 세련되고, 완전하며 동적인 컴포넌트 모델을 구현한다. 응용 프로그램 또는 구성 요소(번들, Bundle)는 다시 시동 과정 없이 원격지를 통해 설치(installed), 시작(started), 정지(stopped), 업데이트(updated) 그리고 제거(uninstalled)할 수 있다.
OSGi는 Embeddable(응용 프로그램 내부로 포함될수 있는) SOA를 구현하고 있다. 이를 통해 응용 프로그램 개발에서 가장 복잡하고 관리하기가 어려운, 모듈간의 동적(Dynamic) 관계와 의존을 매우 효과적으로 관리할수 있게 한다. (Web service based SOA가 네트워크를 중심으로 하는 SOA라면 OSGi는 Java Object based SOA이다.)
2. OSGi 프레임워크의 구성
OSGi 프레임워크 계층
- L0 : 실행환경 (Execution Environment) - Java 환경에 대한 명세
- L1 : 모듈 (Modules) - 클래스 로딩정책을 정의
- L2 : 생명주기 관리 (Life Cycle Management) - 동적으로 번들들의 설치, 시작, 중지, 갱신, 제거와 같은 생명주기를 관리
- L3 : 서비스 레지스트리 (Service Registry) - 번들들의 협력모델을 제공
3. 참고사이트
- 공식사이트의 OSGi Technology : http://www.osgi.org/About/Technology#Framework
- 위키피디아 정의
원문 : http://en.wikipedia.org/wiki/OSGi
한글 : http://ko.wikipedia.org/wiki/OSGi
- Getting Started with OSGi
원문 : http://javamix.tistory.com/184
번역 : http://xguru.net/blog/451.html
- OSGi를 이용한 Java Enterprise Application개발 동영상 강의
http://www.ibm.com/developerworks/kr/library/dwcod/20080729/
[Trouble Shooting] IE에서 엑셀 다운로드 구현시 에러가 나는경우

IE환경에서 page Context Type을 이용한 excel downloading 구현하였다. 그런데 다음과 같은 에러가 뜬다.
에러메시지는 다음과 같다.
한글 IE에서는,
"xxxx 을(를) 다운로드할 수 없습니다.
이 인터넷 사이트를 열 수 없습니다. 요청한 사이트를 사용할 수 없거나 찾을 수 없습니다. 나중에 다시 시도하십시오,"
영문 IE에서는
"Internet Explorer cannot download <filename.jsp> from <our website>
Internet Explorer was not able to open this Internet Site. The requested site is either unavailable or cannot be found. Please try again later"
<해결방법>
구글신의 자문을 구해 답을 찾을 수 있었다.
간단히 다음과 같이 Cache-Control 을 세팅해주면 해결된다. (포인트 max-age=0 으로 세팅)
response.setHeader("Cache-Control", "max-age=0");
<구현 예제>
<head>
<%
response.setHeader("Content-Type", "application/vnd.ms-xls");
response.setHeader("Content-Disposition", "attachment;filename=DownloadFile.xls");
response.setHeader("Content-Description", "JSP Generated Data");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "max-age=0");
%>
</head>
<body>
..........내용............
</body>
</html>
1.구글신 검색 참고사이트
http://forums.sun.com/thread.jspa?threadID=233446&forumID=45
2.html header에 대한 더 많은 정보를 원하시면, (그러나 영어의 압박 ;;;)
rfc 문서 : http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3
좀더 깔끔한 정리 : http://www.mnot.net/cache_docs/
mp3 변환기에는 무수히 많은 편리한 GUI 툴들이 존재하지만, 이러한 툴을 사용하지 않고
직접 간단한 코드 작성과 등록작업을 하여 mp3변환기를 자신의 윈도우 환경에 구현해 본다.
이글의 목표 :
1. 배치(bat)파일의 작성법 이해
2. 특정 확장자에 원하는 팝업메뉴 추가하기
3. wma파일을 mp3로 변환하는 기능 구현
지난 포스팅에서 소개된 두개의 툴(ffmpeg, lame)을 이용하여 wma파일을 mp3로 변환할 수 있었다.
하지만, 매번 콘솔창으로 나가서 변환을 위한 명령어를 치는 일은 무척이나 귀찮은 작업이다.
2부 에서는 wma 를 mp3로 변환하는 기능을 배치파일(bat)로 작성해보고,
탐색기에서 wma파일에 [MP3 변환하기] 팝업메뉴를 추가해 간단하게 파일변환이 되도록 구현해 본다.
1. 파일의 배포
1.1. C: 드라이브 아래에 mp3Converter 라는 폴더를 만들고 1부에서 소개된 3개의 파일을 복사해 둔다.
2. 배치파일로 컨버터 만들기
2.1. 다음과 같이 wma2mp3.bat 파일을 작성한다.
파일명 : wma2mp3.bat
echo ######################################################
echo Converting wma to mp3...............
echo ######################################################
echo
echo ######################################################
echo Coverting is completed.
echo ######################################################
pause
2.2. 위에서 작성한 wma2mp3.bat 파일을 1에서 만들어둔 mp3Converter폴더에 복사한다.
3. wma확장자의 팝업메뉴에 'MP3 변환하기' 기능 추가하기
3.1. 탐색기에서 [도구] - [폴더 옵션] - [파일 형식]으로 이동하면 다음과 같은 창이 뜨는데, 확장자가 WMA인 형식을 찾는다.
3.2. 이 창에서 [고급]을 클릭하여 [새로 만들기]에서 "MP3 변환하기"를 추가한다.
이제, wma파일위에서 우클릭을 해보자. [MP3 변환하기] 메뉴가 추가되어 있음을 볼 수 있다.
4. 테스트
4.1. wma 파일을 선택하여 [MP3 변환하기]를 수행한다.
4.2. 컨버팅이 완료되면, 동일한 이름의 mp3파일이 생성된다. 재생하여 확인해 본다.
========================
2부에서 작업한 내용과 팝업메뉴에 등록하는 내용을 레지스트리 파일로 만들어,
알집을 이용해 실행압축파일로 엮어보았다.
* 설치하기 (압축해제 및 레지스트리에 팝업메뉴 등록)
- MP3Converter.exe 를 실행시키면 관련파일이 c:\mp3Converter폴더에 압축해제된다.
- c:\mp3Converter에 있는 installMp3Converter.reg 를 실행하여 레지스트리에 팝업메뉴를 등록한다.
* 설치된 파일 삭제하기
- c:\mp3Converter에 있는 uninstallMp3Converter.reg 를 수행하여 레지스트리에 팝업메뉴정보를 제거한다.
- c:\mp3Converter 폴더를 삭제한다.
========================
이런 방법들을 응용하여, 자신만의 팝업메뉴를 등록하고 편리하게 윈도우를 이용해 보도록 하자.
이것으로 2부를 마친다.
툴 소개 :
- ffmpeg : audio/video 컨버팅 툴 [link : FFmpeg Documentation]
- lame : mp3 인코더 [link : The LAME Project]
다운로드 :
wma -> mp3 변환
Quick Start
1. 위의 세개의 파일을 다운로드한다.
2. 변환할 wma파일을 준비한다.
3. 콘솔 창으로 나가서 위의 명령어를 친다.
1부에서는 미디어 파일 변환에 필요한 몇가지 도구 및 wma파일을 mp3로 변환하는 명령어를 소개하였다.
이어서, 2부에서는 1부에서 소개한 툴을 이용하여 탐색기의 팝업메뉴에 [MP3 변환하기] 기능을 추가하는 방법을 알아본다.
[Oracle] PL/SQL RowID 사용하기 (ORACLE 테이블 레코드의 유일한 키로 사용)

iBatis SqlMap에 ROWID 타입한번 써보려다가 까칠한 타입캐스팅 문제때문에 해결 방법을 찾다가
꽤 괜찮은 함수를 찾았다.
ROWID 타입은 ORACLE Function ROWIDTOCHAR() 을 통해 VARCHAR형으로 변환이 가능하다!!!!
.....................
오라클에서는 단일 레코드를 유일하게 식별할 수 있는 특수한 형태의 레코드 필드를 제공한다.
한 레코드의 유일한 키가 필요한 경우 RowId를 사용할 수 있다.
Oracle DataType : ROWID
Java Class : oracle.sql.ROWID
관련 JAR 파일 : ojdbc14.jar .......
-----------------------------------------------------
PL/SQL Rowid
Fixed-length binary.
Pseudocolumn of a table.
A DESCRIBE or SELECT * FROM MY_TABLE will not show the rowid;
a SELECT rowid FROM MY_TABLE will show the hashed location.
Fastest possible access to a given row
Rowids do not change as long as the record exists.
Rowids can not be changed during an insert or update transaction.
Rowids can only be used to return a record.
Rowids will change when EXPORTED or IMPORTED
Extended Rowids use a base 64 encoding of the physical address for each row selected
Rowid Structure
BBBBBBBB.RRRR.FFFF
BBBBBBBB=Block
RRRR=Row within the Block
FFFF=File Number
확장된 Rowid Structure
select rowid
,substr(rowid,1,6) "OBJECT"
,substr(rowid,7,3) "FILE"
,substr(rowid,10,6) "BLOCK"
,substr(rowid,16,3) "ROW"
from myTable;
INSTANCE_ID OBJECT FIL BLOCK ROW
------------------ ------ --- ------ ---
AAABUeAAQAAACsjAAg AAABUe AAQ AAACsj AAg
ROWID 형변환 관련 오라클 Function
ROWIDTOCHAR(rowid) converts a rowid into a string.
CHARTOROWID('rowid_string') converts a string into a rowid
ROWID를 이용한 레코드 조회
select rowidtochar(rowid) as id from my_table
where rowid=chartorowid('AAABUeAAQAAACsjAAg')
참조URL : http://www.orafaq.com/forum/t/26409/0/
mp3Converter.exe
pthreadGC2.dll
Prev
Rss Feed