I   회사소개  I  사이트맵  I  도움말
인기검색어
  ID저장
 
회원가입 I 아이디/비밀번호찾기
ㆍOS / 하드웨어 / 서버군
ㆍOA / 오피스 / 전자출판
ㆍ아이폰 / 안드로이드
ㆍ디지털 포토그래피
ㆍ그래픽 / 홈페이지
ㆍ인터넷 프로그래밍
ㆍ일반프로그래밍
ㆍ게임프로그래밍
ㆍSNS / E-Business
ㆍ데이터베이스
ㆍ기 타
ㆍ길라잡이
ㆍ실력이 탐나는
ㆍ회사 실무에 힘을 주는
ㆍ예제가 가득한
ㆍ그림 한 장으로 보는
ㆍ디지털 포토그라피
ㆍ그래픽/홈페이지
페이스북 블로그 네이버포스트
관련분류 : 일반 프로그래밍 / C/C++/STL
C++ Network Programming Volume 2 : ACE와 프레임워크를 이용한 체계적인 재사용 기법 - 절판
크게보기 l 차례보기
ㆍ저 자 Douglas C. Schmidt , Stephen D. Huston
ㆍ역 자 권태인 , 곽용재
ㆍ구 분 번역서
ㆍ발행일 2003년 11월 11일
ㆍ정 가 22,000원
ㆍ페이지 464 페이지
ㆍISBN 89-8054-523-1
ㆍ난이도 중급.상급
ㆍ출판사 인포북
수정 가능한 융통성있는 소프트웨어를 급하게 개발하여야 합니까? 제작중인 소프트웨어에 프레임워크의 위력과 효율을 넣기를 원하나요? ACE(Adaptive Communication Environment)는 고성능 네트워크 어플리케이션과 차세대 미들웨어를 구축하기 위한 오픈 소스 툴킷입니다. ACE의 위력과 효율은 네트워크 어플리케이션의 체계적인 재사용성을 얻기 위해 객체지향 프레임워크를 채용함으로서 얻어진 것입니다. ACE 프레임워크는 일반적인 네트워크 프로그래밍 주제들을 다루고 있으며, 완벽한 분산 어플리케이션을 만들어냄으로서 C++ 언어 기능을 사용하여 수정이 가능합니다.

"C++ 네트워크 프로그래밍 Volume 2"에서는 ACE 프레임워크에 초점을 맞추고 있으며, 프레임워크 구조를 형성하는 개념, 패턴, 사용 규칙에 대하여 전반적인 내용을 제공합니다. 이 책은 객체지향 프레임워크를 디자인하기 위한 실용적인 가이드라고 할 수 있으며, 또한 개발자들에게 동시처리 방식의 네트워크 어플리케이션에 프레임워크를 적용하는 방법을 보여주고 있습니다. C++ 네트워크 프로그래밍 Volume 1에서는 네트워크 처리 기초 구성요소인 ACE와 ACE Wrapper Facade 클래스들에 대하여 소개했습니다. Volume 2에서는 상위수준의 통신 서비스를 제공하기 위해 Wrapper Facade 위에 프레임워크를 어떻게 구축하는가에 대하여 설명하고 있습니다.

이 책은 ACE 커뮤니티상의 두 전문가들이 기술한 다음과 같은 내용을 담고 있습니다.

  • ACE 프레임워크의 개요
  • 네트워크 서비스를 위한 디자인 관점
  • 핵심 ACE 프레임워크의 중요 기능에 대한 설명
  • ACE 프레임워크의 사용법을 시연하기 위한 C++ 코드 예제

"C++ 네트워크 프로그래밍 Volume 2"에서는 개발 노력과 과부하를 줄이면서 빠르게 네트워크 어플리케이션을 작성할 수 있도록 프레임워크를 사용하는 방법을 가르쳐 줍니다. 이는 네트워크 어플리케이션을 개발하는 C++ 개발자 모두에게 귀중한 재산이 될 것이라 확신합니다.

더글라스 C. 슈미츠 박사는 ACE의 초기 개발자입니다. 그는 현재 캘리포니아 어빈 대학의 부교수로 재직중이며, 여기에서 실시간 분산 및 임베디드(embedded) 미들웨어의 패턴과 최적화에 대하여 연구하고 있습니다. 또한, 예전에는 C++ Report의 편집자와 C/C++ Users Journal의 칼럼리스트로 활동했으며, "Pattern Languages of Program Design"(Addison-Wesley, 1995)의 공동저자이기도 합니다. 또한, "C++ 네트워크 프로그래밍 Volume 1 : ACE와 패턴을 사용한 객체지향 네트워크 프로그래밍"을 스티브 D. 휴스턴과 공동으로 집필하기도 했습니다.

스티브 D. 휴스턴은 소프트웨어 프로젝트에 계속 ACE를 사용하기를 원하는 회사들에게 기술적 지원과 컨설팅 서비스를 제공하는 회사인, Riverace 사의 대표이사 및 CEO를 겸직하고 있습니다. 스티브는 ACE에 관한한 거의 10년에 가까운 경험을 가지고 있으며, 다양한 하드웨어와 소프트웨어 환경하에서의 네트워크 프로토콜 및 C++ 네트워크 어플리케이션 개발에 대해서도 20년이 넘는 소프트웨어 개발 경력을 가지고 있습니다.

http://www.awprofessinal.com/
http://ace.ece.uci.edu/
http://www.riverace.com/
 
[C++ Network Programming 1권]과 [C++ Network Programming 2권]의 번역을 하면서 가장 절감했던 부분 중 하나는 "정말로 ACE라는 라이브러리는 방대하다"라는 것입니다. 1권과는 달리, 2권에서는 보다 실무에 유용한 프레임워크 클래스들에 대한 내용을 많이 다루고 있어서 처음 번역을 시작할 때에는 제 자신이 알고 있는 ACE의 지식을 정리한다는 마음가짐으로 시작했습니다. 하지만 워낙 ACE가 어렵고 광범위한 내용을 포괄하고 있어서 번역이 진행될수록 이 책 한 권으로 과연 전체의 내용을 담을 수 있을까 하는 생각이 들더군요. 개인적으로는 개발자로서도 많이 배울 수 있었던 좋은 기회였던 것 같습니다.

[C++ Network Programming 1권]에서와 마찬가지로, 패턴과 소켓 프로그래밍에 대한 사전지식이 없다면 먼저 이를 공부한 후에 이 책을 읽을 것을 권유합니다. 다음에 나열한 책은 패턴과 소켓에 관련된 유명한 번역서이므로 참고하기 바랍니다.

  • 제네릭 프로그래밍과 디자인 패턴을 적용한 Modern C++ Design(이기형 역, 인포북) ― C++의 템플릿 기능을 사용하여 재사용성과 효율성을 동시에 갖춘 컴포넌트를 설계하고 프로그래밍하는 방법을 정리해놓고 있습니다.
  • GoF의 디자인 패턴(김정아 역, 피어슨 에듀케이션 코리아) ― 패턴의 기본에 대하여 설명하고 있습니다. 패턴의 교과서라 할 수 있습니다.
  • Network Programming for MS Windows 2(김남식 역, 정보문화사) ― Winsock 라이브러리와 그에 따른 비동기/동기 및 동기화 장치에 대한 설명을 담고 있습니다.
  • UNIX 시스템 프로그래밍(조유근 역, 홍릉과학출판사) ― UNIX 프로그래밍에 대한 개략적인 내용을 담고 있습니다.
  • TCP/IP 소켓 프로그래밍(C 버전)(박준철 역, 사이텍미디어) ― 소켓 프로그래밍 기초를 다루는 책입니다. 소켓에 대한 기초가 부족하다면 읽어볼 만한 책입니다.
  • Effective TCP/IP Programming(선영범/김인우 역, 야스미디어) ― TCP 및 UDP를 사용하는 데 있어서 놓치기 쉬운 부분에 대해 설명하고 있는 좋은 책입니다. ACE 소켓 Wrapper Facade의 내부 구조 중 몇몇을 이해하는 데 도움이 됩니다.

[C++ Network Programming 1권]에서 설명한 wrapper facade 클래스는 네트워크 어플리케이션 프로그래밍 전체를 놓고 보면 너무나 기본적이어서 중요도가 별로 높지 않다고 할 수 있습니다. 만일 네트워크 개발자가 자신만의 네트워크 엔진을 구상중이라면 재사용성 및 이식성 측면에서 중요한 부분일 수 있지만, 대부분의 경우 2권에서 설명하는 프레임워크의 구조를 이해하고 활용하기 위한 발판에 지나지 않다는 것을 알 수 있을 것입니다(하지만 [C++ Network Programming 1권]의 내용을 모른다면 프레임워크를 이해하기란 더욱 어려울 것입니다. 기초가 있어야 활용도 가능한 법이니까요).

책 안에 상당히 많은 수의 패턴을 인용하고 있어서 인터넷에서 구할 수 있는 관련 논문의 링크들을 로 필요할 때마다 언급해두었습니다. 비록 영문이지만, 구하기 힘든 [POSA2] 책보다는 웹 링크에서 구할 수 있는 PDF 파일을 참고하는 것이 내용을 빨리 파악할 수 있을 것이라 생각합니다. 이 책에서 언급하는 패턴들은 모두 꽤 유명한 것들이어서 Google과 같은 검색엔진을 통해서 쉽게 관련자료를 찾아볼 수 있습니다. 1권과 2권에서 참조한 대부분의 패턴은 http://www.cs.wustl.edu/~schmidt/PDF/에서 구할 수 있으므로, 하나하나 읽어보는 것도 좋은 방법입니다.

ACE를 실전에 사용할 때에는 주로 프레임워크를 기반으로 코드를 작성하게 됩니다. 2권에서 주로 설명하는 ACE 프레임워크 클래스에는 어플리케이션에 맞게 확장하는 부분을 대부분 가상 함수로 구현해 놓았는데, 실제로 ACE 도움말(http://doc.ece.uci.edu/Doxygen/Beta/html/ace/ index.html에서 볼 수 있습니다)을 참조해도 어떤 것을 반드시 작성해야 하고, 어떤 것은 옵션인지 바로 알기가 어렵습니다. 그렇다고 400메가가 넘는 풀 소스를 훑어보는 것도 부담이 되는 일이어서 처음 ACE를 접한 분이라면 어디서부터 어떻게 공부해야 할지 감도 잡히지 않을 정도입니다. 아마도 1권과 2권은 ACE 클래스의 전체를 설명하고 있지는 않지만, 모든 소스를 훑어가며 공부하는 시간만큼은 확실히 줄여 줄 것이라 생각합니다. 특히, proactor 프레임워크는 대규모의 서버 개발에 상당히 유용하므로 실전 개발자라면 꼭 읽어보기 바랍니다.

현재 진행중인 프로그램 개발과 번역을 동시에 진행하느라 밤도 많이 새우고, 이미 고친 부분을 또 고치는 일을 많이 반복했지만, 그래도 아직 부족한 부분이 많은 것이 사실입니다. 원문이 워낙 논문 특유의 장문체를 사용하였기 때문에, 너무 길게 나열된 문장과 한국어 흐름에 맞지 않는 문장들은 적당히 문장을 분리하고 의역하였습니다. 특히 패턴 명칭은 혼동을 피하기 위해 원어 그대로 표기하였습니다. 오역이라든가 오타, 기타 잘못된 부분은 redpixel@korea.com으로 이메일을 주시면 정오표에 추가하겠습니다.

[역자 소개]
권태인
현재 Pixelz 소프트(http://www.pixelz.co.kr) 메인 프로그래머. 관심분야는 ACE, STL, lua 스크립트 언어, OpenGL이며, 특히 오픈소스 툴 및 라이브러리를 통한 게임 개발에 관심이 많다. 다년간의 게임 프로그래밍 경력을 가지고 있으며 디조 게임스쿨 프로그래밍 강의를 맡은 경력이 있다. 개인적으로는 http://www.redwiki.net이라는 게임 프로그래밍 위키사이트를 운영하고 있으며, 현재 회사내에서 lua 스크립트 기반의 온라인 게임 엔진 제작을 담당하고 있다.

[감수의 글]
[C++ Network Programming 2권]은 [C++ Network Programming 1권]에 이어 ACE(ADAPTIVE Communication Environment)라는 플랫폼 독립적 네트워킹 플랫폼을 본격적으로 사용하는 방법을 알려주는 책이다. 전편인 1권이 다소 일반적이고 시스템 소개적인 내용에 중점을 둔 데에 반해, 2권은 ACE를 이루고 있는 핵심 프레임워크를 하나씩 소개해 가면서 이것들을 사용한 프로그래밍 예제 및 하부 개념을 보여줌으로써 실제 동작이 가능한 네트워크 프로그램을 만들 수 있도록 이끌어준다. 특히 POSA(Pattern Oriented Software Architecture) 개념을 기본으로 하여 저자가 직접 개발한 패턴과 설계 철학은 소프트웨어 개발자라면 반드시 익혀두어야 할 만큼 값지고 모범적이다. 특히, 이벤트 중심의 세련된 네트워크 프로그래밍을 가능하게 해주는 Proactor 프레임워크는 이 책의 한국어판 작업자가 이전부터 진국이라고 칭찬했을 정도로 좋은 내용이라고 본다. 2권의 한국어판은 1권을 작업했던 권태인님(www.redpixel. pe.kr)이 다시 맡아 주셨는데, 처녀작인 1권에서 보여주었던 풋풋함(?)을 많이 벗어나 상당히 깔끔한 완성도 높은 원고로 만들어주셨다. 현재 개발 진행중인 온라인 게임 서비스도 잘 되었으면 하는 마음으로 감수를 마친다.

[감수자 소개]
곽용재
고려대학교 컴퓨터학과 대학원 박사과정 학생이며, 프리랜서 프로그래머 겸 컴퓨터 테크니컬 번역가. 자연어 처리, 효율적인 알고리즘과 제네릭 프로그래밍에 관심이 많다. 주요 번역/편역 작품으로는 모어 이펙티브 C++(More Effective C++ 한국어판), 이펙티브 STL(Effective STL 한국어판), 자바서버 페이지 웹 프로그래밍(Web Development with JavaServer Pages 한국어판), 초보자를 위한 UML 객체지향 설계(Teach Yourself UML in 24 hours 한국어판) 등이 있음.
 
 
"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++
 
                                  
회사소개      개인정보취급방침      고객센터     사이트맵      도움말