InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

InterSystems IRIS ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ, Ensemble ํ†ตํ•ฉ ํ”Œ๋žซํผ ๋ฐ Cachรฉ DBMS์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ†ตํ•ฉ ์†”๋ฃจ์…˜์˜ ์˜ค๋ฅ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋„๊ตฌ ํŒจ๋„ ๋˜๋Š” ๋‹ค๋ฅธ ์ž์ „๊ฑฐ ์ด์•ผ๊ธฐ.

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ํ‘œ์ค€ ๊ด€๋ฆฌ ๋„๊ตฌ์™€ ํ•จ๊ป˜ InterSystems IRIS ํ”Œ๋žซํผ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ†ตํ•ฉ ์†”๋ฃจ์…˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ด๋ฅผ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์†”๋ฃจ์…˜์—๋Š” ์ „์—ญ ๋ฐฐ์—ด ๋ณด๊ธฐ ๋ฐ ํŽธ์ง‘, ์ฟผ๋ฆฌ ์‹คํ–‰(JDBC/ODBC ํฌํ•จ), ์ด๋ฉ”์ผ์„ ํ†ตํ•ด ์••์ถ•๋œ XLS ํŒŒ์ผ๋กœ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ „์†ก์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ํด๋ž˜์Šค ๊ฐœ์ฒด๋ฅผ ๋ด…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ฐ„๋‹จํ•œ ๊ทธ๋ž˜ํ”„.

์ด๊ฒƒ์€ CSP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. jQuery-UI, ์ฐจํŠธ.js, jsgrid.js
๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ์•„๋ž˜ ๋‚ด์šฉ๊ณผ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” ์ €์žฅ์†Œ.

๋ชจ๋“  ๊ฒƒ์€ InterSystems IRIS, Ensemble ๋ฐ Cachรฉ DBMS์˜ ๊ฐ์ฒด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ์—ฐ๊ตฌํ•˜๋Š” ๊ฒƒ์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ์—ˆ์„ ๋•Œ ํ›Œ๋ฅญํ•œ ๊ธฐ์‚ฌ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋‚˜๋Š” ๋ถ„๊ธฐํ–ˆ๋‹ค ๊ณ„ํš. ๊ทธ์˜ ํ•„์š”์— ๋”ฐ๋ผ ๊ทธ๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ์†”๋ฃจ์…˜์€ ๊ธฐ๋ณธ ๋ช…๋ น ์ฐฝ, ์‹คํ–‰ ๋ฒ„ํŠผ ๋ฐ ๋ช…๋ น ๊ตฌ์ฒดํ™” ์„ค์ •์ด ์žˆ๋Š” %CSP.Util.Pane์˜ ํŒจ๋„ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

"?"๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์„ ์–ป์Šต๋‹ˆ๋‹ค.

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์ „์—ญ

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ช…๋ น์€ ์ „์—ญ์„ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” ์ž์‹ ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋””๋ฒ„๊น…ํ•  ๋•Œ ์ „์—ญ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๋งํฌ์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋‘์— ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ญ์ˆœ์œผ๋กœ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ๊ฒฌ๋œ ๋…ธ๋“œ๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์ด๋ฆ„ ๋’ค์˜ ๋ช…๋ น์— ๋นผ๊ธฐ ^logMSW-๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ „์ฒด ์ „์—ญ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ^log(ํ”„๋กœํ† ์ฝœ ์ „์—ญ)๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ „์—ญ๋งŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋กœ ์ธํ•œ ์‚ญ์ œ์— ๋Œ€ํ•œ ์ œํ•œ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฆ„ ๋’ค์— "*"๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ถ”๊ฐ€ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์ „์—ญ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ "*"๋Š” "ํ• ๋‹น๋œ MB"๋ผ๋Š” ์ƒˆ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋˜ ๋‹ค๋ฅธ ๋ณ„ํ‘œ๋Š” "์‚ฌ์šฉ๋œ MB"์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‘ ๋ณด๊ณ ์„œ์˜ ์กฐํ•ฉ๊ณผ "๋ณ„ํ‘œ"๋กœ์˜ ๊ตฌ๋ถ„์€ ์ข…์ข… ๊ธด ํ˜•์‹์˜ ๋ณด๊ณ ์„œ๋ฅผ ์ ์œ ๋œ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ๊ธ€๋กœ๋ฒŒ์˜.

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์ด ํ…Œ์ด๋ธ”์—์„œ ํ™œ์„ฑ ๋งํฌ๋ฅผ ๋”ฐ๋ผ ์ „์—ญ ์ž์ฒด๋ฅผ ๋ณด๊ฑฐ๋‚˜ ๊ถŒํ•œ ํ•„๋“œ์—์„œ R ๋˜๋Š” W๋ฅผ ํด๋ฆญํ•˜์—ฌ ๊ด€๋ฆฌ ํฌํ„ธ์—์„œ ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ๋ณด๊ฑฐ๋‚˜ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ

๋ณด๊ณ ์„œ๋ฅผ Excel ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜

๋‘ ๋ฒˆ์งธ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์€ ์ฟผ๋ฆฌ ์‹คํ–‰์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด sql ๋ฌธ์„ ๋ช…๋ น์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.

ํ‘œ์ค€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ ํฌํ„ธ์—์„œ ์ œ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ผ์€ DBMS์— ๊ตฌ์„ฑ๋œ JDBC/ODBC ์†Œ์Šค์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ XLS ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๊ณ  ์ด๋ฉ”์ผ๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‚ด ๋„๊ตฌ์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— "Excel ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œ" ํ™•์ธ๋ž€์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ์ƒ ์ƒํ™œ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ์„ฑ ๋ชจ๋“ˆ์„ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ†ตํ•ฉ ์†”๋ฃจ์…˜์— ์„ฑ๊ณต์ ์œผ๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋จผ์ € ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ์™€ ์‚ฌ์šฉ์ž ๋ฐ ๋ฉ”์ผ ์„œ๋ฒ„์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ „์—ญ ํ”„๋กœ๊ทธ๋žจ ์„ค์ • ^%App.Setting์˜ ๋…ธ๋“œ๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. .

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์ „์—ญ์ ์œผ๋กœ ๋ณด๊ณ ์„œ ์ €์žฅ

๋ณด๊ณ ์„œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ „์ฒด์ ์œผ๋กœ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

JDBC์˜ ๊ฒฝ์šฐ:
##class(App.sys).SqlToDSN

ODBC์˜ ๊ฒฝ์šฐ:
##class(App.sys).SaveGateway

SQL ํ‘œํ˜„์‹์˜ ๊ฒฝ์šฐ:
##class(App.sys).SaveSQL

์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ:
##class(App.sys).SaveQuery

์˜ˆ๋ฅผ ๋“ค์–ด ํŒจ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
๋ผ์ด์„ผ์Šค ์‚ฌ์šฉ๋Ÿ‰ ๊ณ„์‚ฐ ์š”์ฒญ ๊ฒฐ๊ณผ๋ฅผ ^GN ๋ฐฐ์—ด์— ์ €์žฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจ๋„์— ์ €์žฅ๋œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. result ^GN("%SYSTEM.License:Counts",0)

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

๊ฐ•ํ™”๋œ ๊ธฐ๋Šฅ ๋ชจ๋“ˆ

๊ทธ๋ฆฌ๊ณ  ๋‚ด ์ž‘์—…์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์ž๋™ํ™”ํ•œ ๋‘ ๋ฒˆ์งธ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๊ฐ ์ฟผ๋ฆฌ ์ค„์„ ์ƒ์„ฑํ•  ๋•Œ ํŠน๋ณ„ํžˆ ์ž‘์„ฑ๋œ ๋ชจ๋“ˆ์„ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๋ณด๊ณ ์„œ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ(์˜ˆ: ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ž‘์—…์„ ์œ„ํ•œ ํ™œ์„ฑ ๋งํฌ)์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ 1: App.Parameter ํด๋ž˜์Šค ์ž‘์—…

"ํ…Œ์ด๋ธ” ํƒ์ƒ‰๊ธฐ"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ƒ์„ฑ

"์˜ต์…˜"์„ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜ ํŽธ์ง‘

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์˜ˆ 2: "๊ธฐ๋ก" ๋งํฌ๋ฅผ ํ†ตํ•ด ์ „์—ญ ๋ณด๊ธฐ

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

๊ทธ๋ž˜ํ”„

๊ธฐ์‚ฌ [9]์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฆ๊ฐ€๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด iris.log ํŒŒ์ผ(cconsole.log)์—์„œ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ๋ฅผ ํ˜„์žฌ ๋‚ ์งœ๋ถ€ํ„ฐ ์†Œ๊ธ‰ํ•˜์—ฌ โ€œExpandโ€ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›”๋ณ„ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด InterSystems IRIS์—์„œ๋„ ์ด๋ฒคํŠธ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ด๋Š” ํ”„๋กœํ† ์ฝœ ํŒŒ์ผ์—์„œ๋„ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

InterSystems IRIS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ชจ์Œ

์ž๋ฃŒ ๋งํฌ :

[1] Kasha์˜ ๋กœ๊น… ํ•˜์œ„ ์‹œ์Šคํ…œ
[2] ์ฆ‰์„ ์ฃฝ - jqGrid๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cachรฉ์—์„œ CRUD ์ˆ˜ํ–‰
[3] Cachรฉ DBMS๋ฅผ ์œ„ํ•œ ๋Œ€์ฒด SQL ๊ด€๋ฆฌ์ž
[4] Cachรฉ DBMS๋ฅผ ์ด์šฉํ•œ Email ์ƒ์„ฑ ๋ฐ ์ „์†ก ์˜ˆ์‹œ
[5] ์บ์‹œ + jQuery. ๋น ๋ฅธ ์‹œ์ž‘
[6] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
[7] UDL ์ง€์›
[8] Cachรฉ ๊ด€๋ฆฌ ํฌํ„ธ์—์„œ ์ „์—ญ ๋ณด๊ธฐ
[9] ์บ์‹œ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค
[10] Cachรฉ DBMS์˜ ํ˜„์ง€ํ™”

์ด ๋„๊ตฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์„ ์ค€ ์ด ๊ธฐ์‚ฌ์™€ ๊ธฐํƒ€ ๊ธฐ์‚ฌ์˜ ์ž‘์„ฑ์ž์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

PS ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ ์•„์ง ๋งŽ์€ ์•„์ด๋””์–ด๊ฐ€ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ๋‚˜๋Š” ๋‹ค์Œ์„ ํ•  ๊ณ„ํš์ด๋‹ค:

1. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ…œํ”Œ๋ฆฟ ์œ ํ‚ท
2. ์ฝ”๋“œ ํ˜•์‹ ์ž๋™ ๋ฌธ์„œํ™” ๋…์„ธ๊ฒ CStudio์— ํ†ตํ•ฉํ•˜์—ฌ

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€