๋ถ๋ฅ:ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
Assembly์์ ๋์ด์ด
1. ๊ฐ์[ํธ์ง]
CHARO 0x0007, d
CHARO 0x0008, d
STOP
.ASCII "Hello, World!"
.ENDํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋. ๊ธฐ๊ณ์ด์์ ํ ๋จ๊ณ ์์ ์ธ์ด์ด๋ฉฐ ๊ธฐ๊ณ์ด์ ํจ๊ป ๋จ ๋๋ฟ์ธ ์ ๊ธ(Low Level) ์ธ์ด์ ์ํ๋ค.[1][2]
๊ธฐ๊ณ์ด๋ผ๋ ๊ฒ ์ปดํจํฐ ๊ด์ ์์ ๋ฐ๋ก ์ฝ์ ์ ์๋ค๋ ๊ฒ ๋นผ๊ณ ๋ ์ธ๊ฐ์ ๊ด์ ์์๋ ์ฌ์ฉ์ด ๋ถํธํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด ์ด์ ๋ธ๋ฆฌ์ด๋ค. ๋ฐ๋ผ์ ์ด์ ๋ธ๋ฆฌ์ด์ ํน์ง์ ๊ธฐ๊ณ์ด 1๋ผ์ธ๋น ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด๊ฐ ๋๋ถ๋ถ 1๋ผ์ธ์ฉ ๋์๋์ด ์๊ณ ์ด๋ฅผ ๋น๊ต์ ๊ฐ๋จํ๊ฒ ์งค ์ ์๋ ์ด์ ๋ธ๋ฌ๋ฅผ ํตํด ๊ธฐ๊ณ์ด๋ก ๋ณํ๋๋๋ก ํ ๊ฒ์ด๋ค. ์ด ๋๋ฌธ์ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ณ ๊ธ ์ธ์ด์ ๊ธฐ๊ณ์ด ์ฌ์ด์ ์๋ค ํ์ฌ '์ค๊ฐ ์ธ์ด'๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ๊ณ์ด๋ CPU๊ฐ ์ฑํํ ISA์ ๋ฐ๋ผ ๋ค ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด์ ๋ธ๋ฆฌ์ด์ ๋ช ๋ น์ด ์ญ์ ํต์ผ๋ ๊ท๊ฒฉ์ด ์๋ค. ๋ํ ๋ฌธ๋ฒ ์ํคํ ์ฒ์ ๋ฐ๋ผ์๋ ๋ค๋ฅด๊ณ ์ด์ ๋ธ๋ฌ์ ์ข ๋ฅ์ ๋ฐ๋ผ์๋ ๋ฌธ๋ฒ/๋งคํฌ๋ก ๋ฑ์ด ์ ๊ฐ๊ฐ์ด๋ค.
์์์ ๋งํ๋ฏ์ด ์ด์ ๋ธ๋ฆฌ์ด๋ ํต์ผ๋ ๊ท๊ฒฉ์ด ์์ผ๋ฏ๋ก, ๋ชจ๋ ํ๋ซํผ์์ ๊ณตํต๋ ์ฌํญ์ ์๋๋ ํน๋ณํ ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ํ์ฌ x86-AMD64, ARM์ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ๋ถ์ฐ ์ค๋ช ํ์๋ฉด, x86-AMD64 CPU ์์๋ ๋ฌธ๋ฒ์ด ํฌ๊ฒ ์ธํ ๋ฐฉ์๊ณผ AT&T ๋ฐฉ์์ผ๋ก ๋๋ ์ง๋ค. ์ธํ ๋ฐฉ์์ ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋๊ณ , AT&T ๋ฐฉ์์ ๊ฐ๋ ์ฑ์ ๋จ์ด์ง๋, ์ธํ ๋ฐฉ์๋ณด๋ค ์ข๋ ๋ง์ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ค๊ณ ์ ํธํ๋ ์ฌ๋๋ค๋ ์๋ค.[3] ์ฌ์ค ๊ฐ๋จํ ์์ค์ด๋ผ๋ฉด ๋ญ ์ฐ๊ฑด ํฐ ์ฐจ์ด๋ ์๋ค.
์๋์ฐ์ฆ ํ๋ซํผ ์์์ ์ฝ๋ฉ์ ํ๊ฒ ๋ ๊ฒฝ์ฐ, ๋ณดํต ์ฌ์ฉํ๋ IDE๋ค์ด ์ธํ ๋ฌธ๋ฒ ๊ธฐ๋ฐ์ ์ด์ ๋ธ๋ฌ(NASM, MASM ๋ฑ)๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก ์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง๋ง, ๋ฆฌ๋ ์ค๋ฅผ ์์ํ ์คํ์์ค ์ง์์์๋ ์คํ ๋ค๋ ์ปดํ์ผ๋ฌ์ ์ ํฌํจ๋ GNU ์ด์ ๋ธ๋ฌ(GAS)๊ฐ ๊ธฐ๋ณธ ์ต์ ์ AT&T ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์ธํ ๋ฐฉ์์ ์ธ์ ๊น์ง๋ ๋ณ๋ ์ต์ ์ผ๋ก ์ง์ํ๋ ์ ๋์ด๊ธฐ ๋๋ฌธ์ GNU ์ปดํ์ผ๋ฌ ํด๊ณผ์ ์ฐ๋์ฑ์ ์ํด์๋ผ๋ฉด ๋ถ๋์ดํ๊ฒ AT&T ๋ฐฉ์์ ์ฌ์ฉํด์ผ ํ๋ค.[4]
2015๋ ์ดํ ์ด์ ๋ธ๋ฆฌ์ด์ ์ ์ ์จ์ด ๊ธ์์นํ๊ณ ์๋ค. TIOBE์ ์๋ฃ์ ๋ฐ๋ฅด๋ฉด 2017๋ ์ต๊ณ 8์๊น์ง ์ง์ ํ์ฌ ์ธ๊ณ 10์ ์ด๋ด๋ก ๋ค์ด์ฌ ์ ๋๋ก ๊ธ์ฑ์ฅํ์ผ๋ฉฐ, 2019๋ ๊ธฐ์ค 12์ (์ฝ 1.5%)๋ก ์ ๋๋ก ๋ฎ๋ค๊ณ ๋ณผ ์ ์๋ ์ง๊ฒฝ์ ์ด๋ฅด๋ ๋ค. ์ฌ๋ฌผ์ธํฐ๋ท์ ์ฐ์ด๋ ์ด์ํ ๊ธฐ๊ธฐ์ ์์๊ฐ ์ ์ธ๊ณ์ ์ผ๋ก ํฌ๊ฒ ์ฆ๊ฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.[5] ์ด์ ๋ธ๋ฆฌ์ด๋ C ๋ฑ ๋ค๋ฅธ ์ธ์ด์ ๋นํด ๋์ ์์ค์ ํ๋ก๊ทธ๋จ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ํ๋์จ์ด ์ ์ด๋ฅผ ์ํด ํน์ ํ ๊ธฐ๊ณ์ด ๋ช ๋ น์ ์ํํ๊ฑฐ๋ ๋ ์ง์คํฐ, ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ง์ ์ง์ ์ ๊ทผํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฑ์์ ๋ฏผ๊ฐํ๋ฉฐ ํน์ ๊ธฐ๋ฅ์ ์ํด ๋ณ๋์ ํ๋์จ์ด ๋ชจ๋์ ์ด์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ง์ ์ด์ํ ์๋ฒ ๋๋ ์์คํ ์ ์ ์ฉํ๋ค. ๋จ, ๋ฏธ๊ตญ ์์ฅ์์ ์ฐ๋ด์ Java๋ณด๋ค ๋ฎ๋ค.
์ด์ ๋ธ๋ฆฌ์ด ํ์ต์ ๊ฐ๊ธ์ C์ธ์ด์ ํฌ์ธํฐ๋ฅผ ์ดํดํ๊ณ CPU ๊ตฌ์กฐ์ ๋ํด ์ดํดํ ๋ค์ ์งํํ๋ ๊ฒ ์ ๋ฆฌํ๋ค. ๋ฐ๋ผ์ ์ปดํจํฐ๊ณตํ๊ณผ์ ๊ฒฝ์ฐ์๋ 1ํ๋ ์ ํ์ต์ ์ ๋ฆฌํ์ง ์๋ค.
2. ์ฅ์ [ํธ์ง]
"1๋ฒ ๋ ์ง์คํฐ(๊ธฐ์ต์ฅ์น)์ ๋ค์ด์๋ ๊ฐ์ 10(์ด์ง์ 1010)๋ฅผ ๋ํด์ 0๋ฒ ๋ ์ง์คํฐ์ ๋ฃ์ด๋ผ"๋ผ๋ ๋ช
๋ น์ MIPS ์ํคํ
์ฒ์ CPU์ ๋ด๋ ค๋ณด์.
- 2์ง์ ๊ธฐ๊ณ์ด: 001000 00001 00000 0000000000001010
- 16์ง์ ๊ธฐ๊ณ์ด: 20 20 00 00 00 00 00 0A
- ์ด์ ๋ธ๋ฆฌ์ด: addi $0, $1, 10 // ๋ป: $0 = $1 + 1010 (2)
๋จ์ํ ๋ฐ๊พผ ๊ฒ๋ฟ์ด์ง๋ง ์๋ฆฌ๋ด์ ์ฝ์ ์ ์๋ ๋จ์ด๊ฐ ๋ณด์ด๋ ๋ฑ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋ค. ๋ํ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฐ๋ก ์ฃผ์[6]์ ๋ฌ ์ ์๊ฒ ๋์ด ํ ๊ฐ ์ด์์ ๋ช ๋ น ์งํฉ์ด ํตํ์ด์ ์ด๋ค ์ญํ ์ ํ๋ ๋ฃจํด์ธ์ง ๋๋ฆ๋๋ก ์ค๋ช ์ ์จ ๋์ ์ ์์ผ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ํจ์ฌ ์์ํด์ก๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋ค ๊ทธ๋ ๋ฏ์ด ๊ธฐ๊ณ์ด์ ๊ฐ๊น์ธ ์๋ก ๋ฐ์ด๋๋ฆฌ ํ์ผํฌ๊ธฐ๊ฐ ์๊ณ ํ๋ก๊ทธ๋จ์ ์๋์๋๊ฐ ๋น ๋ฅด๋ค. C์ธ์ด๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๋ฏ๋ก ์ด๋ ํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ ์ฑ๋ฅ์ด ์ข๋ค. ๋ค๋ง ํ์ฌ ์ด์์ฒด์ ์ปค๋์ ๊ฐ๋ฐ์์ ์์ฐ์ฑ๊ณผ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ๊ณ ๋ คํ ์ ์ถฉ์์ผ๋ก C์ธ์ด๋ C++ ๋ฑ ์์์ ์ธ์ด๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ธ๋ฌ๋ ์ปดํ์ผ๋ฌ์ ๋นํด ๋ง๋ค๊ธฐ๊ฐ ์ฝ๋ค. CPU๋ฅผ ์ ์กฐํ๋ ์ ์กฐ์ ์ฒด๊ฐ ํด๋น CPU ์ํคํ ์ฒ์ ๋ง๋ C์ธ์ด ์ปดํ์ผ๋ฌ๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ๋ ์์ ์ ์์ง๋ง ์ด์ ๋ธ๋ฌ๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ ์ ๋๋ค. ์ด์ ๋ธ๋ฌ๋ง์ ๋ฐฐํฌํ์ง ์๋ ์นฉ์ ์ ์กฐ์ ์ฒด๊ฐ ๋๋๊ณ ๋จ์ข ์ํค๋ ค๊ณ ํ๋ ์นฉ์ด๊ฑฐ๋ ํด๋น ์นฉ ์ ์กฐ์ฌ๊ฐ ๊ฑฐ์ ๋งํด๊ฐ๋ค๋ ์๋ฏธ๋ก ๋ฐ์๋ค์ด๋ฉด ๋๋ค. ๋ณดํต ์นฉ์ ํ์๋จน์ ์๊ฐ์ด ์๋ ์ ์กฐํ์ฌ๋ผ๋ฉด C์ธ์ด ์ปดํ์ผ๋ฌ๊น์ง๋ ์ ๊ณตํ๋ค.
๋ํ ๊ธฐ๊ณ์ด์ ๋์๋๋ ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด ์ด์ธ์๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ ์ ๋ ฌ ๋ฑ์ ํ ์ ์๋ ์ง์์ด๋ฅผ ์ธ ์ ์๊ณ , ๋งคํฌ๋ก ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ๋งคํฌ๋ก ํธ์ถ์ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ํ ์ ์๋ค. ๊ทธ๋ก ์ธํด ๊ธฐ๊ณ์ด๋ก ์ง์ ์ฝ๋ฉํ ๋์ ๋น๊ตํ์ ๋ ๋ณด๋ค ๋ง์ ์์ค์ฝ๋๊ฐ ํฌํจ๋ ํ๋ก์ ํธ๋ฅผ ๋ฌด๋ฆฌ ์์ด ๊ฐ๋ฐํ ์ ์๊ฒ ๋์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ช ๋ น์ด ์๊ฐ ์ ๋ค. ์ด์ ๋ธ๋ฆฌ์ด๋ CPU ๋งค๋ด์ผ์ ๋ถ๋ก ๋ถ๋ถ์ ์ ํ์๋ ๋ช ๋ น์ด ๋ชฉ๋ก์ด ์ ๋ถ๋ค.[7] ๊ทธ ์ธ์๋ ์ฌ์ฉํ๋ ์ด์ ๋ธ๋ฌ์ ๋งคํฌ๋ก ๋ฌธ๋ฒ ์ ๋์ธ๋ฐ ๋ฌธ๋ฒ์ ์ข ๋ฅ๋ CPU์ ์ข ๋ฅ๋ณด๋ค ํจ์ฌ ์ ์ผ๋ฏ๋ก ํ ๋ฒ ์ตํ๋๋ฉด ๋์ฒด๋ก ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ ํน์ ISA์ ๋ํ ์ธ์ด๋ฅผ ์ดํด ํ๋๋ฐ ๋ค์ด๊ฐ๋ ์๊ฐ์ด ๋งค์ฐ ์งง๋ค.[8]
๊ทธ๋ฆฌ๊ณ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ง์ ์ฌ์ฉํ์ง ์๋๋ผ๋ ์์คํ ์์กด์ ์ธ ๋ถ์ผ์์๋ C/C++์ ์ฌ์ฉํ๋๋ผ๋ ์ด์ ๋ธ๋ฆฌ์ด ๊ฒฝํ์ด ์์ฉ๋ ฅ์ ์ฐจ์ด๋ฅผ ์ค๋ค. ๋ฐ๋ผ์ ์ปค๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐ ์๋ฒ ๋๋ ์์คํ ๋ถ์ผ๋ก ์ง๋ก๋ฅผ ์ก๊ณ ์๋ ์ฌ๋์ ์ด์ ๋ธ๋ฆฌ์ด ํ์ต์ด ๋์์ด ๋๋ค. ๋น์ฃผ์ผ ์คํ๋์ค๋ Xcode๋ Disassembly ๊ธฐ๋ฅ์ ํตํด ์๋ณธ ์์ค ์ฝ๋์ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋กค ๋น๊ตํด์ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
3. ๋จ์ [ํธ์ง]
์ด๋๊น์ง๋ ๊ธฐ๊ณ์ด ๋๋น ์์ฐ์ฑ์ด ๋์์ก์ ๋ฟ, ๊ณ ๊ธ ์ธ์ด์ ๋นํ๋ฉด ์์ฐ์ฑ์ด ๋งค์ฐ ๋จ์ด์ง๋ค.[9]
๊ณ ๊ธ ์ธ์ด์ ๋นํ๋ฉด ๋จ์ด๊ฐ ์ฌํ๊ฒ ์ถ์ฝ๋์ด ์์ด(addi๋ add immediate[10]์ ์ฝ์์ด๋ค.)[11] ์ฝ๊ธฐ์๋ง ์ข ํธํ ์์ค์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ CPU ์ํคํ ์ฒ์ ๊ด์ ์์ ์์ค ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ค ๋ณด๋ ์ ์ ์ฝ๋ ์์ฑ์๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์์ ํ๊ธฐ๋ ์ด๋ ต๋ค.
๋ํ ์ด์ ๋ธ๋ฆฌ์ด๋ ์ธ์ด๋ฅผ ์ดํดํ๋๋ฐ ๋ค์ด๊ฐ๋ ์๊ฐ์ ์งง์์ง ๋ชฐ๋ผ๋ ์ธ์ด๋ฅผ ๋ง์คํฐํ๋๋ฐ ๋ค์ด๊ฐ๋ ์๊ฐ์ CPU ์ข ๋ฅ๋ณ๋ก ์ฒ์ฐจ๋ง๋ณ์ธ๋ฐ, AVR, PIC ๋ฑ์ ๋จ์ํ CPU๋ค์ CPU์ ๊ตฌ์กฐ๊ฐ ๋จ์ํ์ฌ ์ฌ๋์ด ์ฝ๋ฉํด๋ ๊ทธ๋ญ์ ๋ญ ์นฉ์ ํผํฌ๋จผ์ค๋ฅผ ์ ๋ถ ๋์ด๋ผ ์ ์์ผ๋ x86 ๋ฑ์ ๊ณ ์ฑ๋ฅ PC ๋ฐ ์ํฌ์คํ ์ด์ ์ฉ CPU๋ค์ ํ์ดํ๋ผ์ธ ๊ธฐ๋ฒ์ด๋ ์ํผ์ค์นผ๋ผ ๊ตฌ์กฐ, ์บ์ ๊ฐ์ ์จ๊ฐ ์๋ํฅ์ ๊ธฐ๋ฒ๋ค์ด ๋์ ๋ผ ์์ด ์ฌ๋์ด ๊ทธ ์ฑ๋ฅ์ ์ ๋ถ ๋์ด๋ด๋ ๊ฒ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์์ก๋ค. ํ๋์ i7 CPU๋ ์๋ 386 ์์ ์ x86 ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ ์ ๊ฐ์ง๊ณ ์ฝ๋ฉํ ์ ์๋๋ฐ ๊ทธ๋ ๊ฒ ๋ง๋ ํ๋ก๊ทธ๋จ์ ํผํฌ๋จผ์ค๋ ๊ทธ์ผ๋ง๋ก ํํฐ์ 4 ์์ค์ผ๋ก ๋จ์ด์ง๋ค. ๊ทธ๋ฅ 80386 CPU์ ์ฝ์ด 1๊ฐ๊ฐ 3GHz ์๋๋ก ๋์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅผ ๊ฒ ์๋ ํ๊ฒฝ์ด ์กฐ์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด C์ธ์ด์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๋ ค๊ณ ์ธ๋ผ์ธ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ค๊ณ ํ์. ํ์ง๋ง ์๋ 286 ๋จธ์ ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋ฉ์ ํด์ AH, AL๋ ์ง์คํฐ๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ CPU์ ์ฃผ ์ฐ์ฐ๊ธฐ ์ฑ๋ฅ์ด AVX ์ฐ์ฐ ๋๋น 1/256 ์ดํ๋ก ๋จ์ด์ง๋ค.
์ด์งธ์์ผ๊น? ์๋ฅผ ๋ค์ด CPU๊ฐ ํ๋ฐฐ์ฐจ์ด๊ณ ์๋ฌด๋ ์๋ฐฐ๋ฌ์ด๋ฉฐ ์ํ๋๋ ๊ธฐ๊ณ์ด ์ฝ๋๊ฐ ๋ฐฐ์ก ๊ณํ์ด๋ผ๊ณ ํ์ ๋, ๊ณ ๊ธ ์ธ์ด๋ก ๋ฐฐ์ก ๊ณํ์ ์ง ๋ค๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ์ธ์ง ํธ๋ญ์ธ์ง์ ๋ฐ๋ผ ํ ์ง์ฉ ์๋ณตํ๋ฉด์ ๋ฐฐ๋ฌํ ์ง ํ ๋ฒ ์ฃ๊ณ ๋๋ค๋ฅผ ๋ ์ง๋ฅผ ์ปดํ์ผ๋ฌ๊ฐ ์์์ ํ๋จํ๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ง์ ์ฝ๋ฉํ๋ค๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ์ด๋ ํธ๋ญ์ด๋ ์ง์๋ ๋ณ๊ฐ๋ก ๋ฐฐ์กํ๋ ๋ฐฉ๋ฒ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฒฐ์ ํด์ผ ํ๋ค. ์๋ํ๋ฉด, ๊ณ ๊ธ ์ธ์ด์์๋ ๋ฐฐ์ก ๊ณํ์ ์งค ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ '์์ ์์ง์์ ์จ ๋๋ค์ ๋ฐฐ์กํ๋ค'๋ผ๊ณ ์ถ์์ ์ผ๋ก ์ง์ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด์์๋ '์ ํ๋๋ฅผ ์ฃ๋๋ค. 100ํธ๋ฅผ ๊ฐ๋ค. 100ํธ์ ๋์ฐฉํด์ ์์ ๋ด๋ ค๋๋๋ค. ์์ง์ผ๋ก ๋์์จ๋ค. ์ ํ๋๋ฅผ ์ฃ๋๋ค. 101ํธ๋ฅผ ๊ฐ๋ค...' ๋ผ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ๊ฑฐ์๋ ์์ ์ค์ด๋ด์ผ ํ๋ ๊ฐ๋ง๋์ ๋ถ๊ณผํ๋ ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ(80386)๋ผ๋ฉด ์ด ์ง์๋ ํฉ๋ฆฌ์ ์ด๋ค. ํ์ง๋ง ํ๋ฐฐ์ฐจ๊ฐ ํธ๋ญ(i7)์ด๋ผ๋ฉด ๊ธฐ๋ฆ๋ญ๋น, ์๊ฐ๋ญ๋น, ์ฌ๋ฅ๋ญ๋น์ผ ๋ฟ์ด๋ค. ์ปดํ์ผ๋ฌ๋ผ๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์ 100๊ฐ๋ง๋๋ฅผ ์ค์ ๋ฅ๋ ฅ์ด ๋๋ค๊ณ ํ๋จํ๋ฉด '์ 6๊ฐ๋ง๋๋ฅผ ์ฃ๋๋ค. ์ด๋ ๊ฑฐ๋ฆฌ๊ฐ ์ต์ํ๋๋ ์์๋๋ก 103, 104, 105, 102, 101, 100ํธ ์์ผ๋ก ๋ฐฉ๋ฌธํ๋ฉด์ ์์ ํ๋์ฉ ๋ฐฐ์กํ๋ค. ์์ง์ผ๋ก ๋์์จ๋ค.' ๋ผ๋, ์ต์ ํ๋ ๋ฐฐ์ก ๊ณํ์ ์ง ๋ค.[12] ์์ง์ด ๋งํด์ ํธ๋ญ์ด ๋๋ก ์์ ๊ฑฐ๊ฐ ๋ผ๋, ์ฅ์ฌ๊ฐ ํฅํด์ ํธ๋ญ์ด ๋ ๋๊ฐ ๋ผ๋ ์ปดํ์ผ๋ฌ๋ ์ธ์ ๋ ํผํฌ๋จผ์ค๋ฅผ ์ต๋ํ ๋ฐํํ๋ ๋ฐฐ์ก ๊ณํ์ ์์ฑํด ์ค๋ค. ์๋๋ฉด, ํ๋ก๊ทธ๋จ์ด ์ง์ํ๋ ๊ฒ์ด '์์ ์จ ๋๋ค์ ๋ฐฐ์กํ๋ค'์ด๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ ์์ ๊ฑฐ๋ฅผ ์ด์ฉํ ๋๋ ์ด๋ป๊ฒ ๋ฐฐ์กํ ์ง, ํธ๋ญ์ ์ด์ฉํ ๋๋ ์ด๋ป๊ฒ ํ ์ง, ํจ์จ ํฅ์์ ์ํด์๋ ์ด๋ป๊ฒ ํ ์ง ์ด๋ฐ ๋ชจ๋ ์ต์ ํ๋ ๋ฐฐ์ก ๊ณํ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์์ฑํด์ผ ํ๋ค. ๊ณ ๊ธ์ธ์ด๋ก๋ ๋ฌด์์ ํ๋ผ๊ณ ์ง์ํ๋ ๊ฒ ๊ฐ๋ฅํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ ์ด๋ป๊ฒ ํ๋ผ๊ณ ๋ง ์ง์ํ ์ ์์ด์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ถ์ํ๊ฐ ๋ ๋ ์ปดํ์ผ๋ฌํํ '๋ฐฐ์กํ๋ผ'๊ณ ๋ง ์ํค๋ฉด ๊ทธ ์๋ฏธ๋ฅผ ์ดํดํ ์ ์๋ค๋ฉฐ ์ปดํ์ผ์ ์คํจํ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ณ ๊ธ ์ธ์ด์ ์ถ์ํ ๋ ๋ฒจ์ด ๋์์ง๋ฉด ์ถ์์ ์ธ ๋ช ๋ น๋ ์ดํดํ ์ ์๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ๋ ์ถ์ํ ๋จ๊ณ๊ฐ ์ฌ๋ผ๊ฐ๋ค ๋ณด๋ฉด '๋ฐฐ์กํ๋ค' ํ๋๋ง ๋จ๊ณ ๋ค ์ง์์ง ์๋ ์๋ค. ๋ฐฐ์กํ๋ ๊ฒ ์์ธ์ง ๊ณ ๊ธฐ์ธ์ง๋ ์ค์์น ์๊ณ (์ฝํ์ , ํ์ ์ถ๋ก ), ๋ฐฐ์ก ๋ฒ์๊ฐ ๋๋ค์ธ์ง ์ ๊ตญ์ธ์ง๋ ์ค์์น ์๊ณ (๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ์ถ์ํ), ์์ง์ด ์ด๋ ์๋์ง๋ ์ค์์น ์๊ฒ ๋์ด ๋ฒ๋ฆฐ๋ค(ํ๋์จ์ด ์ถ์ํ). ํ๋ก๊ทธ๋๋จธ๋ ๊ทธ์ '๋ฐฐ์กํ๋ผ'๊ณ ๋ง ์์ผฐ๊ณ , ์ปดํ์ผ๋ฌ๋ ์์์ ๋ญ ์ธ์ ์ผ๋ง๋ ์ด๋ป๊ฒ ๋ฐฐ์กํ ์ง ์ค์ค๋ก ํ๋จํ๋ค.
๊ฒฐ๊ตญ ์ด์ ๋ธ๋ฆฌ์ด๋ ์ด๋ฏธ 90๋ ๋ ๋ค์ด์ค๋ฉด์๋ถํฐ ๊ทธ ์ฌ์ฉ ๋น๋๋ ๊ณ ๊ธ ์ธ์ด๋ค์๊ฒ ๋ฐ๋ ค ๊ฑฐ์ ์๋ค. ์ฌ์ค ๊ณผ๊ฑฐ์ ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ์ผ๋ง๋ก ๋ฐ์ ํ์ ๊ฐ๊น์ ๊ธฐ ๋๋ฌธ์[13] ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ด์ฉํ์ฌ ์ปดํ์ผ ๋ ์ฝ๋๋ฅผ ๊ณ ์น๊ฑฐ๋ ์์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋ก๊ทธ๋จ์ ์ง๊ธฐ๋ ํ์ง๋ง ์์ฆ์ PC ์ฑ๋ฅ๋ ์ข๊ณ ์ปดํ์ผ๋ฌ๋ ์ข์์ ๊ดํ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ฝ์งํ ํ์๋ ๊ฑฐ์ ์๋ค. ์์ฆ์ ์คํ๋ ค ์ปดํ์ผ๋ฌ๋ก ์์ฑํ ์ฝ๋๊ฐ ์ฌ๋์ด ์ง์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์์ฑํ ์ฝ๋๋ณด๋ค ์ต์ ํ๊ฐ ์ ๋ ๊ฒฝ์ฐ๊ฐ ๋น์ผ๋น์ฌํ๋ค. ์ค๋๋ CPU์ ๋ฌ๋ฆฌ ๋ช ๋ น์ด ์คํ ์๊ฐ์ด ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฌ๋์ด ๊ทธ๊ฑธ ๋ค ๋ฐ์ ธ๊ฐ๋ฉฐ ์์ ํ๊ธฐ๊ฐ ๊ทธ๋งํผ ํ๋ค๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌผ๋ก ์ปดํ์ผ๋ฌ๋ก๋ ์ ๋๋ก ํ ์ ์๋ ์ ํ์ ์ต์ ํ๋ ์กด์ฌํ๊ธฐ๋ ํ๋ค. ์๋ฅผ ๋ค์ด ํ๋ ๋ฆฌ์ผ ํ์ ์์คํ ์ ํ์ด๋ฐ์ ๋๋ ธ์ด ์ดํ์ ์ ๋ฐ๋๋ก ๋ง์ถ๋ ์ต์ ํ๋ SIMD ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ด ์ด๋ ์ ๋ ์์ค๊น์ง๋ ๊ฐ๋ฅํ๋ ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ์ ๋๊ธ์ ์ฑ๋ฅ์ ๋ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.[14] ์ฆ, ์ปดํ์ผ๋ฌ๋ณด๋ค ์ํ ์์ ์ด ์๋ค๋ฉด ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์๋ค. ๊ทธ๊ฒ ์ ๋๋ค๋ฉด ๊ทธ๋ฅ ๊น๋ํ๊ฒ C๋ C++๋ฅผ ์ฐ์.[15] ๋ฌผ๋ก ๊ทธ๊ฒ ๊ฐ๋ฅํ ์์์ ๋ฅ๋ ฅ์๋ค์ด ์์ผ๋ฉฐ, ๊ทธ๋ค์ ํ์ ํ ์ปดํ์ผ๋ฌ, ์ด์์ฒด์ , ์๋ฒ ๋๋ ์์คํ (๋๋ผ์ด๋ฒ ๋ฑ) ๋ฑ์ ๊ฐ๋ฐ์ ํ์์ ์ด๊ธฐ์ ์ต๊ณ ๊ธ ๊ธฐ์ ์๋ก์ ์์ฒญ๋ ๋ชธ๊ฐ์ ๋ฐ๋๋ค.
๊ณ ๊ธ ์ธ์ด์ ๋นํ๋ฉด ๋จ์ด๊ฐ ์ฌํ๊ฒ ์ถ์ฝ๋์ด ์์ด(addi๋ add immediate[10]์ ์ฝ์์ด๋ค.)[11] ์ฝ๊ธฐ์๋ง ์ข ํธํ ์์ค์ด ๋๋ค. ๊ทธ๋ฆฌ๊ณ CPU ์ํคํ ์ฒ์ ๊ด์ ์์ ์์ค ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ค ๋ณด๋ ์ ์ ์ฝ๋ ์์ฑ์๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์์ ํ๊ธฐ๋ ์ด๋ ต๋ค.
๋ํ ์ด์ ๋ธ๋ฆฌ์ด๋ ์ธ์ด๋ฅผ ์ดํดํ๋๋ฐ ๋ค์ด๊ฐ๋ ์๊ฐ์ ์งง์์ง ๋ชฐ๋ผ๋ ์ธ์ด๋ฅผ ๋ง์คํฐํ๋๋ฐ ๋ค์ด๊ฐ๋ ์๊ฐ์ CPU ์ข ๋ฅ๋ณ๋ก ์ฒ์ฐจ๋ง๋ณ์ธ๋ฐ, AVR, PIC ๋ฑ์ ๋จ์ํ CPU๋ค์ CPU์ ๊ตฌ์กฐ๊ฐ ๋จ์ํ์ฌ ์ฌ๋์ด ์ฝ๋ฉํด๋ ๊ทธ๋ญ์ ๋ญ ์นฉ์ ํผํฌ๋จผ์ค๋ฅผ ์ ๋ถ ๋์ด๋ผ ์ ์์ผ๋ x86 ๋ฑ์ ๊ณ ์ฑ๋ฅ PC ๋ฐ ์ํฌ์คํ ์ด์ ์ฉ CPU๋ค์ ํ์ดํ๋ผ์ธ ๊ธฐ๋ฒ์ด๋ ์ํผ์ค์นผ๋ผ ๊ตฌ์กฐ, ์บ์ ๊ฐ์ ์จ๊ฐ ์๋ํฅ์ ๊ธฐ๋ฒ๋ค์ด ๋์ ๋ผ ์์ด ์ฌ๋์ด ๊ทธ ์ฑ๋ฅ์ ์ ๋ถ ๋์ด๋ด๋ ๊ฒ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์์ก๋ค. ํ๋์ i7 CPU๋ ์๋ 386 ์์ ์ x86 ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ ์ ๊ฐ์ง๊ณ ์ฝ๋ฉํ ์ ์๋๋ฐ ๊ทธ๋ ๊ฒ ๋ง๋ ํ๋ก๊ทธ๋จ์ ํผํฌ๋จผ์ค๋ ๊ทธ์ผ๋ง๋ก ํํฐ์ 4 ์์ค์ผ๋ก ๋จ์ด์ง๋ค. ๊ทธ๋ฅ 80386 CPU์ ์ฝ์ด 1๊ฐ๊ฐ 3GHz ์๋๋ก ๋์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅผ ๊ฒ ์๋ ํ๊ฒฝ์ด ์กฐ์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด C์ธ์ด์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๋ ค๊ณ ์ธ๋ผ์ธ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ค๊ณ ํ์. ํ์ง๋ง ์๋ 286 ๋จธ์ ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋ฉ์ ํด์ AH, AL๋ ์ง์คํฐ๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ CPU์ ์ฃผ ์ฐ์ฐ๊ธฐ ์ฑ๋ฅ์ด AVX ์ฐ์ฐ ๋๋น 1/256 ์ดํ๋ก ๋จ์ด์ง๋ค.
์ด์งธ์์ผ๊น? ์๋ฅผ ๋ค์ด CPU๊ฐ ํ๋ฐฐ์ฐจ์ด๊ณ ์๋ฌด๋ ์๋ฐฐ๋ฌ์ด๋ฉฐ ์ํ๋๋ ๊ธฐ๊ณ์ด ์ฝ๋๊ฐ ๋ฐฐ์ก ๊ณํ์ด๋ผ๊ณ ํ์ ๋, ๊ณ ๊ธ ์ธ์ด๋ก ๋ฐฐ์ก ๊ณํ์ ์ง ๋ค๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ์ธ์ง ํธ๋ญ์ธ์ง์ ๋ฐ๋ผ ํ ์ง์ฉ ์๋ณตํ๋ฉด์ ๋ฐฐ๋ฌํ ์ง ํ ๋ฒ ์ฃ๊ณ ๋๋ค๋ฅผ ๋ ์ง๋ฅผ ์ปดํ์ผ๋ฌ๊ฐ ์์์ ํ๋จํ๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ง์ ์ฝ๋ฉํ๋ค๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ์ด๋ ํธ๋ญ์ด๋ ์ง์๋ ๋ณ๊ฐ๋ก ๋ฐฐ์กํ๋ ๋ฐฉ๋ฒ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฒฐ์ ํด์ผ ํ๋ค. ์๋ํ๋ฉด, ๊ณ ๊ธ ์ธ์ด์์๋ ๋ฐฐ์ก ๊ณํ์ ์งค ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ '์์ ์์ง์์ ์จ ๋๋ค์ ๋ฐฐ์กํ๋ค'๋ผ๊ณ ์ถ์์ ์ผ๋ก ์ง์ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด์์๋ '์ ํ๋๋ฅผ ์ฃ๋๋ค. 100ํธ๋ฅผ ๊ฐ๋ค. 100ํธ์ ๋์ฐฉํด์ ์์ ๋ด๋ ค๋๋๋ค. ์์ง์ผ๋ก ๋์์จ๋ค. ์ ํ๋๋ฅผ ์ฃ๋๋ค. 101ํธ๋ฅผ ๊ฐ๋ค...' ๋ผ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ๊ฑฐ์๋ ์์ ์ค์ด๋ด์ผ ํ๋ ๊ฐ๋ง๋์ ๋ถ๊ณผํ๋ ํ๋ฐฐ์ฐจ๊ฐ ์์ ๊ฑฐ(80386)๋ผ๋ฉด ์ด ์ง์๋ ํฉ๋ฆฌ์ ์ด๋ค. ํ์ง๋ง ํ๋ฐฐ์ฐจ๊ฐ ํธ๋ญ(i7)์ด๋ผ๋ฉด ๊ธฐ๋ฆ๋ญ๋น, ์๊ฐ๋ญ๋น, ์ฌ๋ฅ๋ญ๋น์ผ ๋ฟ์ด๋ค. ์ปดํ์ผ๋ฌ๋ผ๋ฉด ํ๋ฐฐ์ฐจ๊ฐ ์ 100๊ฐ๋ง๋๋ฅผ ์ค์ ๋ฅ๋ ฅ์ด ๋๋ค๊ณ ํ๋จํ๋ฉด '์ 6๊ฐ๋ง๋๋ฅผ ์ฃ๋๋ค. ์ด๋ ๊ฑฐ๋ฆฌ๊ฐ ์ต์ํ๋๋ ์์๋๋ก 103, 104, 105, 102, 101, 100ํธ ์์ผ๋ก ๋ฐฉ๋ฌธํ๋ฉด์ ์์ ํ๋์ฉ ๋ฐฐ์กํ๋ค. ์์ง์ผ๋ก ๋์์จ๋ค.' ๋ผ๋, ์ต์ ํ๋ ๋ฐฐ์ก ๊ณํ์ ์ง ๋ค.[12] ์์ง์ด ๋งํด์ ํธ๋ญ์ด ๋๋ก ์์ ๊ฑฐ๊ฐ ๋ผ๋, ์ฅ์ฌ๊ฐ ํฅํด์ ํธ๋ญ์ด ๋ ๋๊ฐ ๋ผ๋ ์ปดํ์ผ๋ฌ๋ ์ธ์ ๋ ํผํฌ๋จผ์ค๋ฅผ ์ต๋ํ ๋ฐํํ๋ ๋ฐฐ์ก ๊ณํ์ ์์ฑํด ์ค๋ค. ์๋๋ฉด, ํ๋ก๊ทธ๋จ์ด ์ง์ํ๋ ๊ฒ์ด '์์ ์จ ๋๋ค์ ๋ฐฐ์กํ๋ค'์ด๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ ์์ ๊ฑฐ๋ฅผ ์ด์ฉํ ๋๋ ์ด๋ป๊ฒ ๋ฐฐ์กํ ์ง, ํธ๋ญ์ ์ด์ฉํ ๋๋ ์ด๋ป๊ฒ ํ ์ง, ํจ์จ ํฅ์์ ์ํด์๋ ์ด๋ป๊ฒ ํ ์ง ์ด๋ฐ ๋ชจ๋ ์ต์ ํ๋ ๋ฐฐ์ก ๊ณํ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์์ฑํด์ผ ํ๋ค. ๊ณ ๊ธ์ธ์ด๋ก๋ ๋ฌด์์ ํ๋ผ๊ณ ์ง์ํ๋ ๊ฒ ๊ฐ๋ฅํ์ง๋ง ์ด์ ๋ธ๋ฆฌ์ด๋ ์ด๋ป๊ฒ ํ๋ผ๊ณ ๋ง ์ง์ํ ์ ์์ด์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ถ์ํ๊ฐ ๋ ๋ ์ปดํ์ผ๋ฌํํ '๋ฐฐ์กํ๋ผ'๊ณ ๋ง ์ํค๋ฉด ๊ทธ ์๋ฏธ๋ฅผ ์ดํดํ ์ ์๋ค๋ฉฐ ์ปดํ์ผ์ ์คํจํ ๊ฒ์ด๋ค. ํ์ง๋ง ๊ณ ๊ธ ์ธ์ด์ ์ถ์ํ ๋ ๋ฒจ์ด ๋์์ง๋ฉด ์ถ์์ ์ธ ๋ช ๋ น๋ ์ดํดํ ์ ์๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ๋ ์ถ์ํ ๋จ๊ณ๊ฐ ์ฌ๋ผ๊ฐ๋ค ๋ณด๋ฉด '๋ฐฐ์กํ๋ค' ํ๋๋ง ๋จ๊ณ ๋ค ์ง์์ง ์๋ ์๋ค. ๋ฐฐ์กํ๋ ๊ฒ ์์ธ์ง ๊ณ ๊ธฐ์ธ์ง๋ ์ค์์น ์๊ณ (์ฝํ์ , ํ์ ์ถ๋ก ), ๋ฐฐ์ก ๋ฒ์๊ฐ ๋๋ค์ธ์ง ์ ๊ตญ์ธ์ง๋ ์ค์์น ์๊ณ (๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ์ถ์ํ), ์์ง์ด ์ด๋ ์๋์ง๋ ์ค์์น ์๊ฒ ๋์ด ๋ฒ๋ฆฐ๋ค(ํ๋์จ์ด ์ถ์ํ). ํ๋ก๊ทธ๋๋จธ๋ ๊ทธ์ '๋ฐฐ์กํ๋ผ'๊ณ ๋ง ์์ผฐ๊ณ , ์ปดํ์ผ๋ฌ๋ ์์์ ๋ญ ์ธ์ ์ผ๋ง๋ ์ด๋ป๊ฒ ๋ฐฐ์กํ ์ง ์ค์ค๋ก ํ๋จํ๋ค.
๊ฒฐ๊ตญ ์ด์ ๋ธ๋ฆฌ์ด๋ ์ด๋ฏธ 90๋ ๋ ๋ค์ด์ค๋ฉด์๋ถํฐ ๊ทธ ์ฌ์ฉ ๋น๋๋ ๊ณ ๊ธ ์ธ์ด๋ค์๊ฒ ๋ฐ๋ ค ๊ฑฐ์ ์๋ค. ์ฌ์ค ๊ณผ๊ฑฐ์ ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ์ผ๋ง๋ก ๋ฐ์ ํ์ ๊ฐ๊น์ ๊ธฐ ๋๋ฌธ์[13] ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ด์ฉํ์ฌ ์ปดํ์ผ ๋ ์ฝ๋๋ฅผ ๊ณ ์น๊ฑฐ๋ ์์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋ก๊ทธ๋จ์ ์ง๊ธฐ๋ ํ์ง๋ง ์์ฆ์ PC ์ฑ๋ฅ๋ ์ข๊ณ ์ปดํ์ผ๋ฌ๋ ์ข์์ ๊ดํ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ฝ์งํ ํ์๋ ๊ฑฐ์ ์๋ค. ์์ฆ์ ์คํ๋ ค ์ปดํ์ผ๋ฌ๋ก ์์ฑํ ์ฝ๋๊ฐ ์ฌ๋์ด ์ง์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์์ฑํ ์ฝ๋๋ณด๋ค ์ต์ ํ๊ฐ ์ ๋ ๊ฒฝ์ฐ๊ฐ ๋น์ผ๋น์ฌํ๋ค. ์ค๋๋ CPU์ ๋ฌ๋ฆฌ ๋ช ๋ น์ด ์คํ ์๊ฐ์ด ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฌ๋์ด ๊ทธ๊ฑธ ๋ค ๋ฐ์ ธ๊ฐ๋ฉฐ ์์ ํ๊ธฐ๊ฐ ๊ทธ๋งํผ ํ๋ค๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌผ๋ก ์ปดํ์ผ๋ฌ๋ก๋ ์ ๋๋ก ํ ์ ์๋ ์ ํ์ ์ต์ ํ๋ ์กด์ฌํ๊ธฐ๋ ํ๋ค. ์๋ฅผ ๋ค์ด ํ๋ ๋ฆฌ์ผ ํ์ ์์คํ ์ ํ์ด๋ฐ์ ๋๋ ธ์ด ์ดํ์ ์ ๋ฐ๋๋ก ๋ง์ถ๋ ์ต์ ํ๋ SIMD ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ด ์ด๋ ์ ๋ ์์ค๊น์ง๋ ๊ฐ๋ฅํ๋ ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ์ ๋๊ธ์ ์ฑ๋ฅ์ ๋ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.[14] ์ฆ, ์ปดํ์ผ๋ฌ๋ณด๋ค ์ํ ์์ ์ด ์๋ค๋ฉด ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์๋ค. ๊ทธ๊ฒ ์ ๋๋ค๋ฉด ๊ทธ๋ฅ ๊น๋ํ๊ฒ C๋ C++๋ฅผ ์ฐ์.[15] ๋ฌผ๋ก ๊ทธ๊ฒ ๊ฐ๋ฅํ ์์์ ๋ฅ๋ ฅ์๋ค์ด ์์ผ๋ฉฐ, ๊ทธ๋ค์ ํ์ ํ ์ปดํ์ผ๋ฌ, ์ด์์ฒด์ , ์๋ฒ ๋๋ ์์คํ (๋๋ผ์ด๋ฒ ๋ฑ) ๋ฑ์ ๊ฐ๋ฐ์ ํ์์ ์ด๊ธฐ์ ์ต๊ณ ๊ธ ๊ธฐ์ ์๋ก์ ์์ฒญ๋ ๋ชธ๊ฐ์ ๋ฐ๋๋ค.
4. ์์ฐ์ฑ[ํธ์ง]
CPU ์ฑ๋ฅ์ด ๋ฎ๊ณ , RAM์ด ์๊ณ , ์ปดํ์ผ๋ฌ๋ณด๋ค ์ธ๊ฐ์ด ์ต์ ํ๋ฅผ ๋ ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ (time-criticalํ ๊ฒฝ์ฐ ๋ฑ) ์ด์
๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.[16] ํ์ง๋ง ์ด๋ฐ ํ๊ฒฝ์ด๋ผ ํ๋๋ผ๋ CPU ์ฑ๋ฅ์ด๋ RAM์ด ์กฐ๊ธ๋ง ํ๋ณด๋๋ฉด C, C++ ๋ฑ์ ๊ณ ๊ธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ๋ฆฌํ ์ ์๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋๋จธ๋ ๋ ์ฌ์ด์ ํธ๋ ์ด๋-์คํ๋ฅผ ์ ์ ํ๊ฒ ํ๋จํ์ฌ ํ๋ก์ ํธ์ ๋ฐฉํฅ์ ์ก๊ฒ ๋๋ค. ์ค์ ๋ก ์๋ฒ ๋๋ ์์คํ
์์๋ ์ด์
๋ธ๋ฆฌ์ด์ C/C++์ด ๋ ๋ค ์ฐ์ธ๋ค.
์๋ฒ ๋๋์์๋ ๋จ๊ฐ๋ ๋ณด๋/์นฉ ํฌ๊ธฐ ๋ฌธ์ ๋ก 8๋นํธ CPU์ ๊ณ ์ ๋จ ๋ช KB ์ ๋๋ง ์ฐ๋ ๊ฒฝ์ฐ[17]๋ ๋ง๋ค. C ์ปดํ์ผ๋ฌ์์๋ ํจ์ํธ์ถ ํ๋ก์์ ๋ฑ์์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๊ฒฝ์ฐ RAM์ด ๊ทนํ ์๋ค๋ฉด ๋ถํ์ํ๊ฒ ์ฐจ์งํ๋ ๋จ ์ฉ๋๋ ์ฑ๋ฅ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ ๋ฆฌํ ์ ์๋ค.
time-criticalํ ์์คํ ์์๋ ํ์ด๋ฐ์ ๋ง์ถ๊ธฐ ์ํด ์ด์ ๋ธ๋ฆฌ์ด์ ์ฌ์ฉ์ด ๋ ๋ง์ด ๊ณ ๋ ค๋๋ค. ๋ํ์ ์ผ๋ก ์ ๋ ๋ฏธ์ฌ์ผ. ์ ๋ ๋ฏธ์ฌ์ผ์ ์ ํด์ง ์๊ฐ ์์ ๋ฐฉํฅ ๊ณ์ฐ์ ์๋ฃํ์ง ๋ชปํ๋ฉด ๋ชฉํ๋ฌผ์ ๊ฒฉํ์ํฌ ์ ์๋ค. ์ด์ ๋ธ๋ฆฌ๋ก ํ์ง ์์ผ๋ฉด ํ์ด๋ฐ์ ๋ง์ถ๊ธฐ ํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
์ปดํจํฐ์ ์ฑ๋ฅ ์์ฒด๊ฐ ๋ฎ์๋ 8๋นํธ ์์ ๊น์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ํ์๋ก ์ฌ๊ฒจ์ก๋ค. 1950~1980๋ ๋์๋ CPU์ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ๋จ์ํ๊ณ RAM๋ ์์๋ค. ๊ฑฐ๊ธฐ๋ค ์ด๋ฐ ์์คํ ์ ํ์ฉํ๋ ์ปดํ์ผ๋ฌ์ ์ต์ ํ ์ฑ๋ฅ๋ ๋๋นด๋ค. ๊ทธ๋ฆฌ๊ณ ์์ค์ฝ๋์ ๋ถ๋์ด ์งง์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๊ฐ๋ฐํ๋๋ผ๋ ๊ฐ๋ฐ์๋ค์ด ๊ฐ๋นํ ์ ์์ ์์ค์ด์๋ค. ํนํ ๊ฒ์์ ๊ฒฝ์ฐ ๋๋ถ๋ถ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ ์๋์๋ค. ํ์ค์นผ, C ๊ฐ์ ๊ณ ๊ธ ์ธ์ด๋ก ์ต๋ํ์ ํผํฌ๋จผ์ค๋ฅผ ์ํ๋ ์ก์ ์ด๋ ์ํ ๊ฒ์์ ๋ง๋ ๋ค๋ ๊ฒ์ ์์ํ๊ธฐ ์ด๋ ค์ ๋ค. 16๋นํธ IBM PC์์ ๊ตด๋ฌ๊ฐ๋ MS์ ๋ณผ๋๋์ ์ปดํ์ผ๋ฌ๋ 8๋นํธ ์ปดํจํฐ์ฉ์ผ๋ก๋ ์์์ง๋ง, ๊ฒ์์ฉ์ผ๋ก๋ ๋ณ๋ก ์ฐ์ด์ง ์์๋ค.[18] 90๋ ๋๊น์ง๋ ์ ์ฌ์ PC์์ ์ฒ๋ฆฌ์๋๋ฅผ ์ฌ๋ฆด ๋ชฉ์ ์ผ๋ก ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋ฉ์ด ์ด๋ฃจ์ด์ก๋ค. ์ฝ์์ด ์ ์ฑ๋ฅ์ด๋ ๋์ ์ด๋ป๊ฒ๋ ๊ฒ์ ํผํฌ๋จผ์ค๋ฅผ ์ฅ์ด์ง ๋ณด๋ ค๊ณ ๊ฐ์ ์๋ฅผ ์ฐ๋ ์์ , ์ปดํ์ผํ ๋ฐ์ด๋๋ฆฌ๋ ์คํ์ฝ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํฌ์ธํฐ๋ก ์ฐ๊ณ ๊ธฐ๊ณ์ด๋ก ์ถ๋ ฅํ ํ ์ด๊ฒ์ ์ญ์ด์ ๋ธํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ฒ ์ด์ค๋ก ์์ ํ๋ ์์ด์๋ค.[19] 1999๋ ์ถ์๋ ํฌ์ผ๋ชฌ์คํฐ ๊ณจ๋๋ฒ์ ์ญ์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋ก๊ทธ๋๋ฐ๋์๋ค. 90๋ ๋์ ๋ค์ด ์ฐจ์ธฐ ๊ฒ์์ ์ค์ผ์ผ์ด ์ปค์ง๊ณ ์ปดํจํฐ์ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง๋ฉฐ ์ปดํ์ผ๋ฌ์ ์ต์ ํ ์ฑ๋ฅ๋ ๊ฐ์ ๋๊ณ ๋ ๋ค์์ผ C ๋ฑ์ ๊ณ ๊ธ์ธ์ด๋ก ์ดํํ๋ค.
๋จ์ํ ์ฐ์ฐ์ ๋ฌด์ฒ์ด๋ ๋ง์ด ๋ฐ๋ณตํ๋ ๋ถ์ผ - ์๋ฅผ ๋ค๋ฉด Computer Vision - ์๋ ์๊ฐ๋ณด๋ค ๋ง์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ฐ์ธ๋ค. SIMD๊ฐ ๋ํ์ ์ด๋ค. GPGPU๋ฅผ ์ฌ์ฉํ๊ธฐ์๋ ํ๊ฒฝ์ ์ผ๋ก ์ด๋ ค์ด ๊ฒฝ์ฐ - ๊ฐ๋ น, ๋ชจ๋ฐ์ผ์ด๋ GPU ์ฑ๋ฅ์ด ์ข์ง ๋ชปํ ํ๋์จ์ด์ ํด๋น ์๊ณ ๋ฆฌ์ฆ๋ค์ ํฌํ ํด์ผ ํ ๋ - ์๋ ํนํจ์ฝ์ด ๋ ์ ์๋ค. OpenMP๋ผ๋ ๊ฐ, ์ผ๋ฐ์ ์ผ๋ก ๋น๋ ์ ์ปดํ์ผ๋ฌ ์ต์ ์์ SIMD ๊ด๋ จ๋ ๊ฒ๋ค์ด ์์ง๋ง, ์ด๋ ๋งค์ฐ ์ ํ์ ์ผ๋ก ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์์ง์ ์ง์ ์ฌ์ฉ์๊ฐ SIMD๋ฅผ ๊ตฌํํด์ผ ํ๋ค. ๋ค๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ง์ ์ฌ์ฉํ ์๋ ์๊ณ , Intrinsics์ ํตํด ์ข ๋ ํธํ(?) C/C++ ์คํ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์๋ ์๋ค. ๋ ๊ฐ์ ์ฑ๋ฅ ์ฐจ์ด๋ ์๊ฐ๋ณด๋ค ๊ทธ๋ ๊ฒ ํฌ์ง ์๋ค. Intrinsics์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๊ฐ ํด ์ฃผ๋๊ฑด ๋จ์ํ ์ต์ ์ ๋ ์ง์คํฐ๋ฅผ ์ ํํด ์ฃผ๋ ์ญํ ๋ง ํ ๋ฟ ๋ช ๋ น์ด๋ฅผ 1:1๋ก ์์ฑํ๊ธฐ ๋๋ฌธ.
์์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ค๋๋ ์๋ ํน์ํ ๊ฒฝ์ฐ๊ฐ ๋์๋ค. ์์ฆ PC๋ ํด๋ํฐ์์ ์ฌ์ฉ๋๋ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ๊ทธ๋ฅ ๊ณ ๊ธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ค. ์ ์ฒด์ ์ธ ํ๋์จ์ด์ ์ฑ๋ฅ์ด ๋ํญ ์์นํ์ฌ ํ๋์ ๊ธฐ๊ธฐ์ ๋ํ ์ต์ ํ๋ณด๋ค ๋ค์ํ ๊ธฐ๊ธฐ์ ๋ํ ์ด์์ฑ, ์์ฐ์ฑ์ด ๋ ์ค์ํ ์๋๊ฐ ๋์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ปดํ์ผ๋ฌ๋ฅผ ์ด๊ฒจ๋ณด๊ฒ ๋ค๊ณ ๋ค๋น๋ ๊ทธ ์๊ฐ๊ณผ ์ธ๊ฑด๋น๋ฅผ ๊ฐ์ํ๋ ๊ฒ๋ณด๋ค ๊ทธ๋ฅ ํ ์คํ ๋ ๋์ ํ๋์จ์ด๋ฅผ ์ฌ๋ ๊ฒ ์๋ฐฑ ์์ฒ ์์ต๋ฐฐ(๋๋ด์ด ์๋๋ค) ์ธ๊ฒ ๋จนํ๋ค. ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋๋์ ์ผ๋ก ๋์ํด์ผ ํ ์ ๋๋ก ์ต์ ํ๊ฐ ์ ์คํ ๊ฒฝ์ฐ์๋ ์์ FPGA, ASIC ๋ฑ ์ ์ฉ ๋ฐ๋์ฒด๋ฅผ ์ ์กฐํด์ ์ ์ฉ ๋จธ์ ์ ๋ง๋๋ ๊ฒ ์ธ๋ค. ๊ตฌ๊ธ์ TPU๊ฐ ์ด์ ์ข์ ์์ด๋ค. ์ํํธ์จ์ด๋ก ์๋ฌด๋ฆฌ ๋น ๋ฅด๊ฒ ํด ๋ด์ผ ํธ๋์ง์คํฐ ๊ฒ์ดํธ ๋ ๋ฒจ์์ ์ต์ ํ๋ฅผ ํด ๋ฒ๋ฆฐ ์ฃผ๋ฌธํ ๋ฐ๋์ฒด์ ํผํฌ๋จผ์ค๋ฅผ ๋ฐ๋ผ์ก์ ์๋ ์๋ค.
์ด์ ๋ธ๋ฆฌ์ด๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์กด์ฌํ๋๋ฐ, ์์ฆ ๋์ค๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฝค ๊ณ ์์ค ๋ช ๋ น๋ค์ ์ง์ํ๋ ๊ฒ๋ค์ด ๋ง๊ณ , ์ฌ์ง์ด C์ ๊ฐ๊น์ด ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ๊ฒ๋ ์๋ค. ๋ฌผ๋ก , ๊ทธ๋งํ ๊ณ ์์ค ๋ช ๋ น์ ๋จ๋ฐํ๋ฉด ํผํฌ๋จผ์ค๋ C๋งํผ ๋จ์ด์ง๋ค. ๋ค๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ผ๋ ํ์ดํ์ ์ํด์๋ ๊ธฐ๊ณ์ด์ 1:1 ๋์์ด ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์, ํผํฌ๋จผ์ค๋ฅผ ์ํ ๊ฒฝ์ฐ ์์์ ์ผ๋ก ๊ทธ๋ฐ ๊ณ ์์ค ๋ช ๋ น๋ค์ ๋ฐฐ์ ํ๊ณ ์ฐ๋ฉด ์๊ด์ด ์๋ค. ์ด๋ฐ ์ธก๋ฉด์์ ๋ณด๋ฉด C๋ณด๋ค ๊ณ ์์ค ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋์ ์๋ ์์ง๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฒฐ์ ์ ์ผ๋ก ๋ช ๋ น์ด์ ์ด ๋ค๋ฅธ ํ๋ซํผ ๊ฐ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ ๋ ํด๊ฒฐ์ด ์ ๋๋ ์น๋ช ์ ๋จ์ ์ด ์๋ค.[20]
์ค์ํ ๊ฑด, ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ผญ ํผํฌ๋จผ์ค๊ฐ ์์นํ๋ ๊ฒ์ ์๋๋ค. ํฌ๊ณ ๋ณต์กํ ํ๋ก๊ทธ๋จ๋ค์ผ์๋ก ์ด๋ฐ ๊ฒฝํฅ์ด ์๋๋ฐ, ๊ฐ๋จํ ์์ ๋ง ํ๊ธฐ์๋ ๋ณต์กํ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํฌ๊ณ ๋ณต์กํ ๊ฑธ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฒ๊ทธ ์์ด ๋์๊ฐ๊ฒ ํ๋ ๊ฒ๋ง ํด๋ ์ด๋ฏธ ์์ฒญ๋ ์ผ์ด ๋๋๋ฐ, ์ฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ C ์ปดํ์ผ๋ฌ๊ฐ ํด์ฃผ๋ ์ต์ ํ๋ฅผ ๋ฅ๊ฐํ๋ ์์ค์ ์ต์ ํ๊น์ง ํ๊ธฐ๋ ์ฌ๋งํ ํธ์ง์ฆ์ด ์๋๊ณ ์์ผ ์ฌ์ค ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค. ์ค์ ๋ก, ์ญ์ฌ๊ฐ ์ข ๋ ํ๋ก๊ทธ๋จ ์ค์๋ ๊ณผ๊ฑฐ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์งฐ๋ค๊ฐ C ์ปดํ์ผ๋ฌ๋ค์ด ์ถฉ๋ถํ ๋ฐ๋ฌํ ์ดํ, C ์ธ์ด๋ก ๋ค์ ๋ง๋ค๊ณ ๋ณด๋ ํผํฌ๋จผ์ค๊ฐ ์คํ๋ ค ํฌ๊ฒ ์์นํ๋ค๋ ๊ฒฝ์ฐ๋ ์ข ์ข ์๋๋ฐ ์ด๋ C ์ปดํ์ผ๋ฌ์ ๊ฒฝ์ฐ ์ต์ CPU ์คํํ๊ฒฝ์ ์ต์ ํ๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ๋ง๋๋ ๋ฐ๋ฉด, ์์ ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋๋ ์ญ์๋ ์ ๊ธฐ์ค์ CPU ๊ตฌ์กฐ์ ๋ฌถ์ฌ ์ตํต์ฑ ์๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ.
์ฆ, ์ค๋๋ ์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ์ด ์๋ ๊ฝค ํฌ๊ณ ๋ณต์กํ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๋ณดํต ๊ณ ์์ค ์ธ์ด๋ค๋ก ๋ง๋ค์ด ๋์ ๋ค์ ํผํฌ๋จผ์ค ํด๋ก ๋ณ๋ชฉ์ด ์ผ์ด๋๋ ๋ถ๋ถ์ ์ฐพ์์ ํด๋น ์ฝ๋๋ง์ obj ํ์ผ ๋ถ์์ ํตํด ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋์ ํด ์ฃผ๋ ์ ๋์ด๋ค.[21] ์ค์ ๋ก ๋ณดํต ํ๋ก๊ทธ๋จ์์ 95%์ ์ฝ๋๋ ๋ฐํ์ ์๊ฐ์ 5%๋ง ์ฐจ์งํ๋ค๋ ๊ฒฉ์ธ์ด ์๋ค. ๋ฐํ์์ 95%๋ฅผ ์ฐจ์งํ๋ 5% ์ ๋์ ํต์ฌ ์ฝ๋๋ฅผ ์ฐพ์์ ์ต์ ํ๋ฅผ ํด์ฃผ๋ ๊ฒ ์ฝ๋ ์ต์ ํ์ ํต์ฌ์ด๋ผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ์ฑ๋ฅ์ ๊ฑฐ์ ํน์ ์ ํ ์ํฅ์ ์ ๋ฏธ์น๋ ๋ถ๋ถ๊น์ง๋ ํฌํจํด์ ์ ๋ถ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ฐ๋ฅ๋ถํฐ ๋ง๋๋ ๊ฑด ์ผ์ข ์ ๋ฐ๋ณด์ง์ด ๋๋ค. CPU ์คํ์ด ํฅ์๋์์ ๋ ๊ณ ๊ธ์ธ์ด๋ ์ปดํ์ผ ๋ช ๋ น ํ ์ค ๋ด๋ฆฌ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๊ฑด ์๋ฌด ๊ฒ๋ ํ ํ์๊ฐ ์๋ค๋ ์ ๋ ๋ช ์ฌํ์. ์ด์ ๋ธ๋ฆฌ์ด๋ ์ํคํ ์ฒ๋ ๊ณ ์ฌํ๊ณ ๋ฆฌ๋น์ ๋ง ์ฌ๋ผ๊ฐ๋ ์์ค ์ฝ๋๋ฅผ ์์ฃผ ๋ง์ด ์์ ํด์ผ ํ๋ค.
์๋ฒ ๋๋์์๋ ๋จ๊ฐ๋ ๋ณด๋/์นฉ ํฌ๊ธฐ ๋ฌธ์ ๋ก 8๋นํธ CPU์ ๊ณ ์ ๋จ ๋ช KB ์ ๋๋ง ์ฐ๋ ๊ฒฝ์ฐ[17]๋ ๋ง๋ค. C ์ปดํ์ผ๋ฌ์์๋ ํจ์ํธ์ถ ํ๋ก์์ ๋ฑ์์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๊ฒฝ์ฐ RAM์ด ๊ทนํ ์๋ค๋ฉด ๋ถํ์ํ๊ฒ ์ฐจ์งํ๋ ๋จ ์ฉ๋๋ ์ฑ๋ฅ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ ๋ฆฌํ ์ ์๋ค.
time-criticalํ ์์คํ ์์๋ ํ์ด๋ฐ์ ๋ง์ถ๊ธฐ ์ํด ์ด์ ๋ธ๋ฆฌ์ด์ ์ฌ์ฉ์ด ๋ ๋ง์ด ๊ณ ๋ ค๋๋ค. ๋ํ์ ์ผ๋ก ์ ๋ ๋ฏธ์ฌ์ผ. ์ ๋ ๋ฏธ์ฌ์ผ์ ์ ํด์ง ์๊ฐ ์์ ๋ฐฉํฅ ๊ณ์ฐ์ ์๋ฃํ์ง ๋ชปํ๋ฉด ๋ชฉํ๋ฌผ์ ๊ฒฉํ์ํฌ ์ ์๋ค. ์ด์ ๋ธ๋ฆฌ๋ก ํ์ง ์์ผ๋ฉด ํ์ด๋ฐ์ ๋ง์ถ๊ธฐ ํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
์ปดํจํฐ์ ์ฑ๋ฅ ์์ฒด๊ฐ ๋ฎ์๋ 8๋นํธ ์์ ๊น์ง๋ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ํ์๋ก ์ฌ๊ฒจ์ก๋ค. 1950~1980๋ ๋์๋ CPU์ ๊ตฌ์กฐ๊ฐ ๋งค์ฐ ๋จ์ํ๊ณ RAM๋ ์์๋ค. ๊ฑฐ๊ธฐ๋ค ์ด๋ฐ ์์คํ ์ ํ์ฉํ๋ ์ปดํ์ผ๋ฌ์ ์ต์ ํ ์ฑ๋ฅ๋ ๋๋นด๋ค. ๊ทธ๋ฆฌ๊ณ ์์ค์ฝ๋์ ๋ถ๋์ด ์งง์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๊ฐ๋ฐํ๋๋ผ๋ ๊ฐ๋ฐ์๋ค์ด ๊ฐ๋นํ ์ ์์ ์์ค์ด์๋ค. ํนํ ๊ฒ์์ ๊ฒฝ์ฐ ๋๋ถ๋ถ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ ์๋์๋ค. ํ์ค์นผ, C ๊ฐ์ ๊ณ ๊ธ ์ธ์ด๋ก ์ต๋ํ์ ํผํฌ๋จผ์ค๋ฅผ ์ํ๋ ์ก์ ์ด๋ ์ํ ๊ฒ์์ ๋ง๋ ๋ค๋ ๊ฒ์ ์์ํ๊ธฐ ์ด๋ ค์ ๋ค. 16๋นํธ IBM PC์์ ๊ตด๋ฌ๊ฐ๋ MS์ ๋ณผ๋๋์ ์ปดํ์ผ๋ฌ๋ 8๋นํธ ์ปดํจํฐ์ฉ์ผ๋ก๋ ์์์ง๋ง, ๊ฒ์์ฉ์ผ๋ก๋ ๋ณ๋ก ์ฐ์ด์ง ์์๋ค.[18] 90๋ ๋๊น์ง๋ ์ ์ฌ์ PC์์ ์ฒ๋ฆฌ์๋๋ฅผ ์ฌ๋ฆด ๋ชฉ์ ์ผ๋ก ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋ฉ์ด ์ด๋ฃจ์ด์ก๋ค. ์ฝ์์ด ์ ์ฑ๋ฅ์ด๋ ๋์ ์ด๋ป๊ฒ๋ ๊ฒ์ ํผํฌ๋จผ์ค๋ฅผ ์ฅ์ด์ง ๋ณด๋ ค๊ณ ๊ฐ์ ์๋ฅผ ์ฐ๋ ์์ , ์ปดํ์ผํ ๋ฐ์ด๋๋ฆฌ๋ ์คํ์ฝ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํฌ์ธํฐ๋ก ์ฐ๊ณ ๊ธฐ๊ณ์ด๋ก ์ถ๋ ฅํ ํ ์ด๊ฒ์ ์ญ์ด์ ๋ธํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ฒ ์ด์ค๋ก ์์ ํ๋ ์์ด์๋ค.[19] 1999๋ ์ถ์๋ ํฌ์ผ๋ชฌ์คํฐ ๊ณจ๋๋ฒ์ ์ญ์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋ก๊ทธ๋๋ฐ๋์๋ค. 90๋ ๋์ ๋ค์ด ์ฐจ์ธฐ ๊ฒ์์ ์ค์ผ์ผ์ด ์ปค์ง๊ณ ์ปดํจํฐ์ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง๋ฉฐ ์ปดํ์ผ๋ฌ์ ์ต์ ํ ์ฑ๋ฅ๋ ๊ฐ์ ๋๊ณ ๋ ๋ค์์ผ C ๋ฑ์ ๊ณ ๊ธ์ธ์ด๋ก ์ดํํ๋ค.
๋จ์ํ ์ฐ์ฐ์ ๋ฌด์ฒ์ด๋ ๋ง์ด ๋ฐ๋ณตํ๋ ๋ถ์ผ - ์๋ฅผ ๋ค๋ฉด Computer Vision - ์๋ ์๊ฐ๋ณด๋ค ๋ง์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ฐ์ธ๋ค. SIMD๊ฐ ๋ํ์ ์ด๋ค. GPGPU๋ฅผ ์ฌ์ฉํ๊ธฐ์๋ ํ๊ฒฝ์ ์ผ๋ก ์ด๋ ค์ด ๊ฒฝ์ฐ - ๊ฐ๋ น, ๋ชจ๋ฐ์ผ์ด๋ GPU ์ฑ๋ฅ์ด ์ข์ง ๋ชปํ ํ๋์จ์ด์ ํด๋น ์๊ณ ๋ฆฌ์ฆ๋ค์ ํฌํ ํด์ผ ํ ๋ - ์๋ ํนํจ์ฝ์ด ๋ ์ ์๋ค. OpenMP๋ผ๋ ๊ฐ, ์ผ๋ฐ์ ์ผ๋ก ๋น๋ ์ ์ปดํ์ผ๋ฌ ์ต์ ์์ SIMD ๊ด๋ จ๋ ๊ฒ๋ค์ด ์์ง๋ง, ์ด๋ ๋งค์ฐ ์ ํ์ ์ผ๋ก ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์์ง์ ์ง์ ์ฌ์ฉ์๊ฐ SIMD๋ฅผ ๊ตฌํํด์ผ ํ๋ค. ๋ค๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ง์ ์ฌ์ฉํ ์๋ ์๊ณ , Intrinsics์ ํตํด ์ข ๋ ํธํ(?) C/C++ ์คํ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์๋ ์๋ค. ๋ ๊ฐ์ ์ฑ๋ฅ ์ฐจ์ด๋ ์๊ฐ๋ณด๋ค ๊ทธ๋ ๊ฒ ํฌ์ง ์๋ค. Intrinsics์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๊ฐ ํด ์ฃผ๋๊ฑด ๋จ์ํ ์ต์ ์ ๋ ์ง์คํฐ๋ฅผ ์ ํํด ์ฃผ๋ ์ญํ ๋ง ํ ๋ฟ ๋ช ๋ น์ด๋ฅผ 1:1๋ก ์์ฑํ๊ธฐ ๋๋ฌธ.
์์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ค๋๋ ์๋ ํน์ํ ๊ฒฝ์ฐ๊ฐ ๋์๋ค. ์์ฆ PC๋ ํด๋ํฐ์์ ์ฌ์ฉ๋๋ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ๊ทธ๋ฅ ๊ณ ๊ธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ค. ์ ์ฒด์ ์ธ ํ๋์จ์ด์ ์ฑ๋ฅ์ด ๋ํญ ์์นํ์ฌ ํ๋์ ๊ธฐ๊ธฐ์ ๋ํ ์ต์ ํ๋ณด๋ค ๋ค์ํ ๊ธฐ๊ธฐ์ ๋ํ ์ด์์ฑ, ์์ฐ์ฑ์ด ๋ ์ค์ํ ์๋๊ฐ ๋์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ปดํ์ผ๋ฌ๋ฅผ ์ด๊ฒจ๋ณด๊ฒ ๋ค๊ณ ๋ค๋น๋ ๊ทธ ์๊ฐ๊ณผ ์ธ๊ฑด๋น๋ฅผ ๊ฐ์ํ๋ ๊ฒ๋ณด๋ค ๊ทธ๋ฅ ํ ์คํ ๋ ๋์ ํ๋์จ์ด๋ฅผ ์ฌ๋ ๊ฒ ์๋ฐฑ ์์ฒ ์์ต๋ฐฐ(๋๋ด์ด ์๋๋ค) ์ธ๊ฒ ๋จนํ๋ค. ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋๋์ ์ผ๋ก ๋์ํด์ผ ํ ์ ๋๋ก ์ต์ ํ๊ฐ ์ ์คํ ๊ฒฝ์ฐ์๋ ์์ FPGA, ASIC ๋ฑ ์ ์ฉ ๋ฐ๋์ฒด๋ฅผ ์ ์กฐํด์ ์ ์ฉ ๋จธ์ ์ ๋ง๋๋ ๊ฒ ์ธ๋ค. ๊ตฌ๊ธ์ TPU๊ฐ ์ด์ ์ข์ ์์ด๋ค. ์ํํธ์จ์ด๋ก ์๋ฌด๋ฆฌ ๋น ๋ฅด๊ฒ ํด ๋ด์ผ ํธ๋์ง์คํฐ ๊ฒ์ดํธ ๋ ๋ฒจ์์ ์ต์ ํ๋ฅผ ํด ๋ฒ๋ฆฐ ์ฃผ๋ฌธํ ๋ฐ๋์ฒด์ ํผํฌ๋จผ์ค๋ฅผ ๋ฐ๋ผ์ก์ ์๋ ์๋ค.
์ด์ ๋ธ๋ฆฌ์ด๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์กด์ฌํ๋๋ฐ, ์์ฆ ๋์ค๋ ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฝค ๊ณ ์์ค ๋ช ๋ น๋ค์ ์ง์ํ๋ ๊ฒ๋ค์ด ๋ง๊ณ , ์ฌ์ง์ด C์ ๊ฐ๊น์ด ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ๊ฒ๋ ์๋ค. ๋ฌผ๋ก , ๊ทธ๋งํ ๊ณ ์์ค ๋ช ๋ น์ ๋จ๋ฐํ๋ฉด ํผํฌ๋จผ์ค๋ C๋งํผ ๋จ์ด์ง๋ค. ๋ค๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ผ๋ ํ์ดํ์ ์ํด์๋ ๊ธฐ๊ณ์ด์ 1:1 ๋์์ด ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์, ํผํฌ๋จผ์ค๋ฅผ ์ํ ๊ฒฝ์ฐ ์์์ ์ผ๋ก ๊ทธ๋ฐ ๊ณ ์์ค ๋ช ๋ น๋ค์ ๋ฐฐ์ ํ๊ณ ์ฐ๋ฉด ์๊ด์ด ์๋ค. ์ด๋ฐ ์ธก๋ฉด์์ ๋ณด๋ฉด C๋ณด๋ค ๊ณ ์์ค ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋์ ์๋ ์์ง๋ง, ์ด์ ๋ธ๋ฆฌ์ด๋ ๊ฒฐ์ ์ ์ผ๋ก ๋ช ๋ น์ด์ ์ด ๋ค๋ฅธ ํ๋ซํผ ๊ฐ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ ๋ ํด๊ฒฐ์ด ์ ๋๋ ์น๋ช ์ ๋จ์ ์ด ์๋ค.[20]
์ค์ํ ๊ฑด, ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ผญ ํผํฌ๋จผ์ค๊ฐ ์์นํ๋ ๊ฒ์ ์๋๋ค. ํฌ๊ณ ๋ณต์กํ ํ๋ก๊ทธ๋จ๋ค์ผ์๋ก ์ด๋ฐ ๊ฒฝํฅ์ด ์๋๋ฐ, ๊ฐ๋จํ ์์ ๋ง ํ๊ธฐ์๋ ๋ณต์กํ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํฌ๊ณ ๋ณต์กํ ๊ฑธ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฒ๊ทธ ์์ด ๋์๊ฐ๊ฒ ํ๋ ๊ฒ๋ง ํด๋ ์ด๋ฏธ ์์ฒญ๋ ์ผ์ด ๋๋๋ฐ, ์ฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ C ์ปดํ์ผ๋ฌ๊ฐ ํด์ฃผ๋ ์ต์ ํ๋ฅผ ๋ฅ๊ฐํ๋ ์์ค์ ์ต์ ํ๊น์ง ํ๊ธฐ๋ ์ฌ๋งํ ํธ์ง์ฆ์ด ์๋๊ณ ์์ผ ์ฌ์ค ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค. ์ค์ ๋ก, ์ญ์ฌ๊ฐ ์ข ๋ ํ๋ก๊ทธ๋จ ์ค์๋ ๊ณผ๊ฑฐ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์งฐ๋ค๊ฐ C ์ปดํ์ผ๋ฌ๋ค์ด ์ถฉ๋ถํ ๋ฐ๋ฌํ ์ดํ, C ์ธ์ด๋ก ๋ค์ ๋ง๋ค๊ณ ๋ณด๋ ํผํฌ๋จผ์ค๊ฐ ์คํ๋ ค ํฌ๊ฒ ์์นํ๋ค๋ ๊ฒฝ์ฐ๋ ์ข ์ข ์๋๋ฐ ์ด๋ C ์ปดํ์ผ๋ฌ์ ๊ฒฝ์ฐ ์ต์ CPU ์คํํ๊ฒฝ์ ์ต์ ํ๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ๋ง๋๋ ๋ฐ๋ฉด, ์์ ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋๋ ์ญ์๋ ์ ๊ธฐ์ค์ CPU ๊ตฌ์กฐ์ ๋ฌถ์ฌ ์ตํต์ฑ ์๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ.
์ฆ, ์ค๋๋ ์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ์ด ์๋ ๊ฝค ํฌ๊ณ ๋ณต์กํ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๋ณดํต ๊ณ ์์ค ์ธ์ด๋ค๋ก ๋ง๋ค์ด ๋์ ๋ค์ ํผํฌ๋จผ์ค ํด๋ก ๋ณ๋ชฉ์ด ์ผ์ด๋๋ ๋ถ๋ถ์ ์ฐพ์์ ํด๋น ์ฝ๋๋ง์ obj ํ์ผ ๋ถ์์ ํตํด ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋์ ํด ์ฃผ๋ ์ ๋์ด๋ค.[21] ์ค์ ๋ก ๋ณดํต ํ๋ก๊ทธ๋จ์์ 95%์ ์ฝ๋๋ ๋ฐํ์ ์๊ฐ์ 5%๋ง ์ฐจ์งํ๋ค๋ ๊ฒฉ์ธ์ด ์๋ค. ๋ฐํ์์ 95%๋ฅผ ์ฐจ์งํ๋ 5% ์ ๋์ ํต์ฌ ์ฝ๋๋ฅผ ์ฐพ์์ ์ต์ ํ๋ฅผ ํด์ฃผ๋ ๊ฒ ์ฝ๋ ์ต์ ํ์ ํต์ฌ์ด๋ผ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ์ฑ๋ฅ์ ๊ฑฐ์ ํน์ ์ ํ ์ํฅ์ ์ ๋ฏธ์น๋ ๋ถ๋ถ๊น์ง๋ ํฌํจํด์ ์ ๋ถ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ฐ๋ฅ๋ถํฐ ๋ง๋๋ ๊ฑด ์ผ์ข ์ ๋ฐ๋ณด์ง์ด ๋๋ค. CPU ์คํ์ด ํฅ์๋์์ ๋ ๊ณ ๊ธ์ธ์ด๋ ์ปดํ์ผ ๋ช ๋ น ํ ์ค ๋ด๋ฆฌ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๊ฑด ์๋ฌด ๊ฒ๋ ํ ํ์๊ฐ ์๋ค๋ ์ ๋ ๋ช ์ฌํ์. ์ด์ ๋ธ๋ฆฌ์ด๋ ์ํคํ ์ฒ๋ ๊ณ ์ฌํ๊ณ ๋ฆฌ๋น์ ๋ง ์ฌ๋ผ๊ฐ๋ ์์ค ์ฝ๋๋ฅผ ์์ฃผ ๋ง์ด ์์ ํด์ผ ํ๋ค.
5. ๋์ปดํ์ผ๋ฌ[ํธ์ง]
์ด์
๋ธ๋ฆฌ์ด๋ฅผ ๊ณ ๊ธ ์ธ์ด๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ์ผ์ด๋ค. ๊ทธ๋์ ์ด์
๋ธ๋ฆฌ์ด๋ก ๋ง๋ ํ๋ก๊ทธ๋จ์ CPU ์ํคํ
์ฒ๊ฐ ๋ฐ๋๋ฉด ์ด์์ด ์ ์ ๋๋ค. ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค์ ์ ์ํ๋ ํฌ๋ฆฌ์ค ์์ด์ด๊ฐ ๋ชจ๋ฐ์ผ ์ด์์ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ค๊ณ ๋งํ๋ค. ์ด์ ๋ ๊ฒ์์ ์ด์
๋ธ๋ฆฌ์ด๋ก๋ง ๋ง๋ค์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ธฐ์ฌ
ํ์ง๋ง ์ด๋ค ์ฌ๋์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ๊ณ ๊ธ ์ธ์ด๋ก ๋ฒ์ญํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ํ๋ก๊ทธ๋๋จธ ์ค์์๋ ํํ์ง ์์ ์ฌ๋ฅ์ด๋ค. ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค์ ๊ฒฝ์ฐ ํ ๋ ์กด(IntelOrca)์ด๋ผ๋ ์๊ตญ ๋ฒํฌ์ ์ฃผ ์ถ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋กค์ฝํ๋ฅผ OpenRCT2๋ก ์คํ์์ค๋ก ๋ฐฐํฌํ๊ธฐ์ํด ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ํ๋ค C ์ธ์ด๋ก ๋์ปดํ์ผํด์ ๋ง๋ค์๋ค.
ํ์ง๋ง ์ด๋ค ์ฌ๋์ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ๊ณ ๊ธ ์ธ์ด๋ก ๋ฒ์ญํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ํ๋ก๊ทธ๋๋จธ ์ค์์๋ ํํ์ง ์์ ์ฌ๋ฅ์ด๋ค. ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค์ ๊ฒฝ์ฐ ํ ๋ ์กด(IntelOrca)์ด๋ผ๋ ์๊ตญ ๋ฒํฌ์ ์ฃผ ์ถ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋กค์ฝํ๋ฅผ OpenRCT2๋ก ์คํ์์ค๋ก ๋ฐฐํฌํ๊ธฐ์ํด ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ํ๋ค C ์ธ์ด๋ก ๋์ปดํ์ผํด์ ๋ง๋ค์๋ค.
6. ์ฌ๋ด[ํธ์ง]
- ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊ฟ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์ด์ ๋ธ๋ฌ๋ผ๊ณ ํ๋ค.[22]
- ํ๋์ ๊ณ ์ฑ๋ฅ CPU์ํคํ ์ฒ๋ ๋๋ถ๋ถ RISC ๋ฐฉ์์ ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ ์ ์ง์ํ๊ณ ์๋ค. RISC์ ๋๋น๋๋ CISC ๋ฐฉ์์ ์ข ๋ ์ฌ๋์ ์นํ์ ์ด๊ณ RISC๋ ์ข ๋ ๊ธฐ๊ณ์ ์นํ์ ์ด๋ค. ์ฆ ํ๋์ CPU ์ ์กฐ์ฌ๋ค์ ์ด๋ฏธ ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ๋์ด ์ง์ ์จ์ ์ฝ๋ฉํ๋ ์ํฉ์ ์ ํ ๊ณ ๋ คํ๊ณ ์์ง ์๋ค.
- ๊ฐ์๋จธ์ ์๋ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ์ฌ์ฉ๋๋ค. Java์ ๋ฐ์ดํธ์ฝ๋์ .NET Framework|.NET CLR์ CIL์ด ๋ํ์ ์ธ ๊ฐ์๋จธ์ ์ด์ ๋ธ๋ฆฌ์ด. ๋ค๋ง, ๊ฐ์๋จธ์ ์ด์ ๋ธ๋ฆฌ์ด๋ ๋ค์ํ ์๋ฃํ์ ์ง์ํ๊ฑฐ๋ ํจ์๋ฅผ ์ง์ํ๋ ๋ฑ ์ค์ ์ด์ ๋ธ๋ฆฌ์ด์๋ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ฉฐ, ๋๊ฐ JIT ์ปดํ์ผ๋ฌ๋ฅผ ๊ฑฐ์น๊ฑฐ๋ ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํด ํด์๋๋ค.
- ์กด ํฐ ๋ ธ์ด๋ง์ ์ ์๊ฐ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ๋ง๋ค์ ํฐ ๋ ธ์ด๋ง์ด ๋ ธ๋ฐ๋๋ฐ ํ๋ค๋ ์ด์ผ๊ธฐ๊ฐ ์๋ค. ๊ณ ์ ๊ทธ๋ฐ ๊ฑฐ๋ก ์ปดํจํฐ๋(โฆ)์ ์ฑ๋ฅ์ ๋ญ๋นํ๋ ค ํ๋ค๋ ๋ญ๋ผ๋. ๋ฌผ๋ก ์ด ๋น์ ์ปดํจํฐ์ ์์์ ์์ฆ ๊ธฐ์ค ์์ญ์ต์๋ ์ต๊ณ ๊ธ ์ฐ์ฐ์ฅ์น์๋ค.[23] ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ตญ๊ฐ ๋จ์๋ก ํ, ๋๊ฐ ์๋ ์ ๋์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ๋ญ๋นํ๋ค๋ ๊ฒ์ ์์ ์ ์๋ ์ผ. ๊ทธ๋ฆฌ๊ณ ํฐ ๋ ธ์ด๋ง์ ๊ธฐ๊ณ์ด๋ก ์์ ์์ฌ๋ก ์ฝ๋ฉ์ด ๊ฐ๋ฅํ ๊ดด์์๋ค๋ ์ ๋ ์๋ค. ์ธ์์ด ์ง๋๊ณ ์ฌํ๊ฒ ๋นํจ์จ์ ์ธ ์ฝ๋๋ ๋์ ์ฑ๋ฅ์ ํ๋์จ์ด์ ์ปดํ์ผ๋ฌ์ ํจ๊ณผ๋ก ์ค์ํ ์ฑ๋ฅ์ ๋ด๊ธฐ ๋๋ฌธ์, ์ปดํจํฐ ํ ๋๊ฐ ํ๋ก๊ทธ๋๋จธ ํ ๋ฌ ์๊ธ๋ณด๋ค ์ธ์ง ์์ฆ์ ํ๋ก๊ทธ๋๋จธ์ ํจ์จ์ด ํจ์ฌ ์ค์ํ๊ฒ ์ทจ๊ธ๋๋ค.
- ํฌ๋ฆฌ์ค ์์ด์ด์ ํธ๋์คํฌํธ ํ์ด์ฟค ๋ฐ ๋กค๋ฌ์ฝ์คํฐ ํ์ด์ฟค 1, 2๊น์ง๋ ์ด ์ธ์ด๋ก ์ง์ฌ ์๋ค. ๊ทธ๋์ ์ค๋ธ์ ํธ๊ฐ ๋๋ฌดํ๋ ์๋๋ฆฌ์ค ํ๋ฐ๋ถ์๋ ์์ ํ์ผ์ ๊ฐ์ ธ์ฌ ๋๋ฅผ ์ ์ธํ๊ณ ๋์ด ๊ฑฐ์ ์กด์ฌํ์ง ์์ ์ ๋๋ก ์ต์ ํ๊ฐ ์ ๋์ด์๋ค.[24] ๋ํ ์ ์ฌ์์์๋ ๋ฌด๋ํ๊ฒ ๋์๊ฐ๊ธฐ ๋๋ฌธ์ ์ ์ธ๊ณ์ ์ผ๋ก ๋ง์ ์ฌ๋์ ๋ฐ์ ์ ์๋ ์ด์ ์ค์ ํ๋๊ฐ ๋์๋ค.[25] ํ์ง๋ง ์คํ์์ค ํ๋ก์ ํธ๊ฐ ๊ฐ๋๋๋ฉด์ OTTD, OpenRCT2, OpenLoco ๋ฑ์ ๋ชจ๋ C์ธ์ด๋ก ์ฌ๊ตฌ์ฑ๋์๋ค.
- ์ํ๋ฆฌ ์ผํฌ ์ด์ ์๋ ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ณง ์ด์ ๋ธ๋ฆฌ์ด ํ๋ก๊ทธ๋๋ฐ์ด๊ณ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ด์๋ ์์ ์ธ์ง๋ผ ์ด๋ค ๊ฒ์๊ธฐ์ด๋ ๋ฅ์น๊ณ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์์ฑํ ์๋ฐ์ ์์๋ค. ์ํผํจ๋ฏธ์ฝค, ๋ฉ๊ฐ๋๋ผ์ด๋ธ, ํจ๋ฏธ์ฝค, MSX ๋ฑ 8, 16๋นํธ ์ธ๋์ ๋์จ ๋๋ถ๋ถ์ ๊ฒ์์ ๊ฑฐ์๊ฐ ๋ค ์ด์ ๋ธ๋ฆฌ์ด๋ก ๊ฐ๋ฐ๋์๋ค. ๋๋ถ์ ๊ฒ์๊ฐ๋ฐ๊ธฐ๊ฐ์ 6~12๊ฐ์๊น์ง ํ์ฅ๋์๋ค. [26] ๊ฒ์๋ณด์ด๊น์ง ์ด์ ๋ธ๋ฆฌ์ด๋ก ๊ฐ๋ฐ๋์ด ์ด์ ๋ธ๋ฆฌ์ด ์ธ๋๋ค.(...) ๋ช๋ช์ ์์ฒด ์ธ์ด๋ฅผ ์ ์ํ๋ ๋ฑ ์์ธ๋ฅผ ๋๊ณ ์๊ธฐ๋ ํ์ง๋ง. ๋น์์ ํ๋์จ์ด ์ฑ๋ฅ์ผ๋ก๋ ์๋ฌด๋๋ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ง์ ์ด ์ฝ๋์ ์ปดํ์ผ๋ฌ๊ฐ ์์ฑํ๋ ์ฝ๋์ ํผํฌ๋จผ์ค ์ฐจ์ด๊ฐ ๊ฝค ์ปธ๊ธฐ ๋๋ฌธ์ด๋ค. ์ดํ ์ปดํ์ผ๋ฌ ์ฑ๋ฅ์ด ์ข์์ ธ์ ์์ฆ์ ๊ตณ์ด ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ฝ์งํ ํ์๊ฐ ์์ด์ก๋ค.[27] ๊ทธ๋งํผ ๊ฒ์๊ธฐ์ ์ฑ๋ฅ์ด ์ข์์ง๊ณ ๊ฒ์์ ์ฉ๋์ด ์ปค์ก๋ค๋ ๋ป์ด๋ค. ๋์ ์ ๊ฒ์์ ๊ณ ๊ธ์ธ์ด๊ฐ ๋ค์ด๊ฐ๋ฉฐ ๋ฐ์ ํ ๋ฌธ์ ๊ฐ ๋๋๋๊ธฐ ์์ํ๋ค.
- 1980๋ ๋ ์ปดํจํฐ ์ก์ง(์๋ฅผ ๋ค์ด ์ผ๋ณธ I/O ์ง)๋ฅผ ๋ณด๋ฉด ํ๋ก๊ทธ๋จ์ ์ด์ ๋ธ๋ฆฌ์ด ์ฝ๋๊ฐ ๋นฝ๋นฝํ๊ฒ ์ธ์๋ ํ์ด์ง๊ฐ ์๋ฐฑ์ฅ์ฉ ์์๋ค. ๋ ์๋ ๊ทธ๊ฑธ ํ๊ธ์ ํ๊ธ์ ์ง์ ์ ๋ ฅํด์ ํ๋ก๊ทธ๋จ์ ๋ณต์ฌ...?ํ๊ณค ํ๋ค. ๋ฌผ๋ก ๋น์์๋ ์นด์ธํธ ํ ์ ๋ฑ์ ์ ์ฅ๋งค์ฒด๊ฐ ์์์ผ๋ ๊ทธ๋ฐ ๊ฒ์ ํ๋ก๊ทธ๋จ์ ๋ด์ ๋ฐฐํฌํ ์๋ ์์์ ํฐ์ด๋, ์ด๋ฐ ์ก์ง์ ์ฃผ๋ชฉ์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ์ต์ด์์ผ๋ฏ๋ก ์ฝ๋๋ฅผ ์ง์ ์ ๋ ฅํ๋ฉฐ ๊ทธ ๋ด์ฉ์ ๊ณต๋ถํ๋ผ๋ ์๋ฏธ๊ฐ ์์๊ณ , ์ ์ด์ ์นด์ธํธ ํ ์ดํ๋ฅผ ์ฝ์ ์ ์๋ ๋ฐ์ดํฐ ๋ ์ฝ๋๋ง์ ๋ ๊ฐ์ถ์ง ์์ ์ปดํจํฐ๋ ๋ง์๋ฐ๋ค, ์ง๊ธ์ ๊ฑฐ์ ์ค๋ ์ฐ์ง ์์ ์นด์ธํธ ํ ์ดํ๋ ๋น์ ๊ธฐ์ค์ผ๋ก๋ ๋ถ๋ก์ด๋ผ๊ณ ๋ฌด๋ฃ๋ก ๋ง์๊ป ๋ฐฐํฌํ ์ ์๋ ์์๋ ์๋์๋ค.[28] ์ธ์๋ฌผ๋ก ๋๋ ์ฃผ๋ ๊ฒ์ด ๊ฐ์ฅ ํ์คํ ๋ฐฐํฌ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํ๋ ์ . ์ฌ๋ฌ๋ชจ๋ก ์ง๊ธ์ ์์๋ ์์ํ๊ธฐ ํ๋ ์ผ์ด๋ค. ํ ๋ฐ์ดํธ ํ๋ฆฌ๋ฉด ํญ์ฃผ!
- ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ง๋ ์๋ฎฌ๋ ์ด์ ๊ฒ์์ด ์คํ์ ํ๋งค์ค์ด๋ค... TIS-100. ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ๋ค๋ฉด Human Resource Machine์ ํด๋ณด๋ ๊ฒ๋ ๋์์ด ๋ ๊ฒ์ด๋ค.
- ๋ฐ๋์ ๋๋ผ (1996)๋ ์ด์ ๋ธ๋ฆฌ์ด๋ก ์ฝ๋ฉ๋์๋ค. 6.30 ๋ฒ์ (2004) ์ดํ๋ก DirectX๋ฅผ ์ง์ํ๋ ๋ฒ์ ์ผ๋ก ๋ชจ๋ ๊ต์ฒด๋์๋ค.
- ๋ฏธ๊ตญ ์ฌ๋ฌด๋ถ๋ 2016๋ ์๋ ์ด์ ๋ธ๋ฆฌ์ด๋ฅผ ์ฌ์ฉ์ค์ด๋ค.
- 1970๋ ๋์๋ ์์ ๊ณ ๋ฑํ๊ต ์ ๊ณต ์ ํ ๊ณผ๋ชฉ์ด์๋ค.
- ์ด์ ๋ ์น์์๋ ๋์๊ฐ๋ค. WebAssembly ์ฐธ์กฐ.
[1] ์ฌ๊ธฐ์ '์ ๊ธ ์ธ์ด'๋ ์ง์ด ๋ฎ์ ์ธ์ด๋ฅผ ๋ปํ๋ ๊ฒ์ด ์๋๋ผ, ๋ณด๋ค ์ปดํจํฐ์ ๊ฐ๊น์ด ์ธ์ด๋ฅผ ์๋ฏธํ๋ค. C์ธ์ด๋ ์ถ์ํ๋ ๊ณ ๊ธ ์ธ์ด๋ก ๋ถ๋ฅ๋์ง๋ง ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ ์ ๊ธ ์ธ์ด์ ํน์ง์ด๋ค.
[2] C์ธ์ด์ C++๋ฅผ ์ ๊ธ์ธ์ด๋ผ๊ณ ํ๋ ์ฌ๋๋ ์์ง๋ง ์ด๋ ์ฌ์ค ๋ ์ค ํ๋๋ฅผ ๋ถ๋ช
ํ ํ๊ธฐ ์ด๋ ค์ด, ์ ๊ธ๊ณผ ๊ณ ๊ธ ์ธ์ด ์ฌ์ด์ ์๋ ์ค๊ธ์ธ์ด์ด๋ค.
[3] ๋ฌผ๋ก ์ด ๋ ๋ฐฉ์์ ์ด๋ ์ ๋์ ์ ๋์ ์ธ ๊ฐ๋
์ฑ ๋น๊ต๋ฅผ ํ๊ธฐ์ ์ด๋ ต๊ณ , ์ทจํฅ ๋ฐ ์ต์ํจ์ ๋ฌธ์ ๋ผ๊ณ ๋ณด๋ ๊ฒ์ด ๋ง๋ค. ๋จผ์ ์ค๋ ์ ํ๊ณ ๋ณธ ๊ฒ์ด ์ด๋ค ๋ฌธ๋ฒ์ด๋์ ๋ฐ๋ผ์ ๋ค๋ฅด๋ค๋ ๋ง์ด๋ค.
[4] ํ์ง๋ง ์์ฆ์๋ ํ ๊ฐ์ง ๋ฌธ๋ฒ๋ง ์ง์ํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ผ๋ฏ๋ก ์ฌ์ค์ ์ทจํฅ ๋ฌธ์ ๋ผ๊ณ ํ ์ ์๋ค.
[5] '๋ท๊ตฌ๋ฃจ'๋ผ๋ ํ์ฌ์์ ํฐ์ค๋ฒ ์์์์ ์ด์
๋ธ๋ฆฌ์ด ์์๊ฐ ๋์์ง ์ด์ ๋ฅผ IoT ์ฆ๊ฐ๋ก ํ๊ฐํ๋ค.
[6] ์ด์
๋ธ๋ฌ ๋๋ ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋๋ก ์ธ์ํ์ง ์๋ ๋ถ๋ถ์ด๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ์ํ๋ ์์ฐ์ด๋ฅผ ์ธ ์ ์๋ค. C ๊ณ์ด ์ธ์ด๋ค ๊ธฐ์ค์ผ๋ก //๋ฅผ ์ฌ์ฉํ๋๋ฐ ๊ฐ๋ น a = 10 //b = x ๋ผ๋ ์ฝ๋์์ a = 10์ด๋ผ๋ ์ฝ๋๋ ์ปดํ์ผ๋ฌ๊ฐ ์ธ์์ ํ์ง๋ง b = x๋ผ๋ ์ฝ๋๋ ์์ // ํ๋ ๋ถ์๋ค๋ ์ด์ ๋ง์ผ๋ก ์ฝ๋๋ก ์ธ์๋์ง ์๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ํ๋ ์ผ์ด๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ ๋ฆฌํด์ด ์๋ฏธํ๋ ๋ฐ๋ฑ์ ์ธ ์ ์๋ค.
[7] ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๊ทธ ๋ช
๋ น์ด๋ค์ด ์ ์กฐํฉ๋๊ณ ๋ฐฐ์ด๋์ด์ ๋ง๋ค์ด์ง ๊ฒฐ๊ณผ๋ฌผ์ด๋ค.
[8] ์ฌ์ค ๋ํดํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ์ ์ข
๋ฅ์์๋ ์ต์ํ์ ๋ช
๋ น์ด๋ง ๊ฐ์ง๊ณ ํ๋ง ์์ ์ธ ์ธ์ด๋ค์ด ๋ง์ด ์๊ณ , ์ด๋ฐ ์ธ์ด๋ค ์ญ์ ๋ช
๋ น์ด๋ฅผ ์ธ์ฐ๋ ๊ฒ ์์ฒด๋ ์ด๋ ต์ง ์๋ค. ๊ทธ๊ฑธ ์ด์ฉํด์ ์ค์ ํ๋ก๊ทธ๋จ์ ์ง๋ ๊ฒ์ด ๊ณ ๊ธ ์ธ์ด๋ณด๋ค ์ด๋ ค์ธ ๋ฟ...
[9] ๊ฐ์ฒด์งํฅํ ํ๋ก๊ทธ๋๋ฐ์ด์ธ Python์ผ๋ก ์์ ์ด์
๋ธ๋ฆฌ ์ธ์ด์ ๋๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ค๋ฉด print("Hello, world") ํ ์ค์ด๋ฉด ์ถฉ๋ถํ๋ค.
[10] '์์'๋ผ๋ ๋ป์ด๋ค. ์ ๋จ๋ฝ ์์์์ 10์ ๋ํ๋ฏ์ด ๊ณ ์ ๋ ์๋ฅผ ๋ํ ๋ ์ฐ์ธ๋ค. ๊ธฐ์ต์ฅ์น์์ ์ซ์๋ฅผ ๋ถ๋ฌ์ฌ ํ์ ์์ด ๋ฐ๋ก(immediately) ๋ํ ์ ์๊ธฐ ๋๋ฌธ์ immediate๋ผ๋ ์ด๋ฆ์ด ๋ถ์๋ค.
[11] ๋ฌผ๋ก , C ์ธ์ด๋ ๋ง๋ค์ด์ง ๋น์์ ์๋ํฐ์ ์๋์์ฑ ๊ธฐ๋ฅ ๊ฐ์ ๊ฑด ์์ํ ์๋ ์์๊ธฐ ๋๋ฌธ์ ์ค๋๋ ํจ์๋ช
์ด๋ ๋ณ์ ํ๋๊ฐ ์ฌํ๋ฉด ํ์ค์ฉ ์ฐจ์งํ๋ ์ธ์ด๋ค์ ๋นํ๋ฉด ํ์๋ฅผ ์ค์ด๊ธฐ ์ํ์ฌ strxfrm(string transformation)์ด๋ fma(fused multiply-add) ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ช
์ฒ๋ผ ์ถ์ฝํ์ ์ ์ฉํ๋ ์ ํต์ ๋ฐ๋ฅด๋ ํธ์ด๋ค.
[12] ์ฌ์ง์ด ์ง๊ธ์ ์์ฒญ์ด ์์ง๋ง ๋ฐฐ์ก ์ค์ 200๋ฒ๋ ์ง์์๋ ๋ฐฐ์ก ์์ฒญ์ด ๋ค์ด์ค๊ณค ํ๋ค๋ ๊ฒ๊น์ง ์์๋ด์ ์ด๋ฅผ ์์ธกํด ๋ฏธ๋ฆฌ 200๋ฒ๋ ํธ์์ ๋ฐฐ์กํ ์๊น์ง ์ค์ด๋๊ณ ๋๋ค๋ฅผ ๋๋ ๋ฐฐ์ก ๊ณํ๋ ์งค ์ค ์๋ค! ์ ๋ฌธ ์ฉ์ด๋ก๋ ๋ถ๊ธฐ ์์ธก, ์ํผ์ค์นผ๋ผ ์์ธก ๋ฑ์ผ๋ก ๋ถ๋ฆฐ๋ค. ์ ํํ๋ CPU๊ฐ ํ๋ ์ผ์ด์ง๋ง ์ปดํ์ผ๋ฌ๊ฐ ๋ณด์กฐํด ์ฃผ์ง ์์ผ๋ฉด ์๋ํ์ง ์๋ ๊ธฐ๋ฅ์ด๋ค.
[13] ์ด๋ ์ ๋๋ก ๋ฐ์ ํ์๋๋ฉด, while(1){ ... } ์ด for(;;){ ... } ๋ณด๋ค ๋๋ฆฐ ์ปดํ์ผ๋ฌ๊ฐ ๋ง์๋ค. ์ค๋๋ ์ปดํ์ผ๋ฌ๋ ๋๋ค ๋ฌดํ๋ฃจํ์ธ ๊ฑธ ์๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๊ฐ์ง๋ง, ๊ณผ๊ฑฐ ์ปดํ์ผ๋ฌ์ ๊ฒฝ์ฐ์๋ while ๋ฌธ์ ๊ฒฝ์ฐ ๋ฃจํ๋ฅผ ๋ ๋๋ง๋ค ํญ์ ์ 1 ์ ํ
์คํธํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋จ์ด์ก๋ค. ๋๋ฌธ์, ์ฐ์์ด ์ข ๋ ํ๋ก๊ทธ๋๋จธ๋ค์ ๊ฒฝ์ฐ ์ง๊ธ๋ ์ต๊ด์ ์ผ๋ก while(1) ๋ณด๋ค for(;;) ๋ฅผ ์ ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์ข
์ข
๋ณผ ์ ์๋ค.
[14] ์ด์
๋ธ๋ฆฌ์ด๊ฐ ์๋ ๋ค๋ฅธ ์ธ์ด๋ ๋ช
๋ น์ด ํ๋๊ฐ ๊ธฐ๊ณ์ด ๋ช
๋ น ๋ช ๊ฐ๋ก ๋ฐ๋์ง ์์ธกํ๊ธฐ๋ ์ด๋ ต๊ณ , ์ํ๋ ๊ฐฏ์๋ก ๋ง๋ค๊ธฐ๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
[15] ๊ฐ์ ๋งฅ๋ฝ์ผ๋ก C, C++ ์ฝ๋ ์ต์ ํ์ ์ํฌ๋ฅธ ์ฌ๋์ด ์ง ์คํ๊ฒํฐ ์ฝ๋๋ Go, Java, JavaScript ๋ฑ ์ถ์ํ๊ฐ ๋์ฑ ์ ๋์ด์๋ ์ธ์ด์์์ ์ต์ ํ๊ฐ ์ ๋ ์ฑ๋ก ์ง์ธ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋์ ๋นํด์ ๋ ๋๋ฆด ์๋ ์๋ค.
[16] C์ธ์ด, C++๊ณผ ๊ฐ์ ๊ณ ๊ธ์ธ์ด๋ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋๊ธฐ ๋๋ฌธ์ ์ ์ฐจ๊ฐ ๋ณต์กํ๋ค.
[18] ๊ณ ๊ธ์ธ์ด๋ก ์ง ๊ฒ์ ์ค ์ ๋ช
ํ ๊ฒ์ ์ธํฐ๋ง I๊ฐ์ RPG. ํนํ 8๋นํธ ์ ํ์ฉ ํ๋ฉด์ ๋ณด์๊ฒ์์๊ธฐ ๋๋ฌธ์ ๋ฒ ์ด์ง์ผ๋ก ์ง ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฟ ๋์๋ค. MSX์ฉ ์์
์ฉ ํ๋ก๊ทธ๋จ์ ์ด์
๋ธ๋ฆฌ์ด.
[19] ์ด์
๋ธ๋ฆฌ์ด๋ ๊ธฐ๊ณ์ด์ 1:1 ๋์์ด ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ด๋๋ฆฌ โ ์ด์
๋ธ๋ฆฌ์ด ์๋ฐฉํฅ ์ ํ์ด ์์ ๋ก์ด ํธ์ด๋ค.
[20] ๋ฌผ๋ก , C์ ํธํ์ฑ๋ ๋ฐ์ง๊ณ ๋ณด๋ฉด ๋ฏธ์ ์ด๋ผ๊ณ ๋ฐ๋ฐํ๋ ๊ฒฝ์ฐ๋ ์๋๋ฐ ๊ทธ๋๋ ๊ฑฐ์ ์์ ํ ๊ฐ์์์ด์ผ ํ๋ ๊ฒ๊ณผ ๋ถ๋ถ๋ถ๋ถ ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ ๊ฒ์ ์ฐจ์ด๋ ํฌ๋ค.
[21] 1989๋
ํฐ๋ณดC 2.01์ด ์ธ๋ผ์ธ ์ด์
๋ธ๋ฆฌ๋ฅผ ์ง์ํ๋ ๋ฑ ๋ณผ๋๋์ฌ์ ํฐ๋ณดC, ํฐ๋ณดํ์ค์นผ ์ปดํ์ผ๋ฌ๊ฐ ์ธ๋ผ์ธ ์ด์
๋ธ๋ฆฌ๋ฅผ ์ธ ์ ์๊ฒ ๋ ๋ค์์ ์ข์ํ ๊ฐ๋ฐ์๊ฐ ๋ง์๋ค.
[22] ์ปดํ์ผ๋ฌ๋ ๋ง ๊ทธ๋๋ก ํธ์ง, ๋๋ ์์ง์ ํ๋ค๋ ์๋ฆฌ์ด๋ค. ์๋ฅผ ๋ค์ด, C์ธ์ด์ ์ปดํ์ผ๋ฌ๋ ์์ค ์ฝ๋๋ฅผ ๋ชฉ์ ์ฝ๋๋ก ๋ฐ๊พผ ๋ค, ์ฌ๋ฌ ์ปดํ์ผ์ ํ์ํ ํ์ผ์ ๋ชจ์ ํ์ ๋ฐ์ด๋๋ฆฌ(์คํ ํ์ผ)๋ก ๋ง๋ค์ด ์ถ๋ ฅ์ ํ๋ค. ์ด์
๋ธ๋ฆฌ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์๋ ๊ทธ๋ฐ ๊ฑฐ ์๋ค. ๊ทธ๋ฌ๊ธฐ์ ์ด์
๋ธ๋ฌ์ ์ปดํ์ผ๋ฌ๋ก ๋๋๋ ๊ฒ์ด๋ค.
[23] ๊ทธ ๋น์๊ฐ๊ฒฉ์ผ๋ก 50๋ง๋ฌ๋ฌ์ธ๋ฐ ์ง๊ธ ๊ฐ์น๋ก๋ 6๋ฐฑ๋ง๋ฌ๋ฌ. 72์ต์์ ๋์ด๋ค. ์ ๋์
ํ๋๊ฐ ๊ทธ ๊ฐ๊ฒฉ.
[24] ๋ฌผ๋ก ์๋ฌด๋ฆฌ ์ด์
๋ธ๋ฆฌ์ด๋ก ์ง๋ ๋ชป์ง๋ ์ฌ๋์ ๋๋ฝ๊ฒ ๋ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋งํผ ํฌ๋ฆฌ์ค ์์ด์ด์ ์ค๋ ฅ์ด ๋๋จํ๋ค๋๊ฑธ ์ ์ ์๋ค.
[25] ํธ๋์คํฌํธ ํ์ด์ฟค์ 386DX์์๋ ๋์๊ฐ๋ค!
[26] ์ํ๋ฆฌ ์ผํฌ๋ ์ด๋ฐ ๊ฒ์๊ฐ๋ฐ์๊ฐ๊ณผ ๊ด๋ จ์๊ฒ ๋ฐ์ํ๋ค. ์ํ๋ฆฌ๋ ๊ทธ๋น์ ๊ต์ฅํ ์๋๊ฐ๋ ๊ฒ์ํ์ฌ์๊ณ , ๋ค์ ๊ฒ์์ ์ค๋นํ๋๋ฐ ๊ทธ ๋ค์์ํ์ด E.T.๊ฒ์์ด์๋ค. E.T.๋ ๊ทธ ๋น์ ์ธ๊ธฐ์ํ์๊ธฐ์, ์ํ๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ํ ๊ฒ์์ด ์ ๋๊ฐ ๊ฒ์ด๋ผ ์๊ฐํ ๊ฒ. ๊ทธ๋์ ์ํ๋ฆฌ๋ E.T.์ ํ๊ถ์ ๊ตฌ์
ํ๊ณ , ํฌ๋ฆฌ์ค๋ง์ค ์์ฆ์ ๋ง์ถฐ ๊ฒ์์ ๊ฐ๋ฐํ๋ ค๋๋ฐ ๋ง๋ค ์๊ฐ์ด ๋ถ์กฑํ ๊ฒ์ด์๋ค. ์์ฆ์ ๋ง์ถฐ ๊ฒ์์ ๋ง๋ค๋ค๋ณด๋, ๊ฒ์์ ์๋ฌ๊ฐ ๋ง์๊ณ ๋ณ ๋ค๋ฅธ ๊ธฐ๋ฅ์ด ๋ง์ง ์์๋๊ฒ. ๋๋ฌธ์ ๋๋ ๋ฆฌ์ฝ์ฌํ๊ฐ ๋ฐ์ํ๊ณ , ์ด๊ฒ์ด ์ํ๋ฆฌ ์ผํฌ์ด๋ค.(๊ทธ๋ฌ๋ ๊ฒ์๊ฐ๋ฐ์ ์ฐ์ด๋ ์ฝ๋๋ฅผ ์ํ๋ฆฌ๊ฐ ์ด์
๋ธ๋ฆฌ์ด๋ก ํ๋์ง๋ ๋ชจ๋ฅด์ง๋ง ๊ทธ๋ ๊ฒ ์์ฐ์ฑ์ด ์ข์ง๋ชปํ ์ธ์ด๋ก ์ ์ํจ์ผ๋ก์จ ์ ์๊ธฐ๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋๊ฒ์ด ๋ฌธ์ ์๋ค.ํ๋์๋ ๋ง์ธํฌ๋ํํธ๋ฅผ ์ผ์ฃผ์ผ๋ง์ ๋ง๋ค์ด ๋ฒ๋ฆฌ๊ณ ์ํ๋ฆฌ ๊ฒ์์ ์ ์ผ๋ฉด 2์๊ฐ ๋ง์ผ๋ฉด 3์ผ์์ ๋ง๋ค ์ ์๋ค.
[27] MS์ ๋งคํฌ๋ก ์ด์
๋ธ๋ฌ์ ๋ฒ ์ด์ง ์ธํฐํ๋ฆฌํฐ๋ IBM PC์ ํจ๊ป, ๊ทธ๋ฆฌ๊ณ ๋ณผ๋๋์ ํฐ๋ณด ์๋ฆฌ์ฆ ์ปดํ์ผ๋ฌ๊ฐ 8๋นํธ ์ปดํจํฐ์ฉ์ผ๋ก ์ถ์๋์ง๋ง, ๋น์ ์ปดํจํฐ์ฑ
๊ณผ ์ก์ง์์๋ C์ธ์ด๋ฅผ ์ ๊ธ์ธ์ด๋ผ ๋ถ๋ฅด๋ฉด์๋ ์ด์
๋ธ๋ฆฌ์ด ๊ฐ์ข๋ฅผ ์ฐ์ฌํ๊ณ , ๊ฐ์ธํ๋ก๊ทธ๋๋จธ๋ ๋ณํํ
์ด๋ธ์ ๋ณด๊ณ ํธ๋์ด์
๋ธํ ๊ฑธ ๊ธฐ๊ณ์ด ๋ชจ๋ํฐ ํ๋ก๊ทธ๋จ์ผ๋ก ์ง์ ์
๋ ฅํ๊ธฐ๋ ํ๋ค. ๋๋ฒ๊ทธ๋ ํธ๋ ์ด์ค(TRON, TROFF)๋ฅผ ์ด์ฉํด ๋ ์ง์คํฐ์ ํฌ์ธํฐ, ํ๋๊ทธ๋ฅผ ์ง์ ๋ณด๋ฉฐ ๊ทผ์ฑ์ผ๋ก!
[28] ๊ธฐ๋ณธ์ ์ผ๋ก ์นด์ธํธ ํ
์ดํ๋ CD๋ณด๋ค ์ ์ ๋จ๊ฐ๊ฐ ๋๋ค. 90๋
๋ ์ด๋ฐ๊น์ง๋ง ํด๋ ์กฐ๊ธ์ด๋ผ๋ ๋์ ๋ ์๋ผ๋ ค๊ณ ์ค๋๋ ์ดํ ํ
์ดํ ๋ฑ์ ์ง์ฐ๊ณ ์์
์ ๋
น์ํด์ ๋ด๊ณ ๋ค๋๋ ์์ ์ด ์์๋ค.
[29] http://xcoolcat7.tistory.com/292์์ ๋ฐ์ท
[30] ๋ค๋ง ์ด์ง ํ์ผ ์์์ ๋ฐ์ด๋ฌ์ค๋ฅผ ์ฐพ๋๋ค๋๊ฒ ๋ฑํ ๊ธฐ๊ณ์ด๋ ์ด์
๋ธ๋ฆฌ์ด์ ์๊ด์ด ์๋ ๊ฑด ์๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ๋ ๋ฐ์ด๋ฌ์ค๊ฐ ํ์ผ ๋ด๋ถ๋ฅผ ๊ฑด๋๋ฆฌ๋ ๋ถ๋ถ๋ง ์ก์์ ๊ฒ์ถ๋ง ํ ์ ์์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํ์ผ ์์ฒด์ ๊ตฌ์กฐ ๋ถ์์ด ๋ ์์ฃผ ์ฐ์ธ๋ค. ๊ทธ ์๋ ํ๋ก๊ทธ๋จ๋ค์ด ๋ค ๊ทธ๋ฌ๋ฏ์ด V1๋ ๊ทธ ํ๋ฆ์ ๋ฐ๋ผ์ ์ด์
๋ธ๋ฆฌ์ด๋ก ๊ฐ๋ฐ๋์์ ๋ฟ์ด๋ค.