소프트웨어 301

ILMerge - 닷넷 어셈블리를 하나의 파일로 묶어주는 툴

- 시작전 잡설 : 참으로 오랜만의 포스팅이네요^^; 요 근래 두어달간 몇가지 흥미진진한(그만큼 구글링도 엄청한) 프로젝트를 진행하느라 좀 바빴는데, 다시 블로그에 관심을 가져줄까 합니다. (뭐, 기다리시는분은 없었겠지만-_-;;) - 상황 : 부서내 다른팀(개발이 아닌)에게 업무에 사용할 툴을 만들어 주는데, 이것저것 참조된 어셈블리를 같이 배포했더니, 불편하다고 파일하나만 가지고 실행할 수 없겠냐고 합니다. (엑셀에, DB접속에, 각종 UI들까지 몇가지 있깄했죠.) 그래서 구글님께 물어보니, 아니나 다를까 ILMerge 라는 툴이 있었고, Microsoft 공식 사이트에서 배포중이었습니다. - 다운로드 : ILMerge.msi - ILMerge 를 설치하면 기본적으로 c:\Program Files\M..

형태소분석기 관련 자료

검색관련 작업을 하다보면 기본적으로 부딪히는 문제의 첫번째가 형태소분석기다. 하다못해 Lucene을 깔아서 뭔가 해보려고 해도 우선 걸리는 것이 형태소분석기이고 Spam filtering, Query categorization, Duplication detect 등등 대부분 형태소분석기가 없으면 원할한 작업이 힘들거나 좋은 성능이나 결과를 포기해야 한다. N-gram으로 삽질해서 처리하는 것이 도가 텄으면 모를까... 또 그런 작업으로 대체해서 한다고 해도 근본적으로 쉽지 않은 부분이 많다. 물론 회사에서는 몇개의 형태소분석기가 이미 구비되어 있으므로 그냥 가져다 쓰면 되지만 뭔가 개인적으로 하고 싶은 일에는 회사자산을 가져다 쓰면 안되게 되어 있다. 개인적으로 쓸만한 것이 있는지 간단하게 정보를 수집해..

자바스크립트를 이용한 MSN다루기

// 자료실 SDK 참조하세요. var obj; var gChecker = "10331358"; // 1033 US __ 1358체커게임 var gHex = "10331003"; // __ 1003 헥사게임 function Button1_onclick() { try { obj = new ActiveXObject("MSNMessenger.P4QuickLaunch"); } catch (e) { alert(e); obj = null; } if(obj != null) obj.LaunchApp(gChecker, ""); // 메신저 실행, 게임상대 select } 다음음 예제입니다. 출처 : http://hoons.kr/board.aspx?Name=asptip&BoardIdx=1687&Page=1&Mode=2

무료 디스크 암호화 프로그램 TrueCrypt - USB 플래시 메모리(디스크) 활용하기 (Traveler mode)

많은 분들이 플래시 메모리를 저장 장치로 사용하는 USB 메모리(USB 디스크)를 가지고 다니면서 사용합니다. 요즘은 2GB나 4GB 정도의 용량을 저장할 수 있는 USB 메모리의 가격도 많이 저렴해져서 1-2만원 정도면 구입하는 것 같습니다. 예전의 1.2MB 짜리 5.25인치 플로피 디스크나 1.44MB 짜리 3.5인치 플로피 디스크를 들고 다니던 때를 생각하면 참 세상 편하고 좋아졌구나 하는 생각이 듭니다. USB 메모리라는 것이 가볍고 참 편리한 대신에 크기가 작다보니 분실의 위험도 참 많은 것 같습니다. 분실하게 되면 USB 메모리가 아깝다는 생각보다도 내용물에 개인 정보라도 포함되어 있지는 않은지, 개인 정보 유출이 걱정되고 찜찜한 마음이 들게 됩니다. 저도 몇 개월 전에 사진이 담긴 CF 메..

글쓰기가 두려운 직장인을 위한 조언

얼마 전 올 들어 두 번째 ‘AhnLab R&D School’이 열렸다. '연구원의 Power Writing'이라는 제목으로 '한국의 이공계는 글쓰기가 두렵다’, ‘한국의 직장인은 글쓰기가 두렵다’의 저자 임재춘 교수가 강의했다. 임교수는 우리가 글을 못 쓰는 이유가 무엇인지를 가지고 말문을 열었다. 글은 크게 재미와 감동을 주는 문학적 글과 실용적 글로 나눌 수 있는데, 우리나라 교육은 재미와 감동을 주는 글짓기에 치중하여 효과적인 의사 전달에 중점을 두는 실용적 글짓기의 교육이 부족하다는 것이다. 이어서 효과적인 의사 전달을 위한 구조와 논리를 갖춘 글쓰기인 힘 글쓰기(Power Writing)와, 이를 토대로 기술 글쓰기(Technical Writing)를 잘할 수 있는 방법을 소개했다. 그에 따르..

개발자가 알아야 할 웹 보안

SQL Injection, 파라미터 변조, 쿠키 변조, 세션 변조 공격 등으로부터 필자가 개발 중인 블로그 형태의 "바투"라는 웹 사이트가 얼마나 안전한지, 문제점은 무엇인지에 대해 알아보자. 1. SQL Injection SQL Injection 공격으로부터 사이트를 보호하기 위해서는 우선적으로 다음 3가지 과정을 지켜야 한다. ① DB 최소권한으로 웹 사이트를 운영한다. ② 입력값 검증( ' " ) # || + > )을 통해 SQL Injection 공격을 대비한다. ③ 저장 프로시저(Stored Procedure)를 이용한다. 바투 웹 사이트에서 테스트 결과 SQL Injection에 대한 공격이 발생하지 않는다. 모든 데이터 처리를 저장 프로시저로 처리하기 때문에 ' or 1=1 등과 같은 공격이..

MySpace's Performance Tracker

최근들어 유명 사이트들 내부에서 자체 사용을 위해 개발한 툴들을 오픈 소스로 전환해 발표하는 경우가 많아졌다. 웹사이트의 퍼포먼스 향상을 위해 페이지 렌더링 또는 병목현상에 대한 부분들을 검사해 대처할 수 있도록 하는 툴들 중에는 대표적으로 Yahoo의 YSlow가 있고, 최근들어 Google이 발표한 Page Speed, AOL의 Page Test, IBM의 Page Detailer, MS의 Visual Round Trip Analyzer 등이 있다. (구글의 경우에는 퍼포먼스 관련 사이트를 별도로 운영하고 있기도 하다.) 이와 비슷한 맥락에서 미국의 대표적인 SNS 사이트인 MySpace에서도 지난 6월 24일 열린 O'Reilly의 대표적인 퍼포먼스 관련 컨퍼런스인 Velocity 에서 퍼포먼스 관..

리스트가 포함된 IE 페이지 로딩 속도 향상에 대해

저만 그런 건 아닐 테고 웹페이지 만들때 리스트 많이들 쓰시죠? 얼마전에 jquery를 사용하여 페이지 리뉴얼을 해놓았는데 클라이언트에서 페이지가 뜨는데 시간이 너무 많이 걸린다고 하길래 분석하다보니 재밌는 사실을 알게 되었습니다. (물론 파이어폭스,크롬,오페라,사파리 등은 절대 느리지 않습니다.) 한페이지당 50 row의 데이터고 버튼이 1 row당 4개씩 들어갑니다. 1. 시도1 : table → div 결과 : 매우 느림(별 차이 없음) 2. 시도2 : 이미지 또는 버튼을 모두 삭제 결과 : 매우 빨라짐 3. 시도3 : 이미지 또는 버튼에서 이벤트핸들러 영역 삭제 결과 : 매우 빨라짐 4. 시도4 : 이미지 또는 버튼에서 이벤트핸들러 영역에 alert('1')로 바꿈 결과 : 매우 빨라짐 5. 시도..