๐๐ป ํ๋ ์์ํฌ : Framework
- ๋ผ๋, ํ, ๊ตฌ์กฐ
- ์ด๋ค ๋์์ ํฐ ํ์ด๋ ์ธํ์ ์ธ ๊ตฌ์กฐ๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํ ํ์ด๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ณต
- ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์ํํธ์จ์ด ๊ตฌํ์ ์์ํ๊ฒ ํ๊ธฐ ์ํด ์ ๊ณต๋๋ ์ํํธ์จ์ด ํ๊ฒฝ
- ํ๋ ์์ํฌ๋ง์ผ๋ก ์คํ๋์ง ์๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ํ๋ ์์ํฌ ๋ผ๋ ์์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฐ
- ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค ํจํค์ง
ex) Collections ํ๋ ์์ํฌ์ Map, Set, List ๋ฑ
๐ก ์ธํฐํ์ด์ค : Interface
- ๊ฐ๋ฐ์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ ๊ตฌ์กฐ์ ํ์ํ ์ฝ๋, ์๊ณ ๋ฆฌ์ฆ, ์ํธํ ์ฒด๊ณ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ ๋ฐฉ์์ ์งํฉ์ฒด
- ์ฌ๋ฌผ๊ฐ, ์ฌ๋๊ฐ, ์ฌ๋๊ณผ ์ฌ๋ฌผ๊ฐ ์ํธ์์ฉ์ ํ ์ ์๋๋ก ์ฐ๊ฒฐํด์ฃผ๋ ์ฅ์น, ๋ฐฉ๋ฒ, ํ์, ๊ณต๊ฐ ๋ฑ
๐๐ป ๋ผ์ด๋ธ๋ฌ๋ฆฌ : Library
- ์ฌ์ ์ ๋ง๋ค์ด์ง ์ฝ๋๋ค์ ์งํฉ
- ํ์์์ ๊ณต๊ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ ์ ํ๋ก๊ทธ๋จ์ ํธ์ถํ์ฌ ์ฌ์ฉ
- ์ฌ์ฌ์ฉ์ด ํ์ํ ๊ธฐ๋ฅ์ ๋ฐ๋ณต์ ์ฝ๋ ์์ฑ์ ์์ ๊ธฐ ์ํด ์ธ์ ๋ ์ง ํ์ํ ๊ณณ์์ ํธ์ถ ๊ฐ๋ฅ
ex) ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์ฒ๋ฆฌ ์ ์ฌ์ฉํ๋ pandas, numpy ๋ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ex) Class๋ Functions์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ๋ค
๐ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด
โช๏ธ ๊ณตํต์ : ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌํ์ ์ํด ํ์ํ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ ์ ๊ณต
โช๏ธ ์ฐจ์ด์ : ์ ํ๋ฆฌ์ผ์ด์ ํ๋ฆ์ ๋ํ ์ฃผ๋๊ถ
โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฃผ๋๊ถ์ด ๊ฐ๋ฐ์์๊ฒ ์์
- ํ์ํ ๋ ํด๋น ๋ชจ๋์ ํธ์ถํ์ฌ ์ฌ์ฉ
- ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ์ ๋ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉ
โก ํ๋ ์์ํฌ๋ ์ฃผ๋๊ถ์ด ํ๋ ์์ํฌ์ ์์
- ๋จ์ ํธ์ถ์ฉ์ด ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ๋ฅผ ์ก์ผ๋ฉฐ ๊ฐ์ข ์ธ๋ถ ์์์ ์ ํ๋ ์์ญ์ ๋ํ ๊ตฌํ ๋ฐฉ์ ์ ์
- ํ๋ ์์ํฌ๋ผ๋ ํน์ ๊ณต๊ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ถฐ์ง ๊ตฌ์กฐ ์์์ ํ๋ก๊ทธ๋จ ์ฝ๋ ์์ฑ
๐ค๐ป ์คํ๋ง ํ๋ ์์ํฌ : Spring Framework
- ์๋ฐ ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ฐ ํ์ํ framework
- ๊ฐ์ฒด ์งํฅ ์ค๊ณ ์์น์ ์ ๋ง๋ ์ฌ์ฌ์ฉ๊ณผ ํ์ฅ์ด ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์คํฌ ํฅ์ ๊ฐ๋ฅ
- ์ฑ๋ฅ๊ณผ ์๋น์ค์ ์์ ์ฑ์ด ํ์ํ ๊ธฐ์ ์ฉ ์ํฐํ๋ผ์ด์ฆ ์์ดํ ์ ์ ๋๋ก ๊ตฌ์ถํ ์ ์๋ ๋ฅ๋ ฅ ๋ณด์
๐ ์คํ๋ง ํ๋ ์์ํฌ ํน์ง
โ ์์กด์ฑ ์ฃผ์ (DI)
- ๊ฐ์ฒด๊ฐ ์๋ก ์์กดํ๋ ๊ด๊ณ๊ฐ ๋๊ฒ ํ๋ ๊ฒ
- ํ๋์ ๊ฐ์ฒด๊ฐ ์ด๋ ํ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ์๋ฏธ
โก ์ ์ด์ ์ญ์ (IoC)
- ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ '๊ฐ์ฒด์์ฑ - ์์กด์ฑ ๊ฐ์ฒด์์ฑ - ๊ฐ์ฒด ๋ด ๋ฉ์๋ ํธ์ถ' : ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ ์ ์ด
- but, ์คํ๋ง์ ์๊ธฐ๊ฐ ์ฌ์ฉํ ๊ฐ์ฒด๋ฅผ ์ ํํ์ง ์๊ณ ์์ ์ด ์ด๋์ ๋ง๋ค์ด์ง๊ณ ์ฌ์ฉํ๋์ง ๋ชจ๋ฆ
โข ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ (AOP)
- ์ผ๋ฐ์ ์ผ๋ก ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ OOP(๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ) ์ฌ์ฉ
→ ๊ฐ์ ๊ด์ฌ์ฌ์ ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์ ๋ถ๋ฆฌํ์ฌ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง = ๋ ๋ฆฝ์ ์ด๊ณ ์ ์ฐํ๊ฒ ์บก์ํ
→ but, ์ค๋ณต๋ ์ฝ๋๋ค์ด ๋ง์์ง๊ณ ๊ฐ๋ ์ฑ, ํ์ฅ์ฑ, ์ ์ง๋ณด์์ฑ์ ๋จ์ด๋จ๋ฆผ
→ ๋๋ฌธ์ ๋ฑ์ฅํ ๊ฒ์ด AOP !
- AOP๋ ๊ธฐ์กด ํ๋ก์ ํธ์ ๋ก๊น ์ด๋ ๋ณด์์ ์ค์ ํ๊ณ ์ถ์ ๋ ๊ธฐ์กด ๋ก์ง์๋ ์์ ์ ๊ฐํ์ง์๊ณ ํ์ฉ
→ ๋ฌด๋ถ๋ณํ๊ฒ ์ค๋ณต๋๋ ์ฝ๋๋ฅผ ํ ๊ณณ์ ๋ชจ์ ์ค๋ณต ์ฝ๋ ์ ๊ฑฐ ๊ฐ๋ฅ
→ ํจ์จ์ ์ธ ์ ์ง๋ณด์๊ฐ ๊ฐ๋ฅํ๋ฉฐ ์ฌ์ฌ์ฉ์ฑ ๊ทน๋ํ
→ ์ด๋ฅผ ํตํด SW์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ฉฐ ๋จ์ํ ์คํธ ์ฉ์ด
- ๋ชจ๋ ๊ธฐ๋ฅ์ ์ข ํฉ ์ ๊ณตํ๋ ๊ฒฝ๋ํ ์๋ฃจ์
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ํธ๋์ญ์ ์ด ๋์์ ์ฌ๋ฌ ์ฌ์ฉ์์๊ฒ ํํด์ง๋ ๋๊ท๋ชจ ํ๊ฒฝ ๊ฐ๋ฐ์ ์ ํฉ
- ๊ฒฝ๋ ์ปจํ ์ด๋๋ก ์๋ฐ ๊ฐ์ฒด๋ฅผ ์ง์ ๋ด๊ณ ๊ด๋ฆฌ
- ๊ฐ์ฒด ์์ฑ, ์๋ฉธ ๋ฑ ๋ผ์ดํ์ฌ์ดํด์ ์ง์ ๊ด๋ฆฌํ๋ฉฐ Spring ์ปจํ ์ด๋๋ก๋ถํฐ ํ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉ
๐ ์คํ๋ง ํ๋ ์์ํฌ์ ์ด๊ดํ๋ ์ด์ ?
- ๊ธฐ์ ์ฉ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์์ ๊ฐ๋ฐ ์์ฐ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ๋๋ฐ ์คํ๋ง ํ๋ ์์ํฌ๊ฐ ์ต์ ํฉ
๐ก ๊ธฐ์ ์ฉ ์ํฐํ๋ผ์ด์ฆ ์์คํ
- ๊ธฐ์ ์ ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ์์คํ
- ๋๋์ ์ฌ์ฉ์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฒ ์์ ํจ์จ์ฑ ๋ฐ ๋ณด์์ฑ, ์์คํ ์์ ์ฑ ๋ฐ ํ์ฅ์ฑ์ ์ถฉ๋ถํ ๊ณ ๋ คํ์ฌ ๊ตฌ์ถ
๐ Spring ๋์ ์ ์ฌ์ฉํ๋ ๊ธฐ์
โ JSP๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์
- JSP๋ Java Server Page์ ์ฝ์๋ก ์ด์ฐฝ๊ธฐ Java ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
- ํค์๋๊ฐ ํ๊ทธํ๋์ด ๋ฐฐ์ฐ๊ธฐ ์ฌ์
- ์๋ฐ์ฝ๋๋ฅผ <% %> ํ๊ทธ ์์ ์ฒ๋ฆฌํด์ฃผ์ด์ผ ํจ
- HTML ์ฒ๋ผ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐ์ฝ๋๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ
โก ์๋ธ๋ฆฟ์ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์
- ์น ๊ธฐ๋ฐ์ ์์ฒญ์ ๋ํ ๋์ ์ธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ํ๋์ ํด๋์ค
- JSP์์ ์๋ฒ ์ธก Java์ฝ๋๋ ์๋ธ๋ฆฟ ํด๋์ค๋ก ๋ถ๋ฆฌ
๐ก ์๋ฐ ํ๋ก๊ทธ๋จ?
- ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์์ฒญ์ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ์กํด์ฃผ๋ ์ญํ ์ ํจ
โข Spring MVC๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์
- ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ค๊ฑฐ๋ charecter-set์ ์ง์ ํด์ฃผ๋ ์์ ๋ฑ์ ์ง์ ์ฝ๋ ์์ฑํ์ง ์์๋ Spring์ด ์์์ ์ฒ๋ฆฌ
- but, ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ก๋ ์ค์ ์์ ์ด ๋ถํธ
โฃ Spring Boot๋ฅผ ์ด์ฉํ ์ ํ๋ฆฌ์ผ์ด์
- Spring์ ๋ณต์กํ ์ค์ ์์ ๋ Spring์ด ๋์ ์ฒ๋ฆฌํด์ฃผ์ด ๊ฐ๋ฐ์๋ ๋น์ฆ๋์ค ๋ก์ง์๋ง ์ง์ค ๊ฐ๋ฅ
'Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] Spring :IoC / DI (0) | 2022.06.14 |
---|---|
[TIL] Spring : POJO (0) | 2022.06.14 |
[TIL] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ (0) | 2022.06.10 |
[TIL] ์๊ณ ๋ฆฌ์ฆ (0) | 2022.06.10 |
[TIL] ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ (0) | 2022.06.10 |