์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Java
- ๋ ์
- Python
- css
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- database
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- ์ํ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๊ฐ๋ฐ
- ๋ฐฐ์์ ๋ฐฐ์
- JavaScript
- ์นดํ๋๊ฐ
- ์ค๋ผํด
- ์ ๋ฆฌํธ๋ฆฌํธ
- ์ฝ๋ฉ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ๋ฐ์ํ
- ๋๊ฐ
- ํ๋ก๊ทธ๋๋ฐ
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๊ฐ์ดํ ์ข ๋ญ๊ฐ๋น
- ํ์ด์ฌ
- ์ํ์ฃผ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์๋ฐ
- html
- ์ค๋ธ์
- ์ฑ
- Today
- Total
JiYoung Dev ๐ฅ
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ(OOP) (2023.04.06~2023.04.10) ๋ณธ๋ฌธ
ํจ๋ฌ๋ค์(Paradigm)
์ฌ๋๋ค์ ๊ฒฌํด๋ ์ฌ๊ณ ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ๊ท์ ํ๋ ํ ๋๋ฆฌ
ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์(Programming Paradigm)
ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๊ฐ์ง๋ ์ฒด๊ณ, ๊ด์ , ํ
๐ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ํธ๋ ๋ ๋ณํ
๐ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ(Procedural Programming)
์ฅ์ : ์ ์ฐจ์ ๋ฐ๋ผ ๊ตฌ์กฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅ, ์คํ์๋๊ฐ ๋น ๋ฅด๋ค
๋จ์ : ๊ฐ๊ฐ์ ์ฝ๋๊ฐ ์์์ ๋ฏผ๊ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ด ์ ์ง๋ณด์ ๋ฐ ์ฝ๋๋ถ์์ด ์ด๋ ค์
ํ๋์ ๊ธฐ๋ฅ์ด ๊ณ ์ฅ๋๋ฉด ํ๋ก๊ทธ๋จ ๋์์ด ์๋จ
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์์ ์ง์ค
- ์คํ ์์๋๋ก ์ฝ๋๋ฅผ ์์ฑ
- ํ๋์ ํด๋์ค์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์์ฑ
- ํ๋ก๊ทธ๋จ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด Data and Logic Mixed(๋ณ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์์) ๋ฌธ์ ๋ฐ์
๐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object Oriented Programming)
์ฅ์ : ์ฝ๋์ ์ฌ์ฌ์ฉ์ด ์ฉ์ดํ๊ณ , ์ฝ๋ ๋ถ์๊ณผ ์ค๊ณ์ ์ ํ์ด ์ฌ์(๋ณํ์ ์ ์ฐํจ)
ํ๋์ ๊ธฐ๋ฅ์ด ๊ณ ์ฅ๋๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋์
๋จ์ : ์ค๊ณ์ ๋ง์ ์๊ฐ์ด ์์๋จ
์ ์ฐจ์ ํ๋ก๊ทธ๋จ๋ฐ๋ณด๋ค ์๋์ ์ผ๋ก ์คํ์๋๊ฐ ๋๋ฆผ
- ์ ์ฐจ์งํฅ์ ๊ฐ๋ ์์ ๊ฐ์ฒด์ ๊ฐ๋ ์ ๋ํ๊ฒ
- ๊ด๋ จ๋ ๋ฐ์ดํฐ์ ๋ก์ง์ ๋ฌถ์ด์ ์ ๋ฆฌ ํ ๋ณ๋๋ก ์ ์ฅ
- ์์ง๋๋ฅผ ๋์ด๊ณ → ๊ด๋ จ๋ ๊ฒ๋ค์ ๋ฌถ๋๋ค.
๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ค → ํ์ผ๋ก ๋ถ๋ฆฌ (์ฝ๋๋ผ๋ฆฌ ์ํฅ์ ์ฃผ๋ ์ ๋๊ฐ ์ ๋ค. ์ ๊ทผ์ด ์ด๋ ต๋ค.)
- ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ค์ด ์๋ก ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ๋ก์จ ์ํธ ์ํต (๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ์๋ก ์ํต)
- Java๋ ๊ฐ์ฒด์งํฅ ์ค์ฌ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ์ธ์ด
python์ ๊ฐ์ฒด์งํฅ๋ ๊ฐ๋ฅํ๊ณ , ๋ค๋ฅธ ๊ฒ๋ ํ ์ ์์(ํจ์๋ ๊ฐ๋ฅ) → ์ ์ฐํ ์ธ์ด
๐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (Object Oriented Programming : OOP)
์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ๋ ๋จ์, ์ฆ, ๊ฐ์ฒด๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ๊ณ ์ ํ๋ ๊ฒ
๊ฐ๊ฐ์ ๊ฐ์ฒด๋ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ : ์ํ์๋งค์์คํ
๊ฐ์ฒด : ๊ณ ๊ฐ / ๊ทน์ฅ / ์ํ / ๊ฒฐ์
๊ณ ๊ฐ ๊ฐ์ฒด → ์ํ ๊ฐ์ฒด : ์ํ ๋ณด์ฌ์ค (getMovieinfo ๋ฉ์๋๋ฅผ ํตํด)
๊ณ ๊ฐ ๊ฐ์ฒด → ๊ทน์ฅ ๊ฐ์ฒด : ๊ทน์ฅ ๋ฆฌ์คํธ ๋ณด์ฌ์ค
๊ณ ๊ฐ ๊ฐ์ฒด → ๊ฒฐ์ ๊ฐ์ฒด : ๊ฒฐ์ ํด์ค
๋ฑ ๊ฐ์ฒด์ ๊ฐ์ฒด๋ค ๊ฐ ์ํธ์์ฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ํ๋ก๊ทธ๋จ
๊ฐ์ฒด๋ผ๋ฆฌ ์๋ก ์ํธ์ํตํ๊ธฐ ์ํด์๋ ๋งค๊ฐ์ฒด๊ฐ ํ์. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์๋ ์ด๋ฌํ ๋งค๊ฐ์ฒด๋ก ๋ฉ์๋๋ฅผ ์ฌ์ฉ
๐ ํด๋์ค(Class)
Blueprint, Definition, Description → ์ค๊ณ๋
๊ฐ์ฒด๋ค์ด ์ด๋ค์์ผ๋ก ๋์ํ ์ง ๋ฏธ๋ฆฌ ์๊ฐํด์ผ ํจ.
ํด๋์ค๋ Field(์์ฑ = ๋ฐ์ดํฐ = ๋ณ์)๊ณผ ํ๋(๋ฉ์๋ → ๊ฐ์ฒด์ ํ์, ๊ธฐ๋ฅ + ์์ฑ์)๋ก ์ด๋ฃจ์ด์ง
ํ๋ : ์ถ์ํ๋ฅผ ํ๋(๊ณตํต์ ์ธ ํน์ง์ ๊ฐ์ ธ์ค๋) ๋๋ฌด ์์ธํ ๋ฐ์ดํฐ๋ ๊ฐ์ ธ์ค๋ ๊ฑธ ์ง์
๐ ๊ฐ์ฒด(Object)
created from the class ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฒ
์ค๊ณ๋๋ฅผ ์ฌ์ฉํด์ ๋ง๋ ๊ฐ์ฒด
๊ฐ์ฒด(object) vs ์ธ์คํด์ค(instance)
ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ํด๋์ค์ ์ธ์คํด์คํ๋ผ๊ณ ํ๋ฉฐ, ์ด๋ค ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ฅผ ๊ทธ ํด๋์ค์ ์ธ์คํด์ค๋ผ๊ณ ํจ
์ฆ, ๊ฐ์ฒด๋ ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ๋ํํ๋ ํฌ๊ด์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ธ์คํด์ค๋ ์ด๋ค ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฒ์ธ์ง๋ฅผ ๊ฐ์กฐํ๋ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์
vendingMachineSimulator๋ก ์ค์ฒดํ์์ผ ๋ง๋ ๊ฒ → vm (object)
๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ
ํด๋์ค๋ช ๋ณ์๋ช = new ํด๋์ค๋ช (); ----> ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑ ํ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ฐธ์กฐ ๋ณ์์ ์ ์ฅ
๊ฐ์ฒด์ ๋ ํผ๋ฐ์ค ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ
TV ํด๋์ค๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ → ์์ฑ๋ ๊ฐ์ฒด๋ heap ์์ญ์ ์ ์ฅ
โป ์ด ๋ ์์ฑ๋ ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ heap ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๊ฐ์ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์์
heap ์์ญ์ TVํด๋์ค๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด ์์๋ ๋ณ์๋ค์ด ์ ์ฅ๋์ด ์์
๊ฐ์ฒด์ heap ์์ญ์ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ํผ๋ฐ์ค ๋ณ์ tv1์ stack ์์ญ์ ์ ์ฅ
๐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ ํน์ง
โ๏ธ ์ถ์ํ(Abstract)
๊ฐ์ฒด์์ ๊ณตํต๋ ์์ฑ๊ณผ ํ์๋ฅผ ์ถ์ถํ๋ ๊ธฐ๋ฒ → ๊ฐ์ฒด์ ํ๋์ ๋ฉ์๋๋ฅผ ์ ์ํ๋๊ฒ(๊ณตํต์ ์ ๋ฝ์๋ด๋ ๊ฒ)
์์ธํ ์ ๋ณด๋ ๋ฌด์ํ๊ณ ํ์ํ ์ ๋ณด๋ค๋ง ๊ฐ์ถ๋ ค์ ๊ตฌ์ฑ
โ๏ธ ์บก์ํ(Encapsulation)
๊ด๋ จ๋ ๋ฐ์ดํฐ์ ๋ก์ง์ ํ๋์ ํ์ผ๋ก ๋ฌถ์ด์ ์ ์ฅํ๋ ๊ฒ → ์ถ์ํ ํ๋ ๊ฒ์ ํด๋์คํ์ผ์ ์์ฑํ๋ ๊ฒ
๊ด๋ จ๋ ํ๋์ ๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ๊ณ , ์ค์ ๊ตฌํ ๋ด์ฉ์ ์ธ๋ถ๋ก๋ถํฐ ๊ฐ์ถ๋ ๊ธฐ๋ฒ์ด ๋จ(์ ๋ณด์๋)
→ ์ ๊ฐ์ฒด ์งํฅ์์ ๋์์ด ๋์ง? ์๋ฐ์์ ์ ๋ ฅ์ ์ํด ์ฐ๋ฆฌ๋ Scanner ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ง๋ง Scanner์ ์ฝ๋์ ๊ตฌ์ฒด์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ์๋ ์์. ๊ฐ์ฒด์ ๋ฉ์๋๋ง ๋ถ๋ฌ์์ ์ฐ๋ฉด ๋จ → ์์ฐ์ฑ ํฅ์
๋ง์ผ์ ์ํฉ(ํ์ธ์ด ์ธ๋ถ์์ ์กฐ์)์ ๋๋นํด์ ํน์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉ์๊ฐ ์กฐ์ํ ์ ์๋๋ก ์จ๊ฒจ ๋์๊ฒ
ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด ์ ๊ทผ์ ํ์๋ฅผ ๋ถ์ผ ์ ์๋๋ฐ ์ ๊ทผ์ ํ์๋ฅผ ํตํด ์ ๊ทผ์ ์ ํํ ์ ์์(public ↔ private)
private ์ ๊ทผ์ ํ์ : ํด๋์ค ๋ด๋ถ์ ๋ฉ์๋๋ฅผ ํตํด์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ ํ์
โ๏ธ ์์(Inheritance)
โ๏ธ ๋คํ์ฑ(Polymorphism)
๐ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
โผ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ค๊ณํ๊ธฐ - ๋ผ์ง์ ๊ธํตํ๋ก๊ทธ๋จ โผ
๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ ์์น(S.O.L.I.D ์์น)
ํ์์ ๋ฐ๋ผ์๋ ๋ฌด์ํ ์๋ ์์ผ๋ ์งํค๋ ค๊ณ ๋ ธ๋ ฅํ๋ฉด ๊ฐ์ฒด์งํฅ์ด ํจ๊ณผ์ ์ผ๋ก ์ ์ฉ๋ ๊ฒ
์ข์ ์ค๊ณ๋ ์์คํ ์ ์๋ก์ด ์๊ตฌ์ฌํญ์ด๋ ๋ณ๊ฒฝ์ฌํญ์ด ์์ ๋, ์ํฅ์ ๋ฐ๋ ๋ฒ์๊ฐ ์ ์ ๊ตฌ์กฐ๋ฅผ ๋งํจ. ๊ทธ๋์ ์์คํ ์ ์์ํ์ง ๋ชปํ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ํ๋๋ผ๋, ์ ์ฐํ๊ฒ ๋์ฒํ๊ณ ์ดํ์ ํ์ฅ์ฑ์ด ์๋ ์์คํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์์. ์ฆ, SOLID ๊ฐ์ฒด ์งํฅ ์์น์ ์ ์ฉํ๋ฉด ์ฝ๋๋ฅผ ํ์ฅํ๊ณ ์ ์ง ๋ณด์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋ฉฐ, ๋ถํผ์ํ ๋ณต์ก์ฑ์ ์ ๊ฑฐํด ๋ฆฌํฉํ ๋ง์ ์์๋๋ ์๊ฐ์ ์ค์์ผ๋ก์จ ํ๋ก์ ํธ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๋์ผ ์ ์์.
SRP(Single Responsibility Principle : ๋จ์ผ์ฑ ์์์น)
ํ๋์ ํด๋์ค๋ ํ๋์ ์ญํ (๊ธฐ๋ฅ)์ ํ๋๋ก
๊ทธ๋์ผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์์์ง๋ค.
OCP(Open Closed Principle : ๊ฐ๋ฐฉ ํ์ ์์น)
ํ์ฅ์ ์ด๋ ค์์ด์ผ ํ๋ฉฐ, ์์ ์๋ ๋ซํ์์ด์ผ ํ๋ค๋ ๋ป
์ถ์ํ ์ฌ์ฉ์ ํตํ ๊ด๊ณ ๊ตฌ์ถ ๊ถ์ฅ์ ์๋ฏธํ๋ ๊ฒ
๋คํ์ฑ๊ณผ ํ์ฅ์ ๊ฐ๋ฅ์ผํ๋ ๊ฐ์ฒด์งํฅ์ ์ฅ์ ์ ๊ทน๋ํํ๋ ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ์์น
LSP(Liskov Substitution Principle : ๋ฆฌ์ค์ฝํ ์นํ ์์น)
์๋ธ ํ์ ์ ์ธ์ ๋ ๊ธฐ๋ฐ(๋ถ๋ชจ) ํ์ ์ผ๋ก ๊ต์ฒดํ ์ ์์ด์ผ ํ๋ค๋ ์์น
๋ถ๋ชจ ํ์ ์ผ๋ก ๋ฉ์๋๋ฅผ ์คํํด๋ ์๋๋๋ก ์คํ๋๋๋ก ๊ตฌ์ฑ์ ํด์ค์ผ ํ๋ ์์น
ISP(Interface Segregation Principle : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น)
์ธํฐํ์ด์ค๋ฅผ ๊ฐ๊ฐ ์ฌ์ฉ์ ๋ง๊ฒ๋ ์๊ฒ ๋ถ๋ฆฌํด์ผ ํ๋ค๋ ์ค๊ณ ์์น
์ธํฐํ์ด์ค์ ๋จ์ผ ์ฑ ์์ ๊ฐ์กฐ
ํด๋ผ์ด์ธํธ์ ๋ชฉ์ ๊ณผ ์ฉ๋์ ์ ํฉํ ์ธํฐํ์ด์ค๋ง์ ์ ๊ณตํ๋ ๊ฒ์ด ๋ชฉํ
DIP(Dependency Inversion Principle : ์์กด ์ญ์ ์์น)
์ด๋ค ํด๋์ค๋ฅผ ์ฐธ์กฐํด์ ์ฌ์ฉํด์ผํ๋ ์ํฉ์ด ์๊ธด๋ค๋ฉด, ๊ทธ ํด๋์ค๋ฅผ ์ง์ ์ฐธ์กฐํ๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ๋์์ ์์ ์์(์ถ์ ํด๋์ค or ์ธํฐํ์ด์ค)๋ก ์ฐธ์กฐํ๋ผ๋ ์์น
์ฐธ๊ณ ์๋ฃ ๋งํฌ
โ๏ธ static
๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์๋ ํธ์ถํ ์ ์๊ฒ ํด ์ค
โ๏ธ ์์ฑ์ (constructor)
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํธ์ถํ๋ ๋ฉ์๋
์์ฑ์๋ ๋ฌด์กฐ๊ฑด ํ๋ ์ด์ ์ ์ธ๋์ด ์์ด์ผ ํจ
๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ์์ฑ์๋ฅผ ์ ์ํ์ง ์์๋ ๋ฉ์๋๋ฅผ ์์ฑํด ๋์ง ์์๋ ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ๋ฉ์๋๋ฅผ ์์ฑ
ํน์ง
1. ๋ฐํํ์ ์ด ์์
2. ๋ฉ์๋ ์ด๋ฆ์ด ํด๋์ค ์ด๋ฆ๊ณผ ๊ฐ์
\
โ๏ธ ๊ฒํฐ ๋ฉ์๋(getter) & ์ธํฐ(setter) ๋ฉ์๋ ๋ง๋ค๊ธฐ
๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด ๊ฐ ํ๋๋ private๋ก ์ ๊ทผ์ ํ
→ Simulator ํด๋์ค์์๋ ๊ฐ ํ๋์ ์ ๊ทผํ ์ ์์
→ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๊ณ , ์์ ํ๊ธฐ ์ํด์๋ getter ๋ฉ์๋์ setter ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํจ
โผ ๊ฒํฐ ๋ฉ์๋ โผ
๋ค๋ฅธ ํด๋์ค์์ ํ๋์ ์๋ ๊ฐ์ ํ์ธ
โผ ์ธํฐ ๋ฉ์๋ โผ
๋ค๋ฅธ ํด๋์ค์์ ํ๋์ ์๋ ๊ฐ์ setting(์์ )ํ ์ ์๋๋ก ํด์ฃผ๋ ๋ฉ์๋
this → ํ์ฌ์ ํด๋์ค๋ฅผ ์ง์นญํ๋ ํค์๋
์ดํด๋ฆฝ์ค์์๋ ์๋์ผ๋ก ๊ฒํฐ ๋ฉ์๋์ ์ธํฐ ๋ฉ์๋๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ์ง์
์ดํด๋ฆฝ์ค์์๋ ์์ฑ์ ๋ํ ์๋์ผ๋ก ๋ง๋ค ์ ์๋๋ก ๊ธฐ๋ฅ ์ง์
์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋ 3๊ฐ์ ํด๋์ค๋ฅผ ๋ํดํธ๋ก ๋ง๋ฆ
1. simulator - ์ฌ์ฉ์์๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ฃผ๊ฑฐ๋ ์ฌ์ฉ์์๊ฒ ์ ํ๊ถ์ ์ฃผ์ด ์ ๋ ฅ๋ฐ๋ ์ฉ๋
2. data - ์ ๋ณด๋ง ๊ฐ์ง๊ณ ์๋ ํด๋์ค
3. system - ๋ฐ์ดํฐ๋ฅผ ๋์ ํด์ ๋ฑ๋ก์ํค๊ณ ๊ด๋ฆฌํ๋ ์ค๊ฐ ํด๋์ค
๋์๊ด๋ฆฌํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
1. simulator → bookSystem๊ณผ ์ํต
2. bookSystem → BookData์ ์ํต
์์ฑ๋ bookData ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ArrayList๋ฅผ ๋ง๋ค๊ณ ,
addBook ๋ฉ์๋์์ bookData ํด๋์ค๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ ํ ArrayList์ ์ ์ฅ
3. booData
์คํ๊ฒฐ๊ณผ