Investor's wiki

튜링 완료

튜링 완료

Turing Complete๋Š” ํ•„์š”ํ•œ ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์•„๋ฌด๋ฆฌ ๋ณต์žกํ•˜๋”๋ผ๋„ ๊ณ„์‚ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์ด Turing Complete(C++, Python, JavaScript ๋“ฑ)์ด๋ฏ€๋กœ ์ด ์šฉ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์‹  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํŠœ๋ง ๋จธ์‹ ์ด๋ž€?

ํ˜„๋Œ€์˜ ์ปดํ“จํ„ฐ ์ด์ „์— ์•จ๋Ÿฐ ํŠœ๋ง(Alan Turing)์€ ์–ธ์  ๊ฐ€๋Š” ์–ด๋–ค ๋ฌธ์ œ๋ผ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ณ„๋Š” ํŠœ๋ง ๊ธฐ๊ณ„๋กœ ์•Œ๋ ค์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Alan์€ ์ž์‹ ์˜ ๊ธฐ๊ณ„๋ฅผ ์ด์ง„ ์ฝ”๋“œ(1๊ณผ 0)์˜ ํ˜•ํƒœ๋กœ ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋œ ๊ธด ํ…Œ์ดํ”„ ์กฐ๊ฐ์œผ๋กœ ์ƒ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๊ณ„์—๋Š” ํ…Œ์ดํ”„๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜์—ฌ ๊ฐ ์‚ฌ๊ฐํ˜•์„ ํ•˜๋‚˜์”ฉ ์ฝ๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ ํ—ค๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๊ธฐ๊ณ„์— ๊ณ„์‚ฐ ๋ฌธ์ œ๋ฅผ ๋ฌป๊ณ  ํ…Œ์ดํ”„๋Š” ์†”๋ฃจ์…˜์„ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋งŒํผ ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค.

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

์žฅ์น˜ ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Turing Machine์ด ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ Turing Machine์„ ๋ณต์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ Turing Complete๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ์žฅ์น˜๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ Turing Incomplete๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ๊ธฐ๋Š” ๋ช‡ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๊ณ„์‚ฐ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŠœ๋ง ๋ถˆ์™„์ „ ์‹œ์Šคํ…œ์˜ ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๋Œ€์กฐ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•œ ๊ณตํ•™์šฉ ๊ณ„์‚ฐ๊ธฐ(๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ)๋Š” ํŠœ๋ง ๊ธฐ๊ณ„๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก์ฒด์ธ๊ณผ ํŠœ๋ง ์™„์ „์„ฑ

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

๋ฐ˜๋ฉด ์ด๋”๋ฆฌ์›€์€ Turing Complete ๋ธ”๋ก์ฒด์ธ์œผ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ณ„์•ฝ์„ ์ดํ•ดํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Turing Complete๊ฐ€ ๋˜๋Š” ์ด๋”๋ฆฌ์›€์€ ๋ฏธ๋ž˜์˜ ๋ชจ๋“  ๊ณ„์•ฝ์„ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, Ethereum์˜ Turing Completeness๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ง€์นจ, ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„ ๋ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ๋งŒ ์žˆ์œผ๋ฉด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.