Skip to content

Instantly share code, notes, and snippets.

@coleea
Created September 26, 2024 05:10
Show Gist options
  • Save coleea/59d62ef78e794b421d160425fdc77aab to your computer and use it in GitHub Desktop.
Save coleea/59d62ef78e794b421d160425fdc77aab to your computer and use it in GitHub Desktop.

๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. int, float, boolean, struct, record, char ๋“ฑ 1995๋…„ ์ดํ›„์— ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๋ผ๋ฉด string๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ํ”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์˜ค๋””์˜ค์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ์—๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‚ด์žฅ ์œ ํ˜•์ด ์˜ค๋””์˜ค์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด์˜ ์ด๋ฆ„์€ Faust์ด๋ฉฐ ๋””์ง€ํ„ธ ์•…๊ธฐ, ์†Œํ”„ํŠธ์›จ์–ด ์•…๊ธฐ, ์Œํ–ฅ ํšจ๊ณผ ์ƒ์„ฑ๊ธฐ์™€ ๊ฐ™์€ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค๊ณ„ ์š”๊ตฌ ์‚ฌํ•ญ์—์„œ ๋‚˜์˜จ ์–ธ์–ด๋Š” ์ •๋ง ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ๋งˆ์น˜ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์Œ์•… ์ŠคํŠœ๋””์˜ค์— ๊ฐ€๋“ํ•œ ์ƒ์ž์™€ ์ผ€์ด๋ธ”์ด ๋งŒ๋‚œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Faust๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ํ”„๋ž‘์Šค ๊ตญ๋ฆฝ ์Œ์•… ์ฐฝ์ž‘ ์„ผํ„ฐ์—์„œ ๊ฐ“ ์˜จ Faust ๊ฐœ๋ฐœ์ž, ์—ฐ๊ตฌ์ž, ๊ต์œก์ž์ธ Romain Michon๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” Faust๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์ด ๋Œ€ํ™” ์ „์ฒด๋ฅผ ์˜ค๋””์˜ค ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด์„œ ๋ณด๋‚ด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Faust๋Š” C, Rust, JavaScript, WASM์œผ๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ๊ณง ์นฉ์˜ ๋กœ์ง ๊ฒŒ์ดํŠธ๋ฅผ ์ง์ ‘ ๊ตฌ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ์ปดํŒŒ์ผ๋  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ์ „์ฒด๋ฅผ ์‚ดํŽด๋ณด๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด๊นŒ์ง€ ๋‹ค๋ฃจ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ํ”ผ์†Œ๋“œ์—์„œ๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ถ€ํ„ฐ 1๊ณผ 0๊นŒ์ง€, ๊ทธ ์‚ฌ์ด์— ์˜ค๋””์˜ค๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋‹ค๋ฃฐ ๋‚ด์šฉ์ด ๋งŽ์œผ๋‹ˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ ํ˜ธ์ŠคํŠธ Kris Jenkins์ด๊ณ , ์˜ค๋Š˜์˜ Developer Voices๋Š” Romain Michon์˜ ๋ชฉ์†Œ๋ฆฌ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜ Romain Michon๊ณผ ํ•จ๊ป˜ํ•ฉ๋‹ˆ๋‹ค. Romain, ์•ˆ๋…•ํ•˜์„ธ์š”?

์ž˜ ์ง€๋‚ด์š”, Kris. ํœด๊ฐ€ ํ›„ ๋ง‰ ๋Œ์•„์™€์„œ ํŽธ์•ˆํ•ด ๋ณด์ด์‹œ๋„ค์š”.

ํœด๊ฐ€๋Š” ์ข‹์•˜์–ด์š”. ์ œ ์ทจํ–ฅ์—๋Š” ์กฐ๊ธˆ ์งง์•˜์ง€๋งŒ ๋‹ค์‹œ ์ผ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ผ์€ ์ด ํฅ๋ฏธ๋กœ์šด Faust ์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด์ฃ . ๊ทธ๋Ÿผ ๊ฑฐ๊ธฐ์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณผ๊นŒ์š”? Faust๋Š” ๋ฌด์—‡์ด๋ฉฐ ์™œ ๋˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์—ˆ๋‚˜์š”?

Faust๋Š” ์‹ค์‹œ๊ฐ„ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ฆ‰, DSL(Domain Specific Language)์ž…๋‹ˆ๋‹ค. Faust๋Š” ๋ฒ”์šฉ ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Faust๋Š” ํ•œ ๊ฐ€์ง€ ์ž‘์—…, ์ฆ‰ ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„์ด๋ผ๋Š” ๊ฒƒ์ด ์–ด๋ ค์šด ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋งž๋‚˜์š”?

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. Faust๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ์ด์œ ๋Š” ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์˜ค๋””์˜ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋” ๋†’์€ ์ˆ˜์ค€์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์˜€์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด C, C++ ๋˜๋Š” Rust๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋งŒ ์ €์ง€์—ฐ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค๋””์˜ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ์—์„œ ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด C, C++ ๋˜๋Š” Rust๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Rust๋Š” ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„์‹œ๋‹ค์‹œํ”ผ ์ด๋Ÿฌํ•œ ์–ธ์–ด์˜ ๋ฌธ์ œ์ ์€ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์ปดํ“จํ„ฐ ๊ณผํ•™์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹์ด ์ œํ•œ์ ์ธ ์‚ฌ๋žŒ๋“ค์ด ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ์ด์œ ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์˜€์Šต๋‹ˆ๋‹ค. Faust๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ปดํŒŒ์ผ๋œ ์–ธ์–ด์™€ ๋™์ผํ•œ ์ข…๋ฅ˜์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์–ด์š”? ์ด ํŒŸ์บ์ŠคํŠธ๋ฅผ ๋…น์Œํ•  ๋•Œ ๋ฐฉ์˜ ์ž”ํ–ฅ์„ ์ œ๊ฑฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž”ํ–ฅ์Œ์„ ์˜ค๋””์˜ค์—์„œ ๋ถ„๋ฆฌํ•˜๋ ค๋Š” ๊ทธ๋Ÿฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ์ธ๊ฐ€์š”?

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

์‹ ์‹œ์‚ฌ์ด์ €์™€ ๊ฐ™์€ ๊ฒƒ๋„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?

๋„ค, ์ง‘์— ์žˆ๋Š” ํ‚ค๋ณด๋“œ ์‹ ์‹œ์‚ฌ์ด์ €์™€ ๊ฐ™์ด ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์†Œ๋ฆฌ๊ฐ€ ๋‚˜๋Š” ๊ทธ๋Ÿฐ ๊ฒƒ์„ Faust๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. Faust ์‚ฌ์šฉ์ž๋Š” ๋Œ€๋ถ€๋ถ„ ์ €์ˆ˜์ค€ C ์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ฒธ ์Œ์•… ๋””์ž์ด๋„ˆ์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ธ๊ฐ€์š”?

์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋””์˜ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์ž‘์—…์„ ํ•˜๋Š” ํšŒ์‚ฌ์—์„œ ์ผํ•˜๋Š” ๊ฒฝ์šฐ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ์‚ฌ๋žŒ๊ณผ ๊ธฐ๋ณธ์ ์œผ๋กœ DSP ์—”์ง€๋‹ˆ์–ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šด๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ˆ˜ํ•™์„ ์—ฐ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์‚ฌ๋žŒ๋“ค์ด ํ•˜๋Š” ์ผ์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ปดํ“จํ„ฐ๋‚˜ ์Šค๋งˆํŠธํฐ ๋“ฑ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋‘ ์‚ฌ๋žŒ์€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋™์ผํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. DSP ์—”์ง€๋‹ˆ์–ด๋Š” MATLAB์ด๋‚˜ Python๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ์ž‘ํ•˜๊ณ , ์™„์ œํ’ˆ์„ ๊ตฌํ˜„ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋Š” C, C++, Rust, JavaScript, ์›น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค์—์„œ ์ด๋Ÿฌํ•œ ๋‘ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Faust๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ DSP ์—”์ง€๋‹ˆ์–ด๊ฐ€ Python์ด๋‚˜ MATLAB์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ์ˆ˜์ค€์˜ ์ ‘๊ทผ์„ฑ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ตฌํ˜„ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๋ฉด ๋ฐ”๋กœ ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์žฅ์ ์„ ๋ชจ๋‘ ์–ป๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. ์Œ์•…์— ํŠนํ™”๋œ ํ‘œํ˜„๋ ฅ์„ ๊ฐ–์ถ˜ ์–ธ์–ด์™€ C์˜ ์„ฑ๋Šฅ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๋Š” ์–ธ์–ด๋ฅผ ๋ชจ๋‘ ๊ฐ–์ถ˜ ์–ธ์–ด๊ฐ€ ์—†๋‹ค๋ฉด ์ด๊ฒƒ์ด ๋ชฉํ‘œ๊ฐ€ ๋˜๋Š”๊ตฐ์š”.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•„์ง ๋ง์”€๋“œ๋ฆฌ์ง€ ์•Š์€ ์ค‘์š”ํ•œ ์ ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. Faust๋Š” ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Faust๋Š” ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์–ธ์–ด๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ C, C++, ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ Rust, ์›น ์–ด์…ˆ๋ธ”๋ฆฌ, Java, JavaScript๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Faust์˜ ๋Œ€์ƒ์€ ๋งค์šฐ ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust๋กœ ์ž‘์„ฑํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust ์ž์ฒด๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Faust๋Š” ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋Ÿฌํ•œ ์–ธ์–ด๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. Faust๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ ์ˆ˜๋™ ์ปดํŒŒ์ผ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์ตœ์ข… ์ œํ’ˆ์„ ๋งŒ๋“œ๋Š”๊ตฐ์š”.

๋„ค, ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๋ฉด ๊ด€๋ฆฌ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— Java๋ผ๊ณ  ๋ง์”€ํ•˜์…”์„œ ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ด ๋„๋ฉ”์ธ์—๋Š” ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ์‹œ ์ค‘์ง€๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์–ธ์–ด๋„ ํ•„์š”ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„ค, Faust ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒ˜์Œ ์„ค๊ณ„๋˜์—ˆ์„ ๋•Œ๋Š” ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Faust ์ปดํŒŒ์ผ๋Ÿฌ์— ์ƒˆ๋กœ์šด ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ƒˆ๋กœ์šด ์–ธ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด ํ•ด๋‹น ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์งˆ์ ์ธ ๊ด€์ ์—์„œ Java๋กœ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ C++๋กœ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์ ์œผ๋กœ ๋งํ•˜๋ฉด Java์™€ C++๋Š” DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Java๋ฅผ ์ง€์›ํ•˜๋Š” ์ด์œ ๋Š” ์–ด๋–ค ์‹œ์ ์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์š”์ฒญํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Faust์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์ƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ตœ์‹  ๋ฒ„์ „์˜ Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋” ์ด์ƒ Java๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ถ€๋ถ„์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„ค, ํ•˜์ง€๋งŒ JavaScript๋„ ๋น„์Šทํ•œ ๊ฒฝ์šฐ์ฃ . ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์—†์ง€๋งŒ ์‰ฝ๊ฒŒ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ง์”€ํ•˜์‹œ๋Š”๊ตฐ์š”. ๋Ÿฐํƒ€์ž„์œผ๋กœ๋Š” ์ตœ์„ ์˜ ์„ ํƒ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ง€์›ํ•  ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๋Ÿฐํƒ€์ž„ ์ธก๋ฉด์—์„œ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ์–ป์œผ๋ ค๋ฉด ์„ ํƒ์˜ ํญ์ด ๊ทธ๋ ‡๊ฒŒ ๋„“์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๋Œ€๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ , ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด์˜ ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฆ˜ ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๋Š” ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ C, C++, Rust๊ฐ€ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

์ž‘์„ฑ์ž๊ฐ€ ์˜ค๋””์˜ค ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ์šฐ์—ฐํžˆ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ ์–ธ์–ด๋„ ์ง€์›ํ•˜๋‚˜์š”? ์†”์งํžˆ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด ๊ทธ ์–ธ์–ด์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์€ ์žˆ์ง€๋งŒ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋ ‡๊ตฐ์š”. ๊ทธ๋Ÿผ Faust ์ž์ฒด๋กœ ๋Œ์•„๊ฐ€์„œ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•œ ์–ธ์–ด๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•˜๋‚˜์š”? ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”? ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ด๋‚˜์š”?

์–ด๋ ค์šด ์งˆ๋ฌธ์ด๋„ค์š”. ์•„๋งˆ๋„ ๋งค์šฐ ๊ธด ๋‹ต๋ณ€์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ์งง๊ฒŒ ๋‹ต๋ณ€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Faust์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„์•ผ ํ•  ๊ฒƒ์€ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…๋ นํ˜• ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ช…๋ นํ˜• ์–ธ์–ด์ธ C, C++, Rust์™€๋Š” ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Faust๋Š” ์ด๋Ÿฌํ•œ ๋ฉด์—์„œ ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋˜ ํ•œ ๊ฐ€์ง€ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์€ ๊ฒƒ์€ Faust๋Š” ์›๋ž˜ Yann Orlarey๋ผ๋Š” ์‚ฌ๋žŒ์ด ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Yann์€ ์ง€๊ธˆ๋„ Faust ์ž‘์—…์„ ํ™œ๋ฐœํžˆ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ €ํฌ๋Š” ์—ฌ๊ธฐ ๊ฐ™์€ ํŒ€์— ์†ํ•ด ์žˆ์–ด์„œ ์„œ๋กœ ์ž์ฃผ ๋ด…๋‹ˆ๋‹ค. Yann์€ ํ•ญ์ƒ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๋ฅผ ์—ฐ๊ตฌํ•ด ์™”๊ณ  ๋žŒ๋‹ค ๋ฏธ์ ๋ถ„์ด๋ผ๋Š” ๊ฐœ๋…์— ๋งค์šฐ ๊ด€์‹ฌ์ด ๋งŽ์€ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Yann์€ ์ด๋Ÿฌํ•œ ์›์น™์„ ๊ฒฐํ•ฉํ•œ ์˜ค๋””์˜ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. Faust๋Š” ๋žŒ๋‹ค ๋ฏธ์ ๋ถ„์˜ ์›์น™์„ ์ฐจ์šฉํ–ˆ์œผ๋ฉฐ ๋งค์šฐ ํ•จ์ˆ˜ํ˜•์ ์ธ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Yann์ด ์ด ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ์˜ ์ฃผ์š” ํ™•์‹ ์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณด๋‹ค ์˜ค๋””์˜ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐ ๋” ๋‚˜์€ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ์˜›๋‚ ์—๋Š” ์‚ฌ๋žŒ๋“ค์ด ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ๋””์ง€ํ„ธ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„๋‚ ๋กœ๊ทธ ํšŒ๋กœ๋ฅผ ์‚ฌ์šฉํ–ˆ์ฃ . ๋„ค, ๋งž์•„์š”. ๊ทธ๋ž˜์„œ ์ €ํ•ญ, ํŠธ๋žœ์ง€์Šคํ„ฐ, ํŠธ๋žœ์ง€์Šคํ„ฐ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ปคํŒจ์‹œํ„ฐ์™€ ๋‹ค์–‘ํ•œ ๋ถ€ํ’ˆ์„ ํ•จ๊ป˜ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•„ํ„ฐ๋‚˜ ์‚ฌ์šด๋“œ ์‹ ์‹œ์‚ฌ์ด์ €์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํšŒ๋กœ์˜ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์˜๋ฏธ์—์„œ ํšŒ๋กœ์˜ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณด๋‹ค ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust๋Š” ์ด๋Ÿฌํ•œ ์ ์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust๋Š” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ‹์ง€๋„ค์š”. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธ”๋ก์„ ๋ธ”๋ก์—, ๋ธ”๋ก์„ ๋ธ”๋ก์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ธ”๋ก์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ นํ˜• ์–ธ์–ด์—์„œ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์–ธ์–ด์— Faust๋งŒํผ ๊นŠ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค.

๋ฐ”์ดํŠธ ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•œ ๋‹ค์Œ ๋ฐ”์ดํŠธ ์ฒญํฌ๋กœ ์ฒด์ธ์˜ ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  ๋งต ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ์Šคํƒ€์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋” ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Faust๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Faust ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ํ•˜๋Š” ์ผ์€ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์–ธ์–ด์˜ ์˜๋ฏธ๋ก ์— ๋„ˆ๋ฌด๋‚˜ ๊นŠ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์„œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ธ Faust ํ”„๋กœ๊ทธ๋žจ์„ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Faust ์›น IDE(faustide.grame.fr์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Faust ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ์ž‘์„ฑ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์— ํ•ด๋‹นํ•˜๋Š” ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust์—์„œ ์ž‘์„ฑํ•˜๋Š” ๋‚ด์šฉ์—๋Š” ํ•ญ์ƒ ๊ทธ๋ž˜ํ”ฝ ๋Œ€์‘ ๊ด€๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust์™€ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ์ด๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Faust์—์„œ๋Š” ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๋ฏ€๋กœ ์˜ค๋””์˜ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ž‘์—…์„ ๋‹ค๋ฅธ ์ž‘์—…์— ์—ฐ๊ฒฐํ•˜๊ณ , ๋˜ ๋‹ค๋ฅธ ์ž‘์—…์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฉฐ, ํ•ญ์ƒ ์ด์— ํ•ด๋‹นํ•˜๋Š” ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํƒ€ ํŽ˜๋‹ฌ ๋ณด๋“œ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์„ค๊ณ„ํ•œ ๊ฒƒ์„ ๋– ์˜ฌ๋ฆฌ๊ฒŒ ํ•˜๋„ค์š”. ๊ธฐํƒ€๋ฅผ ์—์ฝ”, ์ปดํ”„๋ ˆ์„œ ๋“ฑ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๋กœ ๊ทธ๊ฑฐ์˜ˆ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋Š” ์ผ์ด ๋ฐ”๋กœ ๊ทธ๊ฒ๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋ณธ ์ˆ˜ํ•™ ์—ฐ์‚ฐ์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค. ๋ง์…ˆ, ๋บ„์…ˆ, ๋•Œ๋กœ๋Š” ๊ณฑ์…ˆ๊ณผ ์ง€์—ฐ์ด์ฃ . Faust์—์„œ ํ•„ํ„ฐ๋ฅผ ์ฝ”๋”ฉํ•˜๋ ค๋ฉด ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ์ง€์—ฐ์„ ๊ฒฐํ•ฉํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฌผ๋ฆฌ์  ํšŒ๋กœ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ปคํŒจ์‹œํ„ฐ๋Š” ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , ์ €ํ•ญ์€ ๊ณฑ์…ˆ์ด๋‚˜ ๋‚˜๋ˆ—์…ˆ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๋งž์•„์š”. ๊ทธ๋Ÿผ ์ด๊ฑธ ์Œ์•… ๊ด€๋ จ ์ž‘์—…์—๋งŒ ์‚ฌ์šฉํ•˜๋‚˜์š”? ์•„๋‹ˆ๋ฉด ์ œ๊ฐ€ ๋ชจ๋ฅด๋Š” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ฐ€ ์žˆ๋‚˜์š”?

์Œ, ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์œผ๋กœ ์˜ค๋””์˜ค DSP๋Š” ํ•ญ์ƒ ์Œ์•…๊ณผ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด 20์„ธ๊ธฐ ํ›„๋ฐ˜์— ์Œ์•… ๊ธฐ์ˆ ์„ ์—ฐ๊ตฌํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ, ์ž๋™์ฐจ, ์Šคํ”ผ์ปค ๊ธฐ์ˆ  ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์˜ค๋””์˜ค ๋””์ง€ํ„ธ ์ธํ”„๋ผ๋ฅผ ๊ฐœ๋ฐœํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ฐ™์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์Œ์•…์ด ์œ ์ผํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•„๋‹™๋‹ˆ๋‹ค. ์Šค๋งˆํŠธํฐ์—๋„ ์‚ฌ์šด๋“œ๊ฐ€ ์žˆ๊ณ , ํ—ค๋“œํฐ์—๋„ ์‚ฌ์šด๋“œ๊ฐ€ ์žˆ๊ณ , ์Šคํ”ผ์ปค์—๋„ ์‚ฌ์šด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ์ง€๊ธˆ์ฒ˜๋Ÿผ ํ™”์ƒ ํšŒ์˜๋ฅผ ํ•  ๋•Œ๋„ ์‚ฌ์šด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹น์—ฐํžˆ ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๋งํ•˜๋Š” ๋™์•ˆ์—๋„ ์‚ฌ์šด๋“œ ์ฒ˜๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ™”์ƒ ๋…นํ™”๋ฅผ ํ•˜๋Š” ๋™์•ˆ์—๋„ ๋ง์ด์ฃ . ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šด๋“œ๊ฐ€ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์–ด๋””๋“  ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, Faust๋Š” ์Œ์•… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  ์‚ฌ์šด๋“œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์ฆ‰ ์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ ์ฃผ๋ณ€์˜ ๋ชจ๋“  ๊ณณ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๋งž์•„์š”. ๋ช‡ ๋…„ ์ „์— iOS์šฉ Objective-C ์˜ค๋””์˜ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋Š”๋ฐ, ๋„ˆ๋ฌด ์ €์ˆ˜์ค€์ด์—ˆ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ์ €ํฌ ๋ชจ๋‘ ๊ทธ๋Ÿฐ ๊ฒฝํ—˜์„ ํ•ด๋ดค์„ ๊ฑฐ์˜ˆ์š”.

๋” ๋†’์€ ์ˆ˜์ค€์˜ ๋ฌด์–ธ๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „ํ•œ๊ฐ€์š”? ์œ ํ˜• ์•ˆ์ „ํ•œ๊ฐ€์š”? ๊ทธ๋Ÿฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์‹œ๋‚˜์š”?

๊ทธ๋ ‡์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Faust๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค๋Š” ๋ง์€ ์•„๋‹ˆ์ง€๋งŒ ์œ ํ˜• ์ธก๋ฉด์—์„œ Faust๋Š” ํ•˜๋‚˜์˜ ์œ ํ˜•๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์˜ค๋””์˜ค ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust์—์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์˜ค๋””์˜ค ์‹ ํ˜ธ๋ฟ์ด๋ฉฐ, Faust ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ €์ˆ˜์ค€์—์„œ int, float ๋“ฑ ๋ฌด์—‡์ด ๋ ์ง€ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” Faust์—์„œ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ์ตœ์ ํ™”ํ•˜์—ฌ C, C++ ๋˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ฐ€์žฅ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ ํ˜• ์ธก๋ฉด์—์„œ Faust๋Š” ํ•˜๋‚˜์˜ ์œ ํ˜•๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์•ˆ์ „ํ•˜๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ๋” ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” C, C++ ๋˜๋Š” Faust์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด๋กœ ๊ฐ€์žฅ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๊ด€๋ จํ•˜์—ฌ ์ž˜๋ชป๋œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋Ÿฐ ๊ฒƒ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด ์•„๋‹ˆ๋ผ ์˜ค๋””์˜ค ์‹ ํ˜ธ๋ฅผ ์ฒด์ธ ์•„๋ž˜๋กœ ์ „๋‹ฌํ•  ๋•Œ์ฏค์ด๋ฉด ๋” ์ด์ƒ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

๋„ค, ๋งž์•„์š”. ๋ผ์ด๋ธŒ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋‚ด๋ถ€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์ง€๋งŒ, ํ•œ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ๋” ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”? ์—ฌ๋Ÿฌ ์ฝ”์–ด์—์„œ ์‰ฝ๊ฒŒ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋‚˜ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ๋‹น 30๋ฒˆ, ๋•Œ๋กœ๋Š” ์ดˆ๋‹น 60๋ฒˆ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ์‹ค์‹œ๊ฐ„ ์ œ์•ฝ ์กฐ๊ฑด์ด ๊ทธ๋ ‡๊ฒŒ ๊นŒ๋‹ค๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ์˜ ๊ฒฝ์šฐ ์ดˆ๋‹น 48,000๋ฒˆ ์ƒˆ ์ƒ˜ํ”Œ์„ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ํ•˜๋‚˜๋ฅผ ๋†“์น˜๊ฑฐ๋‚˜ ์ƒ˜ํ”Œ์ด ์ œ ์‹œ๊ฐ„์— ์ „๋‹ฌ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์กฐ๊ธˆ์ด๋ผ๋„ ๋Šฆ์œผ๋ฉด ์†Œ๋ฆฌ๊ฐ€ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šด๋“œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ์ฆ‰๊ฐ์ ์ด๋ฉฐ ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฅผ ๋งค์šฐ ์ž˜ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” ์‹ค์‹œ๊ฐ„ ์ œ์•ฝ ์กฐ๊ฑด์ด ๋งค์šฐ ๊นŒ๋‹ค๋กญ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ง์ ‘ ์ปดํŒŒ์ผ๋˜๋Š” ์ €์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌด์Šจ ์งˆ๋ฌธ์„ ํ•˜์…จ๋Š”์ง€ ์žŠ์–ด๋ฒ„๋ ธ๋„ค์š”.

๊ธฐํƒ€ ํŽ˜๋‹ฌ ๋ณด๋“œ์™€ ๊ฐ™์€ ๋น„์œ ๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŽ˜๋‹ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋‹ค๋ฅธ CPU์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด๊ฐ€์š”?

์•„, ์ด์ œ ์งˆ๋ฌธ์ด ๊ธฐ์–ต๋‚ฌ์Šต๋‹ˆ๋‹ค. Faust๋Š” Faust๋กœ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Faust ์ปดํŒŒ์ผ๋Ÿฌ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํŒŒ์ผ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฒกํ„ฐํ™”ํ•˜๊ณ  ๋ณ‘๋ ฌํ™”ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ์•ฝ 10๋…„ ์ „์— Faust ์ปดํŒŒ์ผ๋Ÿฌ์— ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ ์ผ์ข…์˜ ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค, ํŠนํžˆ GPU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. GPU์—์„œ๋Š” ๋‹น์—ฐํžˆ ๋งŽ์€ ๊ฒƒ์„ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ๋žŒ๋“ค์€ Faust์˜ ์ด ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋ณ‘๋ ฌํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ ๋ง์ด์ฃ . ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์–ธ์–ด์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์—์„œ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ฉฐ, ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” ๋ณ‘๋ ฌํ™”๋ฅผ ๋งŽ์ด ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋””์ง€ํ„ธ ์˜ค๋””์˜ค ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ณ , ์ด ๋””์ง€ํ„ธ ์˜ค๋””์˜ค ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ์—ฌ๋Ÿฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ DAW๋Š” ํ•˜๋‚˜์˜ ์ฝ”์–ด์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹คํ–‰ํ•˜๊ณ , ๋‹ค๋ฅธ ์ฝ”์–ด์—์„œ ๋‹ค๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ, ํ•˜๋‚˜์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์—ฌ๋Ÿฌ ์ฝ”์–ด์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ์ด ๊ทธ๋ ‡๊ฒŒ ๋†’์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํŒจ์นญ์€ ๋””์ง€ํ„ธ ์˜ค๋””์˜ค ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์ž‘์„ฑ ์ค‘์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Faust ์ปดํŒŒ์ผ๋Ÿฌ์˜ ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž์˜ ์ˆ˜์š”๊ฐ€ ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”์–ด๋‹น ํ•˜๋‚˜์˜ ์•…๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š”๊ตฐ์š”. ๋„ค, ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒŒ์ดํ”„๋ผ์ธ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” Faust ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ์ธ ๋‹น์‹ ์—๊ฒŒ ์ „๋‹ฌํ•˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

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

Faust ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ•˜๋Š” ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ํฐ ํŒŒ์ผ๋กœ ๊ฐ€์ ธ์™€์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ํฌํ•จ๋œ ์ธ๋ผ์ธ Faust ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๊ฐ€ ๋๋‚˜๋ฉด Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ DSP ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ํ‰ํ‰ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ์€ ์ƒ๋‹จ์—, ์ถœ๋ ฅ์€ ํ•˜๋‹จ์— ์žˆ์œผ๋ฉฐ, ๊ทธ ์‚ฌ์ด์— ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ˆ˜ํ•™ ์—ฐ์‚ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์— ๋„๋‹ฌํ•˜์—ฌ DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ด๋Ÿฌํ•œ ์ €์ˆ˜์ค€ ํ‘œํ˜„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋‚ด์šฉ์— ๋”ฐ๋ผ Faust ์ฝ”๋“œ์—์„œ ์ƒ์„ฑ๋œ DSP ๊ทธ๋ž˜ํ”„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๋‹จ๊ณ„๊ฐ€ ๋๋‚˜๋ฉด C, C++, ์›น ์–ด์…ˆ๋ธ”๋ฆฌ ๋˜๋Š” Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๋ฐฑ์—”๋“œ, ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ง€์ •ํ•˜๊ณ , Faust ์ปดํŒŒ์ผ๋Ÿฌ๋Š” DSP ํŠธ๋ฆฌ์˜ ์ €์ˆ˜์ค€ ํ‘œํ˜„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋งŽ์€ ์–ธ์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ ๋˜๋Š” ์ถ”์ƒ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ ํŠธ๋ฆฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ €์ˆ˜์ค€ ํŠธ๋ฆฌ๋ฅผ ์ฝ๊ณ  C, C++๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋Š”๋ฐ, Zig๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ฉ”์ธ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํ•ดํ‚นํ•ด์•ผ ํ•˜๋‚˜์š”, ์•„๋‹ˆ๋ฉด ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•˜๋ฉด ๋˜๋‚˜์š”?

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

ํ•˜์ง€๋งŒ ์˜ˆ์™ธ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฝค ํฅ๋ฏธ๋กœ์šด ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ €ํฌ๋Š” Faust๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FPGA๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. FPGA๋Š” ํ•„๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ ๊ฒŒ์ดํŠธ ์–ด๋ ˆ์ด์ž…๋‹ˆ๋‹ค. FPGA์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์—†๊ฑฐ๋‚˜ ๋“ค์–ด๋ณธ ์ ์€ ์žˆ์ง€๋งŒ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์„ค๋ช…ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. FPGA๋Š” ํ”„๋กœ์„ธ์„œ์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ํ”„๋กœ์„ธ์„œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚ด๋ถ€ ์ „์ž ํšŒ๋กœ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ๋งค์šฐ ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ FPGA๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์ž์ฒด ํ”„๋กœ์„ธ์„œ๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, FPGA๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์‚ฌ์šฉ๋˜๋ฉฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋œ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. CPU์™€ ๋‹ฌ๋ฆฌ ๋ฒ”์šฉ์ ์ด์ง€ ์•Š๊ณ  ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ตฌํ˜„ํ•œ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Intel์—์„œ CPU๋ฅผ ๊ฐ€์ ธ์™€์„œ ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. FPGA๋ฅผ ํ”Œ๋ž˜์‹ฑํ•˜์—ฌ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์‹ค๋ฆฌ์ฝ˜ ์•„ํ‚คํ…์ฒ˜์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค.

FPGA์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋Š” ๋กœ์ง ๊ฒŒ์ดํŠธ, RAM ๋ธ”๋ก, ๊ณฑ์…ˆ๊ธฐ ๋“ฑ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ FPGA๋Š” ๋งค์šฐ ์ €์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ FPGA๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ ค๋ฉด ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ž ํšŒ๋กœ๊ฐ€ FPGA์— ๋ฐฐ์น˜๋œ ํ›„ ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด์—์„œ๋Š” ์ด ๋กœ์ง ๊ฒŒ์ดํŠธ๋ฅผ ์ด ๋กœ์ง ๊ฒŒ์ดํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ด ์ž…๋ ฅ์„ ๊ฐ€์ ธ์˜ค๋ฉฐ, ์ด ์ž…๋ ฅ์€ ์•„๋งˆ๋„ 1๊ณผ 0์˜ ์ŠคํŠธ๋ฆผ์ผ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด 1๊ณผ 0์˜ ์—ด์—์„œ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์ €์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๋Š” ์„ธ์ƒ์— ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์–ธ์–ด๋Š” Verilog์™€ VHDL์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์žˆ๋Š” ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๋Š” Faust์—์„œ ์ง์ ‘ VHDL ์ฝ”๋“œ ๋˜๋Š” Verilog ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ •๋ง ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ •๋ง ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ์˜ˆ์™ธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํ‘œ์ค€ ์–ธ์–ด์˜ ์ƒˆ๋กœ์šด ๋ฐฑ์—”๋“œ๋ฅผ Faust์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์‰ฝ์ง€๋งŒ VHDL ๋˜๋Š” Verilog๋งŒํผ ์ €์ˆ˜์ค€์ธ ์–ธ์–ด์˜ ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ํ›จ์”ฌ ๋” ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ €ํฌ๋Š” ์•„์ง๋„ ์ด ๋ฌธ์ œ๋กœ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€์ƒ ์–ธ์–ด์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

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

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

๊ณ ์ • ์†Œ์ˆ˜์ ์€ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์˜›๋‚ ์—๋„, ๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ๋„ ๊ณ ์ • ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” DSP ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” DSP(๋””์ง€ํ„ธ ์‹ ํ˜ธ ํ”„๋กœ์„ธ์„œ)์™€ ๊ฐ™์ด ๊ณ ์ • ์†Œ์ˆ˜์ ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ์šฉ ์นฉ์ด ์•„์ง๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์นฉ์€ ์ €๋ ดํ•˜๊ฑฐ๋‚˜ ์—๋„ˆ์ง€ ์†Œ๋น„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋„๋ก ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ๊ณผ ๊ณ ์ • ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์€ ์—๋„ˆ์ง€ ์†Œ๋น„๋Ÿ‰์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹ต๋ณ€์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Faust์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ถ€๋™ ์†Œ์ˆ˜์  ์ธก๋ฉด์—์„œ ์ƒ๊ฐํ•  ํ•„์š”์กฐ์ฐจ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ญ์ง„์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Faust์—์„œ๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Faust ๊ตฌ๋ฌธ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

FPGA์—๋Š” ์‹ญ์ง„์ˆ˜๋ผ๋Š” ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋งค์šฐ ์ €์ˆ˜์ค€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ˆ˜์ค€๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ๋กœ์ง ๊ฒŒ์ดํŠธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๋•Œ ๋‹น์—ฐํžˆ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ FPGA์— ์ ํ•ฉํ•˜๊ฒŒ ์ตœ์ ํ™”๋œ HDL ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด Faust ์ปดํŒŒ์ผ๋Ÿฌ ๋‚ด์—์„œ ์ง์ ‘ ๋ถ€๋™ ์†Œ์ˆ˜์ ์—์„œ ๊ณ ์ • ์†Œ์ˆ˜์ ์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด ์ž‘์—…์€ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„ค, ์ถ”๊ฐ€ ์ž‘์—…์ด ์ƒ๋‹นํžˆ ๋งŽ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ฒซ ๋ฒˆ์งธ ์ด์œ ์ด๊ณ , ๋‹ค๋ฅธ ์ด์œ ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด์œ ๋Š” FPGA๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ตœ์ ํ™”์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

FPGA๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ž ํšŒ๋กœ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ตœ์ ํ™”๋Š” ๊ณ„์‚ฐ ๋ณ‘๋ ฌํ™”์™€ ํŒŒ์ดํ”„๋ผ์ด๋‹์ž…๋‹ˆ๋‹ค. ๊ณ„์‚ฐ ๋ณ‘๋ ฌํ™”๋Š” CPU ๋˜๋Š” DSP๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ CPU ๋˜๋Š” DSP๋Š” ๋ณ‘๋ ฌํ™”๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. FPGA์—์„œ๋Š” CPU ๋˜๋Š” DSP์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•œ ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ดํ”„๋ผ์ด๋‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ FPGA์— ์ด๋ฏธ ํ• ๋‹น๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด FPGA์— ์ด๋ฏธ ํ• ๋‹น๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋™์ผํ•œ ์ผ๋ จ์˜ ์ž‘์—…์ด ์žˆ๊ณ  ์ด ์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. FPGA์˜ ํด๋Ÿญ์ด ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๋‹ค๋ฉด ์ž ์žฌ์ ์œผ๋กœ ํ•ด๋‹น ์ž‘์—… ์ฒญํฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ํ•„ํ„ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํŒŒ์ดํ”„๋ผ์ด๋‹์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ FPGA์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ์–ป์œผ๋ ค๋ฉด ๋ณ‘๋ ฌํ™”์™€ ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ž‘์—…์€ CPU๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ์ „ํ˜€ ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, C, C++ ๋˜๋Š” ๋” ํ‘œ์ค€์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ Faust์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ตœ์ ํ™”๋Š” VHDL ๋˜๋Š” Verilog๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ๋Š” ๋” ์ด์ƒ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ด๋‹, ๋ณ‘๋ ฌํ™”, ๊ณ ์ • ์†Œ์ˆ˜์  ์ˆซ์ž ์ฒ˜๋ฆฌ๊ฐ€ ๋ฐ”๋กœ ์ด๋Ÿฌํ•œ ํŠน์ • ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋„ค, ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ํ‘œํ˜„์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ฒด์ธ์˜ ์•ž๋ถ€๋ถ„์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ๋ฒ„์ „์„ ๊ฐ€์ ธ์™€์„œ ๊ธฐ์กด ์–ธ์–ด์— ๋งž๊ฒŒ ํŠธ๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ฑฐ๋‚˜ ํ•˜๋“œ์›จ์–ด์— ๋งž๊ฒŒ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋‚˜์š”?

์•ˆํƒ€๊น๊ฒŒ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ด ํŠน์ • ํ”„๋กœ์ ํŠธ์—์„œ Faust๋ฅผ ๋งŒ๋“  Yann Orlarey๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Faust ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚ด๋ถ€ ํ‘œํ˜„์ด ๋ฐฉ๊ธˆ ์–ธ๊ธ‰ํ•œ ๋ชจ๋“  ๊ฒƒ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

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

์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” FPGA์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์€ ์œ ํ˜น์„ ๊ฐ•ํ•˜๊ฒŒ ๋А๋ผ์ง€๋งŒ, ์ด๋Š” ์ „ํ˜€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๋Š” ์ถฉ๋ถ„ํžˆ ๊ณ ์ˆ˜์ค€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž ์žฌ์ ์œผ๋กœ C ๋˜๋Š” C++ ์ฝ”๋“œ์™€ ๊ฐ™์€ ์ฝ”๋“œ, ์ฆ‰ ๋งค์šฐ ์ €์ˆ˜์ค€์˜ C ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์ตœ์ ํ™”๋˜์ง€ ์•Š์•„ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ๋Š” ์ „ํ˜€ ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์€ ๋„ˆ๋ฌด๋‚˜ ๋งŽ์€ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ด์œ ๋กœ Faust ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ผ๋ถ€๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์—…๊ณ„์—์„œ๋Š” 40๋…„๋Œ€์™€ 50๋…„๋Œ€์— ๋กœ์ง ๊ฒŒ์ดํŠธ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ˆจ๊ธฐ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋‹ค๋ฃจ๋ ค๋ฉด ๋กœ์ง ๊ฒŒ์ดํŠธ๋ฅผ ๋‹ค์‹œ ๋ฐ›์•„๋“ค์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” C ๋˜๋Š” C++ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ต์ˆ™ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ€์žฅ ๋ฐ‘๋ฐ”๋‹ฅ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ด ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ทธ๋Ÿฐ ๋ชจ๋“  ๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. C ํ”„๋กœ๊ทธ๋ž˜๋จธ์กฐ์ฐจ๋„ ๋จธ์‹  ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜์ง€, ๋ฐ˜๋“œ์‹œ AND ๊ฒŒ์ดํŠธ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์Œ์•…๊ฐ€๊ฐ€ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถ”์ƒ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ 1๊ณผ 0๊นŒ์ง€ ๋‹ค๋ฃจ๋ ค๊ณ  ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์ •๋ง ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ ํ”„๋กœ์ ํŠธ ์ค‘ ๊ฐ€์žฅ ๊ด‘๋ฒ”์œ„ํ•œ ํ”„๋กœ์ ํŠธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„ค, ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ ์ €ํฌ์—๊ฒŒ๋Š” ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿด ๋งŒ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ์•„์•ผ ํ•  ๊ฒƒ์ด ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋งˆ๋ฌด๋ฆฌํ•˜์ž๋ฉด, ํ˜„์žฌ Faust ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ๋‹ค์Œ FPGA์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ณ ์ˆ˜์ค€ ํ•ฉ์„ฑ์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šด๋“œ ํ•ฉ์„ฑ์ด๋ผ๋Š” ์˜๋ฏธ์˜ ํ•ฉ์„ฑ์ด ์•„๋‹ˆ๋ผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 20~30๋…„ ์ „์— ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ C ๋˜๋Š” C++๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FPGA๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ FPGA ๊ณต๊ธ‰์—…์ฒด๋Š” HLS(๊ณ ์ˆ˜์ค€ ํ•ฉ์„ฑ) ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๊ฐ€ ์•„๋‹Œ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ FPGA๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์–ธ์–ด๋Š” C, C++, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ Python์ž…๋‹ˆ๋‹ค. MATLAB๋„ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ณ ์ˆ˜์ค€ ํ•ฉ์„ฑ์— ์ตœ์ ํ™”๋œ C ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Faust ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ณ , Faust๋Š” ๊ณ ์ˆ˜์ค€ ํ•ฉ์„ฑ์— ์ตœ์ ํ™”๋œ ํŠน์ • C ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น C ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ FPGA ๊ณต๊ธ‰์—…์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” HLS ๋„๊ตฌ์— ๋„ฃ์œผ๋ฉด FPGA์— ์ ํ•ฉํ•˜๊ฒŒ ์ตœ์ ํ™”๋œ FPGA ํ”„๋กœ๊ทธ๋žจ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VHDL ๋˜๋Š” Verilog๋กœ ์ง์ ‘ ์ž‘์„ฑํ•œ ๊ฒƒ๋งŒํผ ์ข‹์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ CPU๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค.

ํ•œ ๋ฒˆ์— ์ด๋™ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๋‘ ๋ฒˆ์— ๊ฑธ์ณ ์ด๋™ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋„ค, ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ง์ ‘ ํŒŒ์ดํ”„๋ผ์ด๋‹๊ณผ ๋ณ‘๋ ฌํ™”๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. HLS์—์„œ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ํŒŒ์ดํ”„๋ผ์ด๋‹๊ณผ ๋ณ‘๋ ฌํ™”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€๋งŒ, Faust ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ์— ์ง์ ‘ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Yann์ด ๋‹ค์Œ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋ฉด ๋” ๊น”๋”ํ•ด์งˆ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ํ•ญ์ƒ ์–ด๋ ค์šธ๊นŒ์š”?

์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ €ํฌ ํŒ€์€ FPGA์— ๋งค์šฐ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด CPU๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๋ฉด์—์„œ FPGA์˜ ์„ฑ๋Šฅ์€ ๊ธฐ์กด ํ”Œ๋žซํผ๋ณด๋‹ค ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค๋””์˜ค ์ง€์—ฐ ์‹œ๊ฐ„์ด ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ FPGA๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ์ง€์—ฐ ์‹œ๊ฐ„์€ ์žˆ์ง€๋งŒ CPU์— ๋น„ํ•ด ํ›จ์”ฌ ์งง์Šต๋‹ˆ๋‹ค. ์ฆ‰, FPGA์—์„œ ์‚ฌ์šด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ FPGA ์™ธ๋ถ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋งค์šฐ ์งง์Šต๋‹ˆ๋‹ค. CPU, ๋””์ง€ํ„ธ ์‹ ํ˜ธ ํ”„๋กœ์„ธ์„œ ๋˜๋Š” ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ๋ง์ด์ฃ . FPGA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” ์ž ์žฌ์ ์œผ๋กœ ๋งค์šฐ ๋†’์€ ์ƒ˜ํ”Œ๋ง ์†๋„(์ „ํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‚ฌ๋กœํ—ค๋ฅด์ธ  ๋ฒ”์œ„๊ฐ€ ์•„๋‹Œ ๋ฉ”๊ฐ€ํ—ค๋ฅด์ธ  ๋ฒ”์œ„)๋กœ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. FPGA์—์„œ๋Š” 20MHz๋กœ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋” ๋‚ฎ์€ ์ƒ˜ํ”Œ๋ง ์†๋„๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด ์—ฐ์‚ฐ ์ธก๋ฉด์—์„œ ๊ทธ๋ ‡๊ฒŒ ๋น„์‹ธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กญ๋„ค์š”. ์งˆ๋ฌธ์ด ์žˆ๋Š”๋ฐ, ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋†’์€ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ์›ํ•˜๋Š” ๊ทน๋‹จ์ ์ธ ์˜ค๋””์˜ค ์• ํ˜ธ๊ฐ€๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌด์„  ์‹ ํ˜ธ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๊ฒƒ์„ ์œ„ํ•œ ๊ฒƒ์ธ๊ฐ€์š”?

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

์‹ ํ˜ธ์˜ ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์•จ๋ฆฌ์–ด์‹ฑ์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์•จ๋ฆฌ์–ด์‹ฑ์€ DSP ์—”์ง€๋‹ˆ์–ด๊ฐ€ ํ•ญ์ƒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์•จ๋ฆฌ์–ด์‹ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ๋†’์ด๋ฉด ๋‚˜์ดํ€ด์ŠคํŠธ ์ฃผํŒŒ์ˆ˜๋ผ๊ณ  ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ƒ˜ํ”Œ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋†’์€ ์ฃผํŒŒ์ˆ˜๊ฐ€ ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฏธ ์˜ค๋””์˜ค ์—…๊ณ„์—์„œ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์šฐ ๋ฉ‹์ง„ ์˜ค๋””์˜ค ๋…น์Œ ์ŠคํŠœ๋””์˜ค๋ผ๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋””์˜ค DSP ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์‚ฌ๋žŒ์˜ ๊ท€๊ฐ€ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋†’์€ ์ƒ˜ํ”Œ๋ง ์†๋„๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ... ์šฐ๋ฆฌ ๋จธ๋ฆฌ์—๋Š” ํ•˜๋“œ์›จ์–ด ์ œํ•œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋„ค, ์šฐ๋ฆฌ ๋จธ๋ฆฌ์˜ ํ•˜๋“œ์›จ์–ด ์ œํ•œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 40kHz ์ด์ƒ์˜ ์ƒ˜ํ”Œ๋ง ์†๋„๋Š” ์šฐ๋ฆฌ ๊ท€์—๋Š” ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์•จ๋ฆฌ์–ด์‹ฑ์—๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ๋ง ์†๋„๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋†’์ง€ ์•Š์œผ๋ฉด ํ•ญ์ƒ ์•จ๋ฆฌ์–ด์‹ฑ์ด ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•จ๋ฆฌ์–ด์‹ฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•จ๋ฆฌ์–ด์‹ฑ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ ์•จ๋ฆฌ์–ด์‹ฑ์ด ์กฐ๊ธˆ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋””์˜ค DSP ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ์•„๋‚ ๋กœ๊ทธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•จ๋ฆฌ์–ด์‹ฑ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์ƒ˜ํ”Œ๋ง ์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์ค‘์—๋Š” FPGA์˜ ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ํ™œ์šฉํ•˜๋Š” ๋””์ง€ํ„ธ ํ‚ค๋ณด๋“œ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Novation Summit ํ‚ค๋ณด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Novation Summit ํ‚ค๋ณด๋“œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ FPGA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ์˜ค์‹ค๋ ˆ์ดํ„ฐ(20MHz ๋˜๋Š” ๊ทธ์™€ ๋น„์Šทํ•œ ์†๋„๋กœ ์‹คํ–‰๋˜๋Š” ๋””์ง€ํ„ธ ์˜ค์‹ค๋ ˆ์ดํ„ฐ)๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋””์ง€ํ„ธ ์˜ค์‹ค๋ ˆ์ดํ„ฐ๊ฐ€ ์™„์ „ํžˆ ์•จ๋ฆฌ์–ด์‹ฑ์ด ์—†๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”. ์ƒ˜ํ”Œ๋ง ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’์•„์„œ ์•„๋‚ ๋กœ๊ทธ ํšŒ๋กœ์—์„œ ์ž์—ฐ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋„ค, ๊ฑฐ์˜ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋””์˜ค ์„ธ๊ณ„์—์„œ ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ๊ณ„์†๋˜๋Š” ๊ฒฝ์Ÿ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ด์œ ๋กœ FPGA๋Š” ๋งค์šฐ ๋งค๋ ฅ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ €ํฌ๋Š” ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ง ๋…ธ๋ ฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ํ˜„์žฌ ์ด ์ž‘์—…์„ ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ HLS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ฏธ๋ž˜์—๋Š” Verilog ๋˜๋Š” VHDL์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ๋Š” ์—ฌ์ „ํžˆ HLS ๋„๊ตฌ์— ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ˜๋“œ์‹œ ์ข‹์€ ์ผ๋งŒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋…์ ์ ์ด๊ณ  FPGA ๊ณต๊ธ‰์—…์ฒด์—์„œ ์ œ๊ณตํ•˜๋ฉฐ ํŠน์ • ๋ธŒ๋žœ๋“œ์˜ FPGA์—์„œ๋งŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, HLS ๋„๊ตฌ์šฉ์œผ๋กœ Faust๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋œ C ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํŠน์ • ๋ธŒ๋žœ๋“œ์˜ FPGA์—์„œ๋งŒ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Xilinx, Intel ๋“ฑ ์—ฌ๋Ÿฌ ๋ธŒ๋žœ๋“œ์˜ FPGA๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž‘์—…ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Faust์—์„œ ์ง์ ‘ VHDL ์ฝ”๋“œ ๋˜๋Š” Verilog ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด VHDL ์ฝ”๋“œ๋Š” FPGA๋งˆ๋‹ค ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

VHDL ์ฝ”๋“œ๋Š” FPGA ๋ธŒ๋žœ๋“œ์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋ ‡๊ตฐ์š”. ์ œ์กฐ์—…์ฒด์—์„œ ๋งŒ๋“  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ค๋žซ๋™์•ˆ ํ™•๋ฆฝ๋œ ํ‘œ์ค€์ด๊ธฐ ๋•Œ๋ฌธ์ธ๊ฐ€์š”?

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ์ง€๋งŒ, FPGA๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ FPGA์—์„œ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋œ ํ•˜๋“œ์›จ์–ด ์„ค๋ช… ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ปดํŒŒ์ผ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์„ค๊ณ„ ๋“ฑ์— ๊ด€์‹ฌ ์žˆ๋Š” ํ•™์ƒ๊ณผ ์˜ค๋””์˜ค ์‹ ํ˜ธ ์ฒ˜๋ฆฌ์— ๊ด€์‹ฌ ์žˆ๋Š” ํ•™์ƒ์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

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

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

๋„ค, ๊ฑฐ์˜ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„์•ผ์—์„œ ์ผํ•˜๊ฒŒ ๋˜๋Š” ํ•™์ƒ๋„ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ•์‚ฌ ๊ณผ์ • ํ•™์ƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ๋‚ด์šฉ์„ ๋ฐฐ์šธ ์‹œ๊ฐ„์ด ์žˆ๋Š” ํ•™์ƒ๋“ค์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‚ด์šฉ์„ ํ•œ ์ˆ˜์—…์—์„œ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์€ ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋Ÿด ๋งŒ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์‹ค์Šต๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Faust๋Š” ๋งค์šฐ ์‹ค์Šต์ ์ธ ์–ธ์–ด์ด๊ณ  ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ๋“ค์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋„ค, Faust์˜ ์žฅ์ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•œ ์ค„์˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•ด๋„ ์‹ค์ œ๋กœ ์†Œ๋ฆฌ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด ํŒŸ์บ์ŠคํŠธ๋ฅผ ๋“ฃ๊ณ  ์žˆ๋Š” ๋ถ„๋“ค์€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋ณด๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์ œ๊ฐ€ ๋งํ•˜๋Š” ์•…๊ธฐ๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋“ฃ๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์„ค๋ช…ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋น„๋””์˜ค ํŒŸ์บ์ŠคํŠธ์™€ ๋ผ๋””์˜ค ํŒŸ์บ์ŠคํŠธ๊ฐ€ ๊ฒฐํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ทธ๋ผ๋ชจํฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ผ๋ชจํฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธ”๋ฃจํˆฌ์Šค ์Šคํ”ผ์ปค์ฒ˜๋Ÿผ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

๋”ธ๊ธฐ์žผ ๋ณ‘์— ๋…ธ๋ธŒ๊ฐ€ ๋‹ฌ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋„ค์š”. ๋„ค, ๊ฑฐ์˜ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์†์— ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋’ท๋ฉด์— ๋ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋”ธ๊ธฐ์žผ ๋ณ‘์„ ์†์— ์ง์ ‘ ๋“ค๊ณ  ๋‹ค์–‘ํ•œ ๋ฒ„ํŠผ๊ณผ ๋…ธ๋ธŒ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์žฅ์น˜๋Š” Faust๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. ๋ฐฐํ„ฐ๋ฆฌ๋Š” ์•ฝ 20์‹œ๊ฐ„ ๋™์•ˆ ์ง€์†๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฝค ์˜ค๋žซ๋™์•ˆ ์—ฐ์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์žฅ์น˜๋Š” Faust๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ •๋ง ์žฌ๋ฏธ์žˆ๋Š” ํ•™๊ต ์ˆ˜์—…์ด ๋  ๊ฒƒ ๊ฐ™๋„ค์š”. ๊ทธ๋ฆฌ๊ณ  ์ •๋ง ์—‰๋ง์ง„์ฐฝ์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„ค, ์ผ๋ฐ˜์ ์œผ๋กœ ์•„์ด๋“ค์€ ์ด๊ฑธ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” ๋งค์šฐ ์‹ค๊ฐ ๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘ํ•™์ƒ 30๋ช…์ด ์ด๋ ‡๊ฒŒ ํฐ ์Šคํ”ผ์ปค๊ฐ€ ์žˆ๋Š” ๊ฐ™์€ ๋ฐฉ์—์„œ ์‚ฌ์ธํŒŒ์˜ ์ฃผํŒŒ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•จ๊ป˜ ์กฐ์ž‘ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ์ •๋ง ํž˜๋“ญ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ œ๊ฐ€ ์ด ์ˆ˜์—…์„ ๋‹ด๋‹นํ•˜์ง€ ์•Š๋Š” ์ด์œ  ์ค‘ ํ•˜๋‚˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ œ ์ฒ˜์ œ๋Š” ์„ ์ƒ๋‹˜์ธ๋ฐ, ์•„์ด๋“ค์˜ ํฅ๋ฏธ๋ฅผ ์œ ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋” ํž˜๋“  ์ผ๋„ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ๊ทธ ์ผ์„ ์ „ํ˜€ ๋ถ€๋Ÿฌ์›Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„, ๋„ค, ์ €๋Š” ๊ทธ ์ผ์„ ์ •๋ง ์กด๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ์ธ๋‚ด์‹ฌ์ด ๊ฐ•ํ•œ ๋™๋ฃŒ๊ฐ€ ์žˆ์–ด์„œ ์ •๋ง ๋‹คํ–‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •๋ง ์ •์‹ ์—†๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์–ด์จŒ๋“  Faust๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ๊ฑฐ๋‚˜ Faust๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ „๋ฌธ๊ฐ€๊ฐ€ ๋  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. DSP ์—”์ง€๋‹ˆ์–ด๋ผ๋ฉด ๋งค์šฐ ์ €์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ค‘ํ•™์ƒ์ด๊ณ  Faust์— ์ด๋ฏธ ๊ตฌํ˜„๋œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์œ„์ฐจ๊ณ„์™€ ๊ฐ™์€ ๊ฒƒ์— ๋งคํ•‘ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ •๋ง ์ •๋ง ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „๋ฌธ๊ฐ€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹๋„ค์š”. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ํŒŸ์บ์ŠคํŠธ์˜ ์ฒญ์ทจ์ž๋ฅผ ์œ„ํ•œ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ด ๋…ํŠนํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ƒˆ๋กœ์šด ๋ถ„์•ผ์—์„œ ์‹คํ—˜ํ•ด ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ๊นŒ์š”?

๊ฐ€์žฅ ๋จผ์ € Faust ์›น์‚ฌ์ดํŠธ(Faust.grame.fr)๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‡ผ ๋…ธํŠธ์— ๋งํฌ๋ฅผ ๋‚จ๊ฒจ ๋†“๊ฒ ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ด ์›น์‚ฌ์ดํŠธ์—์„œ Faust๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ข€ ๋” ๊ณ ๊ธ‰ ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋ช‡ ๋…„ ์ „์— Faust๋ฅผ ๋งŒ๋“  Yann๊ณผ ํ•จ๊ป˜ Kadenze ํ”Œ๋žซํผ์— Faust์— ๋Œ€ํ•œ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ๋ฅผ ๋…นํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. Kadenze๋Š” K-A-D-E-N-Z-E๋กœ ํ‘œ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๊ตญ์— ๊ธฐ๋ฐ˜์„ ๋‘” ํ”Œ๋žซํผ์ด๊ณ , ๋‹น์‹œ ์ œ๊ฐ€ ๊ฐ€๋ฅด์น˜๊ณ  ์žˆ๋˜ ์Šคํƒ ํผ๋“œ ๋Œ€ํ•™๊ต๊ฐ€ ์ด ํ”Œ๋žซํผ๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ๋ฅผ ์ œ์ž‘ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํ”Œ๋žซํผ์—์„œ Faust์— ๋Œ€ํ•œ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์ขŒ๋Š” 5~6๋…„ ์ „์— ์ œ์ž‘๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ์˜ค๋ž˜๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ƒ๋‹นํžˆ ์ตœ์‹  ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Faust ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•œ ํ›„ Faust๋ฅผ ๋ฐฐ์šฐ๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๊ฑฐ๊ธฐ์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๋…„ ํ›„์—๋Š” ๋‹น์‹ ์˜ ๋…ํŠนํ•œ ๋ฌผ๋ฆฌ์  ํ•˜๋“œ์›จ์–ด ์•…๊ธฐ๊ฐ€ ๋‹ค์Œ Taylor Swift ํˆฌ์–ด์— ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„์š”, ๋ˆ„๊ฐ€ ์•Œ๊ฒ ์–ด์š”?

์ง„์งœ ๋ˆ์ด ๋˜๋Š” ๊ณณ์ด ๋ฐ”๋กœ ๊ฑฐ๊ธฐ์ฃ .

๋„ค, Taylor Swift๋ฅผ ์ง์ ‘ ์•„๋Š” ๋ถ„์ด ๊ณ„์‹œ๊ณ  Taylor Swift๊ฐ€ ์ €ํฌ์™€ ํ˜‘๋ ฅํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ์ œ์•ˆํ•ด ์ฃผ์„ธ์š”.

์ข‹์Šต๋‹ˆ๋‹ค. Taylor, ๋‹น์‹ ์ด ์ด ์‡ผ์˜ ์—ด๋ ฌํ•œ ํŒฌ์ด๋ผ๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๋ฝ ์ฃผ์„ธ์š”. ๊ทธ๋•Œ๊นŒ์ง€ Romain, ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ ์˜ˆ์ƒ๋ณด๋‹ค ํ›จ์”ฌ ๋„“๊ณ  ํฅ๋ฏธ๋กœ์šด ์ด์•ผ๊ธฐ์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋„ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋Œ€ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ์ฆ๊ฑฐ์› ์Šต๋‹ˆ๋‹ค.

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

์ด ์—ํ”ผ์†Œ๋“œ๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด ๊ฐ€์‹œ๊ธฐ ์ „์— ์ข‹์•„์š”, ํ‰์ ์„ ๋‚จ๊ฒจ ์ฃผ์‹œ๊ณ  ์นœ๊ตฌ์™€ ๊ณต์œ ํ•ด ์ฃผ์„ธ์š”. Developer Voices์˜ ํ–ฅํ›„ ์—ํ”ผ์†Œ๋“œ๋ฅผ ์ง€์›ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Patreon์— ๊ฐ€์ž…ํ•ด ์ฃผ์„ธ์š”. Taylor, ๋‹น์‹ ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ถฉ๋ถ„ํžˆ ๊ฐ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Eras Tour๊ฐ€ ๋๋‚˜๋ฉด ๋ฐ”๋กœ ๊ฐ€์ž…ํ•˜์„ธ์š”. ์ด์ œ ๊ทธ๋งŒ ๋งˆ๋ฌด๋ฆฌํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ ํ˜ธ์ŠคํŠธ Kris Jenkins์˜€์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ Romain Michon๊ณผ ํ•จ๊ป˜ํ•œ Developer Voices์˜€์Šต๋‹ˆ๋‹ค. ๋“ค์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment