아이템 1. 타입스크립트와 자바스크립트 관계 이해하기 타입스크립트는 문법적으로 자바스크립트의 상위집합. → 자바스크립트 프로그램에 문법 오류가 없다면, 유효한 타입스크립트 프로그램이라고 할 수 있다. → 자바스크립트 프로그램에 어떤 이슈가 존재한다면 문법 오류가 아니라도 타입 체커에게 지적당할 가능성이 높다. → 문법의 유효성과 동작의 이슈는 독립적인 문제 타입 시스템의 목표 중 하나는 런타임에 오류를 발생시킬 코드를 미리 찾아내는 것이다. → 그러나 타입 체커가 모든 오류를 찾아내지는 않음 → 타입 체커를 통과하면서 런타임 오류를 발생시키는 코드는 충분히 존재. 타입스크립트 타입 시스템은 자바스크립트의 런타임 동작을 '모델링' 한다. const x = 2 + '3'; // 정상, string const..
함수
이번 포스팅에서는 템플릿 프로그래밍에 대해서 정리해 보려고 한다. 첨부한 이미지는 포큐 아카데미의 C++ 강의 내용 화면이다. 템플릿이란 Java나 C#에서 제네릭(generic) 메서드/클래스와 비슷하다. 컴파일 도중 모든 코드를 만들어 준다. STL 컨테이너 또한 템플릿이라고 볼 수 있다. 템플릿이 가진 첫 번째 장점은 코드를 자료형마다 중복으로 작성하지 않아도 된다는 점이며, 두 번째로는 컴파일러가 미리 코드를 만들어 주기 때문에 런타임에서 돌리면 느린 함수들을 컴파일 시에 미리 호출해서 최종 결과만 상수로 뽑아서 쓸 수가 있다. 함수 템플릿 예를 들어 두 수를 더하는 Add 함수가 있다고 가정해 보자. int를 더할 수도 있고, float를 더할 수도 있고, double을 더할 수도 있다. // ..
오늘은 자바스크립트에서 많은 개발자들이 헷갈려하는 this 키워드에 대해서 확실하게 짚고 가보려고 한다. 많은 개발자들은 this를 다음 두 가지 의미로 많이 생각한다. 함수 그 자체를 가리킴 함수의 스코프(scope)를 가리킴 결론적으로 둘 다 올바른 의미로 이해한 것은 아니다. 하나씩 설명해 보려고 한다, 자기 자신으로의 this 함수가 내부에서 자기 자신을 가리킬 일이 언제 있을까? 재귀 로직이 들어가는 경우도 있고 최초 호출 시 이벤트에 바인딩 된 함수 자신을 언바인딩 할 때도 자기 참조가 필요하다. 아래의 코드는 함수가 this로 자기 참조를 할 수 없다는 것을 보여주는 예제이다. foo.count = 0을 하면 foo라는 함수 객체에 count 프로퍼티가 추가된다. 하지만 this.count에..