본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

Go로 배우는 함수형 프로그래밍 함수형 프로그래밍을 통해 애플리케이션 접근 방식 바꾸기

프로그래밍 언어
렉스 시한 지음 | 차서일 옮김 | 에이콘출판 | 2019년 05월 24일 출간

이 책의 다른 상품 정보

  • 정가 : 40,000원
    판매가 : 36,000 [10%↓ 4,000원 할인]
  • 혜택 :
    [기본적립] 2000원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(24일,토) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791161752952(1161752951)
쪽수 748쪽
크기 189 * 235 * 40 mm /1365g 판형알림
이 책의 원서/번역서 Learning Functional Programming in Go / Lex Sheehan

책소개

이 책이 속한 분야

함수형 프로그래밍을 배우고자 하는 개발자를 위한 책이다. Go 언어로 함수형 프로그램을 개발하기 위한 기초 문법부터 수준 높은 이론에 이르기까지 지루하지 않게 설명한다. Go 언어에 친숙한 독자라면 모든 준비를 갖춘 셈이지만, 설령 그렇지 않은 독자라 하더라도 책을 읽는 것은 어렵지 않을 것이다.

작가의 말

최근까지도 Go와 함수형 프로그래밍(Functional Programming)의 조합에 대해서는 “하지 마.”라는 반응이 주를 이뤘다.
함수형 프로그래밍은 멀티 코어, 병렬 처리에 안성맞춤이다. Go는 병행성(concurrency) 지원이 훌륭하고(고루틴, 채널 등), 이미 모든 종류의 CPU 코어와 호환된다. 함수형 프로그래밍은 복잡도를 낮춘다. 간결함은 Go의 가장 큰 힘이다.
Go에 함수형 프로그래밍을 적용할 경우, 어떤 점으로 인해 소프트웨어 응용이 실질적으로 개선될까? 함수형 프로그래밍은 다음을 제공한다.
■ 합성: 함수형 프로그래밍은 응용 소프트웨어를 작은 빌딩 블록으로 나누고 재구성하기 위한 방법을 보여준다.
■ 모나드: 모나드(monad)를 사용하면 작업 흐름을 데이터 변환 파이프라인의 형태로 안전하게 정돈할 수 있다.
■ 오류 처리: 관용적 Go 코드들과의 호환성을 유지하면서 모나드 오류 처리를 활용할 수 있다.
■ 성능: 참조 투명성이 보장되면, 함수를 한 번 실행한 후 재실행할 때 앞서 계산한 값을 재사용할 수 있다.
■ 표현력 높은 코드: 함수형 프로그래밍은 코드의 비즈니스 목표를 간결하게 표현하게 해준다. 함수가 하는 일을 선언할 수 있도록 하되, 매 함수 호출마다 오류 검사를 끼워 넣는 번잡함을 줄이고 상태 변화를 추적할 필요를 없앤다(순수 함수는 곧 불변 변수를 뜻한다).
■ 단순한 코드: 공유 데이터가 없다는 것은 세마포어, 락, 경쟁 조건, 데드락을 다루지 않아도 된다는 의미다.
많은 이들이 함수형 프로그래밍의 핵심을 파악하는 데 어려움을 겪는다. 나도 그랬다. 하지만 이해하고 나니 이 책을 쓰게 됐다. 함께 여행을 떠나보자. 앞으로 수백 개의 도표와 이해하기 쉬운 설명을 보게 될 것이며, Go로 함수형 프로그래밍을 구현하게 될 것이다.
나는 축구 코칭을 즐긴다. 내가 코치로서 성공했는지를 시험하고자 사용한 리트머스 용지는 다음과 같은 질문 하나다. ‘다음 시즌에도 모든 수강생이 이어서 등록하고 나를 코치로 지명했는가?’ 실전에서 계획하듯 나는 각 장에 들어갈 내용을 기획했고, 간단한 개념으로부터 시작했다. 이 책을 읽어라. 그러면 “이해했어.”라고 말할 수 있게 될 것이다. 함수형 프로그래밍 스킬을 향상시키고자 한다면, 이 책이 딱이다.

목차

지은이 소개
감사의 글
기술 감수자 소개
옮긴이 소개
옮긴이의 말
들어가며

1장. Go로 순수 함수형 프로그래밍하기
__함수형 프로그래밍의 사용 동기
__소스 코드 얻기
__명령형 프로그래밍과 선언적 프로그래밍
__순수 함수들
__피보나치 수열: 간단한 재귀와 두 가지 성능 향상
__익명 함수와 클로저의 차이
__테스트 주도 개발을 사용해 함수형 프로그래밍 테스트하기
__명령형 언어에서 순수 함수형 프로그래밍으로의 여행과 깨달음
__요약

2장. 컬렉션 다루기
__컬렉션 순회
__배시 명령어 파이핑
__함자
__술어
__맵과 필터
__Contains 연산
__Go가 제네릭을 지원했다면
__Itertools
__함수 패키지
__Another time of reflection
__치료
__요약

3장. 고계 함수 사용하기
__함수형 프로그래밍의 특징
__고계 함수 응용 사례
__요약

4장. Go로 하는 SOLID 설계
__고퍼들이 자바를 꺼리는 이유
__소프트웨어 설계 방법
__SOLID 설계 원칙
__대발견
__Viva La Duck
__요약

5장. 데코레이션으로 기능 추가하기
__인터페이스 합성
__데코레이터 패턴
__요약

6장. 함수형 프로그래밍을 아키텍처에 적용하기
__애플리케이션 아키텍처
__시스템 공학의 역할
__복잡도 관리
__함수형 프로그래밍이 아키텍처에 준 영향
__도메인 주도 설계
____의존성 규칙
__도메인 주도 설계
____인터페이스 기반 개발
____할리우드 원칙
__클라우드 버킷 애플리케이션
__함수형 프로그래밍과 마이크로서비스들
__요약

7장. 함수형 매개변수
__긴 매개변수 목록 리팩토링
____매개변수가 일곱 개를 넘는 함수 시그니처의 잘못된 점
____리팩토링
____OOP는 잘못된 아이디어다
____리팩토링 자세히 보기
____해법
__함수형 매개변수
__컨텍스트
____Context 제약
____좋은 코드 작성과 축구 경기의 공통점
____좀 더 실용적인 Context 용례
__요약

8장. 파이프라인을 이용한 성능 향상
__파이프라인 패턴 소개
____grep sort 예제
____파이프라인 특징
____예제
__구현 사례들
____명령형 구현 사례
____병행 구현 사례
____버퍼를 사용한 구현 사례
____향상된 구현 사례
____유효하지 않은 데이터 처리 시험
__요약

9장. 함자, 모노이드, 제네릭
__함자 이해하기
__메타프로그래밍을 통해 제네릭 부재 문제 해결
__제네릭 코드 생성 도구
__제네릭 구현 옵션
__함자의 형태
__합성 연산
__법적 의무라는 문맥에서의 함수 합성
__12시간 표시 시계 함자
__car 함자
__모노이드
__모노이드 예제
__요약

10장. 모나드, 타입 클래스, 제네릭
__테레사 수녀 모나드
____바인드 연산
____승급 연산
____모나드 함수
____모나드 리스트 함수
__모나드 작업 흐름 구현
____람다 계산
__Y-컴비네이터
__또 다른 작업 흐름 옵션
__비즈니스 유스케이스 시나리오
__Y-컴비네이터 다시 보기
____꼬리 재귀란 무엇인가?
____Big-Oh 표기
__타입 클래스
__제네릭 복습
__요약

11장. 카테고리 이론의 적용
__목표
____나눠보기
____대수와 미지
____대수의 실세계 응용
____대수의 기본 법칙
____수학에서의 대응성
__증명 이론
__커리-하워드 동형
__함수형 프로그래밍의 역사적 사건들
__프로그래밍 언어의 카테고리
__람다 계산
__함수형 프로그래밍에서 타입 시스템의 중요성
__정의역, 변역, 사상
__집합론 기호들
__카테고리 이론
__사상
__준동형 사상
__합성 가능한 병행성
__그래프 데이터베이스 예제
__수학과 카테고리 이론을 이용해 이해하기
__합, 곱, 지수, 타입을 가지고 놀기
__빅데이터, 지식 기반 개발, 데이터 가시화
__요약

부록. 다양한 정보와 따라 하기
__Go 프로젝트 빌드하고 실행하기
__개발 작업 흐름 요약
__Go에 변경 제안하기
__함수형 프로그래밍 관련 자료들
__명안도-카탈랑 수

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 카테고리 이론과 논리학, 타입 이론, 함수형 프로그래밍 사이의 깊은 연관 관계
■ 고계 함수를 다른 함수에 넘겨주거나 다른 함수로부터 반환받기
■ 코드의 가독성, 확장성, 유지 보수성 향상 방안
■ 데코레이터 패턴을 사용해 잘 동작하는 애플리케이션 합성하기
■ 제네릭의 개념과 Go 언어의 제네릭 지원 필요성
■ Go 타입과 구조체의 행위를 정의하기 위한 타입 클래스 구현
■ 모나드의 개념 및 비순수 연산 체인화를 위한 모나드 사용법 학습
■ 일체형 애플리케이션을 재사용성 높은 컴포... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

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

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품