반디앤루니스 인터넷서점

네비게이션 실시간 인기 책

    C# 동시성 프로그래밍 2/e

    C# 동시성 프로그래밍 2/e : 실제 애플리케이션에 적용하는 효율적인 비동기, 병렬, 멀티스레드 프로그래밍

    • 스티븐 클리어리 저
    • 김홍중 역
    • 에이콘출판
    • 2021년 05월 18일
    • 정가
      30,000원
    • 판매가
      27,000원 [10% 할인]
    • 결제 혜택
      무이자
    • 적립금
      1,500원 적립 [5%P]

      NAVER Pay 결제 시 네이버페이 포인트 5% 적립 ?

    • 배송구분
      업체배송(반디북)
    • 배송료
      무료배송
    • 출고예정일

      출고예정일 안내

      ※ 출고예정일은 도서 재고상황에 따라 변동될 수 있습니다.

      close

      2026년 09월 28일(월)

      ※ 출고예정일은 도서 재고상황에 따라 변동될 수 있습니다.

    수량
    회원리뷰
    - [0]
    ISBN: 9791161755274 340쪽 188 x 235 (㎜)

    지금 이책은

    • 판매지수 : 0

    이 책이 속한 분야

    이 책은


    비동기, 병렬 처리, 데이터 흐름, 멀티스레딩 등 최신 닷넷 프레임워크와 C# 언어가 제공하는 동시성 기술과 함께 리액티브 프로그래밍, 동시성 기술의 상호운용, 동시 컬렉션, 테스트, 취소 기능, 동기화처럼 동시성과 관련이 있는 다양한 주제를 폭넓게 다룬다. 모든 주제를 간결하고 명확하게 설명하는 동시에 이해를 돕는 간단하고 효과적인 예제를 곁들여 동시성을 처음 접하거나 동시성에 익숙하지 않은 개발자를 동시성의 세계로 이끌어주는 훌륭한 안내서다.



     


    출판사 리뷰

    이 책에서 다루는 내용
    ■ async와 await를 활용하는 비동기 작업
    ■ 비동기 스트림으로 코드 개선
    ■ 닷넷의 병렬 작업 라이브러리와 함께 병렬 처리 프로그래밍
    ■ 닷넷의 TPL 데이터 흐름 라이브러리로 데이터 흐름 파이프라인 생성
    ■ LINQ를 기반으로 구축한 System.Reactive의 기능
    ■ 스레드로부터 안전한 컬렉션과 불변 컬렉션 활용
    ■ 동시성 코드의 단위 테스트
    ■ 스레드 풀 활용
    ■ 깔끔하고 협조적인 취소
    ■ 동시성 기술의 결합이 필요한 상황
    ■ 비동기 친화적 OOP 프로그래밍
    ■ 예전 비동기 방식을 사용하는 코드를 인식하는 방법과 최신 코드로 변환하는 방법

    이 책의 대상 독자
    최신 동시성 기법을 배우려는 개발자를 대상으로 하며, 독자가 제네릭 컬렉션(generic collection), 열거자, LINQ를 이해할 정도의 닷넷(.NET) 경험이 있다고 가정한다. 멀티스레딩 또는 비동기 프로그래밍에 관한 지식은 전혀 필요하지 않다. 하지만 이런 분야에 지식이 있더라도 여전히 유용할 수 있다. 더 안전하고 사용하기 쉬운 최신 라이브러리를 소개하는 책이기 때문이다.
    동시성은 모든 애플리케이션에서 유용하다. 데스크톱, 모바일, 서버 애플리케이션에 상관없이 이제 동시성은 사실상 전반적인 요구 사항이다. 이 책의 내용을 활용하면 더 빨리 반응하는 사용자 인터페이스, 규모 변경이 더 쉬운 서버를 만들 수 있다. 이미 동시성은 어디에나 존재하는 지경에 이르렀고, 이제 동시성 기법의 이해와 활용은 전문 개발자의 필수 지식이다.

    이 책의 구성
    1장은 병렬, 비동기, 리액티브, 데이터 흐름 등 이 책에서 다룰 다양한 종류의 동시성을 소개한다.
    2장에서 6장은 1장에서 소개한 동시성을 하나하나 철저하게 설명한다.
    이후 7장부터 14장은 각각 동시성의 특정 측면을 다루며 일반적인 동시성 문제의 해결책에 관한 참고 자료 역할을 한다.
    이미 동시성에 익숙하더라도 1장은 읽거나 최소한 훑어보기를 권한다.

    이 책은 최신 동시성 기법만을 다루며, 최신 방식을 사용해서 동시성을 소개한다. 병렬, 비동기, 리액티브 프로그래밍 등 다양한 종류의 동시성을 다루지만, 다른 책과 온라인 자료에서 충분히 다루고 있는 전통적인 기법은 다루지 않는다.

    추천글


    “스티븐 클리어리는 C#의 비동기성과 병렬성의 핵심 전문가로 자리매김해 왔다. 이 책은 이런 기술을 처음 접하거나 이런 기술로 성공을 거두고 싶은 개발자가 잘 알아야 할 핵심과 원칙을 명확하고 간결하게 전달한다.”
    — 스티븐 토웁(Stephen Toub), 마이크로소프트 수석 아키텍트


     


    저자 소개

    스티븐 클리어리

    저자 : 스티븐 클리어리
    ARM 펌웨어(ARM Firmware)에서 애저(Azure)에 이르기까지 폭넓은 경험이 있는 개발자다. 부스트 C++ 라이브러리를 시작으로 초창기부터 오픈소스에 이바지했으며, 직접 만든 라이브러리와 유틸리티를 발표해 오고 있다.

    역자 : 김홍중
    중앙대학교 컴퓨터공학과를 졸업하고 첫 직장인 삼성전자에서 PDA, 셋톱박스, DTV 등 다양한 기기에 들어가는 윈도우 CE, 임베디드 리눅스 애플리케이션을 개발했다. 2007년 답답한 삶을 털어내고 훌쩍 미국으로 날아가 한껏 여유를 즐기다가 빈손으로 돌아왔다. 이후 웹호스팅사, 게임 개발사, 스타트업 등 여러 회사를 거치며 다양한 iOS 앱을 개발했고, 한동안 번역, 강의, 외주 작업으로 연명하기도 했다. 언제 이룰 수 있을지 모르지만, 독립 개발자로 우뚝 서는 꿈을 포기하지 않고 있다. 에이콘출판사에서 출간한 『플러터 앱 개발 첫걸음』(2020), 『유니티 2D 게임 개발』(2020) 등을 번역했다.

    역자 소개

    김홍중

    중앙대학교 컴퓨터공학과를 졸업하고 첫 직장인 삼성전자에서 PDA, 셋톱박스, DTV 등 다양한 기기에 들어가는 윈도우 CE, 임베디드 리눅스 애플리케이션을 개발했다. 2007년 답답한 삶을 털어내고 훌쩍 미국으로 날아가 한껏 여유를 즐기다가 빈손으로 돌아왔다. 이후 웹호스팅사, 게임 개발사, 스타트업 등 여러 회사를 거치며 다양한 iOS 앱을 개발했고, 한동안 번역, 강의, 외주 작업으로 연명하기도 했다. 언제 이룰 수 있을지 모르지만, 독립 개발자로 우뚝 서는 꿈을 포기하지 않고 있다. 에이콘출판사에서 출간한 『플러터 앱 개발 첫걸음』(2020), 『유니티 2D 게임 개발』(2020) 등을 번역했다.


     

    목차

    1장. 동시성 개요
    __비동기 프로그래밍
    __병렬 프로그래밍
    __리액티브 프로그래밍
    __데이터 흐름
    __멀티스레드 프로그래밍
    __동시성 애플리케이션용 컬렉션
    __최신 설계 방식
    __핵심 기술 정리

    2장. 비동기의 기초
    __2.1 일정 시간 동안 일시 정지
    __2.2 완료한 작업 반환
    __2.3 진행 상황 보고
    __2.4 모든 작업의 완료를 대기
    __2.5 여러 작업 중 하나의 완료를 대기
    __2.6 작업이 완료할 때마다 처리
    __2.7 연속 작업용 콘텍스트 회피
    __2.8 async Task 메서드의 예외 처리
    __2.9 async void 메서드의 예외 처리
    __2.10 ValueTask 생성
    __2.11 ValueTask 사용

    3장. 비동기 스트림
    __비동기 스트림과 Task
    __비동기 스트림과 IEnumerable
    __비동기 스트림과 Task>
    __비동기 스트림과 IObservable
    __정리
    ____3.1 비동기 스트림 생성
    ____3.2 비동기 스트림 사용
    ____3.3 비동기 스트림과 LINQ를 함께 사용
    ____3.4 비동기 스트림의 취소
    __참고

    4장. 병렬 처리의 기초
    __4.1 데이터의 병렬 처리
    __4.2 병렬 집계
    __4.3 병렬 호출
    __4.4 동적 병렬 처리
    __4.5 PLINQ

    5장. 데이터 흐름의 기초
    __5.1 블록 연결
    __5.2 오류 전파
    __5.3 블록의 연결 해제
    __5.4 블록의 흐름 조절
    __5.5 데이터 흐름 블록으로 병렬 처리
    __5.6 사용자 지정 데이터 흐름 블록 생성

    6장. SystemReactive의 기초
    __6.1 닷넷 이벤트 변환
    __6.2 콘텍스트로 알림 전달
    __6.3 Window와 Buffer로 이벤트 데이터 그룹화
    __6.4 Throttle과 Sample로 이벤트 스트림 조절
    __6.5 타임아웃

    7장. 테스트
    __7.1 async 메서드의 단위 테스트
    __7.2 async 메서드의 실패 사례를 단위 테스트
    __7.3 async void 메서드의 단위 테스트
    __7.4 데이터 흐름 메시의 단위 테스트
    __7.5 System
    __7.6 시간과 관련이 있는 System

    8장. 상호운용
    __8.1 'Async' 메서드와 'Completed' 이벤트용 비동기 래퍼
    __8.2 'Begin'과 'End' 메서드용 비동기 래퍼
    __8.3 범용 비동기 래퍼
    __8.4 병렬 처리 코드용 래퍼
    __8.5 System
    __8.6 async 코드용 System
    __8.7 비동기 스트림과 데이터 흐름 메시
    __8.8 System
    __8.9 System

    9장. 컬렉션
    __9.1 불변 스택과 불변 큐
    __9.2 불변 리스트
    __9.3 불변 집합
    __9.4 불변 딕셔너리
    __9.5 스레드로부터 안전한 딕셔너리
    __9.6 블로킹 큐
    __9.7 블로킹 스택과 블로킹 백
    __9.8 비동기 큐
    __9.9 큐 조절
    __9.10 큐 샘플링
    __9.11 비동기 스택과 비동기 백
    __9.12 블로킹 큐와 비동기 큐

    10장. 취소
    __10. 1 취소 요청 실행
    __10.2 폴링으로 취소 요청에 대응
    __10.3 타임아웃으로 취소
    __10.4 비동기 코드의 취소
    __10.5 병렬 코드의 취소
    __10.6 System
    __10.7 데이터 흐름 메시의 취소
    __10.8 취소 토큰 소스의 연결
    __10.9 다른 취소 방식과 상호운용

    11장. 함수형 친화적 OOP
    __11.1 비동기 인터페이스와 상속
    __11.2 비동기 생성: 팩토리
    __11.3 비동기 생성: 비동기 초기화 패턴
    __11.4 비동기 속성
    __11.5 비동기 이벤트
    __11.6 비동기 삭제

    12장. 동기화
    __12.1 블로킹 잠금
    __12.2 비동기 잠금
    __12.3 블로킹 신호
    __12.4 비동기 신호
    __12.5 조절

    13장. 스케줄링
    __13.1 스레드 풀에 작업 스케줄링
    __13.2 작업 스케줄러를 사용해서 코드 실행
    __13.3 병렬 코드의 스케줄링
    __13.4 스케줄러로 데이터 흐름 동기화

    14장. 다양한 동시성 상황
    __14.1 공유 리소스 초기화
    __14.2 System
    __14.3 비동기 데이터 바인딩
    __14.4 암시적 상태
    __14.5 동기 코드와 비동기 코드를 한 번에 구현
    __14.6 데이터 흐름 메시를 사용한 철도 지향 프로그래밍
    __14.7 진행률 업데이트의 조절

    부록 A. 예전 플랫폼 지원
    부록 B. 비동기 패턴의 인식과 해석

    머리말

    ★ 지은이의 말 ★

    동시성과 멀티스레딩에 익숙하지 않은 개발자에게는 동시성이 그리 달갑지 않은 주제다. 그리고 그런 개발자는 무난한 코드를 가장 끔찍한 방식으로 동작하게 만든다. 경합 조건 등의 문제는 실제 제품에서든 데모에서든 항상 심각한 충돌을 유발한다. ‘스레드는 해롭다’고 잘라 말하면서 동시성을 아예 멀리하는 개발자도 있다. 동시성을 받아들여서 두려움 없이 사용하는 소수의 개발자도 있지만, 대부분의 개발자는 동시성 때문에 고통을 받은 경험이 있고 그런 경험은 쓴맛을 남겼다.
    하지만 요즘은 동시성이 필요한 애플리케이션이 빠르게 늘고 있다. 사용자는 완벽하게 반응하는 인터페이스를 기대하며 서버 애플리케이션은 유례 없는 수준으로 규모를 변경할 수 있어야 한다. 동시성은 이 두 가지 문제를 모두 해결한다.
    다행히 요즘은 동시성을 훨씬 쉽게 만들어 주는 라이브러리가 많다. 병렬 처리와 비동기 프로그래밍은 이제 마법의 영역이 아니다. 이런 라이브러리는 추상화 수준을 높여서 반응이 빠르고 규모 변경이 쉬운 애플리케이션의 개발을 실현할 수 있는 목표로 만들어 준다. 동시성이 지극히 어려웠던 과거에 쓴맛을 본 경험이 있다면 최신 도구로 다시 시도해 보기 바란다. 물론 동시성이 쉽다고 말할 수는 없지만 예전처럼 어렵지 않다고 확신한다.

     

     

    ★ 옮긴이의 말 ★

    ‘동시성’이라는 용어만 들으면 고개를 갸웃할지도 모르겠지만 비동기 프로그래밍, 병렬 처리, 멀티스레딩이 모두 동시성의 일종이다. 이런 기술을 들어보거나 사용해 본 적이 있겠지만 대부분 사용하기 쉽지만은 않았을 것이다. 물론 개발자마다 차이는 있겠지만 자신의 경험을 바탕으로 동시성이 어렵다고 생각하는 개발자가 많고 실제로도 그렇다. 동시성의 다양한 개념을 제대로 이해하기도 쉽지 않고 실제 코드로 작성하기도 쉽지 않다. 하지만 이미 이런 동시성을 활용하고 있는 서비스와 애플리케이션은 셀 수 없이 많고, 동시성을 사용하지 않고 만들 수 있는 애플리케이션은 거의 없을 정도다. 동시성은 계속 피하거나 미룰 수 없는 주제다. 앞으로도 개발자로 살아가고 싶다면 한 번쯤은 마음을 다잡고 정면으로 맞부딪쳐야 한다.
    이 책은 최신 닷넷 프레임워크와 C# 언어가 제공하는 동시성 기술과 동시성과 관련이 있는 다양한 기술을 폭넓게 소개하고 있다. 가장 큰 특징은 저자가 강조하듯이 스레드, 뮤텍스 같은 하위 레벨 개념에 관한 설명을 과감하게 생략하고, async/await, TPL 데이터 흐름, PLINQ 등 닷넷 프레임워크와 C# 언어가 제공하는 최상위 레벨의 개념을 설명한다는 점이다. 대부분 동시성을 다루는 책은 하위 레벨 개념을 설명하는 데 많은 지면을 할애하고 있지만, 이 책은 곧바로 실제 애플리케이션에 적용할 수 있는 상위 레벨의 개념만 잘 정리해서 간단하고 효율적인 예제와 함께 소개하고 있다. 물론 아무리 상위 레벨 개념만 소개한다 해도 책 한 권에 동시성에 관한 모든 내용을 자세하게 담을 수는 없다. 따라서 동시성에 관해 더 깊이 알고 싶다면 마이크로소프트 문서를 비롯한 많은 참고 자료를 찾아봐야 할 수밖에 없다. 하지만 그런 과정을 통해 동시성에 더 가까이 다가갈 수 있으리라 믿는다. 책은 얇지만, 끝까지 함께하는 여정은 절대 짧지 않을 수 있다. 부디 행운을 빈다.


     

    배송 시 유의사항

    - 반디앤루니스에서 구매하신 도서는 물류 대행 위탁업체 웅진 북센을 통해 배송됩니다.
     (배송 포장에 "웅진 북센"으로 표기될 수 있습니다.)

    - 구매한 상품의 품질과 배송 관련 문의는 반디앤루니스로 문의 바랍니다.

    - 천재지변 및 택배사의 사정에 따라 배송이 지연될 수 있습니다.

    - 결제(입금) 완료 후 출판사 및 유통사의 사정으로 품절 또는 절판 되어 상품 구입이 어려울 수 있습니다. (별도 안내 예정)

    - 도서산간지역의 경우 추가 배송비가 발생될 수 있습니다.

    반품/교환

    상품 설명에 반품/ 교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다)

    반품/교환

    반품/교환
    반품/교환 방법 홈 > 고객센터 > 자주찾는질문 “반품/교환/환불” 안내 참고 또는 1:1상담게시판
    반품/교환 가능 기간 반품,교환은 배송완료 후 7일 이내, 상품의 결함 및 계약내용과 다를 경우 문제발견 후 30일 이내에 신청가능
    반품/교환 비용 변심 혹은 구매착오의 경우에만 반송료 고객 부담(별도 지정 택배사 없음)
    반품/교환 불가 사유
    • 소비자의 책임 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    • 복제가 가능한 상품 등의 포장을 훼손한 경우 : 예)만화책, 잡지, 화보집 등
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    • 해외주문 상품(해외 원서)의 경우(파본/훼손/오발송 상품을 제외)
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
      소비자 분쟁해결 기준(공정거래위원회고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
      소비자 보호에 관한 법률에 따라 처리함
    반품/교환 주소 경기도 파주시 문발로 77, 웅진북센(반디앤루니스)
    • 회사명 : (주)서울문고
    • 대표이사 : 김홍구
    • 개인정보 보호책임자 : 김홍구
    • E-mail : bandi_cs@bnl.co.kr
    • 소재지 : (06168) 서울 강남구 삼성로 96길 6
    • 사업자 등록번호 : 120-81-02543
    • 통신판매업 신고번호 : 제2023-서울강남-03728호
    • 물류센터 : (10881) 경기도 파주시 문발로 77 반디앤루니스
    copyright (c) 2016 BANDI&LUNI'S All Rights Reserved