장바구니 담기 close

장바구니에 상품을 담았습니다.

Functional C# - C#으로 배우는 함수형 프로그래밍

Functional C# - C#으로 배우는 함수형 프로그래밍

  • 위스누앤거로
  • |
  • 에이콘출판
  • |
  • 2019-02-28 출간
  • |
  • 472페이지
  • |
  • 188 X 235 X 27 mm
  • |
  • ISBN 9791161752754
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
27,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 함수형 접근 방식에 따른 응용 프로그램 개발
■ 함수형으로 작성한 코드의 단위 테스팅
■ 함수형 프로그래밍 기반의 효율적인 코드 생성
■ LINQ 질의를 이용한 데이터 처리
■ 응용 프로그램 응답성 개선을 위한 비동기 프로그래밍 활용
■ 함수형 코드에서 재귀를 이용한 코드 단순화
■ 프로그램 코드 최적화를 위한 지연과 캐시 기법

★ 이 책의 대상 독자 ★

이 책은 C#의 기본적인 사항들에 대해 어느 정도 이해하고 있는 개발자들에게 적합하며, 함수형 프로그래밍에 대한 사전 지식은 필요하지 않다.

★ 이 책의 구성 ★

1장, ‘C#으로 함수형 스타일 맛보기’에서는 함수형 프로그래밍의 개념, 명령형 프로그래밍과 비교를 통해 함수형 프로그래밍 접근법을 소개한다. 간단한 명령형 코드를 함수형으로 리팩토링해본다.
2장, ‘대리자 살펴보기’에서는 대리자 정의, 문법, 사용법을 알아본다. 다양한 대리자 변형과 내장 대리자에 대해서도 살펴본다.
3장, ‘람다식을 이용한 무명 메서드 표현’에서는 대리자 개념과 대리자를 이용해서 무명 메서드를 만들고 사용하는 방법을 알아본다. 무명 메서드에 대해 충분히 이해한 다음에는 이를 람다식으로 변환하고 함수형 프로그래밍에 적용해본다.
4장, ‘확장 메서드로 객체 기능 확장하기’에서는 함수형 프로그래밍에서 확장 메서드가 갖는 장점을 자세하게 살펴본다. 확장 메서드의 사용 방법, 인텔리센스에서 새로운 메서드를 가져오는 방법, 다른 어셈블리에서 확장 메서드를 호출하는 방법 등도 알아본다.
5장, ‘LINQ를 이용해 컬렉션 조회하기’에서는 C#의 LINQ 연산자를 소개하고 LINQ 문법의 두 가지, 일반 프로그래밍 방식과 쿼리식 문법을 비교한다. 덧붙여 LINQ 프로세스에서 지연 실행이 무엇인지 살펴본다.
6장, ‘비동기 프로그래밍으로 함수형 프로그래밍의 반응성 개선하기’에서는 함수형 접근 방식에서 비동기 프로그래밍을 설명한다. 비동기 프로그래밍 모델(APM)과 태스크 기반 비동기 패턴(TAP)에 대해 알아본다.
7장, ‘재귀 호출’에서는 순환문과 비교해 재귀 호출이 갖는 장점을 기술하고, 직접 및 간접 재귀 호출에 대해 설명한다.
8장, ‘지연과 캐시 기법을 이용한 코드 최적화’에서는 함수형 프로그래밍 관점의 최적화라는 관점으로 지연과 캐시 기법에 대해 이야기한다.
9장, ‘패턴 이용하기’에서는 전통적인 스위치 케이스(switch-case) 작업에 비해 패턴을 이용할 때 얻을 수 있는 장점에 대해 살펴본다. 패턴 매칭과 모나드에 대해 논하면서 C# 7에서 새로 도입한 패턴 매칭 기능을 사용한다.
10장, ‘C#으로 함수형 프로그래밍하기’에서는 주어진 명령형 코드를 기반으로 함수형 코드를 개발하는 방법을 보여준다. 이전 장에서 배운 지식을 근간으로 함수형 접근법에 따라 애플리케이션을 만들어본다.
11장, ‘코딩 모범 사례와 함수형 코드 테스팅’에서는 함수형 접근 방법의 우수 사례를 설명하면서 숨김 없는 시그니처를 만들고 부작용에 대응하는 방법을 알아본다. 또한 코드를 도메인 논리와 변경 가능한 셸 내로 격리하고 단위 테스트를 수행한다.


목차


1장. C#으로 함수형 스타일 맛보기
__함수형 프로그래밍 소개
____정의, 스크립트, 세션 이해하기
____대체와 단순화를 이용한 해석
____함수형 프로그래밍의 함수 이해하기
__함수형 vs 명령형 접근 방식
__C# 컴파일러 준비
__함수형 프로그래밍의 개념
____퍼스트 클래스 함수와 고차 함수
____순수 함수
____재귀 함수
__C#과 함수형 프로그래밍
____수학적 개념을 이용한 함수형 프로그래밍 이해
____함수형 C#에 튜플 적용하기
____C#의 커링
____파이프라인
____메서드 체인
__명령형 코드를 함수형 코드로 바꾸기
____명령형 코드 접근 방식
____함수형 코드 접근 방식
____함수형 프로그래밍의 장점과 단점
__요약

2장. 대리자 살펴보기
__대리자 소개
____간단한 대리자
____멀티캐스트 대리자
__내장 대리자
____제네릭 대리자
____Action과 Func
__대리자의 가변성 구별
____공변성
____반공변성
__요약

3장. 람다식을 이용한 무명 메서드 표현
__무명 메서드란
____무명 메서드 만들기
____무명 메서드를 인수로 사용하기
____무명 메서드 작성 가이드
____무명 메서드의 장점
__람다식
____무명 메서드를 람다식으로 변환하기
____람다식으로 대리자 형식 만들기
____식 트리와 람다식
__람다식을 이용한 이벤트 구독
____event 키워드
____EventHandler와 EventHandler
__함수형 프로그래밍에서 람다식의 강점
____퍼스트 클래스 함수
____클로저
__요약

4장. 확장 메서드로 객체 기능 확장하기
__확장 메서드와 친해지기
____확장 메서드 만들기
____인텔리센스 연계
__다른 어셈블리의 확장 메서드 호출
____네임스페이스 참조
____기존 네임스페이스 이용
____인터페이스, 컬렉션, object 활용하기
____인터페이스 확장
____컬렉션 확장
____object 확장
__함수형 프로그래밍에서 확장 메서드가 가지는 장점
__확장 메서드의 한계
____정적 클래스 확장
____기존 클래스나 형식의 메서드 구현 수정하기
__요약

5장. LINQ를 이용해 컬렉션 조회하기
__LINQ란 무엇인가
__LINQ의 실행 지연
__플루언트 구문과 질의 식 비교
____LINQ 플루언트 구문
____LINQ 질의 식
__표준 질의 연산자
____필터링
____투영
____조인
____정렬
____그룹화
____집합 연산
____변환 메서드
____요소 연산
__요약

6장. 비동기 프로그래밍으로 함수형 프로그래밍의 반응성 개선하기
__반응형 응용 프로그램 개발
____동기식 프로그램 실행
____스레드 사용하기
____스레드 풀을 이용한 스레드 생성
__비동기 프로그래밍 모델 패턴
____동기식 Read( ) 메서드
____BeginRead( )와 EndRead( )
____LINQ를 이용한 BeginRead( ) 메서드 호출
__태스크 기반 비동기 패턴
____Task와 Task 클래스
____간단한 TAP 모델 적용하기
____WhenAll( ) 확장 메서드
____TAP 모델로 APM 감싸기
__async, await 키워드를 이용한 비동기 프로그래밍
__함수형 프로그래밍의 비동기 함수
__요약

7장. 재귀 호출
__재귀 호출에 대해
____재귀 호출의 동작 방식
____반복을 재귀 호출로 리팩토링하기
__꼬리 재귀
____누적기 전달형
____연속 전달형
____직접 재귀와 간접 재귀
__LINQ Aggregate를 이용한 함수형 재귀 호출
____Aggregate 메서드
__요약

8장. 지연과 캐시 기법을 이용한 코드 최적화
__지연이란
____지연 열거
____지연 평가
____엄격하지 않은 평가
____지연 초기화
____지연의 장단점
__값비싼 자원 캐시하기
____사전 연산
____메모화
__요약

9장. 패턴 이용하기
__함수형 프로그래밍의 패턴 매칭
____패턴 매칭을 이용한 데이터 변환
____패턴 매칭을 위한 분기
____패턴 매칭 간소화
____C# 7의 패턴 매칭
__모나드 설계 패턴 소개
____모나드 M 형식 만들기
____모나드에 제네릭 데이터 형식 구현하기
____Lazy와 Task로 모나드 구현하기
____모나드 패턴 규칙
__요약

10장. C#으로 함수형 프로그래밍하기
__함수형 윈도우 폼 개발
____폼 이면의 코드 작성
____명령형 접근 방식의 계산 엔진 구현
__요약

11장. 코딩 모범 사례와 함수형 코드 테스팅
__함수형 C#으로 살펴보는 코딩 모범 사례
____모호한 시그니처 방지
____변경 가능한 클래스를 변경 불가능하게 리팩토링하기
____변경 가능성 및 일시적인 결합의 방지
____부작용에 대한 대응책
__도메인 논리와 가변 셸로 코드 분리하기
____부작용이 있는 코드 확인
____AddRecord( ) 메서드 리팩토링
____RemoveRecord( ) 메서드 리팩토링
____단위 테스트에서 도메인 논리 실행하기
____코드에 가변 셸 추가하기
__요약

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.