본문 바로가기

전체 글

Reflection 을 통한 Event 제어 동적 이벤트 처리.. 어디에 써먹으면 좋은까.. 우선 이에 앞서 리플랙션 이야기를 잠시만 언급하겠습니다. System.Reflection 네임스페이스와 System.Type을 사용하면 우리가 원하는 어셈블리의 클래스, 인터페이스, 프로퍼티 와 맴버에 대한 정보를 얻을 수 있습니다. 간단히 말하면, 런타임으로 동적으로 다양한 작업을 하고자 할 때 사용됩니다. 대부분 다음과 같은 경우에 자주 사용됩니다. 1) 실제 코드가 아닌 정보들, 그 파일에 따라다니는 정보들 등 어플케이션의 메타 정보를 얻어서 유지보수에 도움을 받기도 합니다. 2) 어셈블리의 내용을 알고자 할 때 사용할 수 있습니다. Assembly asm = Assembly.Load("Mscorlib.dll"); Type[] types = asm.G.. 더보기
대기 핸들을 사용하여 ADO.NET 응용 프로그램을 만들자 오늘은 비동기 ADO.NET 을 알아볼까 합니다. 아티클을 이해하기 위해서는 비동기 호출에 대한 지식이 약간 필요합니다. 우리는 다음과 같은 시간이 오래 걸리는 쿼리를 날릴것입니다. WAITFOR DELAY '00:00:03'; SELECT * FROM Titles WAITFOR DELAY '00:00:05'; SELECT * FROM Titles WAITFOR DELAY '00:00:10'; SELECT * FROM Titles 위의 WAITFOR DELAY 는 명령문이 암시하듯 이유없는 대기를 하라는 명령입니다. 3초후에 SELECT, 5초후에 SELECT, 10초후에 SELECT 쿼리를 날려 시간이 오래걸리는 작업을 대체하기 위해서 이지요~ 다음의 쿼리를 쿼리분석기를 통해 실행시켜 보겠습니다. 예상.. 더보기
데브피아 활동왕 당첨결과~ 처음 데브피아에 활동왕 시스템이 적용되면서 난 활동왕이 되려고 무쟈무쟈 노력했다. 반짝 반짝 거리던 활동왕 메달 아이콘이 너무 탐스러워 보였던 것이다. 현재 데브피아의 활동 레벨 등급이다 r 처음 Bit 에서 시작해서 Master(활동왕) 이 되려고 나름 무쟈~ 노력했던 사람이다. ZB 에서 Master 등급으로 올라가기까지 거의 매일같이 데브피아에 답변 수개씩 달아서 약 2~3달 만에 드디어 Master 로 등업될 수 있었다. 그리곤 매달 활동점수를 바탕으로 선물을 주는 제도가 도입된 것이다. 그래서 받았던 선물은, 지금까지 짱박아놓고 있는 모아진 전자잡지 구매권이다. 무려 34,050 원의 쿠폰이 적립되어 있다. 이것으로 딱한번 2006년 5월호 마이크로소프트를 구입해 보았다. 하지만 전자잡지는 불편.. 더보기
너 ASPX 웹폼 확장자를 바꿔봤니? 난 해봤~어! 기본적으로 웹폼을 생성하면 확장자는 ASPX 가 됩니다. 이와 달리 JSP 나 ASP 로 개발된 웹페이지는 여러확장자를 쓸 수 있지요. 가령 .html, .do, 등등.. 하지만 닷넷의 웹폼에선 확장자를 바꾸면 페이지가 동작하지 않습니다. 악의적인 목적으로 게시판이나 자료실 등 ASP 등으로 작성된 페이지를 업로드 하여, 다운로드 경로로 접근하여 페이지를 실행시킬 경우, 보안에 상당히 취약한 부분도 있었습니다. 하지만 언제나 .ASPX 확장자는 이제 식상할 때가 되지 않았습니까! 그럼 어디한번 바꾸어 봅시다. 우선 원하는 확장자를 IIS 에서 확장자 매핑 시키고 web.config 의 httpHandlers 에 등록해 보겠습니다. 여기에선 .umcx 라는 확장자를 사용하기로 합니다. 그다음은 web.co.. 더보기
AJAX 로 구현한 윈도우 실로 대단하다는 감탄사 밖에 나오지 않네요~ 좌측에는 구글맵을 여닫을 수 있습니다. 또한, 마치 윈도우를 사용하듯이 여러개의 창을 띄워 원하는 사이트를 서핑 할 수 도 있지요.. 윈도우에 너무 익숙해서인지, 딱히 편리한 기능은 없습니다. 하지만 브라우져에서 저런 기능을 구현했다는게 놀라울 다름이네요 http://www.openspot.com/ 더보기
Composite Pattern 을 사용하여 MVC Pattern 구현 요즘은 시간이 많아서 그런지 자주 강좌를 올리네요 ㅋㅋ 이번에는 웹사이트의 핵심인 Core(코어) 모듈을 구성해 보는 시간을 가져봅니다. 잘 구성된 모듈은 안정된 시스템 그리고 코딩의 작업 속도와 바로 직결됩니다. 모듈의 구성 방법은 개발자마다, 그리고 시스템 마다 각이 각색이겠지만, 오늘 구성해 볼 모듈은 대부분의 웹사이트에서 적용할 수 있는 코어 구성 첫 번째 시간을 갖도록 합니다. 본 강의는 객체지향적인 문법을 공부하거나 소화한 분을 대상으로 합니다. 우리가 구성할 코어는 XML 로 구성된 사이트 맵이 필요합니다. 블로그 관리자 기본 설정 관리 블로그 기본 정보 Umc Umc1 프로필 기본정보 관리 프라이버시 관리 프라이버시 관리 게시판 관리자 자유게시판 1 /WebAdmin/02Bbs/ListTe.. 더보기
이미지를 합성해보자~ [ 이미지 도용방지 ] 이번 시간에는 이미지에 워터마크를 찍어보는 시간을 갖겠습니다. 우선 이 내용이 이해가 가지 않는 분은 “제네릭처리기를이용하여자동가입방지폼구현” 아티클을 선수학습 하세요~ 오늘 알아볼 내용은 무척이나 간단하답니다. 우선 IIS 에서 자신의 웹사이트의 구성으로 가셔서 다음의 “.mark” 확장자를 매핑하세요 이제 web.config 의 httpHandlers 섹션에 다음의 구문을 추가해 줍니다 Type 속성은 클래스이름(네임스페이스부터) 과 DLL 이름으로 구성되어 있습니다. 위의 UmcMarkImageHandler 는 IHttpHandler 만 상속받아 작성하시면 됩니다. UmcMarkImageHandler.cs using System; using System.Data; using System.Config.. 더보기
제네릭 처리기를 이용하여 자동가입방지 폼 구현 (Captcha) 정말 간만에 다시 글을 쓰게 되었네여~ 세월아~ 네월아~~ 오늘은 자동가입방지, 또는 자동댓글/글쓰기 방지를 위해 뭐좀 하나 만들어 보았습니다. 이번 방법은 제네릭 처리기를 이용하려고 합니다. 우선 다음과 같이 제네릭 처리기를 새항목 추가 합니다. 제네릭 처리기가 뭘까 해서 MSDN 을 보니…. 안나왔더군요~ ㅋ 우선 제네릭 처리기를 생성해 보기로 하겠습니다. 끙.. 단순히 IHttpHandler 를 상속하였네요~ 친절하게도 Hello World 와 함께 말이져~ 요놈은 IIS 에 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 과 같이 매핑이 되어있으며, C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\C.. 더보기
파일을 압축하여 내려받자 이 아티클은 Devpia.co.kr 에 제가 답변 등록한 내용입니다... 2006-12-18 오후 9:38:43 / 번호: 4233 / 평점: (-) category: General Discussions (일반 사항) / 조회: 35 긴급) response.write의 문자열을 압축해서 찍기.. 이종민 / mildblue response.write("aaaaaaaaaaaa") 했을대.. 실제로 "문자열"이 엄청 많다고 가정하고. 이걸 gzip로 압축된 문자열로 내보내는 명령이 무엇인가요? response.write("aaa")이라고 해서 콘솔에서 웹서버에 연결해 호출해보면 전혀 압축되어 지지 않고 리턴이 됩니다. jsp를 보면 void sendHTML( HttpServletResponse response.. 더보기
Ajax.Net 의 두가지 콜백 방법의 차이 이번에는 Ajax.Net ( 이하 Ajax ) 이 제시한 두가지 콜백 방법의 차이에 대해서 알아봅시다. 예제에 필요한 DLL 을 다운 받기 위해서 다음의 사이트에서 다운 받으실수 있습니다. http://ajax.schwarz-interactive.de/csharpsample/default.aspx 다운받은 DLL 을 프로젝트에 참조시킵니다. 다음은 Web.Config 파일에 다음의 구문을 추가 합니다. 이제 기본 설정은 모두 마쳤습니다. 이번에도 여과없이 예제 샘플부터 보도록 하겠습니다. publicpartialclassAjaxNet : System.Web.UI.Page { protectedvoid Page_Load(object sender, EventArgs e) { AjaxPro.Utility.Reg.. 더보기
채팅방 베타 Ajax 공부하면서 만들어본 채팅방 이네요 Com+ 공부도 할겸, 취업을 위한 포토폴리오로 사이트 만들던중에 찰싹~~ 취업이 되었지만 살인적인 프로젝트 기간때문에 만들다 말고 접었습니다. ^^; 필요하신 분에 한해서 일부 소스 발췌해 드립니다 -------------------------- UPDATE 2008-05-09 --------------------------- 다음의 주소에서 샘플 사이트에 접속할 수 있습니다. http://blog.powerumc.kr/article/2008/04/10/comtech-and-dogye-network.aspx 더보기
Ajax 를 활용한 간단한 채팅 로직 너무 허접하게 만들어서 공개를 할까 말까 많이 망설여 지네여 AJAX이 뭔지 막 접한 분들을 위한 소스이니, 참고만 하세여.. 별 도움 될랑가 몰겟네~~ 더보기
C# 으로 만든 네이버 OpenAPI 간단히 Request를 받아서 Xslt 로 처리 하였습니다. VS.NET 2003 에서 실행 가능합니다. 프로그램 내에 인증키를 넣어주세요: 더보기
CDO 객체를 이용하여 야후 메일 보내기 CDO.IMessage mail=new CDO.MessageClass(); CDO.Configuration iConfig=new CDO.ConfigurationClass(); ADODB.Fields flds=iConfig.Fields; flds[CDO.CdoConfiguration.cdoSendUsingMethod].Value=2; //인증 CDO.CdoConfiguration.cdoSMTPServer].Value="smtp.mail.yahoo.co.kr"; flds[CDO.CdoConfiguration.cdoSendUserName].Value="umjunil"; flds[CDO.CdoConfiguration.cdoSendPassword].Value="xxxxxx"; flds[CDO.CdoConfigur.. 더보기
Web.Config 를 확장해 보자 개인적인 사이트라면 모를까.. 점점 사이트 규모가 커지면 그곳에 필요한 설정 정보들 또한 굉장히 많이 늘어나게 될겁니다. Web.Config 라인수가 200 라인 넘어가게 되면 이거 영~ 찾기도 힘들고… 그럼 어떻게 하면 될까… Web.Config 를 여러 개의 파일로 쪼개어 연관성 있는 정보들만 묶으면 되지 않을까? 좋다.. 또는 관련된 섹션끼리 묶을 수 없을까?? 그럼 한번 해보자.. 다음과 같이 실습에 필요한 Config 파일을 만들어 봅시다. Web.Config 기본 생성되는 파일 Umc.Core.Config Core 모듈에 설정이 들어가는 파일 Umc.Message.Config Message 관련 설정이 들어가는 파일 그리고 다음과 같이 Web.Config 에 추가해봅시다. Section nam.. 더보기