Integration module implementation
์ฐ๊ณ๋ชจ๋๊ตฌํ ์ ๋ฆฌ (์ถ์ ๋น๋: ์ค)
์ฃผ์ ๋น์ถ ํค์๋
- EAI
- ESB
- ์ธํฐํ์ด์ค ๊ตฌํ ๊ฒ์ฆ ๋๊ตฌ
์ฐ๊ณ๊ธฐ์ ํ์ค
EAI (Enterprise Application Integration)
- ์ ์ฌ์ ์ ํ๋ฆฌ์ผ์ด์ ํตํฉ ํ๊ฒฝ์ผ๋ก, ์๋ก ๋ค๋ฅธ ๊ธฐ์ข ์ ์์คํ ๊ฐ ์ฐ๋์ ๊ฐ๋ฅํ๊ฒ ํจ
- ์๋ก ๋ค๋ฅธ ์ฝ๋๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ์์คํ ๊ฐ ํต์ ์ด ๊ฐ๋ฅ
์ฐ๊ณ ๋ฐฉ์์ ์ข ๋ฅ
Point-to-Point
- ๋ฏธ๋ค์จ์ด ์์ด ์ง์ ์ฐ๊ฒฐํ๋ ๋ฐฉ์
- ์์คํ ๋ณ๊ฒฝ์ด๋ ์ฌ์ฌ์ฉ์ด ์ด๋ ค์
Hub & Spoke (EAI)
- ๋จ์ผ ์ ์ ์์คํ (ํ๋ธ)๋ฅผ ํตํ ์ค์ ์ง์คํ ์ฐ๊ณ๋ฐฉ์
- ํ์ฅ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ์ง๋ง ํ๋ธ ์ฅ์ ์ ์ ์ฒด ์์คํ ์ ๋ฌธ์ ๋ฐ์
Message Bus (ESB: Enterprise Service Bus)
- ๋ฏธ๋ค์จ์ด(Bus)๋ฅผ ๋๊ณ ํ์ฅ์ฑ๊ณผ ์ฒ๋ฆฌ๋์ด ํฅ์๋๋ ๋ฐฉ์
- ๋ณ๋์ ์ด๋ํฐ(์์ ๋ชจ๋, ์ก์ ๋ชจ๋)๊ฐ ํ์์์
- ๊ด๋ฆฌ ๋ฐ ๋ณด์์ด ์ฉ์ดํ๋ฉฐ ์๋น์ค ์ค์ฌ์ ํตํฉ์ ์งํฅ
- ์น์๋น์ค ๊ธฐ๋ฐ ํต์ ์ผ๋ก ํ์คํ๊ฐ ์ด๋ ค์
- ์ง์ ์ฐ๊ณ์ ๋นํด ์ฑ๋ฅ์ด ๋ฎ์ ํธ
EAI/ESB (Hybrid)
- ํ๋ธ&์คํฌํฌ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ทธ๋ฃน(EAI)๊ณผ ESB๋ฅผ ์ฐ๊ฒฐ
- ์ค์ ํ๋ธ ๊ณ ์ฅ ์์๋ ์ํฅ์ด ์ต์ํ๋จ
์ฐ๊ณ ๋ชจ๋ ๊ตฌํ ํ๊ฒฝ ๊ตฌ์ถ ์ ์ฐจ
EAI/ESB ์๋ฃจ์ ๋์ ์
- DB ์ค์น ๋ฐ ์ฌ์ฉ์ ๊ณ์ ์์ฑ
- ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์ฐ๊ณ ํ ์ด๋ธ, ๋ก๊ทธ, ์ค๋ฅ ๋ก๊ทธ, ๋งคํ ํ ์ด๋ธ ์์ฑ
- ์ฐ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ ๊ตฌํ
- ์ก์ ์ธก: DB ๋ฐ์ดํฐ ์ถ์ถ, ์์ ์ธก ์ฝ๋๋ก ๋ณํ
- ์์ ์ธก: ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฆ, DB ๋ฐ์ดํฐ ๋ฐ์
- DBMS์ ํธ๋ฆฌ๊ฑฐ ๊ฐ์ฒด ํ์ฉ
- ํธ๋ฆฌ๊ฑฐ ๊ฐ์ฒด๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ ํธ์ถ์ ์ ํ์
- ์ฐ๊ณ ๋ฐ์ดํฐ ๋ณด์ ์ ์ฉ
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ด์ฉ ๊ตฌํ
- ์ก์์ ๋ด๋ถ ์์คํ : ํธ๋ฆฌ๊ฑฐ ํ์ฉ
์น ์๋น์ค ๋ฐฉ์ ๋์ ์
- ์ ์ก ์ด๋ ฅ ๊ธฐ๋ก ๋ฐ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ ๋ณ๋ ๊ตฌํ ํ์
- XML ํ์์ ์ฐ๊ณ ๋ฐ์ดํฐ ์์ฑ ํ๋ก๊ทธ๋จ ๊ตฌํ
- SOAP, RESTful ๋ฑ์ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ก์์
- WSDL ๋ช ์ธ์ ์์ฑ ๋ฐ ์์คํ ๊ฐ ๊ณต์
- DB ์ฐ๊ณ ๋ฐ์ดํฐ ๋ฐ์ ์๋น์ค ๊ตฌํ
์ฐ๊ณ ํ ์คํธ
ํ ์คํธ ๋จ๊ณ
- ๋จ์ํ ์คํธ(์ ๋ฌด๋จ์)
- ์ฐ๊ณํ ์คํธ
- ํตํฉํ ์คํธ(์์คํ ํตํฉ ์)
์ฐ๊ณ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค ์์ฑ ๋ฐ ๋ช ์ธํ
- ํ ์คํธ ๋ฌธํญ ์์ฑ ๋ฐ ์ ์ ์ฌ๋ถ ํ์ธ
- ๊ฐ๋ณ ๋ฐ์ดํฐ ์ ํจ๊ฐ ์ฒดํฌ ์ผ์ด์ค ์์ฑ
- ์ฐ๊ด ๊ด๊ณ ์ฒดํฌ ์ผ์ด์ค ์์ฑ
- ๋ฏธ๋ฑ๋ก ๋ฐ์ดํฐ ์์
- ๋ณ๊ฒฝ
- ๋ถ์ฌ ์ํฉ ๋ฑ
ํ ์คํธ ๊ฒฐ๊ณผ ๊ฒ์ฆ ๋ฐฉ๋ฒ
- ํ ์คํธ ๊ฒฐ๊ณผ์ ๊ธฐ๋ ๊ฒฐ๊ณผ์ ์ผ์น ์ฌ๋ถ ํ์ธ
- DB ํ ์ด๋ธ ๊ฑด์ ์นด์ดํธ
- ํ์ผ ๋ด์ฉ ํ์ธ
- ํ์ผ ์์ฑ ์ฌ๋ถ์ ํฌ๊ธฐ ํ์ธ
- ๋ชจ๋ํฐ๋ง ํ๋ฉด ๋ด์ฉ ํ์ธ
- ๋ก๊ทธ ํ์ธ
์ง์๋๊ตฌ
- xUnit: Junit, CppUnit ๋ฑ ๋ค์ํ ์ธ์ด ์ง์
- STAF: ๋ค์ํ ํ๊ฒฝ ์ง์
- FitNesse: ์น ๊ธฐ๋ฐ ํ ์คํธ
- NTAF: STAF์ FitNesse ํตํฉ
- Selenium: ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ง์
- watir: Ruby ์ธ์ด ๊ธฐ๋ฐ
์ธํฐํ์ด์ค ์์ธ ์ฒ๋ฆฌ
์ฃผ์ ๊ฐ๋
- ์ค๋ฅ: ์์คํ ์์ ๋ฌธ์
- ์์ธ: ์๊ธฐ์น ๋ชปํ ์ํฉ (์: ๋ก๊ทธ์ธ ์ ์๋ชป๋ ์ธ์ฆ์ ๋ณด ์ ๋ ฅ)
HTTP status code
- 401: ์ธ์ฆ์คํจ
- 403: ์ ๊ทผ ๊ฑฐ๋ถ ๋ฌธ์ ์์ฒญ
- 404: ํ์ด์ง ์์
- 503: ์๋ฒ ๊ณผ๋ถํ
์์ ์์คํ ์ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ์
- ์ก์ ๋ฐ์ดํฐ ์์ธ: ํน์๋ฌธ์ ๋์น, ์ ํฉ์ฑ ์ฒดํฌ
- ํ๋ก๊ทธ๋จ ์์ฒด ์์ธ: ๋ ผ๋ฆฌ์ ๊ฒฐํจ ์์ , ํ ์คํธ, ์ก์ ์ธก ํ๋ก๊ทธ๋จ ์์
- ์๋ฒ ์์ธ: ์๋ฒ ์์ ํ (๋๊ธฐ ํ ํ์ฉ)
์ฐ๊ณ ์์คํ ๊ตฌํ ๋ชจ๋ํฐ๋ง
์ธํฐํ์ด์ค ์ค๋ฅ ํ์ธ ๋ฐฉ๋ฒ
- ์ค๋ฅ ์๋ ๋ฉ์์ง: ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋จผ์ ์ธ์ง
- Email ์ ์ก: ์ฌ์ฉ์ ์ธ์ง ํ๋ฅ ๋ฎ์
- SMS: ์ฌ์ฉ์/๊ด๋ฆฌ์ ์ฆ์ ์ธ์ง ๊ฐ๋ฅ (๋น์ฉ๋ฐ์)
- ์ค๋ฅ ๋ก๊ทธ: ๊ตฌ์ฒด์ ํ์ธ ๊ฐ๋ฅ (์ ๋ฌธ์ฑ ํ์)
- ์ค๋ฅ ํ ์ด๋ธ: ์ค๋ฅ ๋ด์ญ ๊ด๋ฆฌ ์ฉ์ด
- ์ค๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ
APM (Application Performance Management)
- ๊ธฐ๋ฅ ๋ฐ ์ฑ๋ฅ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ์ฃผ์ ๊ด๋ฆฌ ์งํ
- ์ฑ๋ฅ
- ์ฒ๋ฆฌ๋
- ๊ฐ์ฉ์ฑ
- ๋ฌด๊ฒฐ์ฑ
- ์ ๋ขฐ์ฑ