일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mac
- StringUtils
- Postman
- sha1
- Callable
- PKCS
- 자바 암호화
- 암호학
- PKCS#8
- Executors
- Runnable
- Executor
- ACAP
- RSA
- String
- 한글조사처리
- Instrumentation
- IPTV
- 이클립스 플러그인 개발
- Log4J
- Java
- 한글조사
- AES
- JCE
- 자바
- ORM
- date
- Freemaker
- xlet
- DAMO
- Today
- Total
목록분류 전체보기 (123)
오늘은 어디로 갈까...
자바에서 날짜와 시간을 표현하는데에 java.util.Date를 클래스를 많이 쓴다. 그리고 java.text.SimpleDateFormat 클래스를 이용해서 원하는 형식으로 출력할 수 있다. Date date = new Date(); System.out.println(date); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); System.out.println(format.format(date)); new Date()를 사용하면 현재 시간으로 생성이된다. 원하는 날짜 시간으로 만들려면 어떻게 해야할까? Date 생성자를 보면 날짜를 입력하는게 있지만, Deprecated 생성자이다. 사용하지 말자. @Deprecate..
아... 참아야만 하는데, 이래서는 안되는데... 결국 극복하지 못하고, 지르고 말았다... ㅠㅠ 불가항력이었다.... NeXT STEP에 막연한 동경을 품고 있었던 나로서는, Max OS X가 그 후예란 사실 하나만으로도 이성을 잃어버려야만 했다. 자, 이번 지름의 주인공이다. 다름아닌 코코아~ 프로그래밍 책 지은이 : Aaron Hillegass/박진형 출판사 Insight (인사이트) 발행일 2008-12-22 판매가 25,000원 ISBN 8991268536 | 9788991268531 책을가지고 왜이리 호들갑이냐? 라고 할 수 있지만, 생각해봐라. 맥 프로그래밍 책이다. 즉, 실습을 하려면 맥~이 필요하다.(아~~ 맥북이 나를 보며 미소짓고 있다.) 거기다가. 맥 프로그래밍을 배웠는데, 아이앱스..
자바 AND 연산자는 '&'와 '&&'가 있다. 이 두개의 차이는 무엇일까? 몰라도 살아가는데 전혀 문제가 없지만, 심심하니 알아보도록 하자. 정답을 말해버리자면 &는 두 조건을 무조건 검사하는것이고, &&는 첫번째 조건이 참일때만 검사하는것이다. AND란 두 조건이 모두 참(true)이어야하므로, 첫번째 조건이 거짓(false)이면 굳이 두번째 조건을 검사할 필요가 없을 것이다. 이 '&&'이 그런 역할을 한다는 것이다. 직접 구현해보도록 하자. public class AndOrTest { public static boolean condition(String msg, boolean result) { System.out.println(result + " : " + msg); return result; }..
자, 이제 실제로 유틸리티 클래스를 만들어 보자. 단순히 웹 어플리케이션 개발을 할 경우 실제적으로 많이 쓰이는 것은 문자열을 숫자형으로 변환하는 것이다. 문자열을 입력받아 자바 기본 숫자형으로 변환하는 클래스를 만들어보자 /** * 문자열을 숫자(short)형으로 변환한다. * * * NumberUtils.toShort(null, 0) = 0 * NumberUtils.toShort("NaN", 0) = 0 * NumberUtils.toShort("1234", 0) = 1234 * * * @param value * @param defaultValue 기본값 * @return */ public static short toShort(String value, short defaultValue) { if (va..
숫자 유틸리티를 만들어 보기로 하자. 자바의 숫자형은 크게 정수형과 실수형으로 구분한다. 1. 정수형 - 자바의 기본 정수형은 unsigned type이 존재하지 않는다. 그래서 해당 정수형의 바이트(byte)수에 의해서 -2(비트수-1) 부터 2^(비트수-1)-1의 범위를 가지게 된다. 비트(bit)수에서 1비트를 빼는 이유는, signed type 즉 부호 비트로 최상위 1비트를 사용하기 때문이고, 최대값에 -1을 해주는 이유는 0부터 시작하기 때문이다. byte 1byte -128 ~ 127 (-27 ~ 27-1) short 2byte -32768 ~ 32767 (-215 ~ 215-1) int 4byte -2147483648 ~ 2147483647 (-231 ~ 231-1) long 8byte -..
한글 처리도 해봤으니, 이젠 한자 처리를 해보도록 하자. 기능은 아주 단순하다. 한자를 입력받으면 한글로 출력해주는것이다. 동형이음(同形異音) 처리등, 제대로 할려면 아주 복잡해지니, 단순히 한자-한글을 1:1 대응시켜서 변환시켜주는 아주 단순 무식한 클래스를 만들어보자. 여기서 사용하는 한자-한글 맵핑표는 김진숙님이 만든것은 무단 도용(?)한 것임을 밝혀둔다. 일단, 유니코드 사이트에 가서 한자에 대해 알아보자 Han Ideographs Unified CJK Ideographs 4E00-9FCF U4E00.pdf CJK Ideographs Ext. A 3400-4DBF U3400.pdf CJK Ideographs Ext. B 20000-2A6DF U20000.pdf CJK Compatibility Id..
오늘은 지난 시간에 만든 한글(Hangul) 클래스를 조금 이용하여 조사 처리하는 메시지 클래스를 만들어보자. 자바에는 java.util.MessageFormat 이라는 아주 유용한 메시지 포맷 클래스가 존재한다. 하지만 불행히도 한글 조사 처리를 해주지 않는다. 그리고 너무나 기능이 많다보니 약간의 오버헤드(overhead)가 있다. 그래서, 한글 조사 처리 기능만 추가한 아주 간단한 MessageFormat 클래스를 만들어보도록 하자. 너무 간단하여 메소드 안에 구현되어서, 복수의 쓰레드(Thead)가 동시에 접근해도 안전하다. (아마도..) 1. 간단해서 별 다른 설명이 필요없을거 같다. 소스를 보고 파악하자. package kr.kangwoo.util.hangul; import java.util...
겨우 삼일 낙서를 하였는데, 벌써 부터 뇌에 과부하 걸려서 쓰러지려고 한다. 바닥 체력도 한몫하기는 하지만... 역시... 노환(老患) 때문인가... 쿨럭.. 쿨럭... 힘들긴 하지만, 뭐 시간 때우기에는 최적이니, 그걸로 위안을 삼야겠다. 텅빈 돌담길 위해 흘러가는 저 구름은 누굴 위한 것일까...
문자하면 빼 놓을 수 없는게 한글이다.(한국에 사니...) 오늘은 한글에 대해서 알아보도록 하자. 지난번 시간에 자바는 유니코드 기반이라고 했으니, 유니코드 사이트(http://www.unicode.org/)에 가서 열심히 읽어보자. 유니코드 한국어 명세서(Unicode Korean specific)를 보면 네개의 영역이 있다. Hangul Jamo 한글 자모 영역 0x1100-0x11F9 U1100.pdf Hangul Compatibility Jamo 한글 호환 자모 영역 0x3130-0x318E U3130.pdf Hangul Syllables 한글 영역 0xAC00-0xD7A3 UAC00.pdf Halfwidth Jamo 반각 자모 0xFF00-0xFFEF UAC00.pdf 첫번째, 0x1100-0x..
StringUtils 클래스 만들기 위해선 알아야할 것이 무엇일까? 당연 String 클래스이다. 그럼 String 클래스에 대해 알아보도록 하자 String(문자열)은 말 그대로 문자의 집합이다. 내부 소스를 보면 char(문자) 배열로 구성되어진것을 볼 수 있다. public final class String implements java.io.Serializable, Comparable, CharSequence { /** The value is used for character storage. */ private final char value[]; java(자바)에서 문자 정보는 Unicode Standard v4.0에 근거해서 사용한다.(J2SE API 5.0 문서를 보면 자세히 나와있다.) Uni..
1. 자바 프로젝트 만들기 - New -> JavaProject를 실행해서 자바프로젝트를 생성한다. - Project 명을 여기서는 kr.kangwoo.util이라고 하겠다. - JDK 1.5를 사용하겠다. 2. 테스트 소스 폴더 추가 - 기본값을 생성했다면 src 란 소스 폴더가 만들어져있는데, 테스트를 위해 test란 소스 폴더를 하나 더 추가하겠다. - 해당 프로젝트를 선택한후 마우스 우클릭한 다음 Prperties를 실행하면 속성창이 나온다. - 여기서 Java Build Path를 선택한후 Source 탭에서 Add Folder를 클릭한다. - 아래와 같은 창이 뜨면, Create New Folder를 클릭후 test 폴더를 생성한다. 장상적으로 생성되었다면, 아래 그림처럼 보일것이다. 3. S..
SyntaxHighlighter는 자바스크립트 기반으로 만들어졌는데, 코드(code)등을 포스팅할때 쉽고(?) 이쁘게(?) 해주는 역할을 한다. * 코드 삽입 방법 alert("Hello world"); * 사용 방법 - 해당 사이트에 업로드에서 사용해도 되지만, 귀찮으면 http://alexgorbatchev.com 에서 제공해주는 주소를 그냥 사용 가능하다. - 필요한 부분만 넣어도 되지만, 귀찮으면 다 넣어버리자. * 다운로드 http://code.google.com/p/syntaxhighlighter/ http://alexgorbatchev.com/wiki/ * Brushes Brush name Brush aliases File name Bash/shell bash, shell shBrushBas..
작년 이맘때쯤, 자바에 관한 책을 한번 써보자고 마음을 먹었다. 1년이 지난 지금.... 아직 목차도 만들고 못하고 있다. 아.. 신조차도 부러워 하는 이 게으름은 어찌해볼 도리가 없구나. 회사다니느라, 노느라~~ 시간이 없었다고 스스로를 위로해보지만, 소리 없는 아우성에 불과한것이겠지. 뭐.. 어떠랴. 그저그렇게 살아가면 될것인데... ^^ 퍽~!퍽~!퍽~!퍽~!퍽~! 책을 쓸려고 했을때, 가장 어려운 점은 글 쓰기가 힘들다는 점이었다. 한글을 배웠음에도 불구하고, 머리속의 내용을 한글로 표현해내는 것이 이리도 어려울줄이야... 그래서 글쓰는 연습을 하기 위해서 낙서를 열심히 해야겠다..... ............................................
SearchQuery implements ISearchQuery SearchResult extends AbstractTextSearchResult implements IEditorMatchAdapter SearchPage extends DialogPage implements ISearchPage SearchResultPage extends AbstractTextSearchViewPage SearchContentProvider implements IStructuredContentProvider private void selectLine(ITextEditor textEditor, int lineNumber) throws CoreException, BadLocationException { if (lineNum..
이클립스 플러그인 개발 할때 외부 브라우저 여는 방법 IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport(); IWebBrowser browser = support.getExternalBrowser(); browser.openURL(new URL(http://blog.kangwoo.kr));
참고 : http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_workbench_texteditor_hyperlinkDetectors.html EJB를 사용할 때 ctrl+click해서 구현한 Bean에 바로가기 위해서 만들어 본 것 public class JavaElementHyperlinkDetector extends AbstractHyperlinkDetector { /* * @see * org.eclipse.jface.text.hyperlink.IHyperlinkDetector#detectHyperlinks( * org.eclipse.jfac..
이클립스 플러그인 개발할때, 보통은 textEditor.selectAndReveal(offset, length)로 위치를 이동하는데, lineNumber로 계산해서 호출할 수 있다. private void selectLine(ITextEditor textEditor, int lineNumber) throws CoreException, BadLocationException { if (lineNumber > 0) { IEditorInput input = textEditor.getEditorInput(); int offset = 0; int length = 0; IDocumentProvider provider = textEditor.getDocumentProvider(); try { provider.conne..
이클립스 검색창을 바로 여는 방법 NewSearchUI.openSearchDialog(IWorkbenchWindow, 검색페이지아이디);
자바스크립트 개발 툴킷(JSDT) 살펴보기 : http://www.ibm.com/developerworks/kr/library/os-eclipse-jsdt/
출처 : http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extension-points/index.html Platform Text org.eclipse.core.filebuffers.annotationModelCreation org.eclipse.core.filebuffers.documentCreation org.eclipse.core.filebuffers.documentSetup org.eclipse.ui.editors.annotationTypes org.eclipse.ui.editors.documentProviders org.eclipse.ui.editors.markerAnnotationSpe..
출처 : http://www.securitytechnet.com/crypto/standard/pkcs.html Public Key Crpytography Standard(PKCS)는 RSA사에서 주관하고 있는 공개키 암호를 위한 표준으로 다음과 같이 PKCS#1 부터 PKCS#15 까지 있다. *해당 링크에 가시면 보다 다양한 자료들(Testvectors, ASN.1 Module, doc 문서)을 다운받으실 수 있습니다. PKCS #1: RSA Cryptography Standard RSA 알고리즘을 바탕으로 한 암호화, 서명 scheme의 구현에 대한 권고 표준이다. 이것은 키, scheme에 대한 ASN.1 표기도 포함한다. 현재 ver. 2.1이 draft(#3) 상태이다(6/14/2002). 2...
출처 : http://blog.acronym.co.kr/9 Conventional Encryption에서는 Key size, Block size, Round 수가 보안성에 영향을 주는 요소입니다. 이 중에서 Block을 처리할 때의 운용 모드도 중요한 역할을 하는데요. 이런 블록 암호의 운용 모드(Block cipher modes of operation)에 대해서 정리해 봤습니다. ECB(Electronic codebook) 가장 간단한 운용모드로서 평문을 일정 크기의 블록으로 나누어서 처리하며, 각 블록은 동일한 키로 암호화 한다. 즉 블록별로 별도로 암호화를 진행하며, 같은 평문 블록이 나타나면 같은 암호 블록도 나타나게 된다. 이 방식의 단점은 동일한 평문블록에 대해 동일한 암호문을 생성하게 되므로..
보통 Runnable 인터페이스를 구현해서 사용하면서, 작업이 완료되었을때 그 값(?)을 확인할 명시적인 방법이 없었다. 뭐 어떻게든 구현은 가능했지만, 뭔가 미적지건했다. 근데 J2SE 5.0부터 Callable이란 놈이 생겨서 좀더 수월하게 처리를 할 수 있게 되었다. 실행 Thread한테 Callable을 전달할 수 없기 때문에, ExecutorService 놈을 이용해서 사용한다. ExecutorService pool = ExecutorService.newFixedThreadPool(11); Callable callable = ... Fucture future = pool.submit(callable); future.get(); 실행자에 대한 자세한 내용은 Java Tutorial의 Execute..
이 동네에서 쓰는 프레임워크 중에 cnt.framework라 불리우는 놈이 있는거 같은데, 결론은 shit~이다. (enxx 작품인가) 나름데로 고심한 흔적은 있어보이나, 이건 영 아니올시다. 나도 예전에 프레임워크를 만들면서, 산고의 고통속에서 많은 누(?)를 범하긴 했지만... 이놈에서 느껴지는 것은 자바기본이 부실하다는것 밖에....(나도 못하긴 하지만.T_T) 그중에서 가장 마음에 안드는 부분은 DAO 생성 부분. (다른 기능은 안써봤음. ^^;) xml에 sql을 정의해서, DAO 생성프로그램을 실행(ant 이용) 생성할 대상 sql 이름을 넣고, 자바 파일(DAO)을 생성한다. 현재 개발 환경은 이클립스인데, ant를 이용해서 실행 후 화면 갱신(refresh)까지 해줘야한다. (깜빡 잊고, ..
1. 인xxx에서 만들어본 플러그인 1) 10월 14일 10월 14일 버전은 제우스 5.0 기동/중지, 전개코드(?-AppCompiler) 생성 기능을 가지고 있음 - 서버 기동/중지 프로그램을 열심히 만드는중, 단순히 설정 파일만을 가지고 만들 수 있다는 사실을 발견(역시 이클립스) - 그래서 기존 소스는 다 지우고 설정파일로 움직이게 구현(차후에는 직접 구현에 도전을!!!) - Project가 EJB Project일때 정상작동인데, 현재 인xxx는 EJB를 일반 프로젝트로 만들어버려서 전개코드 생성기능 작동 불가 - 전개코드 생성시, 해당 프로젝트가 참조하는 프로젝트들을 클래스패스로 넘겨줘야지 정상적으로 AppComipler가 작동할것으로 추정 - Jeus의 AppComipler를 분석해보았으나.....
* 컨텍스트 메뉴 org.eclipse.ui.popupMenus * 환경 설정 org.eclipse.ui.preferencePages
# Project에서 JavaProejct 만들기 IJavaProject javaProject = JavaCore.create(project); #출력 경로 가져오기 javaProject.getOutputLocation(); javaProject.getOutputLocation().toFile().getAbsolutePath();
Eclipse 3.0 Registered Context Menus Part Name Registering Class Menu Id Workbench Part Id Ant AntView org.eclipse.ant.ui.views.AntView org.eclipse.ant.ui.views.AntView Bookmarks BookmarkView org.eclipse.ui.views.BookmarkView org.eclipse.ui.views.BookmarkView Breakpoints BreakpointsView org.eclipse.debug.ui.BreakpointView org.eclipse.debug.ui.BreakpointView Call Hierarchy CallHierarchyViewPart o..
현재는 자바 리소스 파일을 작성할때에, 국제화 등을 이유로 ascii 값의 ISO-8859-1로 작성해주어야 한다. 그래서 jdk에는 native2ascii($JAVA_HOME/bin)라는 실행파일이 있는데, 이 놈을 이용해서 모국어(?)로 작성한 properties 파일을 ascii값으로 변경해야하는것이다. 즉, "안녕하세요" 를 변경하면 "\uc548\ub155\ud558\uc138\uc694"라는 외계인어로 변경되는것이다. 이렇게 변경해야만 실행할때 원하는 값을 가져올 수 있다. 물론, 편법으로 properties 파일에 한글을 그대로 적어넣고, 해당 클래스 파일을 수정해서 사용할 수도 있지만, 이건 엄연히 국제화(?)에 위반되는 행위이기에 그냥 넘어가기로 하자. ANT에서 native2ascii ..
This package is the backport of java.util.concurrent API, introduced in Java 5.0 and further refined in Java 6.0, to older Java platforms. The backport is based on public-domain sources from the JSR 166 CVS repository, the dl.util.concurrent package, and the Doug Lea's collections package. The ambition of this project is to provide a concurrency library that works with uncompromised performance ..