오늘 배운 것
타입스크립트를 배우기 전 생각
- 동적 타이핑이 가능한 JS에서 발생하는 버그를 잡기 위해
얘는 숫자만, 얘는 문자열만 이렇게 딱 딱 지정해서
그런 버그를 방지하는 거구나 정도로 생각을 했었다.
하지만
오늘 타입스크립트 강의를 보며 생각해보니
단순 버그라고 생각하기에는 끔찍한 버그들이 있었다.
예를 들어 JS를 기반으로 하는 node.js 서버에서의 버그가 있었다.
단순 버그 하나로 서버가 죽는 일이 생길 수 있으니 말이다.
(예외처리를 잘 하더라도 발생할 수 있다고 한다)
오늘의 핵심
JS의 단점
- 실행 시간에 결정되는 변수의 타입
- 실행하기 전까지는 오류를 잡을 수 없다는 것.
- 약한 타입 체크
- 문자열과 숫자를 더할 수 있는 것
정상적이라면 숫자로 출력되야 하는 값이
문자열로 변환되고 값까지 변하게 되어버릴 수 있다.
- 객체 타입의 유연함
- 이후 사용 할 객체지향 프로그래밍을 사용할 때
객체는 확실하게 보존이 되어야 하는데
객체 타입에 누구든 접근하여 값을 변경 할 수 있음.
(객체가 너무 쉽게 변조되는 문제)
TS의 장점
- 실행되기 전 컴파일 단계에서 오류를 캐치
- 오류 발생 시 실행 자체가 안 됨
따라서 위에 나왔던 서버가 잘 작동하다가
죽어버리는 현상을 막을 수 있다.
- 오류 메세지가 친절한 편.
- 정적 타입 언어(C, C#, C++)처럼
객체에 접근하는 것을 제어를 할 수 있다. (Private, public 등..)
따라서 아무나 객체를 조회하거나
변화시키는 것을 막아 객체를 보호할 수 있다.
느낀 점
- 아직 객체지향과 객체의 중요성에 대한 이해가 부족하지만,
TypeScript를 사용한다면 개발자로서 전문성을 높이고
좋은 품질의 코드를 작성할 수 있다는 것에 솔깃하다.
조만간 객체지향과 캡슐화 같은 개념을 이해하고
사용해야 하는 때가 올 것이기 때문이다