๋๋ย ์ ๊ณต์์ ์ ์ฝ์๋ ๊ฒฐ๊ตญ ์ด ์ฑ ์ด ๋งํ๊ณ ์ ํ๋๊ฒ์ด ๋ฌด์์ธ๊ฐ? ๋ฅผ ํ์ ํ๋๊ฒ์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ค.ย
๊ทธ๋์ SICP์ ์ ์ฒด ํ๋ฆ์ ๋ค์ํ๋ฒ ๋์ง์ด ๋ณด๊ธฐ๋ก ํ๋ค.ย
SICP๋ 5๊ฐ์ ์ฑํฐ๋ก ๋์ด์๊ณ ๊ฐ๊ฐ์ ์ฑํฐ์ ์ฃผ์ ๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.ย
์ฑํฐ1. Building Abstractions with Procedures (ํ๋ก์์ ๋ก ์ถ์ํ๋ฅผ ๋น๋ฉํ๋ ๋ฐฉ๋ฒ)
-> ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ฐ์ดํฐ์ ํ๋ฆฌ๋ฏธํฐ๋ธ ํ๋ก์์ ๋ฅผ ์ด๋ป๊ฒ ์กฐํฉํ๊ณ ์ถ์ํํด์, ๋์ฑ ๋ณต์กํ ํ๋ก์์ ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ํ๋ด๋๊ฐ๋ฅผ ์ค๋ช ํจ.ย
-> ํ๋ก์์ ์ ์ถ์ํ, ์ฌ๋ฌ ํ๋ก์์ ์ ๊ฐ๋ ๋ฑ์ ์ค๋ช ํ๊ณ ์์.ย
์ฑํฐ2. Building Abstractions with Data (๋ฐ์ดํฐ๋ก ์ถ์ํ๋ฅผ ๋น๋ฉ ํ๋ ๋ฒ)
-> ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ถ์ํํด์ ๊ฐ๋จํ ํ๋๊ฐ, ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ.๋ฑ์ ์ค๋ช
์ฑํฐ3. Modularity, Objects, and State (๋ชจ๋ํ, ์ค๋ธ์ ํธ, ์คํ ์ดํธ)
->ย ํ๋ก๊ทธ๋จ์ด ๋ฉ์น๊ฐ ์ปค์ง์๋ก organizational principle (์กฐ์ง ์์น?)์ด ๋งค์ฐ ์ค์ํด์ง๋ค.ย ย
-> ์ฑํฐ 1, 2์์ ๋ฐฐ์ด ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌ์ฑ์์๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์กฐ๋ฅผ ์ง๊ณ ์กฐ์งํ ๊ฒ์ธ๊ฐ (organize). ์ด๋ป๊ฒ ํ๋ก๊ทธ๋จ์ ๋์์ธํ ๊ฒ์ธ๊ฐ.ย
-> ํ๋ก๊ทธ๋จ์ ๋์์ธ ์์น์ ๋ํด ๋ฐฐ์.ย
์ฑํฐ4. Metalinguistic Abstraction (??? ๋ฉํ๋ง๊ท...๋ญ์๊ธฐ)
-> ์ฑํฐ 1,2,3์์๋ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌ์ฑ์์๋ฅผ ์ด๋ป๊ฒ ์กฐ์งํด์ ํ๋ก๊ทธ๋จ์ ์ง๋์ง ๊ณต๋ถํ๋ค. ํ์ง๋ง Lisp์ ์ค์ ๋ก ์จ๋จน๊ธฐ์๋ ์ธ์ด์ ์ผ๋ก ์ข ๊ทธ๋.ย
-> ๊ทธ๋์ ์ง์ ์ธ์ด๋ฅผ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ๋ค (???) ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๋๊ฑด ๋๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ์ผ ๋ฟ์ด๋๊น
์ฑํฐ5. Computing with ๋ ์ง์คํฐ Machines (๋ ์ง์คํฐ ๋จธ์ ์ผ๋ก ๊ณ์ฐํ๊ธฐ)
-> ์ฌํ๊น์ง๋ Lisp์ธ์ด๋ฅผ ํตํด์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํตํด ๊ณต๋ถํ๋ค. ๊ทผ๋ฐ Lisp ๊ทธ ์์ฒด๊ฐ ์ด๋ป๊ฒ ๋์๊ฐ๋์ง๋ ์์ง ๋ชจ๋ฅด์ง?ย
-> ๋ ๋ก์ฐ๋ ๋ฒจ๋ก ๋ค์ด๊ฐ์ ๋ ์ง์คํฐ๋จธ์ ย ๋ณด๋ฉด ์ดํด๊ฐ ๊ฐ๊ฑฐ์ผ.ย ์ผ๋จ ๋ ์ง์คํฐ ๋จธ์ ์ง์ ๋ง๋ค์ด๋ณด์ ใ ใ ย
์... ๋์ถฉ ์ด๋ฐ๋ด์ฉ์ธ๊ฑฐ ๊ฐ๋ค.ย
๊ทธ๋ฌ๋๊น ์ฒ์์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ตฌ์ฑ์์๋ฅผ ํ์ ํ๊ณ ,ย
๋ค์์ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ์กฐ์งํ ๊ฒ์ธ๊ฐ ์ด๋ป๊ฒ ํ๋ก๊ทธ๋จ์ ๋์์ธํ ๊ฒ์ธ๊ฐ๋ฅผ ๋ฐฐ์.ย
๊ทธ ๋ค์์๋ ์๋ก์ด ์ธ์ด๋ฅผ ํ๋ฒ ๋ง๋ค์ด๋ณด๊ณ ,ย
๋ค์์ ๊ทธ๊ฒ๋ณด๋ค ๋ ๋ก์ฐ๋ ๋ฒจ๋ก ์ปดํ์ผ๋ฌ ์ชฝ์ผ๋ก ๋ด๋ ค๊ฐ๋๋ฏ?ย
๋ชฉ์ฐจ๋ฅผ ์ฝ๋๊ฒ ๋ง์ผ๋ก๋ ๊ฐ์ด์ด ์ ์ฅํด์ง๋คย
์ฌํผ SICP์ ์ ์ฒด ํ๋ฆ์ ์ดํดํ์ผ๋, ์ฌ๊ธฐ๋ถํฐ๋ ์ค๋์ ๊ณต๋ถ
----------------------------------------------
์ ๋ฒํธ์์๋ ํ๋ก๊ทธ๋๋ฐ์ ์ถ์ํ ๊ฐ๋ ์ค ํ๋์ธ Compound procedure๋ย
ํจ์๋ฅผ ์ ์ํ๋ procedure definition ์ ๋ํด ๊ณต๋ถํ๋ค.ย
์ค๋์ ๊ทธ ๋ณต์กํ Compound procedure ๋ฅผ ์ดํดํ ์ ์๋ Substitution model ์ ๋ํด ๊ณต๋ถํ๋ค.ย
Substitution model ์ด๋ผ๋๊ฑฐ ๋ณ๊ฑฐ ์์.ย
๋ช๋ฒ์ด๊ณ ์ถ์ํ ๋ ๋ณต์กํ ๊ฐ๋ ์ ์ดํดํ๊ธฐ ์ํด์, ์ฌ๊ท์ ์ผ๋ก ๊ทธ ์ถ์ํ๋ฅผ ์ญ์ผ๋ก ์ฌ๋ผ๊ฐ๋ค๋๊ฑฐ.ย
์ค์ ์์๋ ๊ท์ฐฎ์์ ์๋ต. SICP 19 ํ์ด์ง์ ๋์ด.ย
๊ทผ๋ฐ ์ด Substitution model์ ๋จ์ํ ํ๋ก์์ ๊ฐ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ์ดํดํ๊ธฐ ์ํ ์๋จ์ด๋ผ๋๊ฑฐ.ย
์ค์ ๋ก๋ ์ด๋ฐ์์ผ๋ก interpreter๋ ์์ง์ด์ง ์๋๋ค๋๊ฑฐ. ์์ผ๋ก ์ด ์ฑ ์์ ๋ ๋ณต์กํ ๋ชจ๋ธ์ด ๋์ฌ๊ฑฐ๋ผ๋๊ฑฐ.ย
์ค๋์ ์ฌ๊ธฐ๊น์งย
์ฝ๋๋ชฝํค๊ฐ ๋ญ์ฃ ?
์์ญ์ด ์ข ๋ฅ์ค ํ๋์ ๋๋ค - dc App
๋์ถฉ ๋จ์ด ์ด ์ฝ๋ ์ง๊น๊ธฐํด์ ์์ฑํ๋ ๊ทธ๋ฐ ๋ถ๋ฅ๋ฅผ ์ฝ๋๋ชฝํค๋ผ ํ์ง ์๋ ์ง๋ ์ง์ํ๊ณ ์์๋๋ฐ ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ์๋ฉ