출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

타입스크립트 디자인 패턴 - acorn+PACKT 시리즈 차세대 자바스크립트 표준으로 배우는 핵심 소프트웨어 아키텍처
원제 : TypeScript Design Patterns
ISBN : 9788960779914 / 308쪽 189 x 237 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
장세림
-
김현철, 신은경, 이민정, 박선우, 정기민, 곽소아, 정문수
- 21,600
- 21,600
- 21,420
- 20,700
출판사 리뷰
타입스크립트 디자인 패턴(acorn+PACKT 시리즈) - 인터넷교보문고 jQuery.noConflict(); var _gaq \u003d _gaq || []; _gaq.push(['_setAccount', 'UA-27007826-1']); _gaq.push(['_setDomainName', 'kyobobook.co.kr']); _gaq.push(['_trackPageview']); (function() { var ga \u003d document.createElement('script'); ga.type \u003d 'text/javascript'; ga.async \u003d true; ga.src \u003d ('https:' \u003d\u003d document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s \u003d document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); // mobile 사이트 이동 var userAgentInfo \u003d navigator.userAgent; var chkAgentArr \u003d 'Android,iPhone,iPad'.split(','); var chkRslt \u003d false; if(userAgentInfo) { for(var idx\u003d0;!chkRslt&&idx-1) chkRslt\u003dtrue; } } var m_redirect_barcode \u003d '9788960779914'; if(chkRslt) { if(location.href.indexOf(\"detailViewKor.laf\")>-1){ location.replace(\"http://mobile.kyobobook.co.kr/showcase/book/KOR/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewEng.laf\")>-1 && location.href.indexOf(\"ejkGb\u003dENG\")>-1){ /* 양서 */ location.replace(\"http://mobile.kyobobook.co.kr/showcase/book/ENG/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewEng.laf\")>-1 && location.href.indexOf(\"ejkGb\u003dBNT\")>-1){ /* 양서(해외주문) */ location.replace(\"http://mobile.kyobobook.co.kr/showcase/book/BNT/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewEng.laf\")>-1 && location.href.indexOf(\"ejkGb\u003dJAP\")>-1){ /* 일서 */ location.replace(\"http://mobile.kyobobook.co.kr/showcase/book/JAP/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewEng.laf\")>-1 && location.href.indexOf(\"ejkGb\u003dJNT\")>-1){ /* 일서(해외주문) */ location.replace(\"http://mobile.kyobobook.co.kr/showcase/book/JNT/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewMuc.laf\")>-1){ location.replace(\"http://mobile.kyobobook.co.kr/showcase/medium/MUC/\"+m_redirect_barcode); } else if(location.href.indexOf(\"detailViewDvd.laf\")>-1){ location.replace(\"http://mobile.kyobobook.co.kr/showcase/medium/DVD/\"+m_redirect_barcode); } } //javascript .trim() function 오버라이드 String.prototype.trim \u003d function(){ return this.replace(/(^\\s*)|(\\s*$)/g, \"\"); } //url에 orderClick과 Kc값을 받아 add처리 해준다. function pd_makeClickParamUrl(linkUrl , orderClick , Kc){ var clickParam \u003d \"\"; if(typeof(orderClick) !\u003d 'undefined'){ if(orderClick.trim() !\u003d \"\"){ clickParam \u003d \"orderClick\u003d\"+orderClick.trim(); } } if(typeof(Kc) !\u003d 'undefined'){ if(Kc.trim() !\u003d \"\"){ clickParam \u003d (clickParam.trim() !\u003d \"\")?(clickParam+\"&Kc\u003d\"+Kc.trim()) : \"Kc\u003d\"+Kc.trim(); } } if(clickParam.trim() !\u003d \"\"){ linkUrl \u003d (linkUrl.indexOf(\"?\") \u003d\u003d -1)?(linkUrl+\"?\"+clickParam) : (linkUrl+\"&\"+clickParam); } return linkUrl; } //팝업(시리즈(seriesBookDetail)/총서(libraryBookDetail)/본문검색(bodyMatterSearch),북로그리뷰(memberReviewDetail),책속의 한문장(oneLineDetail)) function pd_goMultiPopupOpener(popupMode,orderClick,Kc){ jQuery(\"#multiPopupFrm\").find(\"input:[name\u003dpopupMode]\").val(popupMode); var popWidth \u003d 0; var popHeight \u003d 0; if(popupMode \u003d\u003d 'bodyMatterSearch'){ //본문검색 jQuery(\"#multiPopupFrm\").find(\"input:[name\u003ddocId]\").val(jQuery(\"#bodyMatterDocId\").val()); jQuery(\"#multiPopupFrm\").find(\"input:[name\u003dquery]\").val(jQuery(\"#bodyMatterQuery\").val()); popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'memberReviewDetail'){ //북로그리뷰 popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'oneLineDetail'){ //책속의 한문장 popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'seriesBookDetail'){ //이 책의 시리즈 popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'libraryBookDetail'){ //이 책의 총서 popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'mediaSellerDetail'){ //이 책의 미디어셀러 popWidth \u003d 760; popHeight \u003d 700; }else if(popupMode \u003d\u003d 'relationBookDetail'){ //이 책의 연관도서 popWidth \u003d 760; popHeight \u003d 700; } window.open('','multiPopup','width\u003d'+popWidth+',height\u003d'+popHeigh
★ 지은이의 말 ★
타입스크립트는 자바스크립트를 위한 훌륭한 도구임에 틀림없다. 허나 실제로 안정적이고 유지보수를 할 수 있고 재사용 가능한 코드를 작성하기 위해서는 개발자의 지적 탐구가 필요하다. 하지만 이러한 지적 탐구 부분이야말로 우리가 하는 일의 진정한 가치이지 않겠는가?
우리 모두는 이해할 수 없는 버그에 대한 단서를 찾는 데 어려움을 겪었거나 기존 코드 기반에 새로운 기능을 추가하는 방법을 심각하게 고심한 적이 있을 것이다. 일부 사람들은 몇 년간 구축한 경험과 직관력으로 나쁘지 않은 디자인을 직접 내놓을 수 있다. 하지만 이 경우 오랜 기간을 거쳐 잘 정리하고 분류한 공통적인 디자인 패턴 지식은 많은 도움이 된다. 또한 다른 사람들과 소프트웨어 디자인에 대해 논의할 때도 깊이 있는 이해가 가능하다. 경험이 많지 않을 경우 공통적인 디자인 패턴에 대한 학습은 훌륭하게 설계된 코드를 작성하는 가장 빠른 방법일 수 있다.
★ 옮긴이의 말 ★
자바스크립트는 더 이상 스크립트라는 단어가 어울리지 않을 정도로 단순한 웹 스크립트 언어를 넘어 프론트엔드부터 백엔드까지 넘나드는 전천후 언어가 된 지 오래다. 따라서 문제는 자바스크립트를 어떻게 더 효율적이고 유연하게 활용할 수 있느냐에 달렸다. 타입스크립트는 이러한 시대적 요구와 필요에 의해 탄생했다. 타입스크립트를 통해 언어 춘추 전국 시대에 언어 종속성을 넘어 개발의 자유로움 제공하며 새롭고 혁신적인 기능을 유연하게 추가할 수도 있다. 여기에 더해 타입스크립트는 자바스크립트와 완벽하게 호환되므로 기존 개발자들의 진입 장벽도 높지 않다. 또한 타입스크립트를 지원하는 다양한 IDE나 편집기가 존재하므로 높은 개발 생산성도 유지할 수 있다. 이미 앵귤러(Angular) 2는 메인 코드로 타입스크립트를 채택했으며 향후 타입스크립트를 채택한 프레임워크가 지속적으로 증가할 것으로 예상된다.
디자인 패턴은 안정적이고 효율적인 프로그래밍을 원한다면 반드시 알아야 할 소프트웨어 공학의 핵심 요소로 그 이유는 부차적인 설명이 필요하지 않을 듯하다. GoF가 C++로 디자인 패턴을 설명한 이래로 자바를 비롯한 다양한 언어로 디자인 패턴의 개념을 설명한 수많은 자료나 책이 존재하고 있다. 이처럼 디자인 패턴은 그야말로 시대와 언어를 뛰어넘는 프로그래밍 분야의 지혜의 산물이라 할 수 있다.
이처럼 타입스크립트와 디자인 패턴은 언어 자체와 설계 방식이라는 측면에서 각각 가장 효과적이고 범용적인 해법에 대한 고민 끝에 탄생했다는 점에서 그 목적이 서로 맞닿아 있다. 그리고 이 책에서는 차세대 타입스크립트와 전설적인 디자인 패턴의 만남을 통해 타입스크립트에 대한 이해와 더불어 최적의 설계 방식도 함께 고려하도록 한다. 따라서 책 내용에는 타입스크립트와 관련된 설치부터 배포까지 전반적인 워크플로우와 개발 프로세스에 대한 설명도 함께 포함돼 있다.
이 책의 독자는 분명 새로운 세계에 대한 호기심과 열정으로 가득 차 있음에 틀림없을 것이다. 그렇지 않다면 타입스크립트라는 새로운 언어와 디자인 패턴이라는 지혜를 배우려고 하지 않았을 테니까 말이다. 아무쪼록 그 호기심과 열정에 이 책이 마중물이 되기 바라며, 이 책의 모든 독자 분들이 자바스크립트 세상에서 과거와 현재 그리고 미래를 연결하는 주역이 되길 바란다.
우리 모두 자바스크립트의 미래, 타입스크립트에서 만나자!
1장. 도구와 프레임워크
__사전 설치사항
____Node.js 설치
____타입스크립트 컴파일러 설치
__유용한 편집기 선정
____Visual Studio Code(이하 VSC)
____서브라임 텍스트 + 타입스크립트 플러그인
____다른 편집기와 IDE 선택
__워크플로우 작업
____타입스크립트 프로젝트 구성
____typings를 이용한 선언 다운로드
____선언 파일 다운로드
____모카와 이스탄불을 이용한 테스트
____카르마를 이용한 실제 브라우저에서의 테스트
____npm을 이용한 명령 통합
____기타 유용한 빌드 도구에 관해
__요약
2장. 복잡성 증가에 대한 도전
__기본사항 구현
____코드 기반 생성
____동기화 할 데이터의 초기 구조 정의
____타임스탬프를 비교하여 데이터 가져오기
____양방향 동기화
____기본 구현 과정에서 잘못된 점
__기능 추가
____여러 항목 동기화
____여러 타입의 데이터 동기화
____증분 데이터를 이용한 멀티 클라이언트 지원
____더 많은 충돌 병합 지원
____전체 구현 과정에서 잘못된 점
__문제 해결
____추상화 찾기
____전략 구현
____저장소 래핑
__요약
3장. 생성 디자인 패턴
__팩토리 메서드
__추상 팩토리
__빌더
__프로토타입
__싱글톤
____기본 구현
____조건부 싱글톤
__요약
4장. 구조 디자인 패턴
__컴포지트 패턴
__데코레이터 패턴
__어댑터 패턴
__브릿지 패턴
__퍼사드 패턴
__플라이웨이트 패턴
__프록시 패턴
__요약
5장. 행동 디자인 패턴: 1부
__책임 연쇄 패턴
__명령 패턴
__메멘토 패턴
__반복자 패턴
__중재자 패턴
__요약
6장. 행동 디자인 패턴: 2부
__전략 패턴
__상태 패턴
__템플릿 메서드 패턴
__관찰자 패턴
__방문자 패턴
__요약
7장. 자바스크립트 및 타입스크립트의 패턴과 아키텍처
__프라미스 기반 웹 아키텍쳐
____기존 모듈이나 라이브러리에 프라미스 적용하기
____익스프레스에서의 뷰와 컨트롤러
____응답의 추상화
____권한의 추상화
____예상되는 에러
__프로젝트 모듈화
__비동기 패턴
____예측 가능한 코드 작성
____비동기 생성 패턴
____비동기 미들웨어와 훅
____이벤트 기반 스트림 파서
__요약
8장. SOLID 원칙
__단일 책임 원칙
____예제
____축 선택
__개방 폐쇄 원칙
____예제
____자바스크립트와 타입스크립트에서의 추상화
____선제적 리팩토링
__리스코프 치환 원칙
____예제
____치환의 제약조건
__인터페이스 분리 원칙
____예제
____알맞은 세분화
__의존 관계 역전 원칙
____예제
____계층 분리
__요약
9장. 엔터프라이즈 애플리케이션으로 가는 길
__애플리케이션 생성
____SPA와 ‘일반’ 웹 애플리케이션 사이의 결정
____팀 협업 고려하기
__프로젝트 구축과 테스트
____웹팩을 이용한 정적 자산 패키징
____프로젝트에 TSLint 추가
____npm 스크립트로 webpack과 tslint 명령 통합
__버전 제어
____깃 플로우
____PR 기반 코드 검토
____커밋 전 테스트
__지속적인 통합
____깃허브 리파지토리와 트래비스 CI 연결
__배포 자동화
____깃 서버 측 훅을 기반으로 한 수동형 배포
____타이머나 알림을 기반으로 한 능동형 배포
__요약








































