866 단어
4 분
Typescript 학습 로드맵

TypeScript를 어떻게 공부해야 되는지 순서 정리
사람마다 공부하는 방법은 다릅니다. 이 로드맵을 맹목적으로 따르지는 마세요.

1. TypeScript 기초#

  • TypeScript 설치 및 설정
    • Node.js와 npm 설치
    • TypeScript 컴파일러(tsc) 설치
    • TypeScript 프로젝트 설정 (tsconfig.json 파일 설정)
  • Hello World 프로그램 작성
    • 간단한 TypeScript 코드 작성 및 컴파일

2. 기본 타입 (Basic Types)#

  • 기본 타입
    • 숫자 (number)
    • 문자열 (string)
    • 불리언 (boolean)
    • 배열 (Array)
    • 튜플 (Tuple)
    • 열거형 (Enum)
    • any, unknown, void, never

3. 인터페이스 (Interfaces)#

  • 인터페이스 정의
  • 선택적 속성 (Optional Properties)
  • 읽기 전용 속성 (Readonly Properties)
  • 함수 타입 인터페이스
  • 인터페이스 확장 (Extending Interfaces)

4. 함수 (Functions)#

  • 함수 정의 및 타입 선언
  • 선택적 매개변수 및 기본값 매개변수 (Optional and Default Parameters)
  • 함수 반환 타입
  • 화살표 함수 (Arrow Functions)
  • 오버로드 (Function Overloading)

5. 클래스 (Classes)#

  • 클래스 정의 및 생성자
  • 접근 제어자 (public, private, protected)
  • 상속 (Inheritance)
  • 인터페이스 구현 (Implementing Interfaces)
  • 추상 클래스 (Abstract Classes)
  • 정적 속성 및 메서드 (Static Properties & Methods)

6. 타입 시스템 (Type System)#

  • 타입 별칭 (Type Aliases)
  • 유니언 타입 (Union Types)
  • 교차 타입 (Intersection Types)
  • 타입 단언 (Type Assertions)
  • 형 변환 (Type Casting)
  • 타입 가드 (Type Guards)
  • 타입 좁히기 (Type Narrowing)

7. 고급 타입 (Advanced Types)#

  • 제네릭 (Generics)
    • 제네릭 함수, 클래스, 인터페이스
    • 제네릭 제약 조건 (Generic Constraints)
  • 인덱스 시그니처 (Index Signatures)
  • 맵드 타입 (Mapped Types)
  • 조건부 타입 (Conditional Types)
  • 유틸리티 타입 (Utility Types)
    • Partial, Readonly, Pick, Omit 등

8. 모듈 및 네임스페이스#

  • 모듈 시스템 (ES Modules)
    • import/export 문법
  • 네임스페이스 (Namespaces)
  • 모듈 결합 및 분할 (Module Merging)
  • 외부 모듈 가져오기 (Third-Party Modules with DefinitelyTyped)

9. 비동기 프로그래밍#

  • Promise와 async/await
  • 비동기 함수의 타입 선언
  • 제네릭을 사용한 비동기 함수 처리

10. 타입 선언 파일 (Declaration Files)#

  • 타입 정의 파일 (.d.ts) 작성 및 사용
  • DefinitelyTyped를 이용한 외부 라이브러리 타입 추가
  • 내장 타입 정의 활용

11. React와 함께 사용하는 TypeScript#

  • React 컴포넌트의 타입 정의
    • 함수형 컴포넌트 타입 선언
    • 클래스형 컴포넌트 타입 선언
  • Props와 State의 타입 선언
  • 커스텀 훅 (Custom Hooks)의 타입
  • Context API와 TypeScript
  • React와 제네릭 활용

12. Node.js와 함께 사용하는 TypeScript#

  • Express.js 애플리케이션에 TypeScript 적용
  • Request, Response 객체 타입 선언
  • 미들웨어 함수 타입 정의
  • TypeORM 또는 Prisma 같은 ORM과 함께 사용

13. 테스트 및 타입 안정성#

  • Jest 및 Mocha를 이용한 테스트
  • TypeScript로 테스트 코드 작성
  • 타입 체커 (Type Checking) 활용
  • 타입스크립트 린터 설정 (TSLint, ESLint)

14. 빌드 및 배포#

  • TypeScript 코드의 빌드 과정 이해
  • Webpack, Babel과 함께 사용하는 TypeScript
  • 프로덕션 환경을 위한 코드 최적화
  • Continuous Integration/Continuous Deployment (CI/CD) 파이프라인에 TypeScript 통합

15. 프로젝트 실습#

  • 간단한 TypeScript 프로젝트 제작
  • JavaScript로 작성된 기존 프로젝트를 TypeScript로 마이그레이션
  • 풀스택 TypeScript 애플리케이션 (React + Node.js) 제작

16. 타입스크립트 고급 사용 사례#

  • 상태 관리 라이브러리와 함께 사용
    • Redux, Zustand 등
  • GraphQL과 TypeScript 통합
  • TypeScript와 WebAssembly

TypeScript하기 전에 JavaScript부터 할 것. 사실상 두개는 타입 빼고는 크게 다른거 없음.