hsql 서버 설치 과정

1. download : http://sourceforge.net/projects/hsqldb/files/ 에서 zip 파일 다운로드 2. server에 zip 파일 복사 3. unzip hsqldb-2.3.0.zip (테스트 서버 : 10.10.18.21:/data/server/hsql/hsqldb-2.3.0/hsqldb) 4. 서버 실행 (디폴트 포트 : 9001) database with files named "mydb.*" and the public name of "xdb". java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:mydb --dbname.0 xdb (설정 정보) +-----------------+-------------+----------+------------------------------+ |     OPTION      |    TYPE     | DEFAULT  |         DESCRIPTION          | +-----------------+-------------+----------+------------------------------| | --help          | -           | -        | displays this message        | | --address       | name|number | any      | server inet address       ...

mybatis XML Configuration 사용 하지 않고 SqlSessionFactory 빌드 하기

이슈 1. Datasource가 동적으로 변경 가능하다. 2. Datasource는 실행 중에 주입된다. 3. 실행 중에 주입 되므로 Xml Configuration을 쓸수 없다. 4. sql문을 파일로 작성 하라. 해결 방법 ENV_ID는 임의의 문자열 TransactionFactory transactionFactory = new JdbcTransactionFactory(); Environment environment = new Environment(ENV_ID, transactionFactory, (DataSource)dataSource); Configuration configuration = new Configuration(environment); InputStream inputStream = Resources.getResourceAsStream(ThemeDAOFactory.sqlMapperPath); XMLMapperBuilder xmlMapperBuilder = new XMLMapperBuilder(inputStream, configuration, ThemeDAOFactory.sqlMapperPath, configuration.getSqlFragments()); xmlMapperBuilder.parse(); SqlSessionFactory sqlSessionFactory = new           SqlSessionFactoryBuilder().build(xmlMapperBuilder.getConfiguration());

[개발일기]2013년 8월 2일

일기라면 시작은 역시 날씨인가... 여름이라 ㅡ_- 매우 찝찝하고 더운....뭐 그런 날씨 였다. 갑자기 개발 일기를 쓰게 된 이유는? =_= 흠....만약 당신이 이런 질문을 받는다면..어떨까? 자네가 경험한 프로젝트 중 위기를 극복한 사례를 말하라.. 하면? 글쎄..프로젝트 중 누구나 작고 큰 위기를 맞이하게 된다. 하지만 지나고 나면 전부 시시한 이슈가 되어 나 자신이 그냥 그런 이슈를 해결 했던 사람이 된다는 것 그리고 =_=;; 본인은 잘 잊어 버리는 나쁜 머리라....뭘 했는지 1~2개월만 지나면 기억이 나질 않는 다는 이유(=_= 사실 이말이 맞다.) 2가지 이유로 일기를 써볼까..해서 써봤다. 오늘의 이슈? OXM OXM이란 Object Xml Mapping이라는 용어의 단축말?인 용어? =_=; (아...말솜씨가... =_= 멋지다.) Oxm의 대표 기능은 마샬링과 언마샬링이라는 기능이다. 마샬링이란 Object 를 xml로 변환하는 작업이고, 언마샬링이란 딱 이름만 들어도 알다 싶을 정도인 딱 Xml를 Object로 변환하는 작업이다. Oxm이라는 기능을 사용한 이유는 이번 프로젝트에서 =_=요상한 xml, 스키마가 없는..뭐 말그대로 요상한 xml를 객체화 하고 객체를 xml로 변환하는 기능이 필요 했기 때문이다. 사실 요구 사항은 좀 더 복잡하다 마샬링 시 : custom된 jsTree -> json -> xml element object -> 마샬링 언마샬링 시 : xml upload/server xml file -> 언마샬링 -> xml element object -> json -> 커스텀된 jstree 암튼 여기서 문제의 포인트는 말 그대로 요상한 xml이다. 이 요상한 xml은 xml내에 특정 스키마를 사용하겠다고 등록하면 =_=  사용 시 파싱에 대한 오류가 난다. (휴 =_=;; 니미럴 이럴꺼면 오픈 소스 라이브러리를 쓰던가....

TDD 개발 순서

TDD의 과정을 단계별로 요약하면 다음과 같은 과정이 된다.  테스트를 작성한다.  작성한 테스트를 통과할 수 있도록 가장 빠른 방법으로 코드를 작성한다. 이 과정에 중복된 코드를 만들어도 상관 없다.  테스트를 수행한다.  테스트를 통과하면 작성한 코드에서 중복을 제거한다. 아니면 2번으로 돌아간다.  테스트를 수행한다.  테스트를 통과하면 완성. 다음 테스트를 1번부터 시작한다. 실패하면 4로 돌아가서 디버깅한다.  참고 :  http://xper.org/wiki/xp/TestDrivenDevelopment

javascript this 유효 범위 변경 함수

apply(), call() 함수.apply() 는 첫번째 파라미터에 함수 내의 this가 되고자 하는 객체, 두번째 파라미터는 배열로 함수의 인자값을 넣는다. 함수.call()는 apply와 동일한 기능을 하며 단 함수의 인자는 배열이 아니 파라미터 나열로 한다. /*** 참고 소스 function callName(a,b){ return this.name(a,b); } var Car = { name : function(a,b){ return “kia” +a+ b;} }; var Car2 = { ame : function(a,b){return “deawoo” +a+ b;} } callName.apply(Car,[1,2]); // kia12 callName.apply(Car2,[1,2]); // deawoo12

javascript closer

참고 :  http://dev.naver.com/tech/ajaxui/ajaxui_2.php#a_2_2 function buildList(list) {     var result = [];     for (var i = 0; i < list.length; i++) {         var item = 'item' + list[i];         result.push( function() {alert(item + ' ' + list[i])} );     }     return result; } function testList() {     var fnlist = buildList([1,2,3]);     for (var j = 0; j < fnlist.length; j++) {         fnlist[j]();     } } testList(); 위를 실행하면 alert(item3 undefined)가 3번 수행된다. ** 이해 하기 위해서는 함수 자체가 상태를 지닌 객체라고 인식 하면 편할 것 같다. 즉 buildList에서 var로 선언한 부분은 멤버 변수이고 클로저는 멤버 함수의 역할을 한다고 생각하면 이해가 될꺼 같다. =_= 이런것도 모르고 있었다니. ㅠㅠ 다시 기초부터 천천히 gogogo~

java stringwriter vs stringbuilder vs stringbuffer

이미지
StringWriter java.lang.Object | +-- java.io.Writer | +-- java.io.StringWriter 출력을 캐릭터 라인 버퍼에 모으는 문자 스트림 입니다. 이 캐릭터 라인 버퍼를 사용해 캐릭터 라인을 구축합니다. S tringWriter  를 닫아도, 무슨 영향도 없습니다.  IOException  를 생성하지 않고 스트림이 닫혀진 후에, 이 클래스의 메소드를 호출할 수가 있습니다. 참고 :  http://xrath.com/javase/ko/6/docs/ko/api/java/io/StringWriter.html ----- StringBuilder java.lang.Object java.lang.StringBuilder 문자의 가변 순서입니다. 이 클래스는, StringBuffer  와 호환성이 있는 API (을)를 제공합니다만, 동기화는 보증되지 않습니다 . 이 클래스는, 캐릭터 라인 버퍼가 단일의 thread (일반적인 케이스)에 의해 사용되고 있었을 경우의  StringBuffer  의 간단한 대체로서 사용되도록(듯이) 설계되고 있습니다. 이 클래스는, 대부분의 구현으로 고속으로 실행 되므로, 가능한 경우는, StringBuffer  보다 우선해 사용하는 것을 추천합니다. StringBuilder  의 기본적인 오퍼레이션에는, append  메소드 및  insert  메소드가 있어, 이러한 메소드는 어떤 종류의 데이터도 받을 수가 있도록(듯이) overload 되고 있습니다. 메소드는 각각 주어진 데이터를 효율적으로 캐릭터 라인으로 변환해, 캐릭터 라인중의 문자를 캐릭터 라인 빌더에 추가 또는 삽입합니다.  append  메소드는 항상, 빌더의 말미에게 줄 수 있었던 문자를 추가해, insert ...