728x90
728x90
ํ์ต ๋ชฉํ
1. ์น ์ดํ๋ฆฌ์ผ์ด์ ์ํคํ ์ณ ๊ฐ๋ ์ดํด
2. ์คํ๋ง ํ๋ ์์ํฌ ํน์ง ์ดํด
์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ ์ํคํ ์ฒ
ํด๋ผ์ด์ธํธ์ DB ์ฌ์ด๋ฅผ ์๋ ๊ฐ ์ธต๋ณ๋ก ๋ด๋นํ๋ ์ญํ ์ ์ํํ์ฌ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ
1. ํ๋ ์ ํ ์ด์ ์ธต (Presentation Layer)
์ญํ
- UI์ ์ปจํธ๋กค๋ฌ ์ ๊ณต
- UI ์ ๋ ฅ์ ๋ฐ์ ๋ก์ง์ ํธ์ถ → ๊ฒฐ๊ณผ๋ฅผ UI๋ก ๋ณํํ๋ ์์
๋ชจ๋ธ 1 ๋ฐฉ์
- JSP๋ง ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ฑฐ๋ Java Bean์ ํฌํจํ์ฌ ๊ฐ๋ฐํ๋ ๋ฐฉ์
- ๋ทฐ์ ๋น์ฆ๋์ค ๋ก์ง์ด ํผ์ฌ์ธ์ด ๋ณต์กํด ์ ์ง๋ณด์ ์ด๋ ค์
๋ชจ๋ธ 2 ๋ฐฉ์
- ๋ชจ๋ธ (Model) : ๋ทฐ์ ํ์ํ ๋น์ฆ๋์ค ์์ญ ๋ก์ง ์ฒ๋ฆฌ
- ๋ทฐ (View) : ๋น์ฆ๋์ค ์์ญ์ ๋ํ ๊ฒฐ๊ณผ ํ๋ฉด ๋ด๋น
- ์ปจํธ๋กค๋ฌ (Controller) : ์ฌ์ฉ์ ์
๋ ฅ ์ฒ๋ฆฌ, ํ๋ฉด ํ๋ฆ ์ ์ด ๋ด๋น๋ชจ๋ธ 1 ๋ฐฉ์
- JSP๋ง ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ฑฐ๋ Java Bean์ ํฌํจํ์ฌ ๊ฐ๋ฐํ๋ ๋ฐฉ์
- ๋ทฐ์ ๋น์ฆ๋์ค ๋ก์ง์ด ํผ์ฌ์ธ์ด ๋ณต์กํด ์ ์ง๋ณด์ ์ด๋ ค์
2. ๋น์ฆ๋์ค ๋ก์ง ์ธต (Business Logic Layer)
์ญํ
- ์ ์ค์ผ์ด์ค๋ก ํํ๋๋ ํน์ ์ ๋ฌด ์ฒ๋ฆฌ๋ฅผ ์ํ ์๋น์ค ๋ฐ ๋๋ฉ์ธ
ํธ๋์ญ์ ์คํฌ๋ฆฝํธ ๋ฐฉ์
- ๋น์ฆ๋์ค ๋ก์ง์ด ์ ์ ์ผ๋ฐ์ ์ธ ์ ์ถ๋ ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ผ ๊ฒฝ์ฐ, ๋น์ฆ๋์ค ๋ก์ง์ ์๋น์ค ํด๋์ค์ ํฌํจ
- ๋๋ฉ์ธ์ ๊ฐ๋ฅํ ํ ๋ก์ง์ ํฌํจํ์ง ์๊ณ ๋จ์ํ ๊ฐ๋ง ์ ์ฅ
- VO (Value Object)
- DTO (Data Transfer Object)
๋๋ฉ์ธ ๋ชจ๋ธ
- ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ๊ฐ๋
- ๋ฐ์ดํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณ ์, ์ ๋ฌด ๋๋ฉ์ธ ๋ณ๋ก ๋ถ๋ฆฌํด ์ค๊ณ
- ์์คํ ์๊ตฌ๋ฅผ ๊ธฐ์ ํ๊ธฐ ์ํด ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ๊ฐ ๋๋ฉ์ธ ๋ชจ๋ธ ์ ๊ณต
- ๋๊ท๋ชจ ์์คํ ์ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง ๋ฐฉ์ง ๋์
- ๋๋ฉ์ธ ํจํค์ง์ ๋๋ฉ์ธ ๋ก์ง์ ๋๋ ๋ฐฉ์
ํธ๋์ญ์ ๊ด๋ฆฌ
- ํธ๋์ญ์
์ ACID ํน์ฑ ์ค '์์์ฑ', '๋
๋ฆฝ์ฑ'์ ๊ด๋ฆฌ
- ์์์ฑ : ํธ๋์ญ์ ๋ด ๋ชจ๋ ์ฒ๋ฆฌ๋ All or Nothing ์คํ
- ๋ ๋ฆฝ์ฑ : ๋ณํํด์ ์คํ๋๋ ํธ๋์ญ์ ๊ฐ ๊ฐ์ญ x → ๋ ๋ฆฝ์
ํธ๋์ญ์ ๊ฒฝ๊ณ
- ํธ๋์ญ์ ๊ฒฝ๊ณ๋ ํ๋ ์ ํ ์ด์ ๊ณผ ๋น์ฆ๋์ค ๋ก์ง ์ธต ์ฌ์ด์ ์กด์ฌํ๋ ๊ฒ์ด ์ผ๋ฐ์
- ํ๋ ์ ํ ์ด์ ์ธต์ ๊ณต๊ฐ๋ ๋น์ฆ๋์ค ๋ก์ง ์ธต์ ์๋น์ค ํด๋์ค๊ฐ ํธ๋์ญ์ ์์๊ณผ ๋
๋ช ์์ ํธ๋์ญ์
- ํธ๋์ญ์ ์์๊ณผ Commit, Rollback๊ณผ ๊ฐ์ RDB์ ๋ํ ํธ๋์ญ์ ๊ด๋ฆฌ๋ฅผ ์์ค ์ฝ๋๋ก ๋ช ์
์ ์ธ์ ํธ๋์ญ์
- ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ์ ์ ํ์ผ ์ ์ธ์ ํตํด ํธ๋์ญ์ ๊ด๋ฆฌ
3. ๋ฐ์ดํฐ ์ก์ธ์ค ์ธต (Data Access Layer)
- RDB ์ก์ธ์ค๋ฅผ ๋น์ฆ๋์ค ๋ก์ง์ผ๋ก ์จ๊น
- ORM (O/R ๋งคํ) : ๋น์ฆ๋์ค ๋ก์ง์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์์ ์ทจ๋ํด ๊ฐ์ฒด์ ๋งคํ (๊ฐ์ฒด์งํฅ ๋ถ์์ค๊ผ ๋จ๊ณ์์์ ์ํฐํฐ๋ฅผ ํ ์ด๋ธ๋ก ์์ฑํ ํํ)
DB ์ก์ธ์ค ํ๋ ์์ํฌ ์ข ๋ฅ
- ํ์ด๋ฒ๋ค์ดํธ(Hybernate) : ๋ํ์ ORM
- ๋ง์ด๋ฐํฐ์ค(MyBatis) : SQL๋ฌธ ์ฌ์ฉ ์ ์
๋ฐ์ดํฐ ์ก์ธ์ค ์ธต ์ค๊ณ ์ง์นจ
- ์ปค๋ฅ์ ํ ์ฌ์ฉ
- RDB ์ ํ์ด ๋ฐ๋์ด๋ ๊ตฌํ์ ์ํฅ X
- ์ด์ฉํ๋ RDB์ ์์กด์ ์ธ SQL๋ฌธ์ ๊ธฐ์ X
๋ถํํ
- ๊ฐ๋ฐ ํจ์จ์ฑ๊ณผ ์ ์ฐ์ฑ ํฅ์์ ์ํด ํฐ์ด or ๋ ์ด์ด๋ฅผ ํตํด ๋ถํํ
- ํฐ์ด > ๋ ์ด์ด > ํจํค์ง ≥ ์ปดํฌ๋ํธ
- ์ฐ๊ฒฐํด์ผ ํ ๋ถํ ๊ฐ ์ธํฐํ์ด์ค ํ์!
728x90
๋ฐ์ํ