์์นด๋ฅดํ EE ๊ฐ๋ฐ์ ๋ ์ฝ๊ฒ ๋ง๋๋ Spring ๋ชฉํ.ย ์ฌ์ฉ์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
๊ฒฝ๋ :
๊ฐ๋ฐ์์ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์ฝ๊ฐ์ ์ค๋ฒ ํค๋๊ฐ ์์ต๋๋ค.
-
IoC (Inversionย of Control) :
Spring ์ปจํ ์ด๋๋ ์ข ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ์ฐพ๋ ๋์ ๋ค์ํ ๊ฐ์ฒด์ ์ฐ๊ฒฐ ์์กด์ฑ์ ์ฒ๋ฆฌํฉ๋๋ค.
-
AOP (Aspect Oriented Programming) :
Spring์ ์์คํ ์๋น์ค์์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ธฐ ์ํด AOP๋ฅผ ์ง์ํฉ๋๋ค.
-
IoC ์ปจํ ์ด๋ :
Spring Bean ๋ผ์ดํ ์ฌ์ดํด ๋ฐ ํ๋ก์ ํธ ๋ณ ๊ตฌ์ฑ์ ๊ด๋ฆฌํฉ๋๋ค.
-
MVC ํ๋ ์ ์ํฌ :
XML / JSON ์๋ต์ ๋ฐํ ํ ์์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋๋ RESTful ์น ์๋น์ค๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
-
ํธ๋์ญ์ ๊ด๋ฆฌ :
Java ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๊ฑฐ๋ Spring Bean XML ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ JDBC ์์ , ํ์ผ ์ ๋ก๋ ๋ฑ์์ ์์ฉ๊ตฌ ์ฝ๋์ ์์ ์ค์ ๋๋ค.
-
์์ธ ์ฒ๋ฆฌ :
Spring์ ๊ธฐ์ ๋ณ ์์ธ๋ฅผ ํ์ธ๋์ง ์์ ์์ธ๋ก ๋ณํํ๊ธฐ์ํ ํธ๋ฆฌํ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
IoC (Inversion of Control)์ ํ ์ธก๋ฉด ์ธ ์์กด์ฑ ์ฃผ์ ์ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑํ์ง ์๊ณ ๋์ ์์ฑ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ์ ๋๋ค.ย IoC ์ปจํ ์ด๋๋ ํ์ํ ๊ฒฝ์ฐ ํ์ํ ํด๋์ค๋ฅผ ์ธ์คํด์คํํฉ๋๋ค.
๋ช ๊ฐ์ง ๋ค๋ฅธ ์ต์ ์ด ์์ต๋๋ค.
- ์ธํฐ ์ฃผ์
- ์์ฑ์ ์ฃผ์
- Field ์ฃผ์
๊ตฌ์ฑ์ XML ํ์ผ ๋๋ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ํ ํ ์ ์์ต๋๋ค.
BeanFactoryย ๋ Bean ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ๊ณ ๊ด๋ฆฌํ๋ ์ปจํ ์ด๋๋ฅผ ๋ํ๋ด๋ ์ธํฐํ์ด์ค์ ๋๋ค.ย ๊ธฐ๋ณธ ๊ตฌํย ์ย getBean ()ย ์ด ํธ์ถย ๋ ๋ ๋น์ ๋๋ฆฌ๊ฒย ์ธ์คํด์คํย ํฉ๋๋ค.
ApplicationContextย ๋ย ์ ํ๋ฆฌ์ผ์ด์ ์ย ๋ชจ๋ ์ ๋ณด, ๋ฉํ ๋ฐ์ดํฐ ๋ฐ Bean์ ๋ณด์ ํ๋ ์ปจํ ์ด๋๋ฅผ ๋ํ๋ด๋ ์ธํฐํ์ด์ค์ ๋๋ค.ย ๋ํย BeanFactoryย ์ธํฐํ์ด์ค๋ฅผย ํ์ฅย ํ์ง๋ง ๊ธฐ๋ณธ ๊ตฌํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋ ๋ ์ด์ฌํ ๋น์ ์ธ์คํด์คํํฉ๋๋ค.ย ์ด ๋์์ ๊ฐ๋ณ Bean์ ๋ํด ์ฌ์ ์ ๋ ์ ์์ต๋๋ค.
๋ง์ฝ ์ด๋คย resource๋ฅผ ์๋ณํ๊ณ ์ถ์ผ๋ฉดย Path Variable์ ์ฌ์ฉํ๊ณ ,์ ๋ ฌ์ด๋ ํํฐ๋ง์ ํ๋ค๋ฉดย Query Parameter๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด Best Practice์ด๋ค.
Aspectย ๋ ์ํฅ์๋ฐ๋ ํด๋์ค๋ฅผ ์์ ํ์ง ์๊ณ ๊ธฐ์กด ์ฝ๋์ ์ถ๊ฐย ๋์์ ์ถ๊ฐํ์ฌ ์ฌ๋ฌ ์ ํ ๋ฐ ๊ฐ์ฒด์ ๊ฑธ์ณ์๋ ํธ๋์ญ์ ๊ด๋ฆฌ์ ๊ฐ์ ๊ต์ฐจ ์ ๋จ ๋ฌธ์ ๋ฅผ ๋ชจ๋ํ ํ ์ ์๋๋กํฉ๋๋ค.
๋ค์์ย aspect ๊ธฐ๋ฐ ์คํ ์๊ฐ ๋ก๊น ย ์ ์์ ๋๋คย .
-
Aspect
: ํธ๋์ญ์ ๊ด๋ฆฌ์ ๊ฐ์ ๊ต์ฐจย ๋ฌธ์ ๋ฅผ ๊ตฌํํ๋ ํด๋์ค
-
Adviceย JoinPoint
:์ ํ๋ฆฌ์ผ์ด์ ์์ย Pointcutย ๊ณผ ์ผ์นํ๋ ํน์
์๋๋ฌํ์ ๋ ์คํ๋๋ ๋ฉ์๋
-
Pointcutย JoinPoint
:ย Adviceย ๋ฅผ ์คํํด์ผํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด
์ ์ผ์นํ๋ ์ ๊ท์ ์ธํธ
-
JoinPoint
: ๋ฉ์๋ ์คํ ๋๋ ์์ธ ์ฒ๋ฆฌ์ ๊ฐ์ ํ๋ก๊ทธ๋จ ์คํ ์ค ์ง์
๋์คํจ์ฒ ์๋ธ๋ฆฟ์ด๋ ํฐ์บฃ๊ณผ ๊ฐ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ฅผ ํตํด ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ ์ ์ผ ์์์ ๋ฐ๋ ์ปจํธ๋กค๋ฌ์ ๋๋ค. ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ ๊ณตํต๋ ์์ ์ ์ฒ๋ฆฌํ ํ์, ์ ์ ํ ์ธ๋ถ ์ปจํธ๋กค๋ฌ๋ก ์์ ์ ์์ํด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ธ๋ถ ์ปจํธ๋กค๋ฌ๋ ์ฒ๋ฆฌํ ๋ถ๋ถ์ ์ฒ๋ฆฌํ๊ณ ๋ฐํํ view๋ฅผ Dispatcher Servlet์ ๋๊ธฐ๊ฒ ๋ฉ๋๋ค.
- ์์์ฑ(Atomicity): ํธ๋์ญ์ ์ ํฌํจ๋ ์์ ์ ์ ๋ถ ์ํ๋๊ฑฐ๋ ์ ๋ถ ์ํ๋์ง ์์์ผ ํ๋ค.
- ์ผ๊ด์ฑ(Consistency): ํธ๋์ญ์ ์ ์ํํ๊ธฐ ์ ์ด๋ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ค.
- ๊ณ ๋ฆฝ์ฑ(Isolation): ์ํ ์ค์ธ ํธ๋์ญ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋ผ์ด๋ค์ด ๋ณ๊ฒฝ์ค์ธ ๋ฐ์ดํฐ ๊ฐ์ ํผ์ํ์ง ์์์ผํ๋ค.
- ์ง์์ฑ(Durability): ์ํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ ํธ๋์ญ์ ์ ๋ณ๊ฒฝํ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌํ ์ ์ฅํด์ผ ํ๋ค.
Byte Ordering์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์์๋ฅผ ์๋ฏธํฉ๋๋ค. Byte Ordering์ ๋ฐฉ์์๋ ๋น ์๋์(Big Endian)๊ณผ ๋ฆฌํ์๋์(Little Endian)์ด ์์ต๋๋ค.
- MSB๊ฐ ๊ฐ์ฅ ๋ฎ์ ์ฃผ์์ ์์นํ๋ ์ ์ฅ ๋ฐฉ์
- ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋จ
- ๊ฐ์ฅ ๋ฎ์ ์ฃผ์์ MSB๊ฐ ์ ์ฅ๋๋ฏ๋ก, offset=0์ธ Byte๋ฅผ ๋ณด๋ฉด ์์/์์๋ฅผ ๋ฐ๋ก ํ์ ํ ์ ์๋ค.
- MSB๊ฐ ๊ฐ์ฅ ๋์ ์ฃผ์์ ์์นํ๋ ๋ฐฉ์
- ๋ง์ดํฌ๋กํ๋ก์ธ์์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
- ๊ฐ์ฅ ๋ฎ์ ์ฃผ์์ ๋ถํธ๊ฐ์ด ์๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ค๊ธฐ ๋๋ฌธ์, ๋ฐ๋ก ์ฐ์ฐ์ ํ ์ ์๋ค.
- ํ๋ก์ธ์ค
- ์ ์: ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค
- ํน์ง
- ์ด์์ฒด์ ๋ก๋ถํฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ๋๋ค. (๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์์ ์ ๊ทผ X)
- ํ๋ก์ธ์ค๋ค์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํต์ ํ๊ธฐ ์ํด IPC๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ํ๋ก์ธ์ค๋ ์ต์ 1๊ฐ์ ์ฐ๋ ๋(๋ฉ์ธ ์ฐ๋ ๋)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์ฐ๋ ๋
- ์ ์: ํ๋ก์ธ์ค ๋ด์์ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํด ๋์ํ๋ ์คํ ๋จ์
- ํน์ง
- ์ฐ๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ Stack๋ง ๋ฐ๋ก ํ ๋น ๋ฐ๊ณ , Code, Data, Heap ์์ญ์ ๊ณต์ ํ๋ค.(Stack์ ๋ถ๋ฆฌํ ์ด์ ๋ Stack์๋ ํจ์์ ํธ์ถ ์ ๋ณด๊ฐ ์ ์ฅ๋๋๋ฐ, Stack์ ๊ณต์ ํ๋ฉด LIFO ๊ตฌ์กฐ์ ์ํด ์คํ ์์๊ฐ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ ์คํ ํ๋ฆ์ ์ํํ๊ฒ ๋ง๋ค๊ธฐ ์ํจ์ด๋ค.)
- ์ฐ๋ ๋๋ ํ๋ก์ธ์ค์ ์์์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฐ๋ ๋์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํ ์ ์๋ค.
- ํ๋ก์ธ์ค ๋ด์ ์กด์ฌํ๋ฉฐ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ์ฌ ์คํ๋๋ค.
๋ฉํฐ ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ค๋ฉด, ๋ค์์ ์ฐ๋ ๋๊ฐ ๊ณต์ ๋ฐ์ดํฐ์ ๋์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ์ ์ํธ๋ฐฐ์ ๋๋ ๋๊ธฐํ ๊ธฐ๋ฒ์ ํตํด ๋์์ฑ ๋ฌธ์ ๋๋ ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
๋ฎคํ ์ค๋ย Locking ๋ฉ์ปค๋์ฆ์ผ๋ก ๋ฝ์ ๊ฑธ์ ์ฐ๋ ๋๋ง์ด ์๊ณ ์์ญ์ ๋๊ฐ๋ ๋ฝ์ ํด์ ํ ์ ์์ต๋๋ค. ํ์ง๋งย ์ธ๋งํฌ์ด๋ย Signaling ๋ฉ์ปค๋์ฆ์ผ๋ก ๋ฝ์ ๊ฑธ์ง ์์ ์ฐ๋ ๋๋ signal์ ์ฌ์ฉํด ๋ฝ์ ํด์ ํ ์ ์์ต๋๋ค. ์ธ๋งํฌ์ด์ ์นด์ดํธ๋ฅผ 1๋ก ์ค์ ํ๋ฉด ๋ฎคํ ์ค์ฒ๋ผ ํ์ฉํ ์ ์์ต๋๋ค.
OOP๋ ํ์ค ์ธ๊ณ๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ฎ๊ฒจ์ ํ์ค ์ธ๊ณ์ ์ฌ๋ฌผ๋ค์ ๊ฐ์ฒด๋ก ๋ณด๊ณ , ๊ทธ ๊ฐ์ฒด๋ก๋ถํฐ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ํน์ง๊ณผ ๊ธฐ๋ฅ์ ๋ฝ์์ ํ๋ก๊ทธ๋๋ฐํ๋ ๊ธฐ๋ฒ์ ๋๋ค. OOP๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ณํ๊ฐ๋ฅ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
- SRP(Single Responsibility Principle, ๋จ์ผ ์ฑ ์ ์์น): ํด๋์ค๋ ๋จ ํ๋์ ๋ชฉ์ ์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ๋ ์ด์ ๋ ๋จ ํ๋์ ์ด์ ์ฌ์ผ ํ๋ค.
- OCP(Open-Closed Principle, ๊ฐ๋ฐฉ ํ์ ์์น): ํด๋์ค๋ ํ์ฅ์๋ ์ด๋ ค ์๊ณ , ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค.
- LSP(Liskov Substitution Principle, ๋ฆฌ์ค์ฝํ ์นํ ์์น): ์์ ํ์ ์ ๊ฐ์ฒด๋ฅผ ํ์ ํ์ ์ผ๋ก ๋ฐ๊พธ์ด๋ ํ๋ก๊ทธ๋จ์ ์ผ๊ด๋๊ฒ ๋์ํด์ผ ํ๋ค.
- ISP(Interface Segregation Principle, ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น): ํด๋ผ์ด์ธํธ๋ ์ด์ฉํ์ง ์๋ ๋ฉ์๋์ ์์กดํ์ง ์๋๋ก ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํด์ผ ํ๋ค.
- DIP(Dependency Inversion Principle, ์์กด ์ญ์ ๋ฒ์น): ํด๋ผ์ด์ธํธ๋ ์ถ์ํ(์ธํฐํ์ด์ค)์ ์์กดํด์ผ ํ๋ฉฐ, ๊ตฌ์ฒดํ(๊ตฌํ๋ ํด๋์ค)์ ์์กดํด์ ์๋๋ค.
- ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ํ๋ ๊ฒ
- ๋งค๊ฐ๋ณ์์ ํ์ ์ด ๋ค๋ฅด๊ฑฐ๋ ๊ฐ์๊ฐ ๋ฌ๋ผ์ผ ํ๋ค.
- return type๊ณผ ์ ๊ทผ ์ ์ด์๋ ์ํฅ์ ์ฃผ์ง ์์.
- ์์์์ ๋์จ ๊ฐ๋
- ์์ ํด๋์ค(๋ถ๋ชจ ํด๋์ค)์ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค(์์ ํด๋์ค)์์ ์ฌ์ ์
- Call By Value
- ์ธ์๋ก ๋ฐ์ ๊ฐ์ ๋ณต์ฌํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- Call By Value์ ์ํด ๋์ด์จ ๊ฐ์ ์ฆ๊ฐ์์ผ๋ ์๋์ ๊ฐ์ด ๋ณด์กด๋๋ค.
- ๊ฐ์ ๋ณต์ฌํ์ฌ ๋๊ธฐ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋๋ค.
- Call By Reference
- ์ธ์๋ก ๋ฐ์ ๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ์ฌ ์ง์ ๊ฐ์ ์ํฅ์ ์ฃผ๋ ๋ฐฉ์
- ๊ฐ์ ๋ณต์ฌํ์ง ์๊ณ ์ง์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์๋์ ๊ฐ์ ์ํฅ์ ์ฃผ๋ ๋ฆฌ์คํฌ๊ฐ ์กด์ฌํ๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ์ฌ์ฉ์๊ฐ ํ๋ฆ์ ๋ํ ์ ์ด๋ฅผ ํ๋ฉฐ ํ์ํ ์ํฉ์ ๊ฐ์ ธ๋ค๊ฐ ์ธ ์ ์๋ค.
- ํ๋ ์์ํฌ: ์ ์ฒด์ ์ธ ํ๋ฆ์ ์์ฒด์ ์ผ๋ก ์ ์ดํ๋ค.
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์คํ ํ๋ฆ์ ๋ํ ์ ์ด ๊ถํ์ด ์ด๋ ์๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.ย ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ถ์ ํ๋ ์์ํฌ์ ๋๊น์ผ๋ก์จ ์ ๊ฒฝ์จ์ผ ํ ๊ฒ์ ์ค์ด๋ ์ ์ด์ ์ญ์ (IoC, Inversion Of Control)์ด ์ ์ฉ๋ฉ๋๋ค.
- ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท์์ ์ฌ์ฉํ๊ณ ์๋ย HTTPํ๋กํ ์ฝ์ ์ฐ๊ฒฐ ์งํฅ์ ์ธ ์ฑ๊ฒฉ์ ๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์๋ก์ด ์ ์์ด ์ด๋ฃจ์ด์ง๋ฉฐ ์ด์ ํ์ดย ์ง์ ํ์ฌ ํ์ด์ง ๊ฐ์ ๊ด๊ณ๊ฐ ์ง์๋์ง ์๋๋ค.ย ์ด์ ๋ฐ๋ผย HTTPํ๋กํ ์ฝ์ ์ด์ฉํ๊ฒ ๋๋ ์น์ฌ์ดํธ์์๋ ์นํ์ด์ง์ ํน์ ๋ฐฉ๋ฌธ์๊ฐ ๋จธ๋ฌด๋ฅด๊ณ ์๋ ๋์์ ๊ทธ ๋ฐฉ๋ฌธย ์์ ์ํ๋ฅผ ์ง์์ํค๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ ์ด์ฉํ๋ค.
- ํน์ ์น์ฌ์ดํธ์์ ์ฌ์ฉ์๊ฐ ๋จธ๋ฌด๋ฅด๋ ๊ธฐ๊ฐ ๋๋ ํ ๋ช ์ ์ฌ์ฉ์์ ํ๋ฒ์ ๋ฐฉ๋ฌธ์ ์๋ฏธํ๋ค.
- Session์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ย Server์ ์ ์ฅ๋๋ค.
- ์น ๋ธ๋ผ์ฐ์ ์ ์บ์์ ์ ์ฅ๋์ด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๊ฑฐ๋ ์๋ฒ์์ ์ญ์ ์ ์ฌ๋ผ์ง๋ค.
- Cookie์ ๋นํด ๋ณด์์ฑ์ด ์ข๋ค.
- ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์งํ ์ ์๋ค๋ย HTTP์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ์ ์๋ ๋ฐฉ๋ฒ
- ์ธํฐ๋ท ์น ์ฌ์ดํธ์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ๋จ๊ฒจ ์ฌ์ฉ์์ ์น ์ฌ์ดํธ ์ฌ์ด๋ฅผ ๋งค๊ฐํด ์ฃผ๋ ์ ๋ณด์ด๋ค.
- Cookie๋ ์ธํฐ๋ท ์ฌ์ฉ์๊ฐ ํน์ ์น์๋ฒ์ ์ ์ํ ๋,ย ์์ฑ๋๋ ๊ฐ์ธ ์์ด๋์ ๋น๋ฐ๋ฒํธ,ย ๋ฐฉ๋ฌธํ ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ๋ด์ ์์ ํ์ผ๋ก์จ, Server๊ฐ ์๋ย Client์ ํ ์คํธย ํ์ผ๋ก ์ ์ฅ๋์ด ๋ค์์ ํด๋น ์น์๋ฒ๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ ์น์๋ฒ์์๋ ๊ทธ๊ฐ ๋๊ตฌ์ธ์ง ์ด๋ค ์ ๋ณด๋ฅผ ์ฃผ๋ก ์ฐพ์๋์ง ๋ฑ์ ํ์ ํ ๋ ์ฌ์ฉ๋๋ค.
- Cookie๋ย Client PC์ ์ ์ฅ๋๋ ์ ๋ณด๊ธฐ ๋๋ฌธ์,ย ๋ค๋ฅธ ์ฌ์ฉ์์ ์ํด์ ์์๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.(์ ๋ณด ์ ์ถ ๊ฐ๋ฅ, Session๋ณด๋ค ๋ณด์์ฑ์ด ๋ฎ์ ์ด์ )
- ๋ชจ๋ ์ ๋ณด๋ฅผย Session์ ์ ์ฅํ๋ฉดย Server์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๊ฒ ๋์ดย Server์ ๋ฌด๋ฆฌ๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
- public -ย ์ ๊ทผ ์ ํ์ด ์๋ค.(๊ฐ์ ํ๋ก์ ํธ ๋ด์ ์ด๋์๋ ์ฌ์ฉ๊ฐ๋ฅ)
- protected -ย ๊ฐ์ ํจํค์ง ๋ด,ย ๋ค๋ฅธ ํจํค์ง์์ ์์๋ฐ์ ์์ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ
- default -ย ๊ฐ์ ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- private -ย ๊ฐ์ ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
- List : ์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํ๋ฉฐ ์ธ๋ฑ์ค๋ก ์กฐํํ๋ค.
- Set : ์์๋ฅผ ์ ์งํ์ง ์๋ ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
- Map : ํค์ ๋ฒจ๋ฅ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ์งํฉ์ผ๋ก ์์๋ ์ ์ง๋์งย ์์ผ๋ฉฐ ํค๋ ์ค๋ณต์ ํ์ฉํ์ง ์์ง๋ง ๋ฒจ๋ฅ๊ฐ์ ์ค๋ณต์ ํ์ฉํ๋ค.
์ฐ๋ฆฌ๋ Spring์ดย ํธ๋์ญ์ ์ ์ด๋ป๊ฒ ์งํ์ํฌ์ง ๊ฒฐ์ ํ๋๋ก ์ ํ ์์ฑ์ ์ ๋ฌํด์ผ ํ๋๋ฐ, ์ด๋ฅผ ํตํด ์๋ก์ด ํธ๋์ญ์ ์ ์์ํ ์ง ๋๋ ๊ธฐ์กด์ ํธ๋์ญ์ ์ ์ฐธ์ฌํ ์ง ๋ฑ์ ๊ฒฐ์ ํ๊ฒ ๋๋ค.
Spring์ด ์ง์ํ๋ ์ ํ ์์ฑ์ ๋ค์์ 7๊ฐ์ง๊ฐ ์๋ค.
- REQUIRED
- SUPPORTS
- MANDATORY
- REQUIRES_NEW
- NOT_SUPPORTED
- NEVER
- NESTED
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค์ย ๋์์ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์งํ๋ ๋ ํธ๋์ญ์ ์ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ฌํ ํธ๋์ญ์ ์๊ฒ ์ด๋ป๊ฒ ๋ ธ์ถํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. ์คํ๋ง์ ๋ค์์ 5๊ฐ์ง ๊ฒฉ๋ฆฌ์์ค ์์ฑ์ ์ง์ํ๋ค.
- DEFAULT
- READ_UNCOMMITTED
- READ_COMMITTED
- REPEATABLE_READ
- SERIALIZABLE