|
타입스크립트는 스택 오버플로우가 진행한 2019년 개발자 설문조사에서 가장 사랑받는 언어로 선정되었다 다양한 도구와 통합 개발 환경을 지원하며, 자바스크립트 라이브러리의 장점과 동시에 안정적인 타입 정의를 할 수 있다는 점을 타입스크립트의 장점으로 꼽을 수 있다 타입스크립트는 객체의 프로퍼티에 존재하는 오타 찾기가 아닌, 당장 직면한 중요한 문제에 집중할 수 있도록 해준다 타입스크립트 프로그램은 자바스크립트 프로그램보다 런타임 오류가 발생할 확률이 아주 적다 게다가 많은 IDE들이 타입스크립트에 대한 뛰어난 지원과 프로젝트에 사용하는 서드파티 라이브러리의 API를 안내해 준다는 점 역시 장점으로 생각할 수 있다
예제코드 저자의 GitHUb: https://github.com/yfain/getts
이 책의 강의영상 https://www.youtube.com/sujinleeme
역자의 블로그
역자의 트위터 https://twitter.com/sujinleeme
타입스크립트 도입을 망설이는 이유 1. 타입스크립트는 러닝 커브가 높다 타입스크립트는 자바스크립트의 상위 집합으로 기존 자바스크립트 문법을 그대로 사용한다
2. 자바스크립트가 표준이다 오늘날 타입스크립트는 최신 ECMA스크립트를 지원한다 트랜스 파일러 덕분에 구 브라우저에서도 문제 없이 실행된다 때문에 자바스크립트 최신 문법을 사용하면서 크로스 브라우징 이슈를 해결하기 원한다면 타입스크립트가 가장 좋은 선택이다
3. 자바 스크립트 프로젝트를 타입스크립트로 마이그레이션하기 힘들다 컴파일러 옵션을 사용해 일부 모듈만 타입스크립트로 제품을 마이그레이션 한 모 회사의 경우, 타입스크립트로 100% 마이그레이션 하기까지 1년이 넘는 시간이 걸렸다고 한다 그럼에도 마이그레이션을 진행한 이유는 장기적인 관점에서 볼 때 타입스크립트 프로젝트가 개발 생산성과 프로젝트 유지 보수 측면에서 그만한 가치가 있기 때문이다
이 책은 자바스크립트 문법과 기초 지식을 정리하고, 타입스크립트의 주요 개념을 학습하여 실제 프로젝트에 타입스크립트를 적용할 수 있는 훌륭한 입문 서적이다 리액트, 뷰, 앵귤러에서 타입스크립트를 도입한 블록체인 앱 개발을 경험할 수 있다
두 저자 모두 실습을 중시하므로 이 책 역시 실습을 위주로 작성되었다 기본적인 코드 샘플을 통해 언어 문법을 설명할 뿐 아니라 다양한 앱을 만들며 타입스크립트와 다른 라이브러리나 프레임워크를 결합하여 사용해본다
이 책의 구성 이 책은 크게 타입스크립트 문법 설명과 웹 개발 실습, 두 부분으로 구분된다 1부는 타입스크립트를 사용한 짧은 코드 스니펫들을 통해 이해를 도운다 2부에서는 타입스크립트를 사용해 블록체인 앱을 다양한 방식으로 만들어 본다
1장에서는 타입스크립트 기초를 다룬다 타입 스크립트로 간단한 프로그램을 만들어 본 후 자바스크립트 코드로 컴파일하는 과정을 배운다 타입스크립트 개발에 안성 맞춤인 마이크로소프트사의 VS CODE로 실습을 진행한다
2장에서는 변수와 함수 선언에 타입을 정의하는 방법을 설명한다 타입 키워드 선언, 클래스와 인터페이스를 사용한 커스텀 타입에 대해 알아보고 명목적과 구조적 타입 시스템의 차이에 대해 알아본다
3장에서는 클래스 상속과 추상화를 다룬다 타입스크립트 인터페이스가 구현 세부 사항을 신경쓰지 않고 클래스에 지정된 메서드를 강제로 부여하는 방법을 설명한다 인터페이스 프로그래밍에 대해서도 설명한다
4장에서는 열거 타입과 제네릭 타입에 대해 알아본다 열거 타입의 장점과 숫자형, 문자형 열거 타입의 문법을 알아보고 제네릭 타입의 장점과 이를 지원하는 클래스 인터페이스 함수의 작성법에 대해서 알아본다
5장에서는 데코레이터, 맵핑, 조건 타입에 대해 설명한다 타입스크립트의 심화 내용으로 이전 장에서 충분히 타입스크립트에 익숙해져야 이해할 수 있다
6장에서는 도구에 대해 설명한다 소스맵과 ESLint 사용법을 설명한다 웹팩으로 타입스크립트 앱을 컴파일하고 번들링하는 과정을 배운다 바벨을 사용해야 하는 이유에 대해서도 알게 된다
7장에서는 타입스크립트 앱에 자바스크립트 외부 라이브러리를 도입하는 방법을 설명한다 타입 정의를 한 파일의 역할에 대해 알아본 후, 직접 기존 타입스크립트 앱에 자바스크립트 외부 라이브러리를 추가하는 실습이 있다 마지막으로 기존 자바스크립트 프로젝트를 타입스크립트로 변환하는 과정을 알아본다
2부에서는 블록체인 앱에 타입스크립트를 적용한다 타입스크립트를 익히는데 블록체인이 무슨 관계가 있나 의문이 생길지도 모르지만 할 일 목록 앱을 만들기보다는 세간의 화두인 기술에 타입스크립트를 적용하는 게 더 좋다고 판단했기에 블록체인을 다루기로 했다 엄청난 앱을 만드는게 오히려 더 실용적이 될 수도 있다
이 프로젝트에서는 타입스크립트를 사용해 블록체인 애플리케이션을 함께 만들어본다 웹소켓과 더불어 실제 앵귤러, 리액트, 뷰 프로젝트를 실습해본다 관심있는 부분만 얽어도 좋다만 8장과 10장은 기초적인 개념들을 소개하고 있으니 참고하기 바란다
8장부터 본격적인 블록체인 애플리케이션 개발을 시작한다 해시 함수, 블록 마이닝 개념에 대해 알아보고 블록체인에 새로운 블록을 추가하기 위한 증명이 필요한 이유를 알아본다 블록체인 기초 지식을 학습한 후 맨 밑바닥부터 프로젝트를 만들어 본다 각 코드에 대한 설명과 더불어 실행 방법이 기술되어 있다
9장에서는 블록체인을 위한 웹 클라이언트를 만드는 방법을 설명한다 웹 프레임워크 대신에 HTML, CSS, 타입스크립트만을 사용한다 브라우저와 독립형 클라이언트 양쪽에서 사용 가능한 해시 생성 라이브러리를 만들어 본다 브라우저에서 타입스크립트를 디버깅하는 방법도 알아본다
10장에서는 메시지 서버에서 각 멤버 간 통신을 전파하는 기능을 만들어본다 타입스크립트로 Node.js와 웹소켓을 만들고 다수의 노드들이 상호 검증을 거쳐 올바른 블록 생성을 이끄는 합의 알고리즘을 구현해본다
11장에서는 타입스크립트를 사용한 앵귤러 웹 개발에 대해 간략히 소개한다
12장에서는 앵귤러 프레임워크와 타입스크립트로 개발된 블록체인 웹 클라이언트 코드를 살펴본다
13장에서는 리액트와 타입스크립트로 개발된 블록체인 웹 클라이언트 코드를 살펴본다
14장에서는 뷰와 타입스크립트로 개발된 블록체인 웹 클라이언트 코드를 살펴본다
부록 A는 ECMA스크립트 6, 7, 8에 도입된 문법이 수록되어 있다 클래스, 화살표 함수, 스프레드와 레스트 연산자, 구조 분해에 대해 배울 수 있다 async-await 키워드로 비동기 코드를 동기적으로 만드는 방법도 설명한다 최신 ECMA스크립트 문법과 타입스크립트 문법이 혼동된다면 먼저 부록 A부터 읽는 것이 좋다 그래야 ECMA스크립트와 타입스크립트의 경계를 알 수 있다
서평 타입스크립트의 끝판왕 서적이라고 해도 무방하다
자바스크립트와 타입스크립트에 조예가 아주 깊은 두명의 저자가 타입스크립트 입문자를 위해서 타입스크립트를 아주 쉽고 재미있게 배울 수 있도록 아주 짜임새 있게 구성한 책이다
역자 또한 프론트개발에 조예가 깊고 블로그와 트위터, 유튜브에서 다양한 활동들을 하고 있으며 좋은 책의 내용을 독자들에게 잘 전달하기 위해 번역품질에 매우 신경을 썼음을 느낄 수 있었다
역자의 말에서 역자의 타입스크립트와 자바스크립트의 내공과 열정을 느낄 수 있었으며 이런분이 번역을 했으면 정말 변역 품질이 높을 것 같다는 생각이 들었으며 타입스크립트를 진심으로 즐기고 있음을 느낄 수 있었다
이 책은 지루하게 이론 만 다루고 있지 않으며 타입스크립트 기초 부터 단게별로 실습위주로 배울 수 있게 구성되어 있다 1부 내용을 직접 실습하고 이해가 잘안되는 부분은 반복하면서 공부한 다음 2부에서는 단순한 앱이 아니라 무려 블록체인 앱을 개발 해본다
1부에서 타입스크립트 기초를 충분히 숙지한 다음 2부에서는 타입스크립트 기반으로 앵귤러, 리액트, 뷰, Node.js 를 사용해서 직접 블록체인 앱을 개발해본다 난이도가 있는 앱을 개발하는 것이기에 이 앱을 개발하면서 기술을 완벽히 숙지한다면 정말 많은 실력향상을 할 수 있고 실무에도 활용할만한 좋은 코드들이 많이 포함되어있어 정말 유용하다
책이 두꺼움에도 불구하고 군더더기 없이 정말 실속있고 유용한 코드와 예제들이 가득한 내용에 아주 충실한 타입스크립트 책인 것 같다
총평 타입스크립트가 매우 인기있고 자바스크립트의 많은 단점을 보완할 수 있는 언어로 각광을 받고 있지만 러닝커브와 다양한 문제로 인해 도입을 꺼려하고 있는 회사나 개발자들이 많은 것으로 알고 있다 전세계적으로 인정받고 있고 점유율이 높아져가는 데에는 이유가 있다고 생각한다 그동안 타입스크립트를 공부하기 위한 적절한 서적이 없었다고 한다면 바로 이 책으로 타입스크립트에 입문해보기를 권해본다 1부에서 타입스크립트 기본을 익히고 2부에서 블록체인 앱을 개발해본다면 타입스크립트를 사용하는 것에 두려움이 없어지고 타입스크립트를 활용해서 다른 애플리케이션을 개발하는 것에 대한 자신감을 가지게 될 것이다
그리고 출판사의 어느분 센스인지는 몰라도 책 표지가 정말 멋있다 ~!! 개발 도서에서 이런 표지는 거의 처음 보는 것 같은데 호랑이가 있고 호랑이 발톱모양의 오색 빛깔이 반짝 거린다 표지에도 정말 신경을 썻구나를 느낄 수 있었으며 영진닷컴의 품질 좋은 책을 만들기 위한 열정도 느껴졌다 !
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다
|
|
현재 주니어 개발자로 실무에서 타입스크립트를 사용 중인데, 여태까지 공식 문서나 구글링 등을 통해 필요할 때마다 개념을 찾아서 익히는 방식으로 작업해왔다. type, interface, generic, utility type 등 프론트엔드 실무에서 자주 쓰이는 타입스크립트의 문법들은 기본적으로 숙지하고 있었으나, 아직 스스로 타입스크립트를 잘 알고 있다고 확신할 수 없었다. 그러다가 우연한 기회로 영진닷컴의 타입스크립트 책을 접하게 되었다. 우선 빛에 반짝이는 표지가 상당히 예뻐서 공부 욕구를 뿜뿜 자극시킨다. 설레는 마음으로 책을 펼쳐들었다. 타입스크립트를 도입해야 하는 이유가 예시를 통해 논리적으로 잘 설명되어 있었고, 타입스크립트 앱의 배포과정이 그림을 통해 쉽게 설명되어 있던 것이 마음에 들었다. 그렇게 초반에는 책이 술술 잘 읽혔다.. 그런데 예제에서 class가 계속 등장하고 예제 코드가 점점 길어지다 보니, 어느 순간부터 책이 잘 안 읽히기 시작했다. 개인적으로 OOP에 대한 개념도 부족하고, 프론트엔드쪽에서는 class를 많이 안 쓰기 때문이라는 생각이 들었다. 그래도 이악물고 1부까지는 읽었으나 아직 내용을 온전히 이해했다고 보기는 어려운 것 같다. OOP에 대한 개념부터 다시 제대로 학습하고, 추후 다시 책을 읽어보면서 공부해야 할 것 같다. 2부에서는 앵귤러, 리액트, 뷰를 이용해 블록체인을 만드는 실습 과정이 포함되어 있다. 개인적으로 책만 읽으면서 공부하는 것 보다는 직접 만들면서 깨달아가는 과정을 선호하는 편인데, 이렇게 실습 파트가 포함되어 있다는 게 참 마음에 들었다. 또한 부록에 ES6 이후의 자바스크립트 문법에 대한 설명이 있는데 이 부분도 마음에 들었다. 굳이 다른 자바스크립트 책을 또 찾아보거나 구글링을 할 필요 없이 하나의 책에서 필요할 때마다 찾아볼 수 있다는 점이 좋았다. OOP에 대한 개념이 어느정도 있고, 앵귤러 or 리액트 or 뷰를 사용하고 있는 타입스크립트 입문자들에게 큰 도움이 될 수 있는 책인 것 같다.
[출판사로부터 도서를 제공받아 주관적으로 작성한 리뷰입니다.] |
|
출판사 관계자로부터 메일을 받았습니다. 타입스크립트 책에 대한 리뷰요청이었는데요. 요즘 제가 많이 사용하는 프로그래밍 언어가 타입스크립트이기 때문에 하겠다고 답변을 드렸습니다. 그래서 이 책을 받게 되었네요. 책을 받아보고는 살짝 놀랐습니다. 책표지가 범상치 않았거든요. 광택과 함께 호랑이가.... ., 저는 출퇴근 길에 책을 많이 보는 편인데요. 지하철에서 이 책을 들고 있으니 아저씨들이 관심을 가지십니다. ^^ 표지에 아우라가 관심을 끌었던 것 같군요. 책은 깔끔함은 주는 구성을 가지고 있었습니다. 앞쪽은 타입스크립트의 주요 내용을 설명해주고 뒷쪽에는 그 응용으로 블록체인 관련 어플리케이션 개발을 위해 타입스크립트를 어떻게 활용하면 되는지 서술해 주고 있습니다. 재미있는건, 프론트엔드 3대프레임웍이라 볼 수 있는 angular, react, vue를 하나씩 써서 블록체인 어플리케이션 개발에 활용할 수 있는 초안을 제시한다는 겁니다.
타입스크립트를 쓰는 이유는 정적타입을 지원하기 때문입니다. 또한 아직 브라우저에서 지원하지 않는 ECMA (자바스크립트 표준안)을 쓸 수 있기 때문입니다. 타입스크립트가 타입을 지원하는건 IDE와 함께 했을 때 크게 능력을 발휘하는 것 같습니다. 타입이 잘 정의 되어 있는 코드에 대해서 IDE가 지속적으로 힌트를 제공해 주기 때문에 코드 타이핑 속도가 빨라집니다. 그리고 브라우저가 아직 지원하지 않는 언어 스펙을 쓸 수 있다는 건, 상당히 편리한 개념인데요. 브라우저 업데이트에 따라 코드를 다시 작업할 필요가 없어지거든요. 이건 엄청난 장점이 아닐 수 없습니다. 사실 자바스크립트로 결과를 내놓는 슈퍼셋 언어들은 상당히 많이 있다고 합니다. 본문에서는 100여개가 넘는다고 이야기 해주고 있네요.
하지만 타입스크립트가 먼저나온 coffescript를 넘어서고 DART가 힘을 못쓰는 상황에서도 잘나가고 있는건, 그만큼 사용하기 쉽고, 많은 지원이 있기 때문 아닐까 싶습니다. 그리고 결정적으로 angular가 2.0으로 올라가면서 새로 시작할때 앵귤라를 지원하는 데코레이터를 typescript에 넣어준것도 큰 계기가 아닌가 싶습니다. 구글의 앵귤라 팀은 앵귤라를 구현할 스크립트를 따로 만들려고 계획하다가 typescript에서 데코레이터 기능을 넣어준다고 해서 타입스크립트를 쓰게 되었다고 하더군요.
타입스크립트를 만든 사람은 아네르스 하일스베르 입니다.
타입스크립트에 대해서 처음 접하고 관련 평을 검색하던 중, 타입스크립트를 만든 사람이 하일스베르라는 것을 알게 되었습니다. ( 이 책에서는 "하일즈버그"라고 미국식 발음을 썼네요 ) 어떤 사람이 게시판에 쓴 글이었는데요. "하일스베르가 우리를 구원하셨다!!!" 라고 했습니다. 자바스크립트를 사용하면서 힘들었던 부분을 타입스크립트가 많이 해소 했다고 느꼈기 때문에 그렇게 쓴것 같은데, 하일스베르라는 사람의 입지가 이 분야에서 엄청나다는 것을 알게 되었습니다. 그는 터보 파스칼, 델파이, C#, Typescript를 만든 개발자입니다. 물론 마이크로소프트에 처음 이직해서 J++을 만드는 실수를 범하기도 했지만 이분이 만든 프로그래밍 언어들은 매니아층을 만들기 충분한 매력이 있는 언어들이 었습니다. 특히 파스칼은 20대 초반에 발표했는데요. 제가 알기로는 이분 혼자서 작업해서 업체 관계자에게 보여줬다고 합니다. 한마디로 프로그래밍 언어 방면에 천재인 셈입니다. ( IT업계 천재들은 20대초반이 괄목할 만한 성과를 만드는 것 같습니다. 에혀.. 부럽다.. .) 즉 타입스크립트의 언어적 완성도는 의심할 필요가 없다는 거죠. 오버로딩에 대해 언급하는 부분을 보고, 왠지 모를 동질감에 휩싸였습니다.
객체지향 언어를 배우고 사용하다보면 직면하는 문제는 코드가 너무 복잡해진다는 것입니다. 저는 C++을 사용할 때 이 부분이 왜 그런지 정말 이해할 수 없었습니다. 하지만 <디자인패턴> 책이나 그 유명한 "스콧 마이어스"의 <이펙티브 C++> 책을 보면서 무엇이 문제인지 이해하기 시작했습니다. 지금은 절판되었지만, <GoF 디자인 패턴 이렇게 활용한다>라는 책도 크게 영감을 주었고요. 결정적 계기는 자바스크립트를 사용하면서 부터였습니다. 문제는 프로그래밍 언어에 있는게 아니라, 프로그래밍 언어를 사용하는 개발자의 머릿속에 있는 것이었습니다. 객체지향 언어를 사용하지만, 코드는 순차적 논리 전개에 빠져서 그걸 정리하는 데 언어 문법을 사용하기 때문입니다. 순차적 논리 전개가 문제인건 앞에 말씀드렸는데요. 그럼 그게 객체지향과 무슨 관련이 있냐고 반문하실 겁니다. 관련있습니다. 순차적인 논리 전개는 논리를 지속적으로 나열해 나가면서 결과만 취득하는 사고 방식입니다. 이렇게 작업하다보면 코드가 길고 복잡하게 되기 때문에 이걸 정리하겠다고 쓰는게 함수를 나누거나 분기하는 것이라고 했는데요. 이런 개발 습관을 가진 사람이 객체지향을 만나면, "오버로딩"을 합니다. 다시 말해서 순차적 논리에 의한 코드를 슈퍼 클래스에 모두 넣어 놓고, 함수를 분기 하듯 새로운 클래스를 슈퍼클래스에서 상속받은 다음 바뀌는 부분만 "오버로딩" 해서 쓰는 거죠. 하지만 이런 코드는 슈퍼클래스와 상속클래스 그리고 오버로딩한 함수들 모두를 묶어 버리는 문제가 있습니다. 다시 말해 수정이 힘든 코드가 되는 거죠. <디자인 패턴>책을 보면, 클래스와 인터페이스를 나누는 기준이 단하나의 책임을 부여하는 것이라는 걸 이해하게 됩니다. 그러나 오버로딩을 쓰는 코드는 이미 그걸 부정하는 코드가 되는거죠.
이 책은 제가 읽은 책 중, 타입스크립트가 주제인 책으로는 4번째로 읽은 책입니다. 타입스크립트 책들의 내용들을 떠올려보면, 비슷한 부분이 하나 있는데요. 타입스크립트 자체를 설명한 것 외에 내용이 책에 들어간다는 겁니다. 그 원인은 아마 타입스크립트를 쓰는 개발자라면 이미 자바스크립트를 알 가망성이 있고, 그렇다면 타입스크립트만 설명하는 것으로는 책을 쓰기 애매해서 그렇게 되지 않을까 싶습니다. 그런데 읽는 입장에서 타입스크립트 외의 내용들이 은근히 재미있습니다. 아마 의외성이 있고 타입스크립트를 배우는 목적을 채워 주기 때문 아닐까 싶습니다. 이 책에서는 그 부분을 블록체인 기술로 채웠습니다. 비트코인 같은 이슈가 블록체인 기술을 견인하는 것 같다는 느낌은 지울 수 없지만, 많은 사람이 인정하는 미래의 인증시스템이니, 개발자로서 관심을 가져야 할것 같습니다. 특히 블록체인 기술로 웹에서 무언가를 해야 하는 개발자라면, 이 책에 많이 도움이 되지 않을까 싶습니다. [출판사로부터 도서를 제공받아 주관적으로 작성한 리뷰입니다]
|
|
실무를 하고 있는데 당장 타입스크립트에 대한 이해는 부족한 나에게 안성맞춤이였던 이 책은 친절히 AtoZ 형태로 설명 해주고 있다. 더불어 최근 자바스크립트 문법에 약한 독자들을 위해 부록에서 ES6 필수문법 요약도 제공 하고 있다. 여기서 나의 느낀 점은 전반적으로 책의 짜임새가 좋다? 라는 개인적인 소견이다.
하지만 장점이 있다면 아쉬운 부분도 있기 마련이다. 사실 내가 첫 번째 이 책에서 얻고자 한 것은 타입스크립트에 대한 기초이해를 탄탄히 쌓는것이였다. 여기까지는 충분히 나의 기대를 충족해 주었다. 하지만 Vue.js와 함께 사용하는 타입스크립트 패턴에 대해서 좀 더 다양한 내용과 예제들을 접하고 싶었지만, 이 책에서는 리액트, 앵귤러, 뷰 세가지 골고루 설명하고 있기 때문에 좀 더 많이 보고 싶었던 나의 욕심은 채워주지 못한점이 아쉬웠다.
나와 같이 타입스크립트에 대한 이해가 부족한 사람들에게 적극 추천하고 싶다. 단, 기본적인 자바스크립트를 어느 정도 공부한 사람이 보면 더욱더 좋을 것 같다. |
|
직업의 특성상 다양한 기술에 관심을 갖게 되지만, 실제 업무에 활용 해보는 것은 꽤나 어려운 일임을 매번 깨닫곤 한다. 자바스크립트를 다루면서, 타입스크립트에 관심을 갖게 되었지만 바쁘다는 핑계와 생업의 긴박함을 핑계로 애써 외면하던 차에.. 우연한 기회를 통해 이 책을 접하게 되었다. 우선 이책은 번역서다. 개인적으로 번역서는 원서를 함께 보는게 아니라면 꺼리는 편이다. (기술서적이지만 기반지식없이 번역된 책을 접해본 사람이라면 공감하지 않을까..) 책을 받아들고 한장 두장 넘겨가며, 부디 원서를 구입하는 수고로움을 겪지 않길 바랬고... 수월하게 읽어나갈수 있었다. 제목만 보아도 타입스크립트를 다루고 있음은 알수 있으니 그 부분은 제외하고.. 개인적으로 이 책의 구성중 마음에 드는 점은... 간략하게나마 책의 후반부 부록을 통해 자바스크립트를 다루고 있는 점이다. 아직도 ES5에 익숙한 편이라... 이부분이 나에겐 크게 도움이 되었다. 기타 다른 입문서들과 마찬가지로.. 사용하는 도구와 기본적인 문법 부분에 대해 친절한 설명이 제공되고 있고 있으니.. 이 부분은 각 인터넷서점들이 제공하고 있는 미리보기를 통해 파악이 가능하다. 이 책의 반 정도는 타입스크립트를 이용한 개발 실습으로 이루어져 있다. 블록체인, 앵귤러, 리액트, vue.js... 간단하게나마 다양하게 활용하는 연습을 할수 있는 기회가 되는것 같아서.. 이 부분도 마음에 들었다. 우연한 기회에 접하게 된 책이었지만, 생각보다 만족스러운 만남이었다.
[출판사로부터 도서를 제공받아 주관적으로 작성한 리뷰입니다] |