FREE SHIPING FOR OVER $100 - MOSTLY SHIP VIA USPS GROUND ADVANTAGE %D days %H:%M:%S
위스누앤거로
C#MCP이자뛰어난C/C++개발자며,『Boost.AsioC++NetworkProgramming-SecondEdition』(Packt,2015)의저자다.20여년전,중학생이었을때MS-DOS환경에서BASIC언어를이용한프로그래밍을시작했다.이후데스크톱이나웹응용프로그램뿐만아니라C#과C/C++를이용한SIM카드운영체제포팅,개인화,PC/SC통신등과관련한스마트카드프로그래밍분야에서남다른경력을쌓아왔다.현재는인도네시아의스마트카드관련기술과혁신을주도하는회사인CIPTA에서수석스마트카드소프트웨어엔지니어로일하고있다.
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장.재귀호출__재귀호출에대해____재귀호출의동작방식____반복을재귀호출로리팩토링하기__꼬리재귀____누적기전달형____연속전달형____직접재귀와간접재귀__LINQAggregate를이용한함수형재귀호출____Aggregate메서드__요약8장.지연과캐시기법을이용한코드최적화__지연이란____지연열거____지연평가____엄격하지않은평가____지연초기화____지연의장단점__값비싼자원캐시하기____사전연산____메모화__요약9장.패턴이용하기__함수형프로그래밍의패턴매칭____패턴매칭을이용한데이터변환____패턴매칭을위한분기____패턴매칭간소화____C#7의패턴매칭__모나드설계패턴소개____모나드M형식만들기____모나드에제네릭데이터형식구현하기____Lazy와Task로모나드구현하기____모나드패턴규칙__요약10장.C#으로함수형프로그래밍하기__함수형윈도우폼개발____폼이면의코드작성____명령형접근방식의계산엔진구현__요약11장.코딩모범사례와함수형코드테스팅__함수형C#으로살펴보는코딩모범사례____모호한시그니처방지____변경가능한클래스를변경불가능하게리팩토링하기____변경가능성및일시적인결합의방지____부작용에대한대응책__도메인논리와가변셸로코드분리하기____부작용이있는코드확인____AddRecord()메서드리팩토링____RemoveRecord()메서드리팩토링____단위테스트에서도메인논리실행하기____코드에가변셸추가하기__요약찾아보기
★이책에서다루는내용★■함수형접근방식에따른응용프로그램개발■함수형으로작성한코드의단위테스팅■함수형프로그래밍기반의효율적인코드생성■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장,‘코딩모범사례와함수형코드테스팅’에서는함수형접근방법의우수사례를설명하면서숨김없는시그니처를만들고부작용에대응하는방법을알아본다.또한코드를도메인논리와변경가능한셸내로격리하고단위테스트를수행한다.