1. 웹사이트 vs 웹 애플리케이션
웹사이트
- 단방향으로 정보를 제공하고 사용자와 상호 작용하지 않는다.
웹 애플리케이션
- 쌍방향 소통의 웹을 말한다.(검색, 댓글, 채팅, 좋아요)
2. CBD (컴포넌트 베이스 개발)
- 재사용할 수 있는 컴포넌트를 개발 또는 조합해서 하나의 애플리케이션을 만드는 개발 방법론
컴포넌트는 하나의 독립된 기능을 재사용하기 위한 모듈이다. 그렇기 때문에 의존성을 최소화하거나 없애야 한다.
JS의 한계
- 동적 타입 언어
런타임에 타입이 결정된다.
- 동적 타이핑 시스템의 한계
개발자의 의도와 다르게 동작한다. 적절한 인수를 전달하지 않았는데도 오류없이 값을 반환한다.
타입스크립트의 등장
안정성 보장
- 컴파일 단계에서 타입 검사를 해주기 때문에 런타임 에러를 사전에 방지할 수 있다.
개발 생산성 향상
- IDE에서 타입 자동 완성 기능을 제공
협업에 유리
- 개발자의 의도가 명확해진다.