<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://www.newiki.net/w/index.php?action=history&amp;feed=atom&amp;title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8</id>
	<title>타입스크립트 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://www.newiki.net/w/index.php?action=history&amp;feed=atom&amp;title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8"/>
	<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;action=history"/>
	<updated>2026-04-12T00:54:37Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=28558&amp;oldid=prev</id>
		<title>2022년 3월 30일 (수) 23:12에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=28558&amp;oldid=prev"/>
		<updated>2022-03-30T23:12:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022년 3월 30일 (수) 23:12 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;3번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. [[오픈 소스]]이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 [[Node.js]]를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, [[리액트 네이티브]] 같은 데에서도 얼마든지 쓸 수 있다. 구글의 웹 프레임워크인 [[AngularJS]]는 아예 버전 2부터는 타입스크립트만 지원한다. 이들도 모두 마지막에 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. [[오픈 소스]]이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 [[Node.js]]를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, [[리액트 네이티브]] 같은 데에서도 얼마든지 쓸 수 있다. 구글의 웹 프레임워크인 [[AngularJS]]는 아예 버전 2부터는 타입스크립트만 지원한다. 이들도 모두 마지막에 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다.&amp;lt;ref&amp;gt;[[파이썬]] 역시 변수의 타입을 지정할 수 없기 때문에 같은 문제를 안고 있다. 3.5 버전부터는 타입 힌트 기능을 지원해서 프로그래머가 함수의 매개변수나 반환값으로 기대하는 변수의 유형을 지정할 수 있지만 이는 &#039;힌트&#039;에 불과하며 유형에 안 맞는 매개변수를 줄 때 코드가 아예 실행이 안 되거나 하지는 않는다.&amp;lt;/ref&amp;gt; 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;서로 다른 유형의 변수끼리 연산을 시켜도 어떻게든 뭔가 결괏값을 만들어 내기 때문에 이게 오히려 예측불허의 결과를 만들어낸다.&amp;lt;/ref&amp;gt; &lt;/ins&gt;버그도 많아지고 디버깅도 힘들어진다.&amp;lt;ref&amp;gt;[[파이썬]] 역시 변수의 타입을 지정할 수 없기 때문에 같은 문제를 안고 있다. 3.5 버전부터는 타입 힌트 기능을 지원해서 프로그래머가 함수의 매개변수나 반환값으로 기대하는 변수의 유형을 지정할 수 있지만 이는 &#039;힌트&#039;에 불과하며 유형에 안 맞는 매개변수를 줄 때 코드가 아예 실행이 안 되거나 하지는 않는다.&amp;lt;/ref&amp;gt; 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 [[프레임워크]]인 [[Angular]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원한다든가, &lt;/del&gt;[[크로스플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;타입스크립트를 미는 분위기다. [[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있고 &lt;/del&gt;[[Angular]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;는 타입스크립트 기반이다&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 [[프레임워크]]인 [[Angular]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[크로스플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 [[Angular]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;에서 보는 것과 같이 타입스크립트를 미는 분위기다&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=28557&amp;oldid=prev</id>
		<title>2022년 3월 30일 (수) 23:05에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=28557&amp;oldid=prev"/>
		<updated>2022-03-30T23:05:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2022년 3월 30일 (수) 23:05 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. [[오픈 소스]]이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;js를 &lt;/del&gt;설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, [[리액트 네이티브]] 같은 데에서도 얼마든지 쓸 수 있다. 구글의 웹 프레임워크인 [[AngularJS]]는 아예 버전 2부터는 타입스크립트만 지원한다. 이들도 모두 마지막에 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. [[오픈 소스]]이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;Node.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;js]]를 &lt;/ins&gt;설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, [[리액트 네이티브]] 같은 데에서도 얼마든지 쓸 수 있다. 구글의 웹 프레임워크인 [[AngularJS]]는 아예 버전 2부터는 타입스크립트만 지원한다. 이들도 모두 마지막에 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;[[파이썬]] 역시 변수의 타입을 지정할 수 없기 때문에 같은 문제를 안고 있다. 3.5 버전부터는 타입 힌트 기능을 지원해서 프로그래머가 함수의 매개변수나 반환값으로 기대하는 변수의 유형을 지정할 수 있지만 이는 &#039;힌트&#039;에 불과하며 유형에 안 맞는 매개변수를 줄 때 코드가 아예 실행이 안 되거나 하지는 않는다.&amp;lt;/ref&amp;gt; &lt;/ins&gt;페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 [[프레임워크]]인 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AngularJS&lt;/del&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원한다든가, [[크로스플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;있다&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 [[프레임워크]]인 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Angular&lt;/ins&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원한다든가, [[크로스플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] [[프레임워크]]인 [[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다. [[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;있고 [[Angular]]는 타입스크립트 기반이다&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=27457&amp;oldid=prev</id>
		<title>2021년 11월 24일 (수) 22:28에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=27457&amp;oldid=prev"/>
		<updated>2021-11-24T22:28:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021년 11월 24일 (수) 22:28 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;프레임워크인 &lt;/del&gt;[[AngularJS]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원한다든가, [[크로스플랫폼]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;프레임워크인 &lt;/del&gt;[[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;프레임워크인 &lt;/del&gt;[[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[프레임워크]]인 &lt;/ins&gt;[[AngularJS]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원한다든가, [[크로스플랫폼]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[프레임워크]]인 &lt;/ins&gt;[[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[프레임워크]]인 &lt;/ins&gt;[[Flutter]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=27456&amp;oldid=prev</id>
		<title>2021년 11월 24일 (수) 22:28에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=27456&amp;oldid=prev"/>
		<updated>2021-11-24T22:28:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021년 11월 24일 (수) 22:28 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[AngularJS]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;지원해 가고 있는 분위기다&lt;/del&gt;.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;개발환경인 &lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;플러터&lt;/del&gt;]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[AngularJS]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;지원한다든가, [[크로스플랫폼]] 프레임워크인 [[Flutter]]의 개발 도구로 [[안드로이드 스튜디오]]와 함께 [[비주얼 스튜디오 코드]]를 공식 지원한다든가&lt;/ins&gt;.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;프레임워크인 &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Flutter&lt;/ins&gt;]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23686&amp;oldid=prev</id>
		<title>2020년 12월 2일 (수) 14:42에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23686&amp;oldid=prev"/>
		<updated>2020-12-02T14:42:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 12월 2일 (수) 14:42 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;오픈소스이고 &lt;/del&gt;무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, 리액트 네이티브 같은 데에서도 얼마든지 쓸 수 있다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;물론 &lt;/del&gt;[[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[오픈 소스]]이고 &lt;/ins&gt;무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;리액트 네이티브&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;같은 데에서도 얼마든지 쓸 수 있다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;구글의 웹 프레임워크인 [[AngularJS]]는 아예 버전 2부터는 타입스크립트만 지원한다. 이들도 모두 마지막에 &lt;/ins&gt;[[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 페이지의 사용자 인터페이스를 구성하는 각 요소들을 모듈화 하고 별개의 파일로 쪼개넣게 되면 문제는 더욱 심각해진다&lt;/ins&gt;. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;[[콜백 지옥]]&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;앵귤러JS&lt;/del&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AngularJS&lt;/ins&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23603&amp;oldid=prev</id>
		<title>2020년 11월 27일 (금) 05:28에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23603&amp;oldid=prev"/>
		<updated>2020-11-27T05:28:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 11월 27일 (금) 05:28 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. [[자바스크립트]]는 [[콜백 함수]]를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;[[콜백 지옥]]&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 [[콜백 함수]] 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;앵귤러&lt;/del&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;앵귤러JS&lt;/ins&gt;]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트([[Dart]])라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[Dart]]를 밀고 있으며 덕분에 나름 화려하게 부활하는 모양새다.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23201&amp;oldid=prev</id>
		<title>2020년 11월 16일 (월) 06:32에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=23201&amp;oldid=prev"/>
		<updated>2020-11-16T06:32:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 11월 16일 (월) 06:32 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;3번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. 오픈소스이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, 리액트 네이티브 같은 데에서도 얼마든지 쓸 수 있다. 물론 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. 오픈소스이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, 리액트 네이티브 같은 데에서도 얼마든지 쓸 수 있다. 물론 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;자바스크립트는 &lt;/del&gt;콜백 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;함수를 &lt;/del&gt;많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;콜백 지옥&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[자바스크립트]]는 [[&lt;/ins&gt;콜백 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;함수]]를 &lt;/ins&gt;많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;콜백 지옥&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &#039;타입&#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;콜백 함수&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트(Dart)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;다트&lt;/del&gt;]]를 밀고 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;있다&lt;/del&gt;.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;Dart&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dart&lt;/ins&gt;]]를 밀고 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;있으며 덕분에 나름 화려하게 부활하는 모양새다&lt;/ins&gt;.&amp;lt;/ref&amp;gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=14858&amp;oldid=prev</id>
		<title>2018년 12월 18일 (화) 00:56에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=14858&amp;oldid=prev"/>
		<updated>2018-12-18T00:56:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2018년 12월 18일 (화) 00:56 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트(Dart)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; 사실 [[구글]]도 다트(Dart)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;대신 [[구글]]은 모바일 [[크로스 플랫폼]] 개발환경인 [[플러터]]의 개발 언어로 [[다트]]를 밀고 있다.&amp;lt;/ref&amp;gt;&lt;/ins&gt;, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=13229&amp;oldid=prev</id>
		<title>2018년 7월 9일 (월) 20:00에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=13229&amp;oldid=prev"/>
		<updated>2018-07-09T20:00:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2018년 7월 9일 (월) 20:00 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다. 사실 [[구글]]도 다트(Dart)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;타입스크립트가 잘 나가게 된 계기는 아이러니하게도 [[구글]]. 자사에서 개발하는 웹 프론트엔드 프레임워크인 [[앵귤러]]가 2.0부터 타입스크립트를 사용한 것이 큰 계기가 되었다.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;최근에는 [[구글]]이 [[MS]]에서 내놓은 솔루션을 적극 활용하는 모습들이 자주 보인다. [[안드로이드]] 쪽에서도 [[구글]]에서 제트팩에 [[MS]]의 리액티브 프로그래밍 라이브러리인 RxJava를 지원해 가고 있는 분위기다.&amp;lt;/ref&amp;gt; &lt;/ins&gt;사실 [[구글]]도 다트(Dart)라는 [[자바스크립트]]의 대체제를 밀었지만 거의 망하는 분위기로 가고 있는데, 대신 요즘은 타입스크립트를 미는 분위기다.[[구글]]의 공식 내부 개발 언어&amp;lt;ref&amp;gt;[[C]],[[ C++]], [[자바]], [[파이썬]], [[Go]], [[자바스크립트]]와 같은 언어들이 있다.&amp;lt;/ref&amp;gt;로도 지정되어 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=10602&amp;oldid=prev</id>
		<title>2017년 8월 6일 (일) 09:57에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8&amp;diff=10602&amp;oldid=prev"/>
		<updated>2017-08-06T09:57:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017년 8월 6일 (일) 09:57 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;TypeScript.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. 오픈소스이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, 리액트 네이티브 같은 데에서도 얼마든지 쓸 수 있다. 물론 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[마이크로소프트]]가 개발하고 배포, 관리하는 프로그래밍 언어. 오픈소스이고 무료다. 2012년 10월에 처음으로 공개되었다. [[자바스크립트]]와 호환되며, [[자바스크립트]]가 가진 단점들을 보완하기 위해서 만들었다. 이런 종류의 언어로는 커피스크립트와 같은 것들이 있지만 지금은 타입스크립트가 가장 잘 나가는 분위기. 아네르스 하일스베르가 설계했는데 이 분은 [[C샵|C#]]은 물론 델파이, 터보 [[파스칼]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;그래서인지는 몰라도 변수의 타입 정의가 파스칼처럼 변수 이름 뒤에 나온다.&amp;lt;/ref&amp;gt;&lt;/ins&gt;과 같은 걸작을 여럿 설계한 경력이 있다. 아직까지는 웹 브라우저에서 직접 타입스크립트를 지원하고 있지 않기 때문에 컴파일 및 링크 과정을 거쳐서 [[자바스크립트]]로 변환되어 쓰인다. 물론 앞으로 타입스크립트의 사용이 많아지면 웹 브라우저들이 직접 지원할 수도 있겠지만. [[자바스크립트]]를 쓸 수 있는 곳이라면 어디든지 타입스크립트도 쓸 수 있다. 예를 들어 [[Node.js]]&amp;lt;ref&amp;gt;타입스크립트를 쓰려면 먼저 Node.js를 설치하고 패키지 관리자인 npm으로 설치하는 게 좋다. 아니면 [[비주얼 스튜디오]]를 설치해서 쓰는 방법도 있다. [[비주얼 스튜디오]]가 [[마이크로소프트]] 것이니 지원을 안 할 리가...&amp;lt;/ref&amp;gt;나 아파치 코르도바, 리액트 네이티브 같은 데에서도 얼마든지 쓸 수 있다. 물론 [[자바스크립트]]로 컴파일하는 작업은 필요하다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[자바스크립트]]는 그 문법이 간단하기 때문이 진입장벽이 낮은 프로그램이지만 고급 기능을 구현할 때에는 오히려 난점이 많다. 예를 들어 변수에 아무 타입이나 넣어도 되는 특징은 초보자들에는 쉬워 보이지만 그 변수에 넣지 말아야 할 잘못된 타입을 집어넣어도 오류가 생기지 않기 때문에 버그도 많아지고 디버깅도 힘들어진다. 함수나 클래스 정의와 같은 많은 부분들이 객체지향 언어와는 상당히 다르기 때문에 이 역시 사용을 까다롭게 하고 버그를 낳는 원인이 된다. 자바스크립트는 콜백 함수를 많이 쓰기 때문에 함수 매개변수로 또다른 함수가 들어가고, 이 함수의 매개변수로도 또 다른 함수가 들어가고... 하는 일이 잦은데 이러다 보면 소스 코드를 봐도 도대체 뭘 하는 건지 알아먹기 힘든, 이른바 &amp;#039;콜백 지옥&amp;#039;에 종종 빠지곤 한다. 이러한 단점을 극복하고 변수에 타입을 부여하여 컴파일 과정에서 타입 체크를 할 수 있게 하거나&amp;lt;ref&amp;gt;이름에 &amp;#039;타입&amp;#039;이 들어가 있을 정도로 이 점을 강조한다.&amp;lt;/ref&amp;gt;, 클래스 정의를 좀 더 객체지향형 프로그래밍 언어처럼 하거나 콜백 함수 사용도 좀 더 가독성을 높이고 해서 [[자바스크립트]]의 단점을 보완하고 개발자가 좀 더 편리하게 프로그래밍을 할 수 있도록 돕는 것이 타입스크립트의 목적이다. 즉 성능보다는 짜기 쉽고 알아보기 쉬운 코드를 작성함으로써 생산성을 높이는 것을 목적으로 한다고 볼 수 있다. 그밖에 제너릭, 네임스페이스와 같이 [[C샵|C#]]과 같은 현대 프로그래밍 언어에서 널리 쓰이는 개념들도 가져 왔다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
</feed>