Top

The C# Programming Language (Fourth Edition) 한국어판

  • 원서명The C# Programming Language (Fourth Edition) (ISBN 9780321741769)
  • 지은이앤더스 헤일스버그, 매드 토르거슨, 스코트 윌타무스, 피터 골디
  • 옮긴이김도균, 안철진
  • ISBN : 9788960773189
  • 45,000원
  • 2012년 06월 29일 펴냄
  • 페이퍼백 | 1,004쪽 | 188*250mm
  • 시리즈 : 프로그래밍 언어

책 소개

『The C# Programming Language (Fourth Edition) 한국어판』은 C# 언어의 개념과 설계 사상을 가장 정확하게 소개한 C# 언어 아키텍트인 앤더스 헤일스버그의 작품이다. C# 4.0의 새로운 기능인 동적 바인딩, 명명된 매개변수와 선택적 매개변수, 공변과 반공변 제네릭 형식 등을 포함해 완전히 갱신된 책으로, C# 언어의 완전한 명세와 함께 설명과 참조, 주옥 같은 코드 샘플, 12명에 달하는 C# 구루의 통찰력 있는 주석을 제공한다.


[ 소개 ]

C#의 창시자 헤일스 버그를 비롯한 4명의 C# 구루에 의해 기술된 유일한 C# 언어 명세서

인기 있는 C# 프로그래밍 언어는 C와 C++의 원초적인 힘과 빠른 애플리케이션 개발 언어의 높은 생산성을 합쳐놓았다. 동적 바인딩, 명명된 매개변수와 선택적 매개변수, 공변과 반공변 제네릭 형식 등 C# 4.0의 새로운 기능을 다룸으로써, 이번 C# 언어 명세 릴리즈는 정적 형식 정의에 의존하지 않는 프로그램들을 깔끔하게 작성할 수 있는 능력을 추가해 C#을 다음 단계로 도약시켰다. C#의 새로운 기능을 사용하면 파이썬과 자바스크립트, 루비 같은 동적 프로그래밍 언어와 동일한 느낌을 준다. 『The C# Programming Language (Fourth Edition) 한국어판』은 C# 4.0에 대한 권위 있는 기술 주해서가 될 것이다.

C# 언어의 아키텍트인 앤더스 헤일스버그(Anders Hejlsberg)와 그의 동료인 매드 토르거슨(Mads Torgersen), 스코트 윌타무스(Scott Wiltamuth), 피터 골디(Peter Glode)가 쓴 이 책은 C# 4.0에 맞게 완전히 새로운 모습을 갖췄다. 이 책은 C#에 대한 완전한 명세와 함께 설명, 참조, 코드 샘플, 12명의 유명한 C# 구루의 주석을 제공한다.

다른 프로그래밍 책에서 좀처럼 찾기 힘든 풍부한 주석은 깊이와 폭넓은 이해를 제공한다. 이 책에서는 C# 언어의 개념을 소개하면서 설득력 있는 주석을 통해 이런 개념이 중요한 이유와 사용되는 방법, 다른 언어와 관련되는 방식, 심지어 많은 개념이 어떻게 수반되는지를 소개한다.

이 책은 C#을 이해하고자 하는 개발자라면 누구나 소장해야 하는 최고의 책이다. 브래드 아브람스와 조셉 알바하리, 크치쉬토프 쿠와리나, 크리스찬 나겔, 블라드미르 리셰트리코프, 마렉 사파르, 크리스 셀스, 피터 세스토프, 존 스키트, 빌 바그너 등의 주석도 곁들여져 있다.


[ 추천의 글 ]

2000년 여름 닷넷이 발표된 지도 벌써 10년이 흘렀다. 당시 눈에 띄는 닷넷의 특징이라면 로컬에서 실행하는 관리되는 코드와 프로그램 간의 통신을 위한 XML 메시징이었다. 하지만 C#이 얼마만큼 중요한 언어로 성장할 것인가에 대해서는 확신이 서지 않았었다.

닷넷의 보급과 함께 C#은 개발자들에게 닷넷을 이해하고 사용하기 위한 기본적인 도구의 역할을 톡톡히 해 왔다. 일반적인 닷넷 개발자에게 값 형식과 참조 형식의 차이점이 무엇이냐고 물어보면 ‘구조체와 클래스의 차이’라고 대답하는 사람이 대부분이고 ‘System.ValueType을 상속하면 값 형식이고, 그 외의 경우는 참조 형식이다’라고 대답하는 이를 찾기는 쉽지 않다. 왜일까? 사람들이 API가 아닌 언어를 사용해서 그들의 생각과 하고자 하는 바를 런타임에 전달하거나 서로 의사소통하기 때문이다.

일반적으로 해당 플랫폼의 성공에는 뛰어난 언어가 있다는 사실이 얼마나 중요한지 아무리 강조해도 지나치지 않다. C#에서는 처음에 사람들이 닷넷을 어떻게 생각하는가에 기준을 두는 것이 중요했다. 닷넷이 고유한 플랫폼 기능으로서가 아니라 C#이 구현한 순수 언어 능력으로 개발자들에게 소개됐던 반복기와 실제 클로저(익명 메소드로도 알려짐) 같은 기능으로 진화함으로써 닷넷은 더 중요해졌다. C#이 닷넷을 위한 혁신의 중추적인 역할을 한다는 사실은 C# 3.0에서 표준화된 쿼리 연산자와 컴팩트 람다식, 확장 메소드, 표현식 트리에 대한 런타임 액세스, 즉 이 언어와 컴파일러의 개발이 주도한 모든 것으로 인해 더 분명해졌다. C# 4.0의 가장 중요한 특징인 동적 호출은 대체로 CLR 자체에 대한 변화라기보다는 해당 언어와 컴파일러의 특징이기도 하다.

C#의 창시자이자 변함없는 목자인 앤더스 헤일스버그에 관해 얘기하지 않고는 C#을 설명하기 어렵다. 나는 C# 3.0 설계 주기 동안 몇 달간 반복되는 C# 설계 회의에 참석하는 특별한 기쁨을 맛보았고, 앤더스의 작업을 보면서 많은 것을 깨우쳤다. 개발자가 실제로 좋아할 부분과 좋아하지 않을 부분을 알아내는 그의 본능은 동시대에는 따라올 사람이 없을 것 같았다. 앤더스는 설계 팀 모두를 꿰뚫고 있으며, 최상의 설계가 나오게 관리했다.

특히 C# 3.0에서 앤더스는 묘한 능력으로 함수형 언어 커뮤니티에서 핵심 아이디어를 가져왔고, 이 아이디어를 매우 광범위한 사용자들이 접근할 수 있게 만들었다. 이는 결코 과소평가해서는 안 될 위업이다. 예전에 가이 스틸(Guy Steele)은 자바를 언급하면서 다음과 같은 말을 했다. “우리는 리스프(Lisp) 프로그래머들에게서 승리를 얻고자 하는 것이 아니었다. C++ 프로그래머 다음이 우리였다. 리스프를 따르는 많은 사람을 이끌어 왔다.” 내가 C# 3.0을 살펴볼 때 C#은 적어도 최후로 남은 골수분자인 한 명의 C++ 개발자(나)를 끌어들인다고 생각했다. C# 4.0은 정적 형식 정의에 의존하지 않는 프로그램을 깔끔하게 작성할 수 있는 능력을 추가함으로써 리스프(그 외 자바스크립트, 파이썬, 루비 언어 등)를 향해 다음 단계를 내딛었다.

C#이 우수한 만큼 사람들은 미묘함을 공감하고 모두가 같은 C#으로 소통하기 위해 여전히 자연어(이 경우는 영어)와 형식주의(BNF) 두 가지로 쓰인 문서를 필요로 한다. 여러분이 집어든 이 책이 바로 그 문서다. 내 경험에 비춰 이 책을 읽는 모든 닷넷 개발자는 최소 한 번은 ‘아하’하는 깨달음의 순간을 경험하고, 더 나은 개발자가 될 것이라고 해도 과언이 아니다.

즐거운 시간이 되길 바란다.

- 돈 박스(Don Box)
워싱턴 주 레드몬드
2010년 5월

저자/역자 소개

[ 저자 서문 ]

십여 년 전인 1998년 12월, C# 프로젝트는 간결하고 현대적이며, 객체지향 형식으로 안전하며 새로운 닷넷 플랫폼용 프로그래밍 언어의 창조를 목적으로 시작됐다. 그 이후로 C#은 많은 진전을 보였다. 이 언어는 지금은 수백만 명 이상의 프로그래머들이 사용하며, 지금까지 4개 버전이 출시됐고, 각 버전은 수많은 중요한 기능을 새로 추가했다.

이 책은 C# 언어 명세의 네 번째 개정판이다. 이 책에서는 C# 프로그래밍 언어의 완벽한 기술 명세를 제공한다. 가장 최근 개정판인 이 책에서는 이전 버전에서는 찾을 수 없는 두 가지 종류의 새로운 내용을 포함한다. 물론 가장 주목받는 부분은 동적 바인딩, 명명된 매개변수와 선택 매개변수, 공변과 반공변 제네릭 형식 등 C# 4.0의 새로운 기능을 다룬다는 점이다. 이번 개정에서 매우 중요한 주제는 닷넷 환경의 외부에 있는 객체와 상호작용을 위해 C#이 좀 더 개방적이 된 것이다. C# 3.0의 LINQ처럼 외부 데이터 원본에 접근하기 위해 사용된 코드에 통합된 언어라고 느끼게 해줌으로써 C# 4.0의 동적 바인딩은 C#과 다른 파이썬과 루비, 자바스크립트와 같은 동적 프로그래밍 언어들의 객체와 상호작용할 수 있다.

이 책의 이전 판에서는 이름만 들어도 알 만한 C# 전문가들의 주석을 소개했다. 우리는 이 아이디어에 관해 지속적으로 열광적인 피드백을 받았고, 책 전체를 통해 이전의 주석자들과 새로운 주석자들에게 깊이 있고 흥미로운 통찰력과 가이드라인, 배경을 새로이 제공해주기를 간절히 요청했다. 이들 주석은 본문의 핵심을 보완해주고, C# 기능에 생명력을 더해주므로 우리를 더 없이 행복하게 해주었다.

C# 언어의 탄생에는 많은 사람이 참여했다. C# 1.0을 위한 언어 설계 팀은 앤더스 헤일스버그(Anders Hejlsberg)와 스코트 윌타무스(Scott Wiltamuth), 피터 골디(Peter Golde), 피터 솔릭(Peter Sollich), 에릭 거너슨(Eric Gunnerson)으로 구성됐다. C# 2.0의 언어 설계 팀은 앤더스 헤일스버그와 피터 골디, 피터 할램(Peter Hallam), 숀 카젠버거(Shon Katzenberger), 토드 프뢰스팅(Todd Proebsting), 앤슨 호턴(Anson Horton)으로 구성됐다. 더욱이 C#과 닷넷 공용 언어 런타임에서 제네릭의 설계와 구현은 마이크로소프트 리서치의 돈 심(Don Syme)과 앤드류 케네디(Andrew Kennedy)가 만든 프로토타입 ‘자이로(Gyro)’에 기반을 두고 있다. C# 3.0을 설계한 이들은 앤더스 헤일스버그와 에릭 마이어(Erik Meijer), 매트 워렌(Matt Warren), 매드 토르거슨(Mads Torgersen), 피터 할램, 디네시 쿨카니(Dinesh Kulkarni)였다. C# 4.0을 설계한 이들은 앤더스 헤일스버그와 매트 워렌(Matt Warren), 매드 토르거슨(Mads Torgersen), 에릭 리퍼트(Eric Lippert), 짐 허구닌(Jim Hugunin), 루시안 위스칙(Lucian Wischik), 닐 가프터(Neal Gafter)였다.

C#의 설계에 영향을 준 많은 사람에게 일일이 감사를 표하기는 어렵지만, 그렇더라도 이들 모두에게 고마움을 금할 길이 없다. 어떠한 것도 외부와 단절된 상태에서 설계되지 못하므로, 규모가 크고 열정적인 개발자 커뮤니티에서 받은 지속적인 피드백은 가치를 따질 수가 없다.

C#은 우리가 작업한 가장 도전적이고 흥분된 프로젝트 중 하나였고, 지금도 그렇다. 독자들 모두 우리가 C#을 창조하면서 굉장한 즐거움을 누렸던 것처럼 C#을 사용하면서 그와 같은 즐거움을 누리기를 바란다.

- 앤더스 헤일스버그(Anders Hejlsberg)
매드 토르거슨(Mads Torgersen)
스코트 윌타무스(Scott Wiltamuth)
피터 골디(Peter Golde)

워싱턴 주, 시애틀에서


[ 저자 소개 ]

앤더스 헤일스버그(Anders Hejlsberg)
프로그래밍 계의 전설이다. C# 언어의 아키텍트이며 마이크로소프트 기술 분야의 선구자라고 할 수 있다. 1996년 마이크로소프트로 옮기기 전에는 13년간 볼랜드 사에서 델파이, 터보 파스칼 팀의 최고 아키텍트로 근무한 바 있다.

매드 토르거슨(Mads Torgersen)
마이크로소프트에서 C# 언어 프로그램 관리자로 일하고 있으며, 끊임없이 언어 설계 프로세스를 실천하고 언어 사양을 관리한다.

스코트 윌타무스(Scott Wiltamuth)
마이크로소프트에서 비주얼 스튜디오 프로페셔널(Visual Studio Professional) 팀의 프로그램 책임자이며, 그동안 OLE 자동화, 비주얼 베이직(Visual Basic), VBScript, JScript, 비주얼 J++, 비주얼 C# 등 수많은 개발 도구 개발에 전념해 왔다.

피터 골디(Peter Golde)
처음 마이크로소프트 C# 컴파일러를 개발할 당시 선임 개발자였다. C#을 표준화한 ECMA 위원회에서는 마이크로소프트 대표자로서 컴파일러 구현과 언어 설계를 이끌었으며, 현재는 마이크로소프트에서 컴파일러 분야의 아키텍트로 근무 중이다.


[ 옮긴이의 말 ]

C#의 버전 1.0이 발표된 시점이 엊그제 같은데 어느덧 4.0에 이른 것을 보니 세월이 참 빠르게 지났구나 하는 생각이 듭니다. IT의 역사를 보더라도 근 15년 동안 빠르게 이뤄진 많은 혁신에 모든 사람이 놀라움에 찬 시선을 보내지만, 언어의 역사에서도 마찬가지로 커다란 혁신을 이뤄냈습니다. C# 4.0에서는 동적 바인딩과 명명된 매개 변수, 선택 매개변수, 공변과 반공변 제네릭 형식 등을 추가하면서 리스프의 특징을 받아들이고 있습니다. 특히 동적 호출은 프로그램의 효율적인 작성이라는 측면에서 가장 중요한 변화일 것입니다.

이 책은 C#의 창시자 헤일스 버그를 비롯한 4명의 C# 구루에 의해 기술된 유일한 C# 언어 명세서입니다. 그리고 일반적인 언어의 명세서와는 달리 무려 12명의 뛰어난 C#의 전도자의 주옥같은 주석이 포함돼 본문의 내용에 대한 가치를 더해주고 있습니다. C# 언어에 대한 좀 더 통찰력 있는 지식과 언어의 제대로 된 설계 사상에 목말라 했던 C# 프로그래머에게 이 책은 깨달음에 목마른 삶을 살다가 도서관 한 구석에서 우연히 찾은 선인의 깨달음과 통찰이 되어줄 것입니다.

지난 2000년에 시작된 IT 혁명과 그로부터 10년 뒤에 다시 진행 중인 IT 혁신은 여러모로 많은 차이가 있습니다. 돌이켜 보면 요즘 화두가 되는 많은 키워드들이 그 시대에도 존재했었지만, 지금에야 꽃이 피는 것은 분명 환경이라는 인자가 중요한 자원이었던 것 같습니다. C#과 닷넷은 이미 세상에서 증명된 언어와 플랫폼이며, 세월이 갈수록 모든 IT 혁신에 자양분이 되어 가고 있습니다. 이제 한국에서도 C#의 언어 설계에 대한 깊은 이해를 가진 세계적인 아키텍트와 프로그래머가 나오고 또 영향을 끼치길 기대해봅니다. 이 책이 그러한 미래에 조금이나마 힘이 된다면 역자들에게는 커다란 보람이 될 것입니다.

- 김도균, 안철진


[ 옮긴이 소개 ]

김도균
10년차 마이크로소프트 공인 강사(MCT)이자 MVP (Exchange)이며, 9년차에 접어든 IT 전문 번역가로 최근 출간한 『Professional ASP.NET 4』, 『쉽게 배우는 아웃룩 2010』, 『가장 쉬운 실전 아이폰 프로그래밍 스타트』 등을 비롯해 이십여 권의 책을 번역하거나 감수했다. 최근에는 마이크로소프트웨어에 칼럼을 기고하며, 프리지아 랩(www.dokyun.pe.kr)이라는 개인 기술 블로그를 통해 많은 기술적 관심사를 공유하고 있다.

안철진
영남대학교 기계공학부를 졸업한 후 도담 시스템스를 거쳐 현재는 KT DS에서 전산 시스템 개발을 담당하고 있다. 초등학교 시절부터 프로그래밍에 관심을 갖고 GW 베이직, 포트란 등을 공부하고, 대학과 사회에 나와서는 C, C++, 자바, 닷넷 기반의 각종 국방/우주/통신 산업 관련 프로젝트를 수행했으며, 객체지향 언어에서의 디자인 패턴과 리펙터링의 효율적인 적용에 관심이 많다.

목차

목차
  • 1장. 소개
  • 2장. 어휘 구조
  • 3장. 기본 개념
  • 4장. 형식
  • 5장. 변수
  • 6장. 변환
  • 7장. 식
  • 8장. 문장
  • 9장. 네임스페이스
  • 10장. 클래스
  • 11장. 구조체
  • 12장. 배열
  • 13장. 인터페이스
  • 14장. 열거형
  • 15장. 대리자
  • 16장. 예외
  • 17장. 속성

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.344 : 5행]
다음 항목에 해당하는 경우
->
다음 두 항목 중 하나가 해당하는 경우

[p.344 : 8행]
다음 항목에 해당하는 경우
->
다음 두 항목 중 하나가 해당하는 경우

[p.380 : 13행]
자바스크립트객체 생성식
->
객체 생성식

[p.386 : 주석 3행]
그럼 왜 이것이 필요할까요?
->
그럼 왜 이것이 필요할까?

[p.409 : 에릭 리퍼트 상자의 2행]
대개 (1) 런타임에서
->
대개 런타임에서

[p.519 : 8행]
Current 속성다.
->
Current 속성이다.

[p.621 : 12행]
유일한 경우이기도 한다.
->
유일한 경우이기도 하다.