본문 바로가기

Programing

(403)
숫자로 된 문자열 0으로 패딩하기... 개인정보보호를 위해 비밀번호를 DB에 직접 넣기 보다는 해싱을 해서 넣는 것을 사용하고 있었다.MD5로 해싱을 했는데, 이상하게 DB상에 들어가 있는 길이는 제 각각이었다.MD5 해싱은 42자리로 고정된 길이인데 말이다.알고보았더니 해싱하는 것은 자바의 java.security.MessageDigest를 이용해서 하고 있었는데,digest()라는 메소드가 byte[]로 반환을 해주었기에 문자열로 바꾸어야 했던 것..public byte[] java.security.MessageDigest.digest() StringBuffer에 append로 byte를 문자로 바꾸었는데 Integer.toHexString은 0으로 패딩을 해주지 않았다.buf.append(Integer.toHexString((int)di..
[C#] 크로스 스레드 작업이 잘못되었습니다 대상: Visual C# > Windows > Windows Forms 응용 프로그램주제: 비동기 처리키워드: 델리게이트, 이벤트, 멀티 스레드 Windows Forms 응용 프로그램로 UI가 있는 애플리케이션을 만들었다.파일을 읽고 처리를 해야해서 긴 작업을 사용자에게 피드백을 해주어야 해서 아래와 같이 프로그래스를 만들어주었다.(위의 에러 메시지에서 progressBarHashing 컨트롤이 바로 그것!) 파일 처리하는 부분은 스레드로 만들어서 프로그램이 작업을 하는 동안에도 블록 되지 않도록 처리했고, 델리게이트와 이벤트를 작성하여 호출하는 측에서 이벤트 핸들러를 연결했다. 아래는 사용하는 쪽의 이벤트 핸들러 함수이다.void OnProgressEvent(object sender, ProgressE..
GAE :: Java 개발환경 처음에 파이선으로 시작했던 구글 앱 엔진이 자바와 Go언어로도 이용할 수 있다.자바 개발 환경을 구축해보자. 개발환경은 이클립스를 사용한다고 가정한다.Help > Install New Software... 에서Google App Engine - http://dl.google.com/eclipse/plugin/4.2사이트 주소를 넣으면 이클립스에서 개발이 가능한 여러가지가 나온다.안드로이드와 GWT(Google Web Toolkit)도 포함이 되어 있으니 필요한 것만 설치하자.
Zen Coding CSS는 HTML문서에서 스타일을 다루는 문법이지만 CSS의 셀렉터 라는 개념은 여러곳에서 응용이 되는 것 같다.하나는 유명한 JavaScript 라이브러리인 jQuery이고, 다른 하나는 Zen Coding이다.Zen Coding은 CSS의 문법을 HTML 엘리먼트들을 생성하기 위해 사용한다. http://code.google.com/p/zen-coding/ 예를 들어, 아래와 같은 id가 content인 div안에 여러 컨텐츠를 입력하려면 손이 많이 간다. Zen Coding을 이용한다면, 한문장으로 생성할 수 있다.아래 문장을 치고 끝에서 Expand abbreviations를 적용하면 위의 HTML코드로 변환이 된다. div#content>div.logo+ul#navigation>li*5>a 이클..
드라이브명으로 볼륨명 구하기 우리는 흔히 디스크 드라이브 명이 C나 D 같이 단일 문자로 되어 있다고 생각할지 모르지만 윈도우는 내부적으로 UNC(universal naming convention)를 따라서 사용한다. 이 UNC는 "\\?\"를 접두어로 사용한다. 더 자세한 내용은 MSDN의 Naming Files, Paths, and Namespaces를 참고! 이 글은 네이버 지식iN에 올라왔던 "볼륨명으로 드라이브번호 알아내는법..."라는 질문으로 시작되었다. => http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=157619577 내가 만든 코드 (GetVolNameByDriverName) : 입력 - 단일 드라이브 명. 예) C : 출력 - UNC이름. 예) \..
[WinForm] 제목표시줄 안보이게 하기 윈폼에서 전체화면을 덮어버릴 프로그램을 만들던중 아무리해도 제목표시줄이 없어지지 않았다.알고보니 FormBorderStyle : None으로 주어야 한다. MaximizeBox : FalseMenu : (없음)Minimizebox : FalseText : 비어있어야 한다고 하는데, 입력되어 있어도 표시가 되지 않을 뿐 (필수 사항은 아니라는 것)ToolBar : (없음)TopMost: True (권장)WindowState : Maximized ----찾다가 보니 참고할만한 링크1. http://www.pcreview.co.uk/forums/remove-title-bar-win-form-t1365531.html (결정적인 힌트)2. [C#] 프로그램 종료 시키기 (이건 그냥 상식이지만..)3. [C#] 윈..
스트림(Stream) 스트림은 자바에서 입출력에 관계된 추상화된 개념이다.또한 입출력이란 컴퓨터 장치와 다른 어떤것(사람, 다른 컴퓨터 등)과의 인터페이스를 담당하고 엄청 자주 사용된다. 하지만 자바를 배우는 사람은 의외로 스트림에 대한 개념이 약하다는 것을 느낀다. (예. 김xx, 장xx)System.out.println이 PrintStream의 일종이라는 것을 아는 사람이 몇명이나 될까 느낀다. 입출력 클래스는 다루는 데이터의 종류에 따라 계층(level)을 가지고 있다.추상화가 덜된 바이너리 데이터부터 구체화가 된 데이터 타입까지 말이다. (특히 데이터는 문자열이 되면서 다룰 수 있고 없는 데이터가 생기게 된다.) 모든 데이터를 다룰 수 있다 : InputStream / OutputStream이 InputStream과 ..
[JavaScript] RIA::자바스크립트 프레임워크 자바스크립트 테스트 캔버스 : http://jsbin.com/ jQuery를 공부하던중에 몇 가지 정리를 해본다. jQuery 공식사이트(1.8.2): http://jquery.com/ jQuery UI(1.9.0) : http://jqueryui.com/ - jQuery Online Movie Tutorial by John Resig - eclipse plug-in : Aptana Studio 3 - http://download.aptana.com/studio3/plugin/install => http://j07051.tistory.com/entry/Eclipse-Jquery-플러그인-설치 => jQuery, 기본 셀렉터 (TAEYO.NET) jQuery 플러그인들 차트관련: jQuery Plugins..