달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'좋아하는 것'에 해당되는 글 76

  1. 2008.03.18 IIS 7.0 Architecuture
  2. 2008.03.16 Features of the ASP.NET MVC Framework
  3. 2008.03.15 Microsoft ASP.NET MVC 동영상을 보고서...
  4. 2008.03.08 Visual Basic 2008을 접하고...
2008. 3. 18. 23:51

IIS 7.0 Architecuture 좋아하는 것2008. 3. 18. 23:51

요즘은 주제를 정하지도 않고서, 웹 서핑을 하다가, 공부를 하게된다.
사실 IIS 서버는 내가 처음 웹 프로그래밍을 했던 Windows NT 3.5에 내장된 웹서버 였다. 그때는(1996년도) ASP의 동적 스크립트의 장점과 쉽게 데이터 베이스 연결할 수 있도록 도와주던, Inter Dev 1.0 Beta 3는 웹 개발함에 있어서 최고의 툴이었고, 프론트 페이지와 궁합도 정말 잘 맞았다. 거에에 IIS에 쉽게 연동할 수 있었기에 당시로는 혁신적인 웹 개발 프레임워크 였다.   내 기억이 맞다면, 그 때 사용하던 IIS는 3.0 버전이었을 것이다.

2000년대에 들어서면서도 Architecture에 많은 변화가 있었고, 현재는 6.0 버전이 주로 사용되고 있다.
MIX 08에서 IIS 대한 변화된 내용들이 발표되었는데, Windows 2008서버에 포함되어 출시될것 같다.

아키텍쳐를 보면 몇가지 특이 사항들이 있지만, IIS 6.0에서 Windows Sockets API를 대체한 HTTP.sys는 더욱 중요한 역할을 할것이다. 이는 Kernel-mode 에서 동작하기 때문에 다른 웹 서버보다 빠르다고 알려져 있다. (OS의 특성을 이용하기에..)

HTTP.sys를 이용한 장점들은:
  • Kernel-mode caching. Requests for cached responses are served without switching to user mode.
  • Kernel-mode request queuing. Requests cause less overhead in context switching because the kernel forwards requests directly to the correct worker process. If no worker process is available to accept a request, the kernel-mode request queue holds the request until a worker process picks it up.
  • Request pre-processing and security filtering.

    ==> 커널모드의 장점을 살려 속도를 취대한 끌어올리는데 초점이 맞추어져 있다.
  • 다음은 HTTP Request Processing 에 대한 내용이다
    1. When a client browser initiates an HTTP request for a resource on the Web server, HTTP.sys intercepts the request.
    2. HTTP.sys contacts WAS to obtain information from the configuration store.
    3. WAS requests configuration information from the configuration store, applicationHost.config.
    4. WWW Service receives configuration information, such as application pool and site configuration.
    5. WWW Service uses the configuration information to configure HTTP.sys.
    6. WAS starts a worker process for the application pool to which the request was made.
    7. The worker process processes the request and returns a response to HTTP.sys.
    8. The client receives a response.


    그리고 IIS에 추가 가능한 모듈들이 추가되었는데, 이는
    http://learn.iis.net/page.aspx/101/introduction-to-iis7-architecture/
    를 참조하면 된다.

    :
    Posted by 행복상자
    2008. 3. 16. 08:30

    Features of the ASP.NET MVC Framework 좋아하는 것2008. 3. 16. 08:30

    이른 새벽 아침부터, 노트북은 열고 ASP.NET MVC에 대한 자료들을 읽어 보았다.
    ASP.NET 3.5의 Extention 기능으로 제공할 예정이고, 기능에 대한 세부 소개는 다음 링크를 참조하면 된다.
         - ASP.NET Model View Controller Applications

    사실상, MVC 패턴은 ASP.NET에서 구현 불가능한 것은 아니였는데, 그런데 왜 갑작스럽게 ASP.NET에서 MVC를 논하냐고 이야기 한다면, 이제 MVC 패턴도 성숙기에 들어섰기 때문이 큰 이유일 것이다. 그리고 다른 이유는 ASP.NET에서도 다른 Java의 웹 프레임워크과 같이 개발자를 위한 새로운 Framwork를 제공한 필요성을 강하게 느끼고 있는 것 같다.

           - Test Faramework (Visual Studio 2008에 nUnit이 기본 제공됨)
           - Moc 객체를 쉽게 생석할 수 있도록 지원함
           - DI(Dependency Injection)과 IoC(Inversion of Control) 지원
           - SEO(search engine optimization) and REST(representational state transfer) 지원
           - Urll despatch를 위한 Controller 와 Routing

    위와 같은 내용들이 주요 특징 들이다. 자세한 내용은 위의 링크와 다음에 발취한 ASP.NET MVC Feature 참조하면 이해에 도움이 될것이다.
     
    The ASP.NET MVC framework provides the following features:

    • Separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD) by default. All core contracts within the MVC framework are interface-based and can be tested by using mock objects, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.

    • An extensible and pluggable framework. The components of the ASP.NET MVC framework are designed so that they can be easily replaced or customized. You can plug in your own view engine, URL routing policy, action-method parameter serialization, and other components. The ASP.NET MVC framework also supports using existing Dependency Injection (DI) and Inversion of Control (IOC) container models. DI allows you to inject objects into a class, rather than relying on the class to create the object itself. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file. This facilitates testing.

    • A powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.

    • Support for using the markup in existing ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files) markup files as view templates. You can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.

    • Support for existing ASP.NET features. ASP.NET MVC lets you use features such as forms and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, configuration system, the provider architecture, and other areas of ASP.NET.


     

    :
    Posted by 행복상자

    사실 오늘은 최근에 공개한 iPhone SDK 소개 키노츠와 데모 동영상을 보려고 PC를 열었다가  별 생각 없이 .Net MVC를 찾아들어가게 되었다. 의도한 것은 절대로 아니다.
    요즘에 나온는 많은 웹 프레임워크들은 경쟁적으로 자기들이 많든 MVC Framework의 우수함을 알리는데 열을 올리고 있다. 그리고 실제로 쓰기에 충분할 만큼 안정성과 성능을 보장해 준다.

    그러나 최근에 이도 종지부가 찍힌것 같다.(이는 절대적으로 내 개인적인 소견이다.) 새로 개발되거나 또는 기존 Framework가 버전업이 되면서 MVC Framework들이 유사해 지기 시작했으니 말이다. 이에 가장 큰 영향을 준 Framework는 역시 Rails이다. 개발자에게 필요한 것은(자신을 증명하는 것은), 마지막에 완성된 코드라고 누군가가 이야기 한것 같다. (아마도 최근에 한국에 찾아온 MS의 누군가 였었지요..)

    개발자에게는 생산성과 안정성이 가장 큰 이슈이다. 이것은 마케팅적으로 영업적으로 대외에 홍보하는 포장되고 형식적인 것이 아니라, 프로젝트를 함에 있어서 필수적인 것이다.
    웹 개발에 있어서는 배포된 Application의 성능과 안정성은 너무나 중요하다. (사실 이외에도 챙겨할 것들은 부지기수 이다.)

    그런 면에서 RobyOnRails는 가히 충격적이었다. 마치 Visual Basic을 처음 접할때의 충격과도 같았다. MVC를 지원하기 위한 Simple하고도 직관적인 구조와 개발자가 부담감 없이 익힐 수 있는 기본 명령과 사용법등은 누구를 위한 Framework 인가를 바로 알수 있게 해준다.

    지난 몇달전에 일민(Toby)이가 진행하는 KSUG 세미나를 통해, Spring 2.5에서 변화되는 Spring MVC 프레임워크의 변화를 접하게 되었는데, XML과 자바 Annotation 그리고 Auto Wiring를 이용하지만 그 근간은 Rails의 프레임워크라는 생각이 많이 들었다.

    많은 프레임워크가 서로의 좋은 기능을 통해서 발전하는 것은 개발자로서는 행복한 선택을 할 수 있어서 즐겁다.

    이야기가 길어졌는데, 오늘 내가 본 Micorsoft의 MVC 데모 동영상이다.  



    너무나도 쉽고, Rails와 유사히지 않은가?
    사실 회사에서는 요즘 .Net이냐 Java냐로 논란이 많다. 그래서 관심있게 본것이다.

    아래의 링크들을 이용하면 다른 데모도 볼수 있다.
          - Part 1 - Displaying Data 
          - Part 2 - Editing Data and Making Forms 
          - Part 3 - Advanced Techniques 
          - Part 4 - Testing

    '좋아하는 것' 카테고리의 다른 글

    ASP.NET MVC & Request Flow  (0) 2008.03.29
    Visual Basic 2008 hot fix in Visual Studio 2008  (0) 2008.03.29
    IIS 7.0 Architecuture  (0) 2008.03.18
    Features of the ASP.NET MVC Framework  (0) 2008.03.16
    Visual Basic 2008을 접하고...  (0) 2008.03.08
    :
    Posted by 행복상자
    2008. 3. 8. 10:58

    Visual Basic 2008을 접하고... 좋아하는 것2008. 3. 8. 10:58

    내가 비쥬얼 베이직을 처음으로 접하게 된것은 1995년경 이었던것 같다. 그때 버전은 VB 4.0 이었는데, 한참 프로그래밍의 재미에 빠져서, NC(Noton Commander)와 NCD같은 프로그램을 만들려고, 자료구조와 비디오 제어 라이브러리를 열심히 공부하고 있는 중에, 같이 프로젝트 하고 있던 일민 (오늘날 우리는 이 사람을 Toby 라고 부르고 있다) 이가 어느날 놀라운 것을 보여 주었다.
     창을 하나 열더니, 아이콘 3개를 화면에 끌어다 놓고, 코드 3줄 정도를 추가 하니, NCD와 비슷한 형태의 프로그램이 뚝딱하고 만들어 지는 것이었다. 충격적이었다.

    그날 나는 C/C++로 진행하던 나만의 프로젝트를 그만 두었다. 그리고 새학기에 다른과에서 VB 수업을 듣고 공부하기 시작했다. 그때는 VB 5.0이 었는데, 속도에 많은 개선이 일어났다.
    C++ 컴파일로로 실행 코드도 작성해주고, 그러나 스트링 함수들의 속도는 여전히 느렸지만, 직접 윈도우 API들을 정의하고 사용할 수 있어서 적절히 배합을 하면 큰 불편은 없었던 때였다. 한 가지 더 기억나는 것은 MS에서는 인터넷 관련 OCX와 기능들을 추가 하기 시작했는데, 당시에 처음으로 ActiveX Dll을 VB에서 생성할 수 있도록 해 주었다. 실제로는 COM 오브젝트 Dll이었다. 그리고 나서 1998년에는 VB 6.0이 출시가 되었는데, 내가 알기로는 아직까지도 많은 프로젝트에서 현재 사용되고 있다. VB 6.0은 안정성이 강화되었고, Apatment Thread를 지원하게 되었다. 실제로 VB에서는 그 전까지 Thread를 직접 만들수 없을 뿐더러, 필요하면 C로 정의한 API를 이용해서 제어하는 방법이 정석적이었다. (사실 통신 프로그램 또는 실시간 제어를 요하는 프로젝트가 아니면 별 필요를 못 느꼈었다.)

    VB 6.0은 정말 장수한 개발 툴이다. 근 10년 이상 사랑 받고 있다. 어떤 개발자는 .Not으로 옮겨 가기도 했고, Java로 옮겨서 새로운 환경에서 개발 하기도 하지만, 여전히 기존에 개발된 시스템을 유지 보수하고 있기도 하고, 추가 개발을 진행하기도 한다.

    VB에서 .Net로 옮겨 갈때, 정말 방대한 클래스 라이브러리와 쉽게 Thread를 사용할 수 있다는 장점이 사용할 만한 큰 이유였었고, 그 때까지의 VB를 사용했던 개발자에게 꼭 필요한 것들을 갖추어 졌다고 생각했다. 그러나 MS에서 정말 간과했던 것은 모든 개발자들이 OOP를 원한 것은 아니라는 것이었다. VB를 원하는 사람들에게는 생산성과 효율성이 었다.
     .Net Framework의 클래스들을 새로 배워야 하고, 이전에 작성한 코드들은 새로운 프로그래밍 문법에 맞추어서 변화해야 하는데, 문법 역시 새로 시작할 그리고 배워야할 할 도전의 대상이 되었다. 이는 결국 많은 VB 프로그래머들을 떠나 보내는 계기가 되었다. 자바 진영은 호재였었지요.

    나는 Visual Studio의 새 버전이 출시되면, 새로 설치해서 사용해 보곤 한다. VS 2005는 속도 상으로 2003버전보다는 나았다. 아마도 XP SP2에 기본 컴포넌트들이 설치되어 있어서 이고, CLR들이 최적화 되어 있어서 이다.
    VS2005에서 가장 큰 변화는 Visual Basic의 변신이다. 마치 예전 VB 6로의 회귀를 보는 듯 했다. VB6에서 사용하던 함수들을 클래스 선언없이 바로 불러 사용할 수 있었다. (Satistic로 이미 정의되어 있어서) 이제 MS가 다시 VB에 대해 관심을 가지고 있다는 생각이 들었다. 정말 많을 함수들을 잊어 버렸지만, 생각나는 함수들은 모두 쉽게 사용히 가능했었다. (LBound, UBount, CStr(), Len() 등 의 함수들 Redim도 되던데...)

    거의 90%정도는 기존에 알고 있던 함수들을 재 사용할 수 있을 거라는 생각이 든다.

    VB를 사랑하는 나에게는 정말 다시 사용해 볼만한 언어라는 생각이 들었다.
    그리고 몇주 전에 간단한 진단 툴을 개발할 일이 있어서, 회사에서 VS 2008을 설치하고, C# 대신 VB를 사용하기로 했다. 일주일만에 개발해야 하는 건데, 실제 들어간 시간은 2~3일 정도 밖에 되지 않았다. (회사 분위기상 개발에 집중하기 어렵다.) StatusStrip, DataGridView, Treeview등 MSDN 찾는 시간이 꽤 걸렸다. 이전에 내가 알고 있는 것과는 매우 상이하고 복잡한 클래스들의 집합체였다. 익숙하지 않아서 이겠지만, VS 2005에는 예제들을 쉽게 찾을 수 있었는데 VB 2008버전에서는 쉽게 찾기 어려웠다. (아마도 내가 설치한 버전이 RTM 버전이어서 일수도 있구....)
    Eclipse에서 사용하던 코딩에 도움이 되는 수많은 단축키와 기능들을 예상했던 나는 쉽게 그러한 기능들을 찾아 보기도 어려웠다. 어딘가에 정의되었을 기능들인데 쉽게 찾자 못하고 있다고 생각중이다. 그 중 하나는 Object Browser 말고 현재 내가 작성하고 있는 클래스의 정의된 함수와 Property를 보고 싶은데, 클래스 다이어그램을 만드는 방법만 제공하고 있는지 궁굼하다.

    간단한 프로제트를 진행하면서, 다시 한번 Visual Basic 2008을 학습하고 푼 마음이 일어났다. 왜냐면 이는 내가 가장 좋아하는 언어였으니까...
    그래서, 간간히 학습한 내용을 글로 올릴 계획이다. 내가 어디에 있던지 정리한 내용을 바로 찾을 수 있도록...

    벌써 3월인데, 올해는 배워야 할 것도 공부할 것도 많다.
    나를 VB의 세계로 이끈 일민(Toby)는 이달 중순에 호주로 간다고 한다. 이제 갓 100일 지난 그의 아들과 아내와 함께...
    잘 살고 연락 자주하길 바란다.
     
    :
    Posted by 행복상자