Servlet์์ 1:1mapping์ ๋ณด์ํด์ ์๋์ผ๋ก ๋ถ๊ธฐ, ์๋์ผ๋ก ์์ฑํ๋ฉด ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฌ๊ธฐ์ ์ด Controller๋ ๋ค์ํ ์์ฒญ์ ์ ์ดํ์ฌ J2EE Pattern: frontController ๋ผ๊ณ ํฉ๋๋ค.
Business Layer์์ handler mapper๋ฅผ ์๊ณ ๊ทธ๋ฆฌ์ง ์์๋๋ฐ ์์๋์ด์ผ ํฉ๋๋ค.
Handler Mapping : dispatcherSevlet์ผ๋ก ๋ฐ์ ์์ฒญ -> Controller ๋ณด๋-> ์์ฒญ์ด ์ด๋ค ๋งคํ์ธ์ง ๊ทธ ๋ฐฉ๋ฒ์ ์ ํด์ฃผ๋ ํด๋์ค ์ ๋๋ค.
Spring 3๋ ์๋์๋ฆฌ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
1. DI/IoC
- Bean Spring ์ฌ์ฉํ ์ ์๋๋ก ๋ฑ๋ก
- Life-Cycle์ ๋ฐ๋ผ๊ฐ์ง ์๊ณ ์ฌ์ฉ
POJO๋ฅผ Spring beanํน์ @Annotation์ ํตํด์ ๋ฑ๋ก
- DI : Bean๋ฑ๋ก, ์ปจํ ์ด๋๊ฐ ์๋๋ ๋ ๋ฏธ๋ฆฌ ๋ฑ๋กํ๋ค.
- IoC : ์คํ๋ง ์ปจํ ์ด๋๊ฐ ํ์๋ก ํ ๋ ์๋์ผ๋ก ๊ฐ์ ธ์์ ์ฃผ์ ํ๋ค.
2. AOP
์ด๋ ํ ๋ก์ง์ ๊ธฐ์ค์ผ๋ก ํต์ฌ์ด ๋๋ ๊ธฐ๋ฅ๊ณผ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๊ตฌ๋ถํ๋ค.
CC (Core Concern ์ฃผ๊ด์ฌ์ฌ) | CCC(Cross-Cutting Concern ๊ด์ ์ธ ๊ด์ฌ์ฌ) |
Bean, Process, Mybatis ... | Log, Exception, Transaction ... |
ํธ๋์ญ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ์ํด ์ํํ๋ ์์ ์ ๋จ์๋ฅผ ๋ปํ๋ค.
AOP์ฉ์ด
Aspect CCC๋ฅผ ๋ชจ๋ํ
Target Aspect๊ฐ ์๋๋๋ ๊ณณ
Advice ์ด๋ค ์์ ์ ํด์ผ ํ ์ง ์ ํํ๋๊ฒ, ๋ถ๊ฐ๊ธฐ๋ฅ์ ๋ด์ ๊ตฌํ์ฒด
JoinPoint ๋ผ์ด๋ค ์ ์๋ ์์น
PointCut ๊ตฌ์ฒด์ ์ธ ์คํ๋ ์์
- aspect(๋ชจ๋ํ)
-target(๋์ ํด๋์ค, ๋งค์๋)
-advice(์คํ๋๋ ๋ฉ์๋)
-joinpoint()
-pointcut()
AOP ์คํ ์์
Before , After, AfterReturning, AfterThrowing, Around
3. OCP
๊ฐ์ฒด์งํฅ ์ค๊ณ์ 5์์น์ด๋ผ ํ๋ SOLED์์
OCP(Open Closed Principle) ๊ฐ๋ฐฉ ํ์ ์์น์ด๋ค.
์ํํธ์จ์ด ์์๋ ํฉ์ฅ์๋ ์ด๋ ค ์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค.
ํด๋์ค, ๋ชจ๋ ํจ์ ๋ฑ์ ํ์ฅ์ ๋ํด ์ด๋ ค ์์ด์ผ ํ์ง๋ง ๋ณ๊ฒฝ์ ๋ํด์๋ ๋ซํ ์์ด์ผ ํ๋ค.
- interface๋ฅผ ํตํด ๊ตฌํํ๋ ๋ฐฉ์
'๐ WEB > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Mapper Interface? (0) | 2020.07.23 |
---|---|
Spring ์ด์ ๋ฆฌ 3.Annotation (0) | 2020.06.13 |
Spring ์ด์ ๋ฆฌ 1.Spring์ ๊ธฐ๋ฐ์ด ๋๋ Servlet (0) | 2020.06.06 |
์ด๋ฏธ์ง ์ ๋ก๋ (Spring+Ajax) (1) | 2020.05.16 |
์ธ์ ์ ์ฅ์ (0) | 2020.04.29 |