2-1. Type이란?
Programming의 3단계

- 프로그래밍은 input - operation - output 이 세단계를 반복적으로 수행하는 과정을 통해 진행된다.
Variable, Parameters, Functions and Types
- 이때 input의 값을 담아두는 공간이 바로 변수variable이다.
- Type이 명시되지 않은 변수에는 여러가지 종류의 값을 담을 수 있지만, type을 명시한 변수에는 정해진 종류의 값만 저장할 수 있다.
- 함수의 인자(parameter)를 담아두는 공간 역시 타입을 지정할 수 있다.
- 변수의 경우와 마찬가지로, 타입이 지정되어 있다면 함수 사용법을 더 명확하게 알 수 있는 효과가 있다.
중요한 점
- 타입을 명확하게 명시해서 타입이 보장된 방식으로 프로그래밍을 하는 것이 중요하고, 그게 타입스크립트를 사용하는 방식이기 때문에 그렇다.
2-2. 변수 선언하기 (JS Recap)

Block and scopes
{ }없이 그냥 작성하게 되면 global scope로 취급 되어서 변수 이름이 중복되거나 하는 문제가 생길 수 있다. 따라서 { }로 블록을 생성해서 local scope 안에서 코드를 작성할 수 있도록 해주자.
- (나중에 module부분에서 더 자세히 공부할 예정)
var vs. let
var은 코드 작성할때 그냥 안쓰는게 좋다. 호이스팅이나 여러가지 문제가 있다. (좀더 알아보자. 드림코딩 JS 영상 중에서도 있었던거 같은데 그거 한번 일단 봐보자)
- 호환성 문제 때문에 ES6를 사용하지 않는 경우에도, 어차피 바벨 등을 사용해서 옛날 JS로 바꿔줄때 알아서
var이 필요한 경우에는 var로 바꿔주기 때문에, 그런 식으로 환경 설정을 하면 되는거고,
- 개발자가 코드 작성 시에는
var는 아예 안쓰는 것이 good practice라고 한다. 특히 TS를 사용하는 경우에는 더 그렇다.
var 대신 let을 사용해주자.
const
const는 그냥 const. 상수, 즉 변치 않는 값을 만들고 싶을때 사용하면 된다. 위 이미지에서 보이는 것처럼 const로 선언한 변수의 값을 바꾸려고 하자 에러가 발생하는 모습이다.
2-3 Basic Types (number, string, boolean, undefined, null)