IoC ์ปจํ ์ด๋๋ฅผ ํตํด bean๋ค์ Singleton์ผ๋ก ๊ด๋ฆฌํ๊ณ ํ์์ ๋ฐ๋ผ DIํด์ฃผ๋ ํ๋ ์์ํฌ
- ์คํ๋ง์ ํ๋ ์์ํฌ์ด๋ค.
- ์คํ๋ง์ ์คํ์์ค์ด๋ค.
- ์คํ๋ง์ IoC ์ปจํ ์ด๋๋ฅผ ๊ฐ์ง๋ค.
- ์คํ๋ง์ DI๋ฅผ ์ง์ํ๋ค.
- ์คํ๋ง์ ์์ฒญ๋๊ฒ ๋ง์ ํํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์คํ๋ง์ ์์ฒญ๋๊ฒ ๋ง์ ์ด๋ ธํ ์ด์ ์ ๊ฐ์ง๊ณ ์๋ค.
- ์คํ๋ง์ MessageConverter๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ธฐ๋ณธ๊ฐ์ ํ์ฌ Json์ด๋ค.
- ์คํ๋ง์ BufferdReader ์ BufferedWriter๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
- ์คํ๋ง์ ๊ณ์ ๋ฐ์ ์ค์ด๋ค.
Ioc(Inversion of Control) : Singleton์ผ๋ก bean์ ๊ด๋ฆฌํ๋ Container
Singleton : ๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ํ๊ฐ๋ง ์์ฑ๋๊ฒ ํ๋ค.
bean : ์คํ๋ง ์ปจํ
์ด๋๊ฐ ๊ด๋ฆฌํ๋ ์๋ฐ ๊ฐ์ฒด
DI(Dependency Injection) : ์ธ์คํด์ค ์์ฑ์ IoC์ปจํ
์ด๋์์ singleton์ผ๋ก ๊ด๋ฆฌํ๊ณ bean๋ค์ ๋ณ์์ ์์กด์ฑ ์ฃผ์
Class โ ์ค๊ณ๋!
Object โ ์ค์ฒดํ๊ฐ ๊ฐ๋ฅํ ๊ฒ
Instance โ ์ค์ฒดํ ๋ ๊ฒ
์๋ฐ)
์ ์ฌ์ง์ฒ๋ผ ๊ฐ๊ฐ์ ๋ ํผ๋ฐ์ค๋ฅผ ๋ฉ์๋๊ฐ ๊ด๋ฆฌํ๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ์ ๊ฐ์ ํ๊ธฐ ์ํด ์คํ๋ง์ด ๋ฑ์ฅํ๋ค.
์คํ๋ง์ ์๋์ผ๋ก heap๋ฉ๋ชจ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ค๋ค.
์คํ๋ง ์์ฒด! ํํฐ! ์ฌ์ฉ
ํฐ์ผ์๋ ํํฐ๊ฐ ์๋ค.
์คํ๋ง ์ปจํ
์ด๋์๋ ํํฐ๊ฐ ์๋ค. ๋ค๋ฅธ๋ง๋ก ์ธํฐ์
ํฐ(AOP)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด๋
ธํ
์ด์
(์ฃผ์ + ํํธ) <- ์ปดํ์ผ๋ฌ ๋ฌด์ X
//๊ธ ~ (์ฃผ์) <- ์ปดํ์ผ๋ฌ ๋ฌด์!
์ปดํ์ผ ํ ๋ ์ด๋
ธํ
์ด์
์ด ๋ถ์ด์์ผ๋๊น Animal์ด๋ผ๋ ๋ถ๋ชจ๊ฐ run์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๊ฒ ์ง ํ๋ฉด์ ์์ํ๊ณ ํ์ธํ๋ค.
Fly๋ฉ์๋๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ์ฒดํน ์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์คํ๋ง์์๋!
์ด๋
ธํ
์ด์
๊ฐ์ฒด ์์ฑ
์๋ฐ์ค๋ธ์ ํธ๋ฅผ ๋๊ตฌ๊ฐ์๊ฒ ์ ์กํ ๋ ์ค๊ฐ ๋ฐ์ดํฐ JSON์ผ๋ก ์ปจ๋ฒํ ํด์ฃผ๋ ๊ฒ์ด๋ค.
์์ฒญ๋ฟ๋ง์๋๋ผ ์๋ต๋ฐ์๋๋ ๋ณํ
์ฝ์ ๋๋ 8bit์ฉ ๋์ด ์ฝ์ผ๋ฉด ํ ๋ฌธ์์ฉ ๋ฐ์ ์ ์๋ค.
1๋ฐ์ดํธ : ํต์ ๋จ์
ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ฐ์ดํธ ํต์ ์ ๋ง์ด ํ๋ค.
์ฆ, BufferdWriter๋ ๋ค์ ์๊ธฐํ์๋ฉด Byte Stream์ ํตํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ๋ฐ์ดํฐ ์ ์ก๋จ์๊ฐ ๋ฌธ์์ด๋ก ๊ฐ๋ณ ๊ธธ์ด ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒ ํด์ฃผ๋ ํด๋์ค์ด๋ค.
ํ์ง๋ง, ์ง์ ๊ตฌํํ ํ์์์ด ์ด๋ ธํ ์ด์ ์ ์ ๊ณตํ๋ค.
@ResponseBody -> Bufferdwriter ๋์
@RequestBody -> BufferdReader ehdwkr