I   회사소개  I  사이트맵  I  도움말
인기검색어
  ID저장
 
회원가입 I 아이디/비밀번호찾기
ㆍOS / 하드웨어 / 서버군
ㆍOA / 오피스 / 전자출판
ㆍ아이폰 / 안드로이드
ㆍ디지털 포토그래피
ㆍ그래픽 / 홈페이지
ㆍ인터넷 프로그래밍
ㆍ일반프로그래밍
ㆍ게임프로그래밍
ㆍSNS / E-Business
ㆍ데이터베이스
ㆍ기 타
ㆍ길라잡이
ㆍ실력이 탐나는
ㆍ회사 실무에 힘을 주는
ㆍ예제가 가득한
ㆍ그림 한 장으로 보는
ㆍ디지털 포토그라피
ㆍ그래픽/홈페이지
페이스북 블로그 네이버포스트
관련분류 : 일반 프로그래밍 / C/C++/STL
이펙티브 STL(Effective STL) - 절판
크게보기 l 차례보기
ㆍ저 자 Scott Meyers
ㆍ역 자 곽용재
ㆍ구 분 번역서
ㆍ발행일 2006년 03월 29일
ㆍ정 가 18,000원
ㆍ페이지 359 페이지
ㆍISBN 89-5674-311-8
ㆍ난이도 중급.상급
ㆍ출판사 정보문화사
C++ 표준 템플릿 라이브러리(STL)를 효과적으로 활용하는 50 가지의 명쾌한 테크닉 모음

C++의 표준 템플릿 라이브러리(Standard Template Library: STL)는 가히 혁명적인 프로그래밍 도구로 주목을 끌고 있으나, 잘 사용하는 방법을 공부하는 일은 늘 어렵다고 알려져 왔다. 이것은 지금까지의 이야기이다. C++ 프로그래밍의 베스트 셀러 서적, Effective C++와 More Effective C++의 저자 스캇 마이어스(Scott Meyers)가 새롭게 선보이는 이 책에 의해, STL이 가진 모든 것을 끌어내는 전문가의 경험적 노하우-거의 항상 해야 하며 피해야 할 일-들이 하나씩 드러난다!

다른 책은 STL에 무엇이 들어 있는가에 대해서만 설명하고 있으나, Effective STL은 이것을 효과적으로 사용하는 방법을 가르쳐 준다. 이 책에 정리된 50 가지의 가이드라인은 마이어스 특유의 날카로운 분석과 적절한 예제로 뒷받침되어 있어, 여러분은 "무엇(what)을 해야 하는지"를 배우는 데에만 그치지 않고 "언제(when) 해야 하는지"와 "왜(why) 해야 하는지"까지 속속들이 알 수 있게 된다.

Effective STL에서 다루어진 내용의 하이라이트는 다음과 같다.

  • 표준 STL 컨테이너(vector와 list 등), 비표준 STL 컨테이너(hash_set과 hash_map 등), 그리고 비STL 컨테이너(bitset 등)의 선택에 대한 조언
  • STL과 그것을 사용하는 프로그램의 효율을 극대화시킬 수 있는 테크닉
  • 반복자(iterator), 함수 객체(function object), 할당자(allocator)의 동작 원리와, 각각을 가지고 작업할 때 해서는 안 될 일들에 대한 경험적 지식
  • 이름이 같으나 미묘한(그러나 중요한) 측면에서 다른 동작을 보이는 알고리즘과 멤버 함수(예: find)를 적절히 골라 사용할 수 있도록 가르쳐 주는 가이드라인
  • 이식성 문제와 이것을 피해 가는 확실한 방법에 대한 진지한 해설


마이어스가 쓴 이전의 책과 마찬가지로, Effective STL은 프로그래밍 경험에서 우러나온, 입증된 지식으로 쓰여졌다. 명확하고 간결하며, 정곡을 찌르는 마이어스의 스타일은 모든 STL 프로그래머의 필독서가 될 자격을 주기에 충분하다.

"이 책은 Effective C++ 제 3권이군요-정말로 훌륭합니다."
-- 허브 서터(Herb Sutter), 독립 컨설턴트 겸 ISO/ANSI C++ 표준화 위원회의 간사

"모든 C++ 프로그래머가 꼭 가져야 할 책의 가짓수는 지극히 적습니다. Effective STL을 필독서 목록에 추가하십시오."
-- 토머스 베커(Thomas Becker), Zephyr Associates, Inc의 선임 소프트웨어 엔지니어 겸 C/C++ Users Journal의 칼럼니스트
 
스캇 마이어스(Scott Meyers)는 C++ 소프트웨어 개발 분야에 있어서 전 세계적으로 잘 알려진 권위자 중 한 명이다. 공전의 베스트 셀러인 Effective C++와 More Effective C++의 저자인 그는 C++ Report의 칼럼니스트였으며, C/C++ Users Journal과 Dr. Dobb's Journal 등의 유수의 프로그래밍 잡지의 단골 기고자임과 동시에 전 세계의 의뢰인들에게 컨설팅을 해주고 있다. 또한 마이어스는 현재 NumeriX LLC 사와 InfoCruiser Inc.의 자문 위원회의 일원으로 활동하고 있으며, 브라운 대학(Brown University)에서 받은 전산학 박사 학위(Ph. D. of Computer Science)를 가지고 있다.

필자가 C++ 표준 템플릿 라이브러리(Standard Template Library, 이하 STL)에 대해 처음 지면상으로 이야기한 것은 1995년에 나온 필자의 저서 More Effective C++의 마지막 항목(35 번)을 STL에 대한 전반적인 소개로 마무리했을 때였던 것 같다. 그때 조금 더 잘 알았더라면 하는 생각도 들지만.. 어쨌든 그후부터 필자는 "언제 STL을 다룬 새로운 Effective" 시리즈를 쓸 것이냐는 메일을 받기 시작했다.

사실 STL에 대해 책을 쓸 생각을 바로 한 것은 아니었다. 처음 필자는 STL에 대해 남들에게 어떻게 해라..라고 설명해줄 정도로 STL을 매우 잘하지는 못했다. 하지만 시간과 함께 어느 정도 이것에 익숙해지면서, 필자의 머리엔 다른 생각이 들기 시작했다. "STL이란 라이브러리가 과연 효율적이고 확장 가능한 소프트웨어 설계의 돌파구를 보여준 것인가?"에 대한 의문은 결코 아니었으며, STL을 사용하게 되면서 생기는 그냥 넘어갈 수 없는 문제들이 있었다는 것이다. 간단하게 작성한 STL 프로그램이 아닌 이상 플랫폼간의 이식은 어려웠다. 왜냐하면 라이브러리의 구현 상태가 개발 도구마다 차이가 있는 데다가 템플릿(template)을 지원하는 정도도 C++ 컴파일러마다 "괜찮은 것"에서 "어처구니없는 것"까지 천차만별이기 때문이었다. STL은 처음 공부하기도 만만찮아서 "프로그래밍을 STL적으로 하기"란 쉽지 않다. 그리고 "STL 프로그래밍의 맛"을 조금 알고 난 후엔 중고급자 티 내면서 괜찮은 참조 자료를 구하려 하지만 이것도 어렵다. 무엇보다도 우리를 눈물짓게 하는 것은 소스코드에 나와 있지도 않은 클래스이니 함수이니 템플릿을 들먹이면서 C++ 컴파일러가 자포자기한 자세로 화면에 뱉어 내는 수천 문자의 진단 메시지이다. 필자는 STL이란 아주 훌륭한 개념의 라이브러리와 이를 만들기 위해 애써 주신 엔지니어들을 칭찬하고 좋아하지만, 현업 프로그래머들에게 이것을 추천하는데는 조금 불편했던 것이 사실이다. 결론적으로, "지금, STL을 효.과.적.으.로.(effectively) 사용할 수 있을까"에 대해 확신이 서지 않았던 것이다.

하지만 필자를 놀라움으로 몰고 간 "무엇"을 발견하기 시작한 것은 그 이후부터였다. 이식은 힘들고, 문서화 상태는 절망적이고, 컴파일러 진단 메시지는 전송선 잡음으로밖엔 보이지 않는데도, 필자에게 자문을 의뢰해온 많은 고객들이 "그래도(anyway)" STL을 쓰고 있었다는 것이다. 게다가, STL을 그냥 "가지고 논" 것도 아니고 소프트웨어 제품 코드에 사용하고 있었다! STL이 태초부터 "세련된(elegant)" 설계 체계를 가지고 있다는 사실은 누구도 부인할 수 없지만, 이식의 골치아픔과 부실한 문서화, 이해할 수 없는 에러 메시지 등등을 견뎌야 하는 프로그래머의 고통은 설계의 가치를 넘는 것일 테니까...라고 생각하던 필자에게 이것은 무척이나 뜻밖의 사실이었다. 꾸준히 늘어나고 있는 많은 전문 프로그래머들도 그랬을지 모르지만 필자가 무엇인가 깨닫게 된 것은 그때였다. STL이 아무리 마음에 들지 않게 구현되었을지라도, "전혀 없는 것"보다는 훨씬 나았다는 것!!

더욱이, STL을 둘러싼 주변 상황들이 좋아지기만 하고 있었다. 상용 라이브러리와 컴파일러들은 표준(ANSI 표준)에 근접해 갔고, 썩 잘 만들어진 문서도 어렵지 않게 구할 수 있게 되었으며(부록의 "참고문헌"을 봐 주기 바란다), 보기 싫던 컴파일러 진단 메시지도 많이 좋아졌다(대부분은 아직 만족할 만한 수준이 아니지만, 더 좋은 것이 나오기 전까지 대처할 수 있는 몇 가지를 항목 49에 실었다). 그리하여, "STL 진흥 운동"을 위해 필자는 기꺼이 할 수 있는 일을 시작하기로 결정했고, 이 책은 그 일의 결과이다: 여러분이 C++ 표준 템플릿 라이브러리(STL)를 잘 사용할 수 있도록 도와 줄 구체적이고 명확한 방법을 50 가지로 추려 묶은 것이다.

원래, 필자는 이 책을 1999년 후반기에 쓰고 싶었으며 그 생각에 따라 책의 전체 개요를 잡았지만 바로 예정을 바꾸었다. 책 작업을 잠시 중단하고 STL에 관련한 초심자 대상 교육 과정을 만든 후에 수 차례에 걸쳐 많은 프로그래머들을 가르쳤다. 그 후 약 1년이 지난 후에 다시 책 저술에 들어갔는데, 1년 전에 프로그래머들을 가르친 경험을 바탕으로 책의 전체 개요를 수정했다. 필자의 전작인 Effective C++가 성공적일 수 있었던 가장 큰 근본 이유가 현업 프로그래머들이 실제로 부딪히는 문제를 골격으로 잡았다고 생각하는데, 이번에 내놓은 Effective STL 역시 STL 프로그래밍을 하면서 발생하는 실제적인 문제를 가렵지 않게 해결해 주었으면 한다.

필자는 지금도 항상 C++를 좀 더 잘 이해하려고 노력하고 있는 사람중 하나이다. STL 프로그래밍을 더 멋지게 할 수 있는 방법을 알고 있든지 이 책에서 소개한 방법에 대해 의견이 있으신 분은 언제든지 필자에게 알려 주기 바란다. 상당한 공을 들여서 쓴 이 책을 가능한 더욱 정확하게 만드는 것은 필자가 계속 바라는 바이기 때문에, 혹시나 잘못 된 부분-기술적이든, 문법적이든, 인쇄 상태이든-을 발견해 알려주시면 기꺼이 그 분의 이름을 감사의 글(Acknowledgements)에 올려 드릴 것이다. 전자 메일 주소 estl@aristeia.com은 항상 열려 있으니, 많은 도움 부탁드린다.


이 책의 1쇄(first printing)가 나간 직후부터 필자는 수정된 내용을 리스트로 만들어 두었다. 여기엔 잘못된 부분의 수정, 불명확한 부분 세한 설명, 기술적으로 갱신된 내용이 -독자 여러분들의 의견과 함께 - 포함되어 있으니 꼭 참고하기 바란다. 정오표 리스트는 Effective STL의 공식 정오표 사이트인 http://www.aristeia.com/BookErrata/estl1e-errata_frames.html에서 볼 수 있다.

혹시 이 책의 변경 사항을 수시로 확인하고 싶으시다면, 필자의 메일링 리스트에 가입하는 것이 좋겠다고 생각한다. 필자는 메일링 리스트를 통해 C++에 관련된 흥미 있는 거리를 많은 분들께 제공해 드리고 있다. 좀 더 자세한 이야기는 http://www.aristeia.com/MailingList에서 접할 수 있을 것이다.
 
 
"Infobook-Professional Computing" 관련도서는 총 10권 입니다.
- 이펙티브 STL(Effective STL)
- STL 튜토리얼·레퍼런스 가이드 제2판
- 일반적 프로그래밍과 STL: C++ 표준 템플릿 라이브러리의 활용과 확장
- Advanced UNIX Programming 제2판
- Art of UNIX Programming
- POSIX(포직스) 쓰레드를 이용한 프로그래밍 : 유닉스·리눅스 환경에서의 쓰레드 프로그래밍
- More Effective C++
- 디자인 패턴 자바 워크북
- C++ Standard Library : 튜토리얼·레퍼런스
- 프로그래밍의 모든 것(The Practice of Programming)
 
                                  
회사소개      개인정보취급방침      고객센터     사이트맵      도움말