Framework ๐
ํ์์ ๋์ํ๋ค๋ ๊ทธ๋ฅ ๋จ์ด์ ์๋ฏธ์ธ๋ฐ ๊ณฐ๊ณฐ์ด ์๊ฐํด๋ณด๋ฉด ์ด ํ์์์ (๋ฒ์ด๋์ง ์๊ณ ) ๊ฐ๋ฐ์ ํ๋ฉด๋๋ค.
Spring์ ์คํ์์ค๐
Spring์ ์คํ์์ค์ ์๋ฏธ๋ ๋ด๋ถ๋ฅผ ๋ณผ ์ ์๋ค ๋ผ๋ ์๋ฏธ๊ฐ ์๋ค. ์ฆ ๋ด๋ถ๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ ๋ถํธํ ์ ์ด ์๋ค๋ฉด ์์ ํด์ ์ฌ์ฉํ ์ ์๋ค.(์ด๋๋๋ ๋ฒจ..)
Spring์ IoC ์ปจ๋ค์ด๋์ด๋ค๐
์ด์ฐ๋ณด๋ฉด Spring์ ๊ฐ์ฅ ํต์ฌ ์ด๋ค.IoC๋ Inversion of Controll ์ฆ ์ ์ด์ ์ญ์ ์ด๋ค. ์ฃผ๋๊ถ์ด ์ฌ์ฉ์๊ฐ ์๋ Spring์ ์๋ค.
Class๋ ์ค๊ณ๋ Object๋ ์ค์ฒดํ๊ฐ ๊ฐ๋ฅํ ๊ฒ Instance๋ ์ค์ฒดํ ๋ ๊ฒ
Spring์ด heap ์์ญ์ Object๋ฅผ ์ฝ์ด์ Memory์ ์ฌ๋ ค์ค๋ค. Spring์ด ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ค๋ค.
Spring๐
Class B{
@Autowired
A a;
}
Java๐
Class C{
A A = new A();
}
ํ์ง๋ง Java์์ ์ฒ๋ผ ์์ฑ๋ A๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์์ ์๋ก ์์ฑ๋ ๊ฐ์ฒด์ด๊ธฐ์ ์ ํ ๋ค๋ฅธ A์ด๋ค.
Spring์ DI๋ฅผ ์ง์ํด์ค๋ค๐
Dependency Injection์์กด์ฑ์ด๋ผ๋ ์๋ฏธ์ธ๋ฐ, IoC๋ก ๊ด๋ฆฌํด์ฃผ๋ Springํ๋ ์์ํฌ์ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์์กด์ฑ ์ฃผ์ ์ผ๋ก ํ์ํ ๊ณณ์์ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
Spring์ Filter?๐
๊ฒ์ด์ ๊ธฐ๋ฅ์ Filter๋ผ ํ๋ค. ๊ฐ Filter์ ๊ถํ์ ๋ถ์ฌ ํ ์๋ ์๋ค. Spring์์ฒด์ Filter๋ ์กด์ฌํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ง์ ์์๋ก ๋ง๋ค์ด ์ฌ์ฉ๋ ๊ฐ๋ฅํ๋ค. ํฐ์บฃ์ Filter๋ web.xml Spring์ Filter๋ Interceptor๋ผ๊ณ ํ๋ค.
Spring์ ์๋ง์ ์ด๋ ธํ ์ด์ ์ ๊ฐ์ง๊ณ ์๋ค.๐
์ด๋ ธํ ์ด์ ์ ์ฃผ์์ด์ง๋ง ์ด๋ ธํ ์ด์ ์ ์ฃผ์์ ์ปดํ์ผ๋ฌ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ checkํ ์ ์๋๋ก hint๋ฅผ ์ฃผ๋ ๊ฐ๋ ์ด๋ค. ์๋ฐ์์๋ @Override๋ก ๋ง์ด ์ฌ์ฉํ์ง๋ง Spring์์๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด @Component,@Autowired, @Bean, @Controller๋ฑ๋ฑ ์ด ์์ผ๋ฉด ๋ฏธ๋ฆฌ ์ฝ์ํด๋ ๊ฐ์ฒด(์ด ๊ฐ์ฒด๋ค์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ธ ์์ผ๋ฉฐ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ง๊ณ ์๋ค.)๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฅผ๋ค์ด ์ด๋ ธํ ์ด์ @Autuwired๊ฐ ์ด๋ ํด๋์ค์ ๋์ด์๋ค๋ฉด ๊ทธ ํด๋์ค๋ด๋ถ๋ฅผ ๋ฆฌํ๋ ์ (๋ถ์)์ ํตํด ๊ทธ ๋ด๋ถ์ ํ๋, ์ด๋ ธํ ์ด์ , ๋ฉ์๋๋ค์ Checkํ ํ์ ์ฝ์ด ๋ค์ด๊ฑฐ๋ ๋์์ ์ค์ ํ ์ ์๋ค.
Spring์ MessageConverter(์ดํ ๋ฉ์ธ์ง ์ปจ๋ฒํฐ)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.๐
์ค๊ฐ ์ธ์ด์ธ JSON์ ์ฌ์ฉํ๋ค. Java์ธ์ด๋ฅผ ์ค๊ฐ์ JSON์ผ๋ก ๋ฐ๊ฟ์ ๋ค๋ฅธ Object๋ก ๋ฐ๊ฟ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
Spring์ BufferedReader์ BufferedWriter๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.๐
๊ฐ ๋๋ผ๋ง๋ค ์ฌ์ฉํ๋ byte์๊ฐ ๋ค๋ฅด๋ค ์ธ๋ฐํ๊ฒํ๋ฉด ์์ด๊ถ์ 8bit->1byte ํ๊ตญ์ 16bit->2byte ์ค๊ตญ์ 24bit->3byte๋ฅผ ์ฌ์ฉํ๋ค.
์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋(์ด๋ฅผ Byte Stream์ด๋ผ ํ๋ค.)1Byte(8bit)๋ก ์ฝ์ด ๋ค์ด๋๋ฐ, ์ด๋ฅผ Java์์๋ InputStream์ผ๋ก ์ฝ์ด๋ค์ธ๋ค.
์ด๋ฅผ Java๋ byte๋ฅผ Char๋ก ์บ์คํ ํด์ ์ฒ๋ฆฌํด์ ์ฝ์ด์ผ ํ๋๋ฐ Byte๋ฅผ ๋ฌธ์๋ก ๋ณํํ๋ค. ์ด๊ฒ์ InputStreamReader๋ผ๊ณ ํ๋ค.
InputStreamReader๋ ๋ฐฐ์ด๋ก ๋ฌธ์๋ก ๋ฐ์ ์ ์๋๋ฐ ์ด ๋ ๋ฐ์ ์ ์๋ ์ ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
๊ทธ ์ด์ ๋ ๋ฐ์ ์ ์๋ ์ฉ๋์ ์ ๊ฒํ๋ฉด ๋ง์ ์์ฒญ์ด ์์ ๋ ๋ฐ์ดํฐ๊ฐ ์ค๊ฐ์ ์๋ฆฌ๊ฒ ๋๊ณ
๋ง์ ์ฉ๋์ ํด๋๋ฉด ์ ์ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ์ธ๋ชจ ์๋ ๋ญ๋น๊ฐ ๋ฐ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ InputStreamReader๋ฅผ ์ฌ์ฉํ์ง ์๊ณ
๊ฐ๋ณ๊ธธ์ด์ ๋ฌธ์๋ฅผ ๋ฐ์ ์ ์๋ BufferedReader์ BufferedWriter๋ฅผ ์ฌ์ฉํ๋ค.
JSP์์๋ ์ฝ์ ๋์๋reqeust.getReader ์ธ ๋๋ request.getWriter์ฌ์ฉํ๋ค.
@ResponseBody๋ฅผ ์ฌ์ฉ ํ๋ฉด BufferedWriter๊ฐ ๋์
@RequestBody๋ฅผ ์ฌ์ฉ ํ๋ฉด BufferedReade๊ฐ ๋์ํ๊ฒ ๋๋ค.
Spring์ ์ด๋ฅผ ํตํด BufferedReader์ BufferedWriter๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
๊ณต๋ถํด์จ ๊ณณ๐
์ธํ๋ฐ ์ต์ฃผํธ ๊ฐ์ฌ๋์ ์คํ๋ง๋ถํธ ๊ฐ๋ ์ ๋ฆฌ(์ด๋ก )ํธ
'FrameWork > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring์ ์ด๋ป๊ฒ ๋ค์ํ ์ค์ ํ์์ ์ง์ํ ๊น?BeanDefinition (0) | 2023.07.13 |
---|---|
JPA (์์ฑ์ค) (0) | 2023.07.12 |
๊ด์ฌ์ฌ ๋ถ๋ฆฌ (0) | 2023.07.10 |
AOP๋?๐งโ๐ป (0) | 2023.07.01 |
Spring Interceptor (0) | 2023.06.23 |
๋๊ธ