์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
WinRT์—์„œ ๋„˜์–ด์˜ด
1. Windows Runtime
1.1. C++
1.1.1. Win32
1.2. C#, Visual Basic1.3. JavaScript
2. ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์›
2.1. Xamarin2.2. ๊ฒŒ์ž„ ์—”์ง„2.3. Apache Cordova
3. ๊ด€๋ จ ๋ฌธ์„œ

1. Windows Runtime[ํŽธ์ง‘]

2012๋…„ Windows 8์—์„œ ์ฒ˜์Œ ๋‚˜์˜จ API ์…‹(set)์ด๋ฉฐ ์ค„์—ฌ์„œ WinRT๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๋ชจ๋“  WinRT API๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ์ˆ˜์‹ญ๋…„ ์ „์— ๋งŒ๋“ค์–ด์ง„ Win32 API๊ฐ€ C์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ๊ฐ์ฒด์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํž˜๋“ค์—ˆ๋˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ–ˆ๋‹ค.(๋ฌผ๋ก  MFC๋ผ๋Š” C++ ๋ž˜ํผ๊ฐ€ ๋‚˜์˜ค๊ธด ํ–ˆ์ง€๋งŒ ์ด๊ฒƒ๋„ ๋ฒ„๋ ค์ง„์ง€ 10๋…„์ด ๋„˜์–ด ์“ธ ๋•Œ๋งˆ๋‹ค ์‚ฌ๋žŒ ๋ฏธ์น˜๊ฒŒ ๋งŒ๋“ ๋‹ค.) ๋˜ํ•œ C++๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋ชจ๋“  WinRT API๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐํƒ€์ž„์ด๋ผ๋Š” ๊ฒƒ์ด๊ณ , ์ด๋Š” ์†๋„์™€ ์ „๋ ฅ ์†Œ๋ชจ์— ์ด๋“์ด ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/43/2626.Win8%20WinRT%20Architecture.png

WinRT API๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์œผ๋ฉฐ, ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด C/C++๋ฅผ ์ง€์›ํ•˜๊ณ , ๋‹ท๋„ท ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด C#/Visual Basic, ์›น ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•˜์—ฌ JavaScript๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๋Š”, ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ API์ด๋‹ค. ๋˜ํ•œ, ์ž์ฃผ ์“ฐ๋Š” ์ฝ”๋“œ๋ฅผ Windows Runrtime Library(์ค„์—ฌ์„œ WRL)๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋งŒ๋“ค๋ฉด, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“  ์–ธ์–ด์™€ ์ƒ๊ด€์—†์ด C++, C#, Visual Basic, JavaScript ๋ชจ๋‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด C++๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จ์‹œํ‚จ ํ›„ ์—ฌ๊ธฐ ์•ˆ์˜ C++ ํ•จ์ˆ˜๋ฅผ JavaScript๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, Windows RT ์ถœ์‹œ์™€ ํ•จ๊ป˜ ๋ชจ๋ฐ”์ผ์—์„œ ๊ฐ•์„ธ๋ฅผ ๋ณด์ด๋Š” ARM์„ ์ง€์›ํ•œ๋‹ค. ๋ชจ๋“  Windows Runtime ์•ฑ์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์Šคํ† ์–ด(๊ตฌ Windows ์Šคํ† ์–ด)์—์„œ๋งŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” iOS์™€ ๊ฐ™์€ ์ •์ฑ…์ด๋‹ค. ๋ชจ๋ฐ”์ผ์—์„œ๋„ ๋น ๋ฅด๊ฒŒ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด UI ์“ฐ๋ ˆ๋“œ์™€ ๋…ผ-UI ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ณ , NT ์ปค๋„์€ ํ•ญ์ƒ UI ์“ฐ๋ ˆ๋“œ๋ฅผ ์ตœ์šฐ์„ ์œผ๋กœ ๋Œ๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด 50ms๊ฐ€ ๋„˜์–ด๊ฐ€๋Š” ๋ชจ๋“  WinRT ํ•จ์ˆ˜๋Š” ๋น„๋™๊ธฐ์‹์œผ๋กœ "๊ฐ•์ œ๋กœ" ์“ฐ๊ฒŒ ํ•˜์—ฌ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ์ฝ”๋”ฉ์„ ๊ฐ•์ œํ•œ๋‹ค.

Windows 8 ์ถœ์‹œ ๋•Œ์—๋Š” Windows Rumtime ์•ฑ์„ Windows 8/RT์—๋งŒ ์“ธ ์ˆ˜ ์žˆ๊ณ , Windows Phone 8์—๋Š” ์ข…์ „์˜ ์‹ค๋ฒ„๋ผ์ดํŠธ ๊ธฐ์ˆ ์„ ์จ์•ผ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ Windows 8.1/Windows Phone 8.1์ด ๋‚˜์˜จ ํ›„์— ๋Œ€๋ถ€๋ถ„์˜ ๋กœ์ง ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ UI๋งŒ ์žฌ์„ค๊ณ„ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋Š” ๋‘ OS์˜ ์ปค๋„์ด ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— API์˜ ์ƒ๋‹น๋ถ€๋ถ„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2015๋…„ Windows 10์ด ์ถœ์‹œ๋œ ์ดํ›„ WinRT๊ฐ€ Universal Windows Platform์œผ๋กœ ๋Œ€์ฒด๋˜๋ฉด์„œ ์กด์†๋˜๊ณ  ์žˆ๋‹ค.

1.1. C++[ํŽธ์ง‘]

๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์„ ํ˜ธ๋˜๋Š” ์–ธ์–ด์ด๋‹ค. C๊ฐ€ ๋” ๋น ๋ฅด๊ธฐ ํ•˜์ง€๋งŒ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋…์ด ์—†์–ด ์•ฑ ๊ฐœ๋ฐœ์— ํž˜๋“ค์–ด C++์„ ์“ด๋‹ค. UI๋Š” C#, Visual Basic์—์„œ๋„ ๊ฐ™์ด ์“ฐ๋Š” XAML์ด๋ž€ ์–ธ์–ด๋ฅผ ์“ฐ๋Š”๋ฐ, ์ด๋Š” ๋ฐ์Šคํฌํƒ‘ ๋‹ท๋„ท WPF ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋งˆํฌ์—… ์–ธ์–ด์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด UI๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  Win32 API์™€ MFC๋ฅผ ์“ธ ๋•Œ ์ƒ๊ฐ๋‚˜๋˜ ์•…๋ชฝ๊ณผ ๊ฐ™์€ ๊ฒฝํ—˜์€ ๋งŽ์ด ๋œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ธฐ์กด Win32 ํฌํŒ…์„ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด Win32 API์˜ ์„œ๋ธŒ์…‹์„ WinRT์—๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒŒ์ž„์„ ์œ„ํ•˜์—ฌ DirectX 11.1 API๋ฅผ ์ง€์›ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ƒํ™ฉ์œผ๋กœ ๋ณผ ๋•Œ, C++์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ณดํ†ต ๊ฒŒ์ž„ ๋˜๋Š” ์žˆ๋˜ C++ ์ฝ”๋“œ๋ฅผ ์žฌํ™œ์šฉํ•˜๊ฑฐ๋‚˜, ์†๋„๊ฐ€ ๊ทนํžˆ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๋ฅผ ๋นผ๋ฉด C++๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ฃผ์˜ํ•  ์ ์€ C++ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜๋ฉด ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ x86, x64, ARM์„ ๊ฐ๊ฐ ๋นŒ๋“œํ•ด์„œ Windows Store์— ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

1.1.1. Win32[ํŽธ์ง‘]

Windows API์™€ Windows Runtime์€ ๋ชจ๋‘ C, C++ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ—ค๋”์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Windows Runtime ์—์„œ๋งŒ ์ถ”๊ฐ€๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ผ๋ถ€ ์กด์žฌํ•˜๋ฉฐ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉ ํ•  ๋•Œ UWP ์•ฑ์€ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ Win32์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ COM ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
๋‹ค๋งŒ Windows Gaming Input ์™€ ๊ฐ™์ด Windows Runtime์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์œผ๋‚˜ ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์š”์ฒญ์œผ๋กœ TH1 ์ดํ›„ COM์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Include๋งŒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

1.2. C#, Visual Basic[ํŽธ์ง‘]

๊ธฐ์กด์˜ ๋‹ท๋„ท ๊ฐœ๋ฐœ์ž๋“ค์€ ์•„๋งˆ ์นœ์ˆ™ํ•ดํ• ํ…๋ฐ, ์ด๋Š” WPF ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ ์“ฐ๋˜ XAML์„ ๊ทธ๋Œ€๋กœ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋””์ž์ธ ์–ธ์–ด๊ฐ€ ๋Œ€๊ฒฉ๋ณ€ํ•˜์—ฌ ๊ตฌ์กฐ์™€ ์ž‘๋™์›๋ฆฌ ๋นผ๋ฉด ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์ด ๋ฐ”๋€Œ์—ˆ๋‹ค. ๋นŒ๋“œ์‹œ IL๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์–ด๋А ์•„ํ‚คํ…์ฒ˜๋‚˜ ๋˜‘๊ฐ™์€ IL์„ CLR๋กœ ๋Œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. Windows 8์—์„œ .NET Framework 4.5๊ฐ€ ํฌํ•จ๋˜์—ˆ๋Š”๋ฐ, Windows Runtime C#/VB ์•ฑ์€ .NET 4.5์˜ ๊ฐ„์†Œํ™”๋œ ๋ฒ„์ „์—์„œ ๋Œ์•„๊ฐ„๋‹ค. C++๋ณด๋‹ค ์ข€ ๋А๋ฆฌ๊ณ  ์ „๋ ฅ์†Œ๋ชจ๊ฐ€ ํฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

1.3. JavaScript[ํŽธ์ง‘]

์›น ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•ด ์ง€์›ํ•˜๋Š” ์–ธ์–ด์ด๊ณ , UI๋Š” HTML/CSS๋กœ ์ž‘์„ฑ๋˜์–ด ์ด๋ก ์ ์œผ๋กœ๋Š” ์›นํŽ˜์ด์ง€ ์ฝ”๋“œ(๋น„ํ‘œ์ค€ ์ฝ”๋“œ, ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—)๋ฅผ ๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐํ•˜๋ฉด ์›นํŽ˜์ด์ง€ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ค€๋‹ค. JavaScript ์•ฑ์€ Internet Explorer 10์˜ ์ฐจํฌ๋ผ ์—”์ง„ ๊ฐ€์ƒ๋จธ์‹  ์œ„์—์„œ ๋Œ์•„๊ฐ€๋ฉฐ, ์ž‘์—…ํ‘œ์‹œ์ค„์— ๋ณด๋ฉด ์•ฑ ์ธ๋„ค์ผ์„ ๋ณด์—ฌ์ฃผ๋Š” WWAHost.exe์ด ๊ทธ ์ฆ๊ฑฐ์ด๋‹ค. UI๋Š” ๋ณดํ†ต SDK์™€ ๊ฐ™์ด ์ œ๊ณตํ•˜๋Š” WinJS๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ž‘์„ฑํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด Windows Store ์•ฑ ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์›[ํŽธ์ง‘]

ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•ฑ์ด๋ž€ ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋กœ ์—ฌ๋Ÿฌ OS์šฉ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ, ์ตœ์ ํ™”์— ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ์—ฌ๋Ÿฌ OS์— ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ , ๊ฐ OS๋ฅผ ์œ„ํ•ด ๊ฐ๊ฐ ํŒ€์„ ๋งŒ๋“ค์–ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋น„์šฉ๋„ ์ €๋ ดํ•˜๊ฒŒ ๋˜์–ด ๋งŽ์ด ๋œจ๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์Šคํ† ์–ด ์•ฑ์˜ ๋ถ€์กฑ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฐ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

2.1. Xamarin[ํŽธ์ง‘]

C#์œผ๋กœ Android, iOS, Windows, macOS ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. Windows์—๋Š” .NET Framework์„ ์“ฐ๊ณ , iOS์™€ Android๋Š” .NET์˜ ์˜คํ”ˆ์†Œ์Šค ๋ฒ„์ „์ธ ๋ชจ๋…ธ ์œ„์—์„œ ๋Œ์•„๊ฐ„๋‹ค. MS๊ฐ€ .NET Framework๋ฅผ ์˜คํ”ˆ์†Œ์Šค๋กœ ํ’€์–ด์„œ ๋ชจ๋…ธ ์ฝ”๋“œ์˜ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๊ธ‰์ƒ์Šนํ•˜๊ณ  ์žˆ์–ด ์ƒ๊ฐ๋ณด๋‹ค ๊ฝค ๊ดœ์ฐฎ๋‹ค. ๋˜ํ•œ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด C++ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฉด C++ ์ฝ”๋“œ๋ฅผ C#์˜ P/Invoke๋กœ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๊ณ , ๊ฐ๊ฐ์˜ OS์— GCC, Clang, Visual C++ ๋“ฑ์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋”ฐ๋กœ ์ปดํŒŒ์ผ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค. Xamarin IDE๋ฅผ ์„ค์น˜ ํ›„, Xamarin for Visual Studio ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์„ค์น˜ํ•˜๋ฉด Visual Studio์—์„œ Android, iOS ์•ฑ์„ C#์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ ์€ Xamarin์— ๋”ฐ๋กœ ๋ผ์ด์„ผ์Šค ๋น„์šฉ์„ ๋‚ด์•ผํ•˜๊ณ , ์ฝ”๋“œ ์ƒ˜ํ”Œ ์ง€์›์ด ์ ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

2.2. ๊ฒŒ์ž„ ์—”์ง„[ํŽธ์ง‘]

Unity๋‚˜ Cocos2d-x ๊ฐ™์€ ๊ฒŒ์ž„ ์—”์ง„๋“ค์ด Windows Runtime์„ ์ง€์›ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฒ„ํŠผ ํ•˜๋‚˜๋กœ iOS, Android ๊ฒŒ์ž„์„ Windows Store ๊ฒŒ์ž„์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ์ตœ์ ํ™” ๋ฐ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์‹œ ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด๊ฑฐ ๋•๋ถ„์— ์œˆ๋„์šฐ ์Šคํ† ์–ด์— ์˜์™ธ์˜ ๊ฒŒ์ž„๋“ค์ด ์˜ฌ๋ผ์™€ ์žˆ๋Š” ๊ฑธ ๊ฐ€๋” ๋ณผ ์ˆ˜ ์žˆ๋‹ค. HD ์‹œ์ ˆ ์ด์ „ GTA ๊ฒŒ์ž„๋“ค ์ด๋ผ๋“ ์ง€...

2.3. Apache Cordova[ํŽธ์ง‘]

JavaScript๋กœ Android, iOS, Windows ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฉฐ, ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋„ค์ดํ‹ฐ๋ธŒ API(์•Œ๋ฆผ, ์นด๋ฉ”๋ผ ๋“ฑ ๋ณดํ†ต ์›น์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ๋“ค)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์›นํŽ˜์ด์ง€ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๊ฐ•์ ์ด๋‹ค. ๋‹จ์ ์€ ๊ฐ OS์˜ ์›น ๋ Œ๋”๋ง ์—”์ง„์„ ๋ชจ๋‘ ์‹ ๊ฒฝ์จ์•ผ ํ•˜๊ณ , ์†๋„๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ๋“ค๋ณด๋‹ค ๋А๋ฆฌ๊ณ , ์ „๋ ฅ ์†Œ๋ชจ๊ฐ€ ํฌ๋‹ค๋Š” ์ ์ด๋‹ค.

3. ๊ด€๋ จ ๋ฌธ์„œ[ํŽธ์ง‘]