์์์ค์์ ํ์ด๋ ๋ค์ํ ์ฃผ์ฅ๋ค์ ๋ํด ์์๋ณด์. ADT์ PDA, Alan Kay์ ๋ํด ์์๋ณด์.
์ง๊ธ๊น์ง..
- ์ฃผ๋ฅ OO์ ๋ํด ๋ฐฐ์ ๋ค.
- ์ด์ ๋ ์์์ค๋ค์ด ์ด๋ค ๊ฒ๋ค์ด ์์๋์ง ์์๋ณด์.
- ์ทจํ ๊ฒ์ ์ทจํ๊ณ , ์๋ ๊ฒ์ ์๋ ๊ฒ์์ ์๊ธฐ ์ํด ๋ฐฐ์ด๋ค.
- ๋ง๋ ์๋๋ ์ฃผ์ฅ์ ํ๋ ์ฌ๋์ ๋ํด ๋ฏธ๋ฆฌ ๋์ฒํ ์ ์๋๋ก ๋ฐฐ์๋์.
- ์ด๋ด ๋๋ ์ด๋ฐ๊ฑธ ์จ์ผํด์! - (์๋ชจ๋ฅด๋) ์ ๋ง์?
- ์ด๋ฐ ์ํฉ์ ๋ง์์ผ ํ๋ค.
OOP ํ ๋ก ์ ํผํด์ผ ํ ์ฌ๋
- ์ฒ์ ๋ฃ๋ ์ฃผ์ฅ์ ํ๋ฉฐ โ๊ทธ๊ฑด ์ฌ๋ฐ๋ฅธ OOP๊ฐ ์๋์ผโ ํ๋ ์ฌ๋
- ์ด๊ฑด โ์์ OOP ์ธ์ด๊ฐ ์๋์ผโ ํ๋ ์ฌ๋
- โ๋ชจ๋ ํ๋ก๊ทธ๋จ์ OOP๋ก ๋ง๋ค์ด์ผ ํดโ ํ๋ ์ฌ๋
- โ<์ด์ฉ๊ณ >ํ <๋๊ตฌ>๊ฐ ์ด๋ฆฌ ๋งํ์ผ๋ ๋๋ ํ๋ คโ ํ๋ ์ฌ๋ : ๊ถ์์ ํธ์ํ๋ ๊ฒ์ ๋ณธ์ง์ ํผ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋์
- โ์ด ๋ฐฉ๋ฒ๋ง ๋ฐ๋ฅด๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ผโ ํ๋ ์ฌ๋
ADT์ PDA
Object-Oriented Programming Versus Abstract Data Types: William R.Cook
- ์ด์ฐฝ๊ธฐ์ OOP๋ฅผ ๋ฐ๋ผ๋ณด๋ ๋๊ฐ์ง ๊ด์
- ํ์ฌ๋ ๋๋ค ์์ฌ์์
- Abstract Data Types: ์ถ์์ ๋ฐ์ดํฐ ํ์
- Procedural Data Abstraction: ์ ์ฐจ์ ๋ฐ์ดํฐ ์ถ์ํ - ํจ์์ ๊ฐ๊น์
- ๋๋ค์๋ ADT๋ก ๋ณด๊ณ ์์
- PDA๋ ์ฒ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ๋๋๋๋ฉฐ ์ฌ์ฉํ๋ ๋จ์ด๋๋ฌธ์ ์ ํต์ด๋ผ ์ฐ๊ธฐ๋ ์ค
Alan Kay๊ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๋ ์ ์ฅ
- ์์์ค ์ฃผ์ฐฝ์ ์ค ๊ฐ์ฅ ์ํฅ๋ ฅ ์๋ ์ฌ๋: Alan Kay
- OOP๋ผ๋ ์ฉ์ด๋ฅผ ์ฒ์ ๋ง๋ ์ฌ๋
- Alan Kay์ OOP ์ ์: โOO์ ํต์ฌ์ ๋ฉ์์งโ
- ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ ๋ ๊ฒ์ ์บก์ํ, ๋ฐ์ดํฐ, ๊ฐ์ฒด์ฒ๋ผ ์ธ๊ณ๋ฅผ ๋ณธ๋ค ์ด๋ฐ ๊ฒ์ด์์
- ๊ทผ๋ฐ ์ด์ฌ๋์ โ์ด๊ฑฐํดโ ๊ฐ ์ค์ฌ์ด๋ผ๊ณ ๋ด
- ๋ณธ์ธ์ ์ฃผ์ฅ์ Smalltalk ์ด๋ผ๋ ์ธ์ด๋ก๊น์ง ๋ง๋ ๋๋จํ ์ฌ๋
- ์๋ฌผํ, ์ํ ์ ๊ณต (?)
๋ถ์ํ Alan Kay..
- ๊ทน๋จ์ ์ฃผ์ฅ์ ํ๋ ์ฌ๋๋ค: PDA์ ๊ธฐ๋ฐ
- ์๊ธฐ๋ค์ ์ฃผ์ฅ์ ๋ํ ๊ทผ๊ฑฐ๋ฅผ Alan Kay๋ ๊ทธ๋ฌ๋ค๋ก ๋๊ณค ํจ
- ํ์ง๋ง ํ์ธํด๋ณด๋ฉด Alan Kay๋ ๋ณดํต ๊ทธ๋ฐ์ ์ด ์์ ใ ใ
- ๊ทผ๊ฑฐ๊ฐ ๋น์ฝํ ์ฌ๋๋ค์ด ๊ถ์์ ํธ์ํ๋ ค๊ณ ์ด์ฉํ๋ ๊ฒ.
- ๋ช
์ ํ๋ณต ์ธํฐ๋ทฐ
- ์ด๋ฉ์ผ ๋ต๋ณ์
Alan Kay์ ์ ์ฅ์ ๋ํ ์ด์
- ๊ทธ์๊ฒ ๊ฐ์ฒด๋ ์๋ฌผํ์์ ์ธํฌ๊ฐ์ ์กด์ฌ
- ์๊ธฐ ๊ฒฐ์ ๊ถ์ ๊ฐ์ง ์๋ช ์ฒด
- ์๋ฌผํ ์ ๊ณต์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ๋ณธ๋ค๊ณ ๋งํจ
- ๊ตณ์ด ์ปดํจํฐ ํ๊ฒฝ์์ ๋น์ทํ ๊ฒ์ ์ฐพ์ผ๋ฉด, ๋คํธ์ํฌ์ ์กด์ฌํ๋ ์ปดํจํฐ
- ์ฆ, ๋จ์ํ ๊ฐ์ฒด๋ณด๋ค๋ ์๊ธฐ ๊ฒฐ์ ๊ถ์ ๊ฐ์ง ์กด์ฌ๋ผ ์๊ฐํจ
- ๊ฐ์ฒด๋ก๋ถํฐ ๋ฐ์ดํฐ๋ผ๋ ์กด์ฌ๋ฅผ ์ง์๋ฒ๋ฆฌ๊ณ ์ถ์๋ค.
- ๋ฉ์์ง๋ก ์๋ก๊ฐ์ ์ํธ์์ฉ, ์ฆ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ํ๊ณ ์ถ์๋ค.
- ํ์คํ PDA ์ง์
- Smalltalk์๋ ๊ฐ์ฒด๋ค๋ก ๊ตฌ์ฑ๋ ์ด์ ์จ์ฌ๋ ํ๊ฒฝ์
- ์๋ฎฌ๋ ์ด์ ๋๋ ๋๋
Alan Kay๊ฐ ์ด์ฉ๋นํ๋ ์๊ฐ๋ค
- ๋ด ์ฃผ์ฅ์ Alan Kay์ ์ฃผ์ฅ์ ๊ธฐ์ดํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ณ๋ค.
Alan Kay๊ฐ ์ฒ์ OO๋ฅผ ์ฐฝ์ํ ์ฌ๋์ด๋ค? (X)
- ์๊ธฐ๋ ์๋๋ผ๊ณ ํจ
- ์ด๋ฏธ ADT๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด์งํฅ ๋น์ทํ ์์ง์์ ์งํ๋๊ณ ์์๋ค๊ณ ํจ
- ๊ฑฐ๊ธฐ์ ์์ ์ ์ฃผ์ฅ์ ํ ๊ฒ์ผ ๋ฟ
- ๋น์ ์ํํธ์จ์ด ๊ณตํ์๋ค์ ์ด ์ฃผ์ฅ์ ๋ฐ์๋ค์ด์ง ์์๊ณ ,
- ADT๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋๋ ์ ๊ฐ์ฒด์งํฅ์ด ์์ฑ๋จ
- ์์ง๋ ์๊ธฐ ์ฃผ์ฅ์ ๊ธฐ๋ฐ์ ๋ ์์์ค์ด ์๋ค๋ ๊ฒ์ ์ ๊ธฐํ๋ค๊ณ ์๊ฐ
- ๊ทธ๋ฐ๋ฐ โ์ง๊ธ ํ๋๊ฒ ๋ญ๋โ๋ผ๊ณ ๋ฌผ์ด๋ด์ OO๋ผ๋ ๋ต์ ํ๊ธด ํ๋ค๊ณ ํจ
- ์๊ธฐ ์ฃผ์ฅ์ ๋ง์ง ์๋ ์ฉ์ด์๊ณ , ์คํ๋ ค ๋ฉ์์ง ์งํฅ โMessage-Orientedโ๋ผ ํ์ด์ผ ํ๋ค๊ณ ํจ
- ๋ฐ์ดํฐ๋ ์ค์ํ์ง ์๊ณ ๋ฉ์์ง ์ ๋ฌ๋ง ์ค์ํ๊ธฐ ๋๋ฌธ
- ์ค์ ๋ก ํจ์ ์๊ทธ๋ด์ฒ๋ ์ข ๋ค๋ฆ
Smalltalk์ ๋ฉ์๋ ํธ์ถ
- ์ค์๋ก ๋ฉ์๋ ์ด๋ฆ ์๋ชป์ ์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋จ
- smalltalk์์๋ ๊ทธ๋ ์ง ์์
- ์ด๋ฏธ ์กด์ฌํ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค๋ ๊ฐ๋ ์ด ์๋ค.
- ์ปดํ์ผ ์ค์ ์ฌ๋ฐ๋ฅธ ๋ฉ์๋ ์๊ทธ๋ด์ฒ๋ฅผ ํธ์ถํ๋์ง ๊ฒ์ฌ๋ ๋ถ๊ฐ
- ๊ทธ๋ณด๋ค๋ ๋ค๋ฅธ ๊ฐ์ฒด์ โ์ด๊ฑฐ ํด์คโ๋ผ๊ณ ๋ฉ์์ง๋ง ๋ณด๋ด๋ ์์คํ
- ์์ฒญ์ ๋ฐ์ ๊ฐ์ฒด๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์ ์๋, ์๋ ์๋ ์์
- ๊ทธ๋ผ์๋ ์์ฒญ์ ๋ณด๋ผ ์ ์์
- ๊ตณ์ด ํํํด๋ณด๋ฉด ์์ ๋น์ทํ๋ค.
- ๋ฉ์๋ ์ด๋ฆ๋ง ๋ฐ๊ณ , ๊ทธ๊ฑธ ๊ฒ์ฌํด์ ํจ์ ์คํ
- ๋ง์ฝ ์ด์ํฉ์์ โaddโ ๋ฉ์๋ ํธ์ถ์ฉ์ผ๋ก ์ธ์๊ฐ ๋ค์ด์๋๋ฐ, ๋ด๊ฐ ์ํ๊ฑฐ๋ ๋ค๋ฅด๋ค๋ฉด?
- ์์ธ..
- ์ํ์ง ์๋ ๋ฉ์๋ ์ด๋ฆ์ด ๋ค์ด์จ๋ค๋ฉด?
- ์์ธ..
- ๊ทธ๋ ๋ค๋ฉด smalltalk์ ๋คํ์ฑ์ด๋?
- ์ด๋ค ๋ฉ์๋ ์๊ทธ๋ด์ฒ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํ๊ณ ๋ฐ๋ฅด๋ ๊ฐ๋ ์ด ์๋
- ๋คํ์ฑ์ด ๋ถ๋ชจ ํด๋์ค ๊ณตํต ์๊ทธ๋ด์ฒ์ ์์กดํ์ง ์์
- methodname์ ๋ฌธ์์ด๋ง ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด ๋คํ์ฑ
- ์ผ๋ฐ์ ์ธ ๋คํ์ฑ์ด ์๋
- smalltalk๋ ์์ธ๋ฅผ ๋ง์ด ์ฌ์ฉํ ์ ๋ฐ์ ์๋ค.
- ๋์ ํ์ ์ ์ ํธํ ์๋ก ์์ธ๋ก๋ถํฐ ์์ ํ ํ๋ก๊ทธ๋๋ฐ์ ์ค์
Alan Kay๋ ์ ์ ํ์ ์ธ์ด์ ๋ฐ๋ํ๋ค, ์ด๋ฅธ ๋ฐ์ธ๋ฉ์ ๋ฐ๋ํ๋ค.
- smalltalk์ ๋ชจ๋ ๊ฒ์ ๋ฆ์ ๋ฐ์ธ๋ฉ
- ๋ชจ๋ ๊ฒ์ด ๋์ ์ด๊ธฐ ๋๋ฌธ
- ํนํ alan kay๋ ๋ชจ๋ ๊ฒ์ ๊ทน๋๋ก ๋ฆ์ ๋ฐ์ธ๋ฉ์ ์ํ์
- ์ธํฐ๋ทฐ๋ฅผ ๊ทผ๊ฑฐ๋ก๋ณด๋ฉด alan kay๊ฐ ์ ์ ํ์ ์ ๋ฐ๋ํ ๊ฒ์ด ์๋
- ๋ค๋ง ์ ์ ํ์ ์ธ์ด๋ฅผ ์ฌ์ฉํ ๋ ํ๋ค์๋ค๊ณ ํจ, ๋๋ ์ซ์๋ค๊ฐ ์ ๋ถ
๋์ ํ์ ์ ๋ฌธ์
- ์ค์๋ฅผ ์ ๋ฐํ๋ค.
- ์ปดํ์ผ๋ฌ๊ฐ ์ค์๋ฅผ ์ก์์ค ์ ์๋ค.