(Book) 이펙티브 타입스크립트 동작 원리의 이해와 구체적인 조언 62가지 (Effective Typescript)

Posted by , February 08, 2023
TypescriptEffective Typescript
Series ofBook

thumbnail

타입스크립트를 접하게 되면서...

자바에서도 유명한 책이다.
물론 이름은 다르지만 앞에 이펙티브가 붙는 것은 같다.

이 책은 나같은 초급자들이 언어에 대한 이해도를 높이고,
좀 더 나은 코드를 작성하기 위해서 읽어야 하는 필독서로 알려져있다.

그래서 차근차근 공부를 하며 여기에 있는 지식을 내것으로 만들어보려 한다.
시간이 항상 부족하지만...
나 자신의 실력을 올리는 시간은 잠을 줄여서라도 내야 한다.

이번 포스팅은 내가 이 책을 읽으면서 배운 내용을 정리하는 포스팅이다.
책을 안 읽은 사람도 이해하기 편하게 포스팅을 해보려 한다.

주요 내용 및 개념 그리고 코드로 설명을 할 예정이며, 핵심적인 부분만 다룬다.

이 포스팅이 책을 완전히 대신할 수는 없겠지만,
책을 요약하는 정도로 다 읽지 않아도 그 책에서 전하려 하는 내용을 모두 담을 예정이다.
아래는 책의 전체 목차다.


목차

1장 타입스크립트 알아보기

  • 아이템 1 타입스크립트와 자바스크립트의 관계 이해하기
  • 아이템 2 타입스크립트 설정 이해하기
  • 아이템 3 코드 생성과 타입이 관계없음을 이해하기
  • 아이템 4 구조적 타이핑에 익숙해지기
  • 아이템 5 any 타입 지양하기

2장 타입스크립트의 타입 시스템

  • 아이템 6 편집기를 사용하여 타입 시스템 탐색하기
  • 아이템 7 타입이 값들의 집합이라고 생각하기
  • 아이템 8 타입 공간과 값 공간의 심벌 구분하기
  • 아이템 9타입 단언보다는 타입 선언을 사용하기
  • 아이템 10 객체 래퍼 타입 피하기
  • 아이템 11 잉여 속성 체크의 한계 인지하기
  • 아이템 12 함수 표현식에 타입 적용하기
  • 아이템 13 타입과 인터페이스의 차이점 알기
  • 아이템 14 타입 연산과 제너릭 사용으로 반복 줄이기
  • 아이템 15 동적 데이터에 인덱스 시그니처 사용하기
  • 아이템 16 number 인덱스 시그니처보다는 Array, 듀플, ArrayLike를 사용하기
  • 아이템 17 변경 관련된 오류 방지를 위해 readonly 사용하기
  • 아이템 18 매핑된 타입을 사용하여 값을 동기화하기

3장 타입 추론

  • 아이템 19 추론 가능한 타입을 사용해 장황한 코드 방지하기
  • 아이템 20 다른 타입에는 다른 변수 사용하기
  • 아이템 21 타입 넓히기
  • 아이템 22 타입 좁히기
  • 아이템 23 한꺼번에 객체 생성하기
  • 아이템 24 일관성 있는 별칭 사용하기
  • 아이템 25 비동기 코드에는 콜백 대신 asyne 함수 사용하기
  • 아이템 26 타입 추론에 문맥이 어떻게 사용되는지 이해하기
  • 아이템 27 함수형 기법과 라이브러리로 타입 흐름 유지하기

4장 타입 설계

  • 아이템 28 유효한 상태만 표현하는 타입을 지향하기
  • 아이템 29 사용할 때는 너그럽게, 생성할 때는 엄격하게
  • 아이템 30 문서에 타입 정보를 쓰지 않기
  • 아이템 31 타입 주변에 null값 배치하기
  • 아이템 32 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기
  • 아이템 33 string 타입보다 더 구체적인 타입 사용하기
  • 아이템 34 부정확한 타입보다는 미완성 타입을 사용하기
  • 아이템 35 데이터가 아닌, API와 명세를 보고 타입 만들기
  • 아이템 36 해당 분야의 용어로 타입 이름 짓기
  • 아이템 37 공식 명칭에는 상표를 붙이기

5장 any 다루기

  • 아이템 38 any 타입은 가능한 한 좁은 범위에서만 사용하기
  • 아이템 39 any를 구체적으로 변형해서 사용하기
  • 아이템 40 함수 안으로 타입 단언문 감추기
  • 아이템 41 any의 진화를 이해하기
  • 아이템 42 모르는 타입의 값에는 any 대신 unknown을 사용하기
  • 아이템 43 몽키 패치보다는 안전한 타입을 사용하기
  • 아이템 44 타입 커버리지를 추적하여 타입 안전성 유지하기

6장 타입 선언과 @types

  • 아이템 45 denDenendencies에 spescrip와 eypes 추가하기
  • 아이템 46 타입 선언과 관련된 세 가지 버전 이해하기
  • 아이템 47 공개 API에 등장하는 모든 타입을 익스포트하기
  • 아이템 48 APT 주석에 TSDoc 사용하기
  • 아이템 49 콜백에서 this에 대한 타입 제공하기
  • 아이템 50 오버로딩 타입보다는 조건부 타입을 사용하기
  • 아이템 51 의존성 분리를 위해 미러 타입을 사용하기
  • 아이템 52 테스팅 타입의 함정에 주의하기

7장 코드를 작성하고 실행하기

  • 아이템 53 타입스크립트 기능보다는 ECMAScript 기능을 사용하기
  • 아이템 54 객체를 순회하는 노하우
  • 아이템 55 DOM 계층 구조 이해하기
  • 아이템 56 정보를 감추는 목적으로 private 사용하지 않기
  • 아이템 57 소스맵을 사용하여 타입스크립트 디버깅하기

8장 타입스크립트로 마이그레이션하기

  • 아이템 58 모던 자바스크립트로 작성하기
  • 아이템 59 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해 보기
  • 아이템 60 allows로 타입스크립트와 자바스크립트 같이 사용하기
  • 아이템 61 의존성 관계에 따라 모듈 단위로 전환하기 ..
  • 아이템 62 마이그레이션의 완성을 위해 nolmplicitAny 설정하기

각 장마다 하나의 포스팅으로 이뤄질 예정이다.
포스팅이 완료되면 이 문서에도 링크를 달아서 완성할 예정이다.


PS:

개발자라는 것은 공부할게 참 많은 것 같다.
자본주의 세상에서 잘 살아남으려면 개발 외에도 경제, 인문, 금융, 투자, 부동산 같은 지식도 배워야 하는데,
어찌보면 개발자가 이럴 때는 많이 불리하지 않나 싶다.

뭐 어느 직업군이던 배울게 많고 하지만,
개발자라는 건 하루가 지날때 마다 다양한 것들이 쏟아져나와서 무한 학습을 해야 한다.

근데 또 이것만 하면 진짜 내 앞날 조금만 보며 살 수 밖에 없다.
개발이 평생 직업으로 삼을 수 없듯이...(견해 차이는 있겠지만 다들 공감할 듯...)

월급 500 이하로는 서울에 있는 투자용 부동산은 꿈도 못꾼다.

개발자 연봉이 5천, 8천 이런다고 하지만,
4대보험 나가고 뭐 하고 하면 실제 통장에 꼽히는 돈은 약 3~500 정도일 것이다.

물론 대기업 좋은데 가면 성과급(PS) 나온다고 하지만,
이거 해봤자 1500 ~ 2000? 많이 나오면 3천 정도?

안나오는것 보다 좋겠지만 서울에 괜찮은,
또는 경기도에서 괜찮은 곳에서 살기엔 부족한 자금이다.
(역시 여기도 상대적 개념이니까...)

뭐 취미나 1인 창업자면 제외겠지만 ㅎㅎ

투자용으로 서울에 집 한채 사고, 내가 살 집하나 두고 하려면 못해도 최소 15억 이상이 필요한데
이걸 개발자라는 직업으로 할 수 있을까 싶다. (금수저 은수저 제외, 맨땅 해딩부터 기준)

그나마 개발자라는 것은 항상 수요가 있으니까 다행인 직업군이지만...

이제 3월 말부턴 나도 서울쪽 임장을 다니면서 부동산 매물을 좀 볼까 하는데...
뭔가 부동산 쪽으로 아이디어가 생각났다.

하지만 이미 진행하고 있는...
그리고 해야 하는 흑집사부터... -_-;;
일단 다 매듭짓고 다시 생각해봐야겠다.

개발자로 돈을 많이 벌 수 있을까?
이건 참 재미있는 주제인 것 같다.

그냥 블로그 포스팅하나가 생각이 들었다 ㅎㅎ