분류 전체보기 427

C#에서의 데이터형

값형과 레퍼런스형 비교 닷넷에서 제공하는 데이터형은 변수가 어떤 값을 갖느냐에 따라 분류 값(value) 형 변수가 실제 데이터 값을 직접 가지고 있는 경우 값(value) 형은 스택(stack) 메모리 공간에 저장되며, 할당 연산을 했을 때 별도의 메모리 영역에 할당 레퍼런스(reference) 형 변수가 실제 데이터 값이 있는 곳을 가리키는 값을 갖는 경우 레퍼런스(reference) 형은 힙(heap) 메모리 공간에 저장 할당 연산을 했을 때 힙 메모리 공간을 가리키는 레퍼런스 변수 값 사이에서 할당이 일어남 IntObj r1 = new IntObj(); 스택(Stack)데이터 값을 임시로 저장하는 메모리 영역으로, 보통 메서드의 인자, 메서드 안에 선언한 변수들이 스택 공간에 할당 힙(Heap)일..

닷넷 3.5를 이용한 디자인 패턴의 구현 (4)

이름에 짐작할 수 있듯이, Observer 패턴은 오브젝트의 상태를 관잘하는 데 사용된다. 이 패턴이 약간 변형된 패턴이 출판 (Publish)과 구독(Subscribe)이다 관찰 대상 오브젝트는 어떤 이벤트 혹은 이벤트들을 "출판"하고 이들을 주시하고 있던 오브젝트들(관찰자들)은 발생한 이벤트를 "구독"한다. 이것을 좀 더 단순화하기 위해, 두 패턴을 모두 Observer 패턴이라고 부를 것이다. 사실 이 두 가지 패턴의 차이는 보는 관찰 시점의 차이일 뿐이다. 쉽게 얘기해서, '당신이 나를 관찰하고 있나요? 와 내가 당신이 구독하려는 나의 이벤트를 출판하고 있나요? 의 차이와 같다. 전자는 나를 보는 관점이 타인이 시점이고 후자는 자신의 시점에서 일어나는 이벤트를 관찰하게 된다. Observer 패턴..

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 에서 퍼포먼스 관..