타입스크립트를 배워보겠다고 다짐한 것은 꽤 되었다. 그런데 솔직히 리액트
를 가지고 취업을 준비했던 시점에서 뭔가 리액트를 이용해서 결과물을 내놔야 취업하는 데 좀 더 구체적인 성과가 나지 않을까 하는 마음에 자바스크립트는커녕 리액트 라이브러리 자체에만 집중해서 결과물을 내는 데 급급했다.
당연히 리액트의 함수 컴포넌트가 어떠한 원리로 구성되어 있는지 대략적으로 파악하지 못하고 기본적인 배열 디스트럭처링(구조 분해 할당) 문법에 관해서도 이해하기가 힘들어서 외우다시피 하며 useState
를 사용하곤 했다. 자바스크립트, 아니 리액트도 버거운데 타입스크립트를 쓴다고? 아냐. 아직은 아닌 듯해 하며 배우기를 계속 미뤄오게 되었다.
그런데 책을 학습하면서 느끼게 된 점은 타입스크립트는 학습 곡선이 그다지 크지 않다는 것이었다. 타입스크립트는 ES6까지의 문법을 포괄하고 있고 그보다 더 큰 개념(타입 등)을 다루고 있으므로 자바스크립트를 어느 정도만 알고 있었어도 ES6를 함께 공부하면서 시너지 효과를 낼 수 있었겠다는 생각이 들었다. 그러한 점에서 역시 언어라는 기본적인 관점을 먼저 이해하고 공부하는 것이 장기적으로 바라봤을 때는 좀 더 도움이 되겠구나 하는 생각을 하게 되는 계기가 되었다.
그렇지만, 사실 취업준비생 처지로서는 눈앞의 결과물을 내보겠노라고 고군분투하기 위해 차선책으로 최소한의 자바스크립트 문법 → 리액트 → 자바스크립트 → 타입스크립트
루트로 공부를 해왔는데 어쩌면 이렇게 공부할 수밖에 없었겠다는 생각이 들기도 하지만, 앞으로 공부하게 될 후임 개발자를 만나게 되면 꼭 자바스크립트라는 언어와 타입스크립트를 먼저 이해하고 리액트를 공부하는 것이 장기적인 면에서 도움이 될 것이라고 조언을 해주고 싶었다.
타입스크립트를 공부할 때 handbook 사이트도 있기는 했지만, 도대체 어떻게 구성하고 공부를 따라가는 게 좋을지 힌트를 얻고 싶어서 책을 구매하게 되었다. 책을 읽으면 목차를 보면서 어떻게 학습을 해야 할지 로드맵을 한눈에 이해할 수 있어서 쉬웠다.
3월 9일에 배송을 받고 현재까지 2회독을 했다. 1회독할 때는 몰랐던 것들이 보이기도 하고 2회독에서는 1회독 땐 이해했는데 가물가물한 개념이 보이기도 한다. 아직은 더 연습을 해야 할 것 같다.
공무원 시험을 준비했을 때부터 알고 있는 기법을 사용했다.
YES24.com에서 타입스크립트
나 Typescript
를 검색하여 인기도가 높은 교재를 먼저 검토하고 개념에 충실한 도서를 확인하는 것을 목표로 했다.
그중 아래와 같이 두 권의 책이 보였는데 개인적으로는 조금 더 깔끔하게 구성된 책인 Do it
시리즈에 나만의 가산점(?)을 부여하여 책을 선택하게 되었다.
이 책의 목차는 다음과 같이 구성되어 있는데 온전히 타입스크립트만의 내용을 담고 있는 것은 아니었고 람다 라이브러리나 모나드, 함수형 프로그래밍과 같은 개념을 함께 담고 있는 책이었다. 여러 방면의 지식을 같이 얻어갈 수 있긴 하겠지만, 타입스크립트에 온전하게 집중하여 공부할 수 있는 책이라고는 답할 수 없는 부분이 있다.
목차
01장 타입스크립트와 개발 환경 만들기
___01-1 타입스크립트란 무엇인가?
___01-2 타입스크립트 주요 문법 살펴보기
___01-3 타입스크립트 개발 환경 만들기
02장 타입스크립트 프로젝트 생성과 관리
___01-1 타입스크립트 프로젝트 만들기
___02-2 모듈 이해하기
___02-3 tsconfig.json 파일 살펴보기
03장 객체와 타입
___03-1 타입스크립트 변수 선언문
___03-2 객체와 인터페이스
___03-3 객체와 클래스
___03-4 객체의 비구조화 할당문
___03-5 객체의 타입 변환
04장 함수와 메서드
___04-1 함수 선언문
___04-2 함수 표현식
___04-3 화살표 함수와 표현식 문
___04-4 일등 함수 살펴보기
___04-5 함수 구현 기법
___04-6 클래스 메서드
05장 배열과 튜플
___05-1 배열 이해하기
___05-2 선언형 프로그래밍과 배열
___05-3 배열의 map, reduce, filter 메서드
___05-4 순수 함수와 배열
___05-5 튜플 이해하기
06장 반복기와 생성기
___06-1 반복기 이해하기
___06-2 생성기 이해하기
07장 Promise와 async/await 구문
___07-1 비동기 콜백 함수
___07-2 Promise 이해하기
___07-3 async와 await 구문
08장 함수 조합의 원리와 응용
___08-1 함수형 프로그래밍이란?
___08-2 제네릭 함수
___08-3 고차 함수와 커리
___08-4 함수 조합
09장 람다 라이브러리
___09-1 람다 라이브러리 소개
___09-2 람다 기본 사용법
___09-3 배열에 담긴 수 다루기
___09-4 서술자와 조건 연산
___09-5 문자열 다루기
___09-6 chance 패키지로 객체 만들기
___09-7 렌즈를 활용한 객체의 속성 다루기
___09-8 객체 다루기
___09-9 배열 다루기
___09-10 조합 논리 이해하기
10장 제네릭 프로그래밍
___10-1 제네릭 타입 이해하기
___10-2 제네릭 타입 제약
___10-3 대수 데이터 타입
___10-4 타입 가드
___10-5 F-바운드 다형성
___10-6 nullable 타입과 프로그램 안정성
11장 모나드
___11-1 모나드 이해하기
___11-2 Identity 모나드 이해와 구현
___11-3 Maybe 모나드 이해와 구현
___11-4 Validation 모나드 이해와 구현
___11-5 IO 모나드 이해와 구현
12장 프로젝트 실습
___12-1 빅데이터 배치 프로그램 만들기
___12-2 몽고DB에 데이터 저장하기
___12-3 익스프레스 API 서버 만들기
___12-4 리액트와 부트스트랩으로 프런트엔드 웹 만들기
사실 타입스크립트의 교재를 고른 결정적인 이유는 유틸 타입
과 같이 웹에서 흔히 다루지 않는 항목을 주제로 진지하게 공부하고 싶어서였는데 이 책에서는 다루지 않는다(그런데 아마 다른 책도 비슷할 것이다).
그렇지 않다고 하더라도 일단 타입스크립트만 놓고 공부하고 싶었는데 갑자기 람다 라이브러리와 함수형 프로그래밍과 같은 개념이 나와서 1회독을 할 때는 당황했었다. 그런데 2회독으로 공부할수록 이해되지 않았던 개념을 다시 타이핑하면서 함수형 프로그래밍을 학습하니 조금씩 이해가 되기 시작했다.
그런데... 솔직히 공부하면서 현재 시점에서는 람다 라이브러리나 모나드의 개념을 이해하는 것이 버겁기도 할뿐더러 현업에서는 내가 잘 사용하지 않는 개념인 것 같아서 2회독까지 모두 건너뛰게 되었다. 언젠가 배워볼 수 있기를...
안녕하세요 오랜만에 댓글 다네요. 타입 스크립트...참...취준생 입장에서 계륵이죠. 분명 업계 분들 만나면 거진 필수라고 얘기하시는 분들 밖에 없는데 취준생 입장에서는 리액트 포폴 1개라도 더 늘리거나 기존 자바스크립트 지식, 브라우저 지식 흡수 등 할게 적지 않으니까요...
우대사항이면 모를까 자격요건에 타입 스크립트 '경험' 해본 분 적혀 있으면 강제로 뒤로가기 누르는 중입니다...