본문 바로가기

IT 살이/04. 기술 - 프로그래밍

[메모] Snippy - Visual Studio Code Snippet Editor Snippy - Visual Studio Code Snippet Editor http://snippy.codeplex.com/ 더보기
[메모]HTML 부분을 컨트롤화 Ajax를 이용한 웹 애플리케이션을 제작하다 보면 ASP.NET의 사용자 컨트롤처럼 HTML 페이지의 전체를 부분을 컨트롤화 할 수 있는 방법이 필요한 경우가 있다. 이런 경우 부분을 로딩하기 위해서 ASP.NET의 HTTP 핸들러같은 모듈을 제작할 수도 있지만, jQuery 같은 라이브러리를 사용하는 경우는, jQuery의 load, get 같은 메소드를 이용해서 쉽게 해결할 수 있다. $('.left-nav a').each(function() { var $link = $(this); var $dialog = $('') .load($link.attr('href') ) // --> 요 부분 .dialog({ autoOpen: false, title: $link.attr('title'), show: "bl.. 더보기
[메모]Dynamically removing/ replacing an external JavaScript or CSS file html 페이지의 부분을 컨트롤처럼( asp.net 사용자 컨트롤처럼) 독립적으로 개발할때 필요해서 메모해둔다. 메인 페이지에 이미 설정된 .css, .js 파일을 html의 부분을 별도록 디자이너가 개발할 수 있도록 할때 편리하다. http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml function removejscssfile(filename, filetype){ var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from var targetattr=(filetype=.. 더보기
[메모] ASP.NET Thread Usage on IIS 7.0 and 6.0 Http Request, IIS, ASP.NET, CLR Thread( Threadpool ), Application, Cpu 관계 http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx 더보기
Ajax & HTML UI 코딩 모델 Ajax를 이용하는 웹 애플리케이션의 코딩 모델은 윈폼(Windows Form)또는 웹폼의 모델과 유사합니다. 해서, 잠깐 메모를 해 둡니다. Html ui 페이지 코딩 View more presentations from 인균 황. 더보기
매쉬업 인증, OAuth 사용하기 매쉬업 인증에 사용되는 OAuth( Open Authentication )에 대한 개념을 설명합니다. OAuth from InGuen Hwang 더보기
[메모] 유용한 샘플 코드들 괜찮음 ! Mike Woodring's .NET Sample Page ( http://www.bearcanyon.com/dotnet/ ) 더보기
Spring.NET 개발 가이드 오랜만에 포스팅을 한다. 그동안 새로운 회사에 입사를 했다. 현재 솔루션 개발 프로젝트에 참여하고 있는데, Spring.NET을 기본 프레임워크로 선정했다. 해서 Spring.NET 개발 가이드라는 문서를 하나 작성했다. Spring.NET이 공개소스(Apache 라이센스)이니 관련 문서도 공개를 한다. 더보기
[메모] WCF 호출시 병목현상 관련 WCF 서비스를 호출할때, 클라이언트 수에 따라서 병목 현상이 일어날 수 있다. 이에 대한 이해 및 설정 내용을 다루는 포스트에 대한 링크들이다. How to throttle a Wcf service, help prevent DoS attacks, and maintain Wcf scalability Throttling in WCF InstanceContextMode, ConcurrencyMode, and Server-side Threading 더보기
[메모] Getting Started with Silverlight development Microsoft Silverlight 사이트 Get started building silverlight 3 applications A blog by Tim Heuer Getting started with silverlight development 더보기
MIXSH인증용 새 페이지 KygnjE5KWHVT4TUvNje7zmd0Ck7WR0_1ijq4FxstZDc, 더보기
[메모] White Box testing tool for .NET 웹 서핑을 하다, vs 2008 용 테스트 툴을 보게 되서 메모해둔다. Getting started with Pex in Visual Studio 2008 ( http://channel9.msdn.com/posts/Peli/Getting-started-with-Pex-in-Visual-Studio-2008/ ) “Pex”로 검색을 해 보니, MS 에반젤리스트들의 IT블로그에 툴을 사용하는 법도 정리되어 있다. .NET White Box Testing 도구, PEX (Program EXploration) ( http://blogs.msdn.com/eva/archive/2009/01/28/net-white-box-testing-pex-program-exploration.aspx ) 더보기
개발 프레임워크 만들기 대장정 47 - UI단 프레임워크 추가사항 UI단 프레임워크가 거의 완성되었다. 그러나 고려해봐야 할 녀석들이 몇 가지 있다. 달봉이가 참여한 프로젝트가 빡빡한 일정때문에 힘들어지고 있다. 아마 당분간은 정리가 힘들것 같다. 생각나는 대로 메모를 해 둬야겠다. 요즘은 메모를 해 두지 않으면 금방 잊어버린다. 이러다가 영화 “메멘토” 수준으로 될 것 같은 기분이 요즘 든다. -업무 화면의 베이스 클래스 타입 -업무 화면 객체의 출력 컨트롤 -화면 객체의 라이프사이클 -서버측 서비스 환경 설정 -사용자 정보 객체의 사이트별 확장 ■업무 화면의 베이스 클래스 타입 WPF의 루트 요소를 고려해서 UserControl, Page 두 종류의 베이스 클래스가 있어야 할 것 같다. ■업무 화면 객체의 출력 컨트롤 두 종류의 업무 화면 베이스 클래스를 출력할 수.. 더보기
개발 프레임워크 만들기 대장정 46 - 서비스 호출하기 이제 클라이언트에서 달봉이가 만들어놓은 프락시 팩토리를 이용해서 서비스를 호출해보자. ■ 서비스 참조 추가하기 우선 서비스에 대한 참조를 클라이언트 프로젝트에서 추가하자. BONG.WIN.CO.UserMgmt 프로젝트의 References 노드를 오른쪽 클릭해서 “Add Service Reference…”를 선택한다. 그럼 다음과 같은 서비스 참조 추가 창이 뜬다. Address 박스에 이전 포스트에서 봤던 주소를 복사해 넣는다. 그런 다음 “Go”버튼을 클릭한다. 그럼 앞의 그림처럼 SampleService가 보이게 된다. 이제 Namespace 텍스트박스에 “SampleAsyncService”라 입력한다. 그리고 마지막으로 “Advanced…”버튼을 클릭한다. 그래서 Generate aysnchron.. 더보기
개발 프레임워크 만들기 대장정 45 - 서비스 구성하기 이번 포스트부터는 달봉이가 제작한 ServiceProxyFactory 객체를 이용해서 동기 호출과 비동기 호출에 대한 코딩 예를 보여준다. ■ IIS 서비스 환경 구성하기 우선 서버측 서비스를 구성해 보자. 달봉이는 서비스 구현 프로젝트와 서비스 노출 프로젝트를 분리했다. 서비스 구현은 BONG.SVC.CO.UserMgmt에 있고, 노출 프로젝트는 웹 애플리케이션을 이용한다. SampleService.cs에는 다음처럼 간단한 서비스가 구현되어 있다. 다음 코드는 사용자 정보를 서버측으로 전달하는 과정을 설명하는 포스트에서도 봤다. namespace BONG.SVC.CO.UserMgmt { [ServiceContract] public interface ISampleService { [OperationCon.. 더보기
개발 프레임워크 만들기 대장정 44 - WCF 확장하기 III ( 프로그레스바 자동 보여주기) ■ 프로그레스바 출력 시나리오 프로그레스바 자동 출력 기능을 위해서 달봉이는 다음과 같은 시나리오를 정의했다. 프로그레스바를 보여주는 경우를 생각해보자. 이 녀석은 서비스를 호출할때마다 보여줘야 할까? 달봉이는 아니라고 생각하고 달봉이 개발 프레임워크를 구현했다. 예를 들어 업무성 코드 목록을 가져와서 드롭다운 리스트를 채우거나 사용자에게 보여줄 메세지를 가져오는 경우라면 프로그레스바 없이 내부적으로 조용히 처리하면 될 것이다. 달봉이는, 서비스 호출 결과가 늦어질 가능성이 있는 경우에만 프로그레스바를 보여주자고 결정했다. 프로그레스바 보여주는 것과 관련해서 또 한가지 달봉이가 결정한 것은 프로그레스바를 보여줄 정도로 시간이 걸리는 작업은 비동기로 구현하겠다는 것이다. 서비스 호출하고 나서 사용자를 아무.. 더보기
개발 프레임워크 만들기 대장정 43 - WCF 확장하기 II (사용자정보 전달하기) 이제 클라이언트측 behavior를 끼워넣는 작업을 해본다. 근데 behavior라는 단어를 들으면 느낌이 파악 오는지 모르겠다. 달봉이는 이 단어를 학교다닐때 참 많이 들었다. 달봉이는 토목의 구조를 전공했다. 예를 들어 교량같은 대형 건물을 설계할 때 이 단어가 많이 나온다. 우리는 교량이 어떻게 “거동(behavior)”하는가라는 식으로 표현했었다. 근데 밖에 나와서 거동이라는 표현을 썼더니 잘 모르는 것 같았다. 발음 그대로 “비헤이비어” 라고 표현하는 사람들도 많았다. 그러나 달봉이는 여전히 거동이라는 표현이 마음에 든다. behavior는 AOP의 advice같은 개념이다. 그 개념을 구현해 놓은 코드 조각을 인터셉터(interceptor)라고 한다. 이 behavior라는 것을 머리에 그릴때.. 더보기
개발 프레임워크 만들기 대장정 42 - WCF 확장하기 I (사용자 정보 받기 ) 앞의 포스트까지는 메뉴를 클릭했을 때 해당 업무 화면을 로딩하는 것까지 진행했다. 이제 업무 화면에서 서비스를 호출하는 기능을 구현하도록 하자. 이때 개발 프레임워크단에서는 흔히 서비스를 호출할 수 있는 프락시 객체를 제공한다. Visual Studio를 사용하면 쉽게 프락시 클래스를 만들어 주지만 개발자가 그것을 그대로 사용하기에는 너무 기능적으로 부족한 감이 있다. 개발시 사용했던 서비스에 대한 URI도 설정에 따라서 자동으로 변경해 줄 수 있어야 하고 사용자 정보도 서버측으로 건네줘야 한다. 그리고 필요하다면 프로그레스바도 출력해줘야 한다. Visual Studio가 만들어주는 프락시를 한번 더 감싸서 이런 기능을 할 수 있는 프락시 클래스를 만들어 볼까 한다. 이런 기능을 갖는 프락시 클래스를 만.. 더보기
개발 프레임워크 만들기 대장정 41 - 화면 객체 로딩 테스트 지난 포스트까지는 메뉴 정보를 로딩해서 트리로 출력하는 과정을 봤다. 오늘은 트리의 최종 노드를 클릭했을 때 화면을 로딩시켜보자. 샘플 화면을 하나 추가하자. 항목 추가 템플릿에서 User Control(WPF) 템플릿을 선택하고 이름을 UserMgmt.xaml이라고 넣는다. 이렇게 해서 추가된 사용자 컨트롤 코드를 좀 수정해야 한다. 우선 베이스 클래스를 우리가 이전에 만든 BongControlBase로 수정한다. public partial class UserMgmt : BongControlBase 그런 다음 xaml 마크업 코드도 다음처럼 수정한다. Hello 이게 무슨 말인가하면…모르겠다면, 이전 포스트를 보자. 간단히 말하면 UserControl의 베이스 클래스를 사용자 정의 클래스( 여기서는 B.. 더보기
개발 프레임워크 만들기 대장정 40 - 메뉴정보 로딩/출력하기 지금까지 작성한 코드는 다음 링크를 통해서 다운로드받을 수 있다. 이제 메뉴를 출력해보자. 그러자면 우선 메뉴 소스가 데이터베이스든 XML이든 구성되어 있어야 할 것이다. 그러나 여기서는 우선 아주 쉬운 방법을 택하겠다. 하드코딩 ! 메뉴 소스가 구성되어 있다면 그것을 읽어들여 메뉴 계층 구조를 만들겠다. 이 계층구조는 눈으로 볼 수 있는 트리구조가 아니다. 단지 논리적인 메뉴 객체들의 트리구조이다. 따라서 ‘논리적인 메뉴 구조를 구성’한다고 표현할 수 있겠다. 메뉴의 논리적인 트리 구조를 만들기 위해서 필요한 클래스를 만들어보자. 우선 메뉴 아이템 정보를 나타내는 클래스를 만들었다. 메뉴 아이템을 나타내는 클래스들은 Dalbong2.Win 프로젝트에 포함시켰다. 이 녀석들은 현장의 프로젝트와는 상관없기.. 더보기