분류 전체보기 (199)
ººº::Development™:: (66)
ººº::Learning™:: (31)
ººº::Information™:: (37)
ººº::Note™:: (11)
ººº::Photo™:: (50)
ººº::zEtc™:: (3)
rss

믹시
tistory 티스토리 가입하기!
'ººº::Development™::'에 해당되는 글 66건
2008. 8. 13. 13:26
사용자 삽입 이미지
우리가 프로그램을 작성하다보면 누군가가 만들어놨을거 같다는 느낌이 드는 부분이 있다.
막연하게 누군가 이런걸 생각하고 만들어놓지 않았을까?
혹은 내가 만들어야 하는 코드랑 비슷한게 있지 않을까?
이렇때 유용하게 사용할 수 있는 사이트이다 머 아시는 분들도 있고 그렇겠지만
모르는 분들을 위해

아 참고로 모든 코드는 오픈소트인걸로 알고 있다.! 머 사이트 제목 자체가 "Open Source Code Search" 이니깐!

Open Source Code Search

C, C++, JAVA를 비롯해서 왠만한거 다 있는거 같은데!! 검색 자체도 능력이니 원하는 코드를 많이 검색해 보세용!!^_^;;


2008. 8. 12. 17:40
이번 프로젝트에서 로그분석 엔진을 만드는 과정에서 어떻게 만들까 고민을 하다가 플러그인 형식으로 작성을 해보자 생각을 하고 프로젝트를 진행하는 과정에서 어떻게 작성한 플러그인을 메인 클래스에서 로드를 할까? 고민을 하다가 찾은 방법으로 다 필요없이 ja자체를 동적으로 로드하는 방법인다.

열마다 말보다 한번의 소스코드가 더 보기 편하다.
String   strTemp   = "mainClass";
File jarFile    = new File( "jar file path" );
URL[] urls = new URL[]{ new URL( "jar:" + file.toURL() + "!/" ) };
ClassLoader    classLoader = new URLClassLoader( urls );
Class    tempClass    = classLoader.loadClass( temp.mainClass );        // plugin class load
Object    object    = tempClass.newInstance();
Method    method    = tempClass.getMethod( "optionSet",
                                                            new Class[]{
                                                                    strTemp.getClass()
                                                            } );
method.invoke( object, strTemp );

알아 보겠는가?

모르면 그냥 일단 작성해보면서 알아보면 된다.ㅋㅋㅋ 나도 그랬으니깐( 완전 깡패.. )
다른코드는 크게 상관이 없지만 jar 파일을 로드할 때와 단순한 class파일을 로드할 때 약간의 차이가 있다.
아래는 클래스를 로드할 때의 코드이다.
File jarFile    = new File( "class package path" );      // 파일명이 아닌 폴더면만 기제
URL[] urls = new URL[]{ new URL( file.toURL() ) };

틀린점을 구분하겠는가?
jar파일을 로드할 때는  URL class에 jar를 로드한다는 것을 명시해 줘야 한다는 것이다.

그리고 로드가 정상적으로 이루어졌으면 다른 코드는 크게 상관이 없지만 로드한 클래스의 method를 호출 하는 방법을 설명하겠다.
Method 클래스는 자신이 호출 하고자 하는 method의 파라미터 type을 설정해 주고 실제 method 호출과 파라미터 전달은 method class의 invoke method를 이용해서 호출해 주면 된다.




2008. 7. 29. 17:27
매번 자바를 사용하는 프로젝트마다 느끼는 거지만 프로젝트 컴파일과 배포는 아주 귀찮은 작업이다.
이런 빌드와 배포를 자동화하기 위해 여러가지 툴이 사용되고 있지만 오래전부터 유닉스/리눅스 환경에서 사용되고있는 make와 유사한 Ant가 등장했다.

Ant는 구조적으로 make와 유사하다고 해야하나? 머 이건 잘 모르겠지만 build.xml에 빌드에 관한 설정을 하고 ant 명령을 수행하면 자동으로 빌드가 이루어지는것을 보면 make와 유사하다고 할 수 있다.

Ant는 자주 사용하는 작업인 컴파일, 압축, 복사, 메일 등의 테스크를 미리 갖추어 놓았기 때문에 make보다 간단하게 빌드 설정을 할 수 있다. - http://ant.apache.org/manual/tasksoverview.html

그럼 지금부터 Ant의 표준빌드 파일인 build.xml을 살펴보자
아래 예는 이번에 회사에서 진행된 프로젝트 build.xml이다.


위와 같이 build.xml을 해당하는 프로젝트 폴더에서 저장후 ant <target name> 식으로 입력하면 된다.

Eclipse에서는 기본적으로 Ant plugin이 설치되어 있기 때문에, Eclipse에서는 바로 실행 가능하다


2008. 7. 16. 09:28
Dan Vanderkam 라는 분이 새로은 컴포넌트인 dragtable을 발표했다고 하네요.
아주 간단하게 스크립트와 CSS만으로 Html table을 정렬하고 드래그 엔 드롭할 수 있는 컴포넌트 입니다.

아래는 해당 포트스의 글을 스크랩한 내용입니다.

지난 몇년간, Stuart Langridge씨의 sorttable 자바스크립트 라이브러리가 널리 사용되었습니다. 이유를 알기는 쉽습니다. 테이블 태그에 class=sortable를 추가하기만 하면 컬럼 헤더가 자동으로 정렬을 지원하도록 클릭할 수 있었기 때문입니다. 아주 쉽죠.
하지만 때때로 정렬 기능이 충분하지 않을 수 있습니다. 만약 테이블에서 한개나 두개의 컬럼에 포커스를 주고 싶을때는요? 클라이언트측 응용프로그램에서는 다룰 컬럼을 드래그해서 다음 칼럼으로 가져다 놓으면 됩니다. 왜 웹 응용프로그램에서는 안될까요?

dragtable로 들어가면. sorttable과 같이, 단순한 class 속성을 통해서도 HTML 테이블이 새 기술을 가지게 할 수 있습니다

테스트 페이지를 가보니 단순하게 table에 class만 명시해주면 다른건 해줄거 없이 바로 적용이 가능하더라구요!
나중에 함 사용해 봐야 할꺼 같습니다.

테스트 URL 과 open source project 입니다.


2008. 7. 14. 14:31
tar로 압축되어 있는 여러 파일을 한번에 압출 풀어보자!

 find . -name "*.tar.gz" -exec tar xvzf {} \;

저번에 문서 찾기와 같이 find를 잘 사용하면 좋은게 많은거 같다는 생각이!^_^;
팀장님에게 배우는거 하나하나 정리하자!!


2008. 7. 14. 14:16
정리 정리..정리만이 살길이다.!!
이제는 머 오전에 찾아본 코드가 생각이 안나니 원....
어쩔 수 없다 머리가 나쁘면 기록이라도 잘 해놓자!! 기록해 놨다는걸 기억하는게 더 편할거 같다는...

로그 분석때문에 코딩 중에 두 날짜의 차리를 이용해 로우데이터를 수집해야 하는 이슈때문에 만는 코드!

Date today = new Date ( );
Calendar  endDay = Calendar.getInstance ( );
endDay.setTime ( today );        // 오늘로 설정.

Calendar startDay = Calendar.getInstance ( );
startDay.set ( 2000, 3, 12 );     // 기준일로 설정. month의 경우 해당월수-1을 해줍니다.

int count = 0;
while ( startDay ( endDay ) )
{
    count++;
    startDay.add ( Calendar.DATE, 1 ); // 다음날로 바뀜

    System.out.println ( startDay.get ( Calendar.YEAR ) + "년 " + ( startDay.get ( Calendar.MONTH ) + 1 ) + "월 " + startDay.get ( Calendar.DATE ) + "일" );
}

System.out.println ( "기준일로부터 " + count + "일이 지났습니다." );


그냥 간단하게 이리저리 찾아서 만든 코드로 유의해야 할 사항은 Calendar를 Set할 때 Month의 Index가 0부터 시작한다는걸 유념해서 원하는 월의 1을 빼서 set 해줘야 한다.


2008. 7. 9. 09:16

자주 들리는 EnZine 블로그에 올라온 포스트로
Giva Labs 팀에서 UI컨트롤중 하나인  mcDropdown Dropdown이라 불리는 계층적 콘보박스를 만들었다.

자세한 내용은 Giva Labs이 만든 끝내주는 콤보박스 포스트를 확인바란다.

또한, jQuery용 플러그인으로 릴리즈했다고 하니 한번 써봐야겠당!



2008. 7. 7. 10:20
항상 쓰면서도 잘 까져먹어서!!ㅋㅋㅋ

find -type f -exec grep -H [찾고자하는 문자열] {} \;

다음에 바로 찾아서 쓸수 있게끔!!
저 하나하나의 속성은 안찾아봐서 모르겠고 그냥 외운다!
일단 모르면 외워서라도 쓴자!!


2008. 7. 2. 10:36
이런 맨날 듣고도 머릿속에서 지워저버리는 이 현상!
아주 죽을 맞이다.!!

이걸 자바로 카테고리에 넣어야 할지는 모르겠지만
우짜든!!

페도라에 설치된 톰켓이 실행될때 스텍 사이즈를 조절해 줘야 하는 경우가 생기는데
이때 스텍 사이즈는

/etc/sysconfig/tomcat5 파일에서 조절해 주면된다.!

내 설정은  JAVA_OPTS="$JAVA_OPTS -Xss10m" 이렇게 되있다!ㅋㅋㅋ


2008. 6. 24. 12:33

요즘 여기저기 블로그의 RSS 피드를 긇어 모으고있다
그냥 막무가네로 긇어 모아서 쭉 읽어보면서 괜찮은 글들은 스크랩하고 있는데!

오늘은 Swing개발자라고 하는 Ben씨가 만든 새로운 GUI 툴킷이라고 합니다.

한번씩 봐보시길!!!