I   회사소개  I  사이트맵  I  도움말
인기검색어
  ID저장
 
회원가입 I 아이디/비밀번호찾기
ㆍOS / 하드웨어 / 서버군
ㆍOA / 오피스 / 전자출판
ㆍ아이폰 / 안드로이드
ㆍ디지털 포토그래피
ㆍ그래픽 / 홈페이지
ㆍ인터넷 프로그래밍
ㆍ일반프로그래밍
ㆍ게임프로그래밍
ㆍSNS / E-Business
ㆍ데이터베이스
ㆍ기 타
ㆍ길라잡이
ㆍ실력이 탐나는
ㆍ회사 실무에 힘을 주는
ㆍ예제가 가득한
ㆍ그림 한 장으로 보는
ㆍ디지털 포토그라피
ㆍ그래픽/홈페이지
페이스북 블로그 네이버포스트
관련분류 : 일반 프로그래밍 / C/C++/STL
C++ Network Programming Volume 1 : ACE와 패턴을 사용한 객체지향 네트워크 프로그래밍 - 절판
크게보기 l 차례보기
ㆍ저 자 Douglas C. Schmidt , Stephen D. Huston
ㆍ역 자 권태인 , 곽용재
ㆍ구 분 번역서
ㆍ발행일 2003년 03월 24일
ㆍ정 가 18,000원
ㆍ페이지 361 페이지
ㆍISBN 89-8054-507-X
ㆍ난이도 중급.상급
ㆍ출판사 인포북
네트워크, 통신장비, 컴퓨터 시스템들이 점차 계속해서 발전하지만, 언제나 소프트웨어 개발자들은 자주 급변하는 환경 안에서도 충분한 신뢰성을 갖춘 분산 어플리케이션들을 만들어 내야합니다. "C++ Network Programming Vol. 1은 수많은 하드웨어 플랫폼과 운영체제상에서 쓸 수 있도록 연구, 개발된 혁명적인 네트워킹 오픈소스 프레임워크인 ACE(Adaptive Communication Environment)를 사용한 프로그래밍 방법을 알려주는 책으로, 복잡한 분산 시스템을 개발하고 최적화하기 위한 실용적인 해결책을 제시합니다.

이 책은 ACE를 통해 효율적이고, 이식 가능하며, 융통성 있는 네트워크 프로그램을 개발하는 데 있어 빠질 수 있는 함정과 위험요소들을 소프트웨어 전문가들에게 차근히 알려줍니다. 또한, 동시 처리 방식의 네트워크 어플리케이션에서만 느낄 수 있는 설계상의 까다로움과 그것들을 해결해야 할 때 반드시 고려해야 하는 선택사항을 면밀히 분석합니다.

"C++ Network Programming Vol.1"은 동시처리방식의 분산 어플리케이션을 제작하는데 관련된 설명과 그에 관련된 프로그래밍 기법 및 도구를 개요부터 설명합니다. 그리고 융통성 있고 효율적인 네트워크 어플리케이션을 개발하는데 필요한 핵심적인 디자인의 중요성, 패턴, 법칙들을 가르쳐 줍니다. 이 책의 공저자이자 ACE의 개발자인 더글러스 슈미츠 박사는 네트워크 어플리케이션을 객체지향 스타일로 개발하기 위해 효과적으로 C++과 패턴을 적용하는 방법과 프로그램 설계 능력을 키울 수 있는 방법을 독자에게 보여줍니다.

이 책의 주요 내용은 다음과 같습니다.

  • C++을 사용한 네트워크 프로그래밍 (개요와 일반적인 개발 현장에서 접할 수 있는 상황을 다루기 위한 전략들을 포함)
  • ACE 툴킷에 대한 설명
  • 연결 프로토콜, 메시지 교환, 공유 메모리와 대비한 메시지 전달에 대한 설명
  • 재사용 가능한 네트워크 어플리케이션 서비스를 제작하기 위한 구현 방식
  • 객체 지향적 네트워크 프로그래밍내의 동시처리에 대한 설명
  • ACE wrapper facade 클래스들에 대한 관련 패턴과 디자인 원칙에 대한 설명

    이 책을 통하여, C++ 개발자는 성공적이며, 다중 플렛폼을 지원하고, 동시처리가능한 네트워크 어플리케이션을 쉽고 효율적으로 개발하기위한 가장 완벽한 툴킷을 가지게 될 것입니다.

    저자소개 :
    더글러스 C. 슈미츠 박사는 최초로 ACE를 연구하고 개발한 컴퓨터과학자입니다. 그는 캘리포니아 어빈 대학의 부교수로 재직중이며, 분산처리방식의 실시간 내장 미들웨어를 위한 패턴들과 최적화기법들을 연구하고 있습니다.

    스티븐 D. 휴스턴은 "리버에이스"의 사장 및 CEO입니다. 이 회사는 소프트웨어 프로젝트에 지속적으로 ACE를 사용하기를 희망하는 회사들을 위한 기술적 지원 및 컨설팅 서비스를 제공하고 있습니다. 그는 ACE에 대해서 5년이 넘는 경험을 가지고 있으며, 광범위한 하드웨어와 소프트웨어 환경에서의 네트워크 프로토콜과 C++ 네트워크 어플리케이션 개발에 있어서는 20년이 넘는 소프트웨어 개발 경력을 가지고 있습니다.
  •  
    역자가 ACE라는 라이브러리를 접한 기간은 1년이 조금 넘은 것에 불과합니다. 당시, 게임 서버를 제작하는데 있어 필요한 기술들을 공부하면서 품어왔던 불만 중 하나는 "각각의 플랫폼으로 같은 기능을 수행하는 서버를 별도로 코딩해야 하는가?"였습니다. Windows NT용 서버 코드와 FreeBSD용 서버 코딩 양쪽을 완벽하게, 효과적으로 구축할 수 있는 사람은 드물거라는 생각도 하게 되었습니다. 이러던 중, sourceforge.net에서 발견한 ACE라는 라이브러리는 이런 고민에 빠져 있었던 역자에게 하나의 해결책으로 다가왔습니다. 수많은 공개 라이브러리들 중에서 상당히 많은 참여자와 탄탄한 클래스 구조 및 개발 멤버들, 10년이라는 오랜 개발 기간, 상당수의 유명한 스폰서들의 존재는, 역자가 성능에 대한 믿음을 가지기에 충분했습니다.

    Windows 프로그래밍에 있어서는 초심자, 숙련자에 상관없이 보통 Win32 API들에 대해 관심을 많이 가지게 됩니다. 좀 더 세밀하고 최신의 기능을 구현해야 할수록 하위 수준의 API 사용을 요구하기 때문에, Win32 API의 이해는 필수라고 생각됩니다. 하지만, 맵 툴이나 텍스트 에디터와 같은 특정 형식을 가진 프로그램을 만들 때에는 MFC나 C++ 빌더, 델파이와 같은 "툴킷"을 찾게 되고, 사용하게 됩니다.

    ACE도 마찬가지의 의미를 가지고 있다고 볼 수 있습니다. 이 툴킷이 제시하는 "이식성"과 "패턴"의 용도가 자신이 작성하기 위한 프로그램의 용도와 일치할 경우에는 상당히 유용하게 사용될 수 있지만, 아주 최신의 기술을 적용하는데 있어서는 한 발짝 늦을 수도 있을 것입니다(새로운 운영체제가 등장하면 Win32 API를 사용함으로써 바로 구현되지만, MFC는 한 발짝 늦게 구현되는 것과 같다고 볼 수 있습니다). 게다가, 자신만의 코딩 방식이 아닌 이미 정해 놓은 코딩 형식(프레임워크)에 맞추어 작업한다는 것은 조금 갑갑한 느낌을 받을 수도 있을 것입니다. 하지만 일단 익숙해지면, 직접 소켓 API를 공부하고, 이들을 효과적으로 적용하기 위해 시행착오로 인한 소요 시간을 확실히 줄일 수 있게 됩니다. 가령, 직접 API를 사용해서 네트워크 프로그래밍을 하는 분들에게도 소스를 분석하는 것만으로 많은 도움이 될 수 있을거라 생각됩니다.

    이러한 오픈소스 프로젝트가 산학협동으로, 그것도 매우 공개 참여적인 방법으로 진행된다는 점이 부러울 따름입니다. 어쨌든, 역자 자신도 이 방대한 라이브러리의 사용법을 시간이 날 때마다 한글로 정리하고 싶은 생각도 있었고, 정말로 인터넷에 관련된 인프라만큼은 훌륭한 우리나라 개발자들 사이에 알려질 수 있는 기회가 있었으면 하던 중에 이 책을 번역하게 되었습니다. 아무쪼록 이 작은 번역물의 존재로 인해, ACE가 몇몇 연구실에서만 사용하는 것이 아니라, 개발자들에게 "아주 빨리, 튼튼하게" 네트워크 프로그램들을 개발할 수 있도록 하는 수단으로 소개될 수 있다면, 저는 더 바랄게 없을 것 같습니다.

    이 책을 저술한 저자가 교수이기 때문에 들어나는 표현으로, 유난히 참고자료에 대한 인용(특히, 패턴)이 많습니다. 책에서 인용한 패턴들 중 대부분은 저자가 만들어낸 패턴이고, "Pattern-Oriented Software Architecture, Vol 2"와 앞으로 출간될 "C++ 네트워크 프로그래밍 2 : ACE와 프레임워크를 사용한 체계적인 재사용성의 적용(C++ Network Programming Vol.2)"에서 많이 인용하고 있습니다. 그 외의 패턴에 대한 내용은 인터넷에서 쉽게 자료를 구할 수 있을 것이지만, 패턴에 대한 지식이 거의 없는 경우라면, 이 책을 읽기 전에 Gof의 "Design Patterns"를 먼저 읽어보는 것을 권장합니다.

    덧붙여, 개인적인 의견입니다만, 이 책을 다 읽었다고 해서 ACE를 100% 사용할 수 있을거라고는 생각하지 않습니다. (원저자의 의도와는 약간 다르지만) 역자 개인적인 견해로 이 책은 ACE의 구조 및 디자인 원칙을 소개하는 개론서에 해당된다고 생각합니다. 몇 백개의 클래스들 중 자주 사용되는 몇몇 클래스만을 설명하고 있긴 하지만, ACE에 대한 공부를 시작하거나 ACE의 구조를 파악하는데 필요한 사항은 모두 들어있다고 생각됩니다. Win32 API를 모르고 MFC를 사용하는 것이 조금 불안해 보일 수 있는 것처럼, ACE를 사용하는 것도 역시 소켓 API와 기타 기본 지식들에 대한 이해를 요구한다는 것도 알아주셨으면 합니다. 혹시라도, 네트워크 프로그래밍을 처음 시작하는 분들은 소켓 API를 직접 사용하여 간단한 echo 서버 정도는 한 번 코딩해 본 후 ACE를 사용하는 것이 좋습니다. 그리고 아주 당연한 이야기지만, C++에 대해서는 상당히 숙달된 지식이 필요합니다(ACE는 정말로 C++을 위한, C++에 의한, 앞으로도 계속 C++로 개발될 라이브러리입니다)!
     
     
    "Infobook-C++ in Depth" 관련도서는 총 11권 입니다.
    - Accelerated C++ : 예제로 배우는 진짜배기 C++ 프로그래밍
    - Essential(에센셜) C++
    - C++ Template Metaprogramming : Boost로부터 배우는 개념, 도구, 기법
    - C++ 코딩의 정석 : 101가지 규칙, 가이드라인, 좋은 습관들
    - Exceptional C++ Style : 40개의 새로운 프로그래밍 퍼즐과 문제 그리고 그 해답
    - C++ Network Programming Volume 2 : ACE와 프레임워크를 이용한 체계적인 재사용 기법
    - Applied C++ : 향상된 소프트웨어를 개발하기 위한 실용적인 기술
    - 제네릭 프로그래밍과 디자인 패턴을 적용한 Modern C++ Design
    - Exceptional C++ : C++ 프로그래머를 자극하는 47개의 재미있는 퍼즐 문제
    - C++ Network Programming Volume 1 : ACE와 패턴을 사용한 객체지향 네트워크 프로그래밍
    - Essential(에센셜) C++
     
                                      
    회사소개      개인정보취급방침      고객센터     사이트맵      도움말