'Program/Programming'에 해당되는 글 13건

  1. 2007.05.28 최근의 입사지원에 관한 고민...
  2. 2007.05.26 Windows Driver Foundation (WDF)
  3. 2007.05.23 BitTorrent 방식의 기술의 이해
posted by 써니루루 2007. 5. 28. 02:46

아래는 최근 보고 있는 회사 지원분야의 개발 방향이다.




WEB서비스 개발팀
  • Web Service Development & Architect
  • 업무내용 - 당사의 웹 서비스 사이트 개발 및 운영
    - 당사의 웹 서비스의 구조 설계
    - 당사의 웹 서비스의 오픈API, 공통컴포넌트 설계 및 개발
    - 사외 개발자 커뮤니티와의 교류(한국, 일본, 영어권 국가)
    필요한 스킬 - WEB프로그래밍 경험
    - 인터넷과 웹서비스와 관련한 전반적인 기술에 대한 깊은 이해(XML,XHTML,css,javascript,http 등)
    - 대용량 플랫폼에 대한 이해
    - 외국어 및 신 기술에 대한 관심, 의지, 그리고 학습능력
    - 유저 중심 사고
    - 새로운 웹 서비스 개발에 대한 깊은 관심
    기대하는 일 - 개발자 자신도 회사 밖에서도 늘 사용하는 웹 서비스를 개발하는 것
    - 오픈 소스만을 이용하여 새로운 서비스를 만들어 보는 것
    - 이 세상에 존재하지 않았던 웹서비스를 창조하여 웹 이용 패턴을 바꿔보는 것
    - 전 세계인이 사용하는 웹서비스를 만들어보는 것


    위에 발췌해온 내용은 국내에서도 많이 이용하고 현재 블로그도 이용하고 있는 서비스중 하나인 회사로 국내 web2.0 회사중 하나이다.

    이번에 알게 된 사실이지만 회사가 일본에 있는 회사이고, 위 내용만 보아도 정말 회사에서 배울점도 많고 merit가 충분해 보인다.


    - 개발자 자신도 회사 밖에서도 늘 사용하는 웹 서비스를 개발하는 것
    - 오픈 소스만을 이용하여 새로운 서비스를 만들어 보는 것
    - 이 세상에 존재하지 않았던 웹서비스를 창조하여 웹 이용 패턴을 바꿔보는 것
    - 전 세계인이 사용하는 웹서비스를 만들어보는 것

    아.....

    이 말들이 너무 멋있다 ㅠㅅㅠ



    위 요구스킬중 XML, XHTML, CSS, Javascript, HTTP 등의 웹 개발 지식은 물론 99년도부터 오랫동안 다뤄온 기술부분이라 잘 아는 부분이고, 웹프로그래밍에 관한 경험도 99년부터 php를 다뤄본점.
    또 때에 따라 잠깐이었지만 ASP와 JSP를 다뤄본 점.
    또 .NET 프로그래밍 개발에 관한 공인 인증기관에서 교육을 받았고 2002년 부터 C# 책을 보면서 여러 소스를 섭렴하였고 몇가지의 프로그램과 최근의 ASP.NET 프로젝트 등의 진행을 해온 점..
    Ajax 과 시멘틱 웹 환경과 매쉬업 기술 REST 형식의 투명한 인프라 등의 기반으로 향상된 Rich client의 UX를 제공하는 웹환경 등을 충분히 공부하였고, 웹서비스와 Open api등에도 관심이 많은 현재의 나로선 상당히 도전해보고 싶은 지원 회사이다.

    단 한가지 마음에 걸리는 점이라면 .NET 관련 회사로 첫 발을 들여놓아야 하는 현실에 놓여 있고, 얻는게 많겠지만 어떻게 보면 잃으면서 내길을 고집해서 가야할 회사이다.

    위 요구조건에 조금(?) 부족하다면 대용량의 플렛폼 환경의 프로젝트는 해본적이 없다는 점. 또 일본에 대해 개인적으로 좋아해서 고등학교부터 학교에서 배우진 않았지만 히라가나와 가타가나를 독학하는 등의 관심이 많았지만 결론적으로 제대로 일본어를 해본적이 없다는 점.

    정말 고민이 많이된다..

    배울점도 많고 원하던 web2.0관련 기술을 마음껏 써보며 배우며 내 능력을 한층 더 업그레이드 시킬 수 있고, 또한 내 능력을 마음껏 펼칠 수 있는 회사이다.

    고민이 어디까지 어떤방향으로 갈지는 아직 미지수이지만 정말 고심해서 보아야 할 회사인 것 같다.
    posted by 써니루루 2007. 5. 26. 16:48

    출처 : http://www.microsoft.com/whdc/driver/wdf/default.mspx


    Windows Driver Foundation(WDF)


    WDF를 사용하면 OS가 아닌 디바이스 장치에 중점을 두고 개발할 수 있다.

    WDF는 몇가지 드라이버 검증 툴을 통해서 커널 모드와 사용자 모드 드라이버의 개발을 위한 프레임워크를 포함하고 있다.


    Kernel-Mode Driver Framework(KMDF)


    KMDF는 커널 모드 드라이버에 필요한 기본적인 기능을 구현하고 있다. 다음을 포함한다:


    . PnP와 전원 관리

    . I/O 큐

    . Direct memory access (DMA)

    . Windows management instrumentation (WMI)

    . Synchronization


    각 윈도우즈 버전에 적합한 프레임워크에 대부분의 소스 코드가 있기 때문에, KMDF 드라이버는 최소한의 소스 코드만을 필요로 한다. 드라이버는 다음을 지원하기 위한 코드가 있다:


    . 디바이스가 response해야하는 이벤트

    . 디바이스에 고유한 기능


    User-Mode Driver Framework(UMDF)

    UMDF는 프로토콜 기반 디바이스 혹은 시리얼 버스 기반 디바이스를 지원하는 user-mode 드라이버의 작성을 지원한다. 이런 드라이버는 커널 모드 드라이버와 동일한 타입의 I/O를 처리하고 커널 모드 드라이버와 동일하게 INF 파일로 설치된다.


    사용자 모드에서 작동하는 드라이버는 사용자 주소 영역에 대한 접근 권한만을 가진다 따라서 커널 모드 드라이버 보다 시스템 보안과 안정성에 대한 낮은 리스크를 가진다. 사용자 모드 드라이버는 커멀 모드 드라이버와 거의 동일한 성능을 가지며 여러가지의 장점이 있다:


    . 쉬운 드라이버 환경

    . 높은 안정성과 보안성

    . Win32 API 사용

    . 사용자 모드 디버거를 이용한 디버깅

    . C++ 프로그래밍

    . 빠른 코드 생성


    사용자 모드 드라이버가 할 수 없는 일:

    . 인터럽트 처리

    . 하드웨어 직접 접근

    . 정확한 타이밍 루프 사용

    . 커널 모드 리소스 사용


    Architecture of the Windows Driver Foundation


    이 글의 목적은 윈도우즈 OS 패밀리를 위한 차세대 드라이버 모델인 WDF에 대한 정보를 제공하는 것이다. WDF에 대한 전체적인 아키텍처를 기술하고 드라이버 개발 시간을 줄이고, 시스템 안정성을 높이고 드라이버 진단성과 서비스 능력을 개선할 수 있는 방법을 설명한다. WDF에 생소한 기술 관리자, 아키텍처, 드라이버 설계자를 위해 작성되었다.


    다음의 OS에 적용된다:

    MS Vista

    MS Server 2003

    MS XP

    MS 2000


    이 문서에 있는 정보:

    . WDF의 디자인 목적

    . WDF에서의 디바이스와 드라이버 지원

    . WDF 드라이버 모델

    . WDF 객체 모델

    . PnP와 전원 관리 지원

    . I/O 모델

    . 드라이버 프레임워크

    . 개발과 테스팅 툴

    . serviceability and versioning

    . 다음 단계



    Windows Driver Foundation (WDF)

    WDF defines a single driver model that supports the creation of object-oriented, event-driven drivers for either kernel mode or user mode. It simplifies driver development and maintenance by:

    Implementing common features.

    Providing intelligent defaults.

    Managing most interactions with the operating system.

    With WDF, driver writers can focus on their device hardware, rather than on the operating system.

    WDF includes frameworks for the development of kernel-mode and user-mode drivers along with several driver verification tools.

    Download the KMDF. KMDF 1.1 is now available for download. More

    Tip: See the video presentations from Driver DevCon and other tips & tricks at Notes from Windows Development Teams.

    Kernel-Mode Driver Framework (KMDF)
    KMDF implements the fundamental features required for kernel-mode drivers.

    User-Mode Driver Framework (UMDF)
    UMDF supports the development of user-mode drivers for device classes such as cameras and portable music players that are based on protocol or serial buses.

    WDF Driver Verification Tools
    WDF includes a built-in verifier along with two rule-based static verification tools: PREfast and Static Driver Verifier (SDV).

    WDF Overview

    White Paper Architecture of the Windows Driver Foundation
    White Paper FAQ: Questions from Driver Developers about Windows Driver Foundation
    White Paper Introduction to the Windows Driver Foundation
    White Paper Windows Driver Foundation Facts
    Microsoft Powerpoint (.ppt) Windows Driver Foundation: An Introduction [WinHEC 2005; 689 KB]

    WDF Beta Program

    White Paper Windows Driver Foundation Beta Program Invitation

    Windows Driver Foundation Notes

    Microsoft Powerpoint (.ppt) How to Develop a KMDF Driver [517 KB]
    Microsoft Powerpoint (.ppt) How to Develop a UMDF Driver [1.4 MB]
    Microsoft Powerpoint (.ppt) How to Port WDM Drivers to KMDF [749 KB]
    Microsoft Powerpoint (.ppt) Introduction to User-Mode Driver Framework [536 KB]
    Windows Multimedia How to Develop a KMDF Driver: Part 2
    Windows Multimedia How to Port a WDM Driver to the KMDF: Part 1
    Windows Multimedia How to Port a WDM Driver to the KMDF: Part 2

    Articles on WDF

    This link leaves the Microsoft.com site Defensive Drivers - DevSource by Ziff Davis Media
    This link leaves the Microsoft.com site NT Insider Interviews Jake Oshins on WDF PnP/Power (subscription required)

    posted by 써니루루 2007. 5. 23. 15:05
    출처 : http://www.mimul.com/pebble/default/2007/05/20/1179671460000.html

    BitTorrent의 구조는 아래 그림과 같다.


    사용자 삽입 이미지



    먼저 BitTorrent는 File Server에 호스팅된 torrent파일과 Tracker, Peer들로 구성된다.

    우리가 가장 궁금한 것은 BittTorrent 방식에서의 다운로드는 어떻게 되는가인데..

    이 부분은 원본 사이트의 내용을 참조하도록 한다.


    특정 이용자가 올린 파일은 BitTorrent 프로토콜의 운영에 동의한 파일이라는 가정하에 아래 시나리오를 정리했습니다.
    • 클라이언트인 Leech가 원하는 파일을 얻기 위해서 Tracker에 Peer-List의 정보를 요청하여 정보를 받습니다.
    • Leech는 클라이언트 정보를 파악하여 네트워크나 서버 정보가 좋은 클라이언트에게 Hash정보를 가지고 특정 파일 조각(pieces)을 요청한다.
    • Seed는 특정 파일 조각(pieces)을 Leech에게 제공한다.
    • Leech는 파일의 조각의 해시값을 비교하여 파일을 조합한다. 이때 Leech는 다운로드 받을 전체 파일의 사이즈를 미리 할당해 놓은 상태입니다.
    • Seed가 자신의 서버 부하 상태가 나빠질 경우 uncoke를 통해서 Tracker와 최신의 상태 정보를 공유하게 됩니다.

    BitTorrent의 제한점

    • 파일 다운 받을 수 있는 Peer정보들을 가지고 있고 수시로 Peer정보를 최상의 상태로 만들어야 하기에 Tracker의 성능이 좋아야 한다. Tracker가 다운되면 BitTorrent 시스템은 불가능하게 된다.
    • 파일 조각의 사이징에 따라 다운로드 성능에 영향을 많이 받는다.
    • 작은 파일들의 전송시에 네트웍 오버헤드가 높아진다.
    • Peer들에게 Attack의 대상이 되기도 한다.

    보완 되어야 할 점

    고객들의 자원을 활용하므로 인해 네트워크에 대한 비용 전가에 대한 혜택을 제공해야 합니다. 그리고 Peer들의 공격의 대상이 될 수도있고 바이러스의 전파 경로로 활용, 보안 등으로 이용될 수 있어 이런 문제점 해결이 보완되어야 합니다.