<?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=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC</id>
	<title>JIT 컴파일 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://www.newiki.net/w/index.php?action=history&amp;feed=atom&amp;title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC"/>
	<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;action=history"/>
	<updated>2026-04-11T20:27:28Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=16002&amp;oldid=prev</id>
		<title>2019년 6월 17일 (월) 20:03에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=16002&amp;oldid=prev"/>
		<updated>2019-06-17T20:03:13Z</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;2019년 6월 17일 (월) 20:03 판&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-l7&quot;&gt;7번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;7번째 줄:&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;[[안드로이드]]도 초기에는 달빅 캐시가 [[자바]] 가상 머신 구실을 하면서 중간 코드 형태로 된 앱 파일을 [[인터프리트]] 방식으로 실행했으나 이후에는 JIT 컴파일 방식을 도입한 ART(Android Runtime) 로 바뀌었다. 사실 ART는 정확하는 JIT 컴파일이 아니라 AOT(Ahead-of-time) [[컴파일]]이다. 즉, 실행 시점에서 [[컴파일]]되는 게 아니라 앱 파일을 설치하는 과정에서 [[컴파일]]이 이루어진다.&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;[[안드로이드]]도 초기에는 달빅 캐시가 [[자바]] 가상 머신 구실을 하면서 중간 코드 형태로 된 앱 파일을 [[인터프리트]] 방식으로 실행했으나 이후에는 JIT 컴파일 방식을 도입한 ART(Android Runtime) 로 바뀌었다. 사실 ART는 정확하는 JIT 컴파일이 아니라 AOT(Ahead-of-time) [[컴파일]]이다. 즉, 실행 시점에서 [[컴파일]]되는 게 아니라 앱 파일을 설치하는 과정에서 [[컴파일]]이 이루어진다.&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;소스 코드에서 [[인터프리트]] 하는 방식의 언어도 역시 JIT 컴파일 방식을 사용할 수 있다. 그 대표 예가 [[자바스크립트]]. 원래는 HTML 안에 삽입된, 혹은 별도 파일로 링크된 스크립트를 실행시킬 때마다 [[인터프리트]] 방식으로 돌렸지만 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져옴으로써 AJAX열풍과 함께 자바스크립트 활용 폭을 엄청나게 넓혔다. 여러 스크립트 언어들이 속도 향상을 위해서 이런 전략을 채용하고 있다.&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;소스 코드에서 [[인터프리트]] 하는 방식의 언어도 역시 JIT 컴파일 방식을 사용할 수 있다. 그 대표 예가 [[자바스크립트]]. 원래는 HTML 안에 삽입된, 혹은 별도 파일로 링크된 스크립트를 실행시킬 때마다 [[인터프리트]] 방식으로 돌렸지만 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져옴으로써 AJAX열풍과 함께 &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;/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=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11946&amp;oldid=prev</id>
		<title>2017년 12월 20일 (수) 12:38에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11946&amp;oldid=prev"/>
		<updated>2017-12-20T12:38:14Z</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년 12월 20일 (수) 12:38 판&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;Just-in-time compile.&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;Just-in-time compile.&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;, 즉 적절한 시점에 [[컴파일]] 하는 것을 뜻한다. 보통 [[컴파일]]이라고 하면 프로그램을 만들고 나서 개발자가 [[컴파일러]]를 돌려서 [[기계어]]로 된 실행 파일을 만들거나 중간 파일, 또는 다른 프로그래밍 언어 코드로 변환한다. 하지만 JIT [[컴파일]]은 개발자가 [[컴파일]]을 하는 게 아니라, 사용자가 프로그램을 실행하는 시점에서 [[컴파일]]이 이루어진다. 예를 들어, [[자바]] 프로그램은 컴파일을 하면 바이트코드라는, 하드웨어와 운영체제에 중립인 중간 코드 파일이 만들어진다. 사용자가 이 바이트코드 파일을 &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;[[기계어]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;로 번역되는데, 이러다 보니까 &lt;/del&gt;속도가 느리다는 단점이 있었다. 결국 JIT 컴파일 방식이 도입되어 사용자가 처음 실행할 때 바이트코드를 컴파일해서 [[기계어]] 실행파일로 변환해 놓고 이걸 실행하는 방식으로 바꾸면서 속도를 대폭 향상시키는 효과를 얻었다. 보통 JIT 컴파일은 최초 실행할 때 한번 [[컴파일]]해서 [[기계어]] 파일을 만들어 놓고 그 이후에는 원본의 내용이 바뀌지 않았다면 이전에 [[컴파일]]해 두었던 [[기계어]] 파일을 실행시키는 방식으로 사용된다&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;우리 말로 풀어보면 &#039;적시 컴파일&#039;, 즉 적절한 시점에 [[컴파일]] 하는 것을 뜻한다. 보통 [[컴파일]]이라고 하면 프로그램을 만들고 나서 개발자가 [[컴파일러]]를 돌려서 [[기계어]]로 된 실행 파일을 만들거나 중간 파일, 또는 다른 프로그래밍 언어 코드로 변환한다. 하지만 JIT [[컴파일]]은 개발자가 [[컴파일]]을 하는 게 아니라, 사용자가 프로그램을 실행하는 시점에서 [[컴파일]]이 이루어진다. 예를 들어, [[자바]] 프로그램은 컴파일을 하면 바이트코드라는, 하드웨어와 운영체제에 중립인 중간 코드 파일이 만들어진다. 사용자가 이 바이트코드 파일을 &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;실행 파일을 만들어서 실행시키는 것보다는 &lt;/ins&gt;속도가 느리다는 단점이 있었다. 결국 JIT 컴파일 방식이 도입되어 사용자가 처음 실행할 때 바이트코드를 컴파일해서 [[기계어]] 실행파일로 변환해 놓고 이걸 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;대신 &lt;/ins&gt;실행하는 방식으로 바꾸면서 속도를 대폭 향상시키는 효과를 얻었다. 보통 JIT 컴파일은 최초 실행할 때 한번 [[컴파일]]해서 [[기계어]] 파일을 만들어 놓고 그 이후에는 원본의 내용이 바뀌지 않았다면 이전에 [[컴파일]]해 두었던 [[기계어]] 파일을 실행시키는 방식으로 사용된다.  &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;/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;장점이라면 역시 속도. 그때문에 JIT 컴파일이 생겨난 것이기도 하다. 실행할 때마다 기계어 변환 과정이 필요한 인터프리트 방식, 혹은 중간코드 방식에 비해서 속도가 빠를 수밖에 없다. 단점은 프로그램을 처음으로 실행할 때에는 [[컴파일]] 과정 때문에 초기에 실행이 시작되는 속도가 많이 느리며, 소스 코드 혹은 바이트코드 파일과 실행파일 코드가 같이 있기 때문에 용량을 많이 잡아먹게 된다. 소스 코드나 바이트코드가 바뀌었을 경우에 컴파일을 다시 해야 하므로 그 변화 여부를 체크하고 있어야 한다.&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[자바스크립트]] 역시 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져왔다. &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;[[안드로이드]]도 초기에는 달빅 캐시가 [[자바]] 가상 머신 구실을 하면서 중간 코드 형태로 된 앱 파일을 [[인터프리트]] 방식으로 실행했으나 이후에는 JIT 컴파일 방식을 도입한 ART(Android Runtime) 로 바뀌었다. 사실 ART는 정확하는 JIT 컴파일이 아니라 AOT(Ahead-of-time) [[컴파일]]이다. 즉, 실행 시점에서 [[컴파일]]되는 게 아니라 앱 파일을 설치하는 과정에서 [[컴파일]]이 이루어진다&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; 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;[[안드로이드]]도 초기에는 달빅 캐시가 [[자바]] 가상 머신 구실을 하면서 중간 코드 형태로 된 앱 파일을 [[인터프리트]] 방식으로 실행했으나 이후에는 JIT 컴파일 방식을 도입한 ART(Android Runtime) 로 바뀌었다. 사실 ART는 정확하는 JIT 컴파일이 아니라 AOT(Ahead-of-time) [[컴파일]]이다. 즉, 실행 시점에서 [[컴파일]]되는 게 아니라 앱 파일을 설치하는 과정에서 [[컴파일]]이 이루어진다.&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;소스 코드에서 [[인터프리트]] 하는 방식의 언어도 역시 JIT 컴파일 방식을 사용할 수 있다. 그 대표 예가 [[자바스크립트]]. 원래는 HTML 안에 삽입된, 혹은 별도 파일로 링크된 스크립트를 실행시킬 때마다 [[인터프리트]] 방식으로 돌렸지만 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져옴으로써 AJAX열풍과 함께 자바스크립트 활용 폭을 엄청나게 넓혔다. 여러 스크립트 언어들이 속도 향상을 위해서 이런 전략을 채용하고 있다&lt;/ins&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=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11214&amp;oldid=prev</id>
		<title>2017년 10월 30일 (월) 23:17에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11214&amp;oldid=prev"/>
		<updated>2017-10-30T23:17: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;2017년 10월 30일 (월) 23:17 판&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;Just-in-time compile.&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;Just-in-time compile.&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;, 즉 적절한 시점에 [[컴파일]] 하는 것을 뜻한다. 보통 [[컴파일]]이라고 하면 프로그램을 만들고 나서 개발자가 [[컴파일러]]를 돌려서 [[기계어]]로 된 실행 파일을 만들거나 중간 파일, 또는 다른 프로그래밍 언어 코드로 변환한다. 하지만 JIT [[컴파일]]은 개발자가 [[컴파일]]을 하는 게 아니라, 사용자가 프로그램을 실행하는 시점에서 [[컴파일]]이 이루어진다. 예를 들어, [[자바]] 프로그램은 컴파일을 하면 바이트코드라는, 하드웨어와 운영체제에 중립인 중간 코드 파일이 만들어진다. 사용자가 이 바이트코드 파일을 실행시키면 [[인터프리트]] 방식으로 [[기계어]]로 번역되는데, 이러다 보니까 속도가 느리다는 단점이 있었다. 결국 JIT 컴파일 방식이 도입되어 사용자가 처음 실행할 때 바이트코드를 컴파일해서 [[기계어]] 실행파일로 변환해 놓고 이걸 실행하는 방식으로 바꾸면서 속도를 대폭 향상시키는 효과를 얻었다. [[자바스크립트]] 역시 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져왔다.&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;우리 말로 풀어보면 &#039;적시 컴파일&#039;, 즉 적절한 시점에 [[컴파일]] 하는 것을 뜻한다. 보통 [[컴파일]]이라고 하면 프로그램을 만들고 나서 개발자가 [[컴파일러]]를 돌려서 [[기계어]]로 된 실행 파일을 만들거나 중간 파일, 또는 다른 프로그래밍 언어 코드로 변환한다. 하지만 JIT [[컴파일]]은 개발자가 [[컴파일]]을 하는 게 아니라, 사용자가 프로그램을 실행하는 시점에서 [[컴파일]]이 이루어진다. 예를 들어, [[자바]] 프로그램은 컴파일을 하면 바이트코드라는, 하드웨어와 운영체제에 중립인 중간 코드 파일이 만들어진다. 사용자가 이 바이트코드 파일을 실행시키면 [[인터프리트]] 방식으로 [[기계어]]로 번역되는데, 이러다 보니까 속도가 느리다는 단점이 있었다. 결국 JIT 컴파일 방식이 도입되어 사용자가 처음 실행할 때 바이트코드를 컴파일해서 [[기계어]] 실행파일로 변환해 놓고 이걸 실행하는 방식으로 바꾸면서 속도를 대폭 향상시키는 효과를 얻었다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;보통 JIT 컴파일은 최초 실행할 때 한번 [[컴파일]]해서 [[기계어]] 파일을 만들어 놓고 그 이후에는 원본의 내용이 바뀌지 않았다면 이전에 [[컴파일]]해 두었던 [[기계어]] 파일을 실행시키는 방식으로 사용된다. 즉, 프로그램을 처음으로 실행할 때에는 [[컴파일]] 과정 때문에 초기에 실행이 시작되는 속도가 많이 느리다는 단점이 있지만, 그 이후로는 대체로 [[인터프리트]] 방식 실행보다 엄청나게 빠른 속도를 보여준다. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;[[자바스크립트]] 역시 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져왔다&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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* [[안드로이드]]도 초기에는 달빅 캐시가 [[자바]] 가상 머신 구실을 하면서 중간 코드 형태로 된 앱 파일을 [[인터프리트]] 방식으로 실행했으나 이후에는 JIT 컴파일 방식을 도입한 ART(Android Runtime) 로 바뀌었다. 사실 ART는 정확하는 JIT 컴파일이 아니라 AOT(Ahead-of-time) [[컴파일]]이다. 즉, 실행 시점에서 [[컴파일]]되는 게 아니라 앱 파일을 설치하는 과정에서 [[컴파일]]이 이루어진다&lt;/ins&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=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11212&amp;oldid=prev</id>
		<title>Dennis: 새 문서: Just-in-time compile.  우리 말로 풀어보면 &#039;적시 컴파일&#039;, 즉 적절한 시점에 컴파일 하는 것을 뜻한다. 보통 컴파일이라고 하면 프로그램...</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC&amp;diff=11212&amp;oldid=prev"/>
		<updated>2017-10-30T22:31:18Z</updated>

		<summary type="html">&lt;p&gt;새 문서: Just-in-time compile.  우리 말로 풀어보면 &amp;#039;적시 컴파일&amp;#039;, 즉 적절한 시점에 &lt;a href=&quot;/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC&quot; title=&quot;컴파일&quot;&gt;컴파일&lt;/a&gt; 하는 것을 뜻한다. 보통 &lt;a href=&quot;/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC&quot; title=&quot;컴파일&quot;&gt;컴파일&lt;/a&gt;이라고 하면 프로그램...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Just-in-time compile.&lt;br /&gt;
&lt;br /&gt;
우리 말로 풀어보면 &amp;#039;적시 컴파일&amp;#039;, 즉 적절한 시점에 [[컴파일]] 하는 것을 뜻한다. 보통 [[컴파일]]이라고 하면 프로그램을 만들고 나서 개발자가 [[컴파일러]]를 돌려서 [[기계어]]로 된 실행 파일을 만들거나 중간 파일, 또는 다른 프로그래밍 언어 코드로 변환한다. 하지만 JIT [[컴파일]]은 개발자가 [[컴파일]]을 하는 게 아니라, 사용자가 프로그램을 실행하는 시점에서 [[컴파일]]이 이루어진다. 예를 들어, [[자바]] 프로그램은 컴파일을 하면 바이트코드라는, 하드웨어와 운영체제에 중립인 중간 코드 파일이 만들어진다. 사용자가 이 바이트코드 파일을 실행시키면 [[인터프리트]] 방식으로 [[기계어]]로 번역되는데, 이러다 보니까 속도가 느리다는 단점이 있었다. 결국 JIT 컴파일 방식이 도입되어 사용자가 처음 실행할 때 바이트코드를 컴파일해서 [[기계어]] 실행파일로 변환해 놓고 이걸 실행하는 방식으로 바꾸면서 속도를 대폭 향상시키는 효과를 얻었다. [[자바스크립트]] 역시 [[파이어폭스]]가 JIT [[컴파일]] 방식을 도입했고 [[구글 크롬]]이 이를 뒤따르면서 어마어마한 속도 향상을 가져왔다.&lt;/div&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
</feed>