๐ (์ฐธ๊ณ ) ์ธํ๋ผ์ ๊ดํด ์ ์ ๋ฆฌ๋ ๋ธ๋ก๊ทธ
๐ (์ฐธ๊ณ ) ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ IT์ธํ๋ผ ๊ฐ์ 1ํธ
1. ๋ฏธ๋ค์จ์ด (Middleware) ๋ ?
์ด์ ์ฒด์ (OS)์ ์์ฉ ์ํํธ์จ์ด์ ์ค๊ฐ์์ ์กฐ์ ๊ณผ ์ค๊ฐ์ ์ญํ ์ ์ํํ๋ ์ํํธ์จ์ด. ๋คํธ์ํฌ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ์ ์๋ ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ์ด๋ค ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค.
- ์จ๊ฒจ์ง ๋ณํ ๊ณ์ธต์ผ๋ก์จ ๊ธฐ๋ฅํจ (๋ฐ์ดํฐ์ DB๊ฐ ํ์ดํ ์ฌ์ด๋ฅผ ์ฝ๊ฒ ํต๊ณผํ ์ ์๋๋ก ์ฐ๊ฒฐํ๊ธฐ ๋ฐฐ๊ด ์ด๋ผ๊ณ ๋ ํจ)
- 3๊ณ์ธต ํด๋ผ์ด์ธํธ/์๋ฒ ๊ตฌ์กฐ์์ ๋ฏธ๋ค์จ์ด๊ฐ ์กด์ฌ
- ์น ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ฝ์ด์ฌ ์ ์๊ฒ ์ค๊ฐ์ ๋ฏธ๋ค์จ์ด๊ฐ ์กด์ฌํ๊ฒ ๋๋ค.
2. 3-Tier ๊ตฌ์กฐ
-
๊ธฐ์กด ์น ์ดํ๋ฆฌ์ผ์ด์
์ด์ ํ๊ฒฝ์์๋ ์ฌ์ฉ์์ ์์ฒญ์ด ํ๊ณณ์ ์๋ฒ์์ ํตํฉ ์ ๊ณต๋์์ -> ๋ฐ๋ผ์ ๊ด๋ฆฌ ํฌ์ธํธ๊ฐ 1๊ฐ์ (1-Tier ๊ตฌ์กฐ)
-
๊ด๋ฆฌ ํฌ์ธํธ๊ฐ 1๊ฐ์ผ ๋์ ๋จ์ ์ด ์กด์ฌ
- ํด๋น ํตํฉ ์๋ฒ์ ๋ฌธ์ ๋ฐ์์ ์๋น์ค ์ฅ์ ๋ฐ์, ๋ถ์ ๋ํ ์ฝ์ง ์์.
-
๊ทธ๋์ DBMS ํ๊ฒฝ์ ๋ถ๋ฆฌํจ -> ์์ ์ฑ ์ฆ๊ฐ
- ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์์ฒญ๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ฒ๋ฆฌ๋ ์์ง ํตํฉ๋ ์๋น์ค์์ ์ ๊ณต๋จ
-
๋์์ ์ฌ์ฉ์์ ํธ์ถ์ด ์์ด๋ฉด ํตํฉ๋ ์๋น์ค(์ฌ์ฉ์ ์์ฒญ<->๋น์ฆ๋์ค ๋ก์ง)์์๋ ๋ถํ๋ฅผ ๋ฐ์ผ๋ฏ๋ก 3๊ฐ์ ๊ด๋ฆฌ ํฌ์ธํธ(3-Tier๊ตฌ์กฐ)๋ก ๋ถ๋ฆฌ ํ๊ฒ๋จ.
- ์ฌ์ฉ์์ ์์ฒญ์ด ์ ์
๋๋ ์๊ฐ ํธ์ถ๋๋ ์๋จ(Front-end)์ ์ ์ ํ์ด์ง(html, css, js, png ๋ฑ)๋ฅผ ์ ์ฉ์ผ๋ก ์ฒ๋ฆฌํ๋ ์๋ฒ
- ๋ก๊ทธ์ธ, ๊ฒ์ ๋ฑ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ์ฒ๋ฆฌํ๋ ๋ท๋จ(Back-end)์ ๋์ ํ์ด์ง(jsp, servlet ๋ฑ)๋ฅผ ์ ์ฉ์ผ๋ก ์ฒ๋ฆฌํ๋ ์๋ฒ
๋ฐ๋ผ์ ๋ฏธ๋ค์จ์ด ๋ด๋น์๋ ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ์์นํ Web Application Server (WAS)๋ฅผ ๊ด๋ฆฌ.
์ถ์ฒ : https://velog.io/@unyoi/
3. ๋ฏธ๋ค์จ์ด์ ํน์ง
- ํ์คํ๋ ์ธํฐํ์ด์ค ์ ๊ณต
- ๋ค์ํ ํ๊ฒฝ ์ง์ ๋ฐ ์ฒด๊ณ๊ฐ ๋ค๋ฅธ ์
๋ฌด์์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํด์ค
- ๋ถ์ฐ๋ ์
๋ฌด ๋์์ฒ๋ฆฌ -> ์ผ๊ด์ฑ ์ ์ง , ๋ถํ์ ๋ถ์ฐ
- ๋ค์ํ ๋ฒค๋์ ํ๋ซํผ์ ๋คํธ์ํฌ ์ฐจ์ด๋ฅผ ์์ํ์ง ์๊ณ ์ํธ ์ ์ํ์ฌ ์ด์ฉ๊ฐ๋ฅ ํ๋๋ก ์กด ํ๋ซํผ์ด ํตํฉ๋จ
- ์กฐ์ ์ฐ์, ์ฌ์ฉ ํธ๋ฆฌ, ์ฌ์ด GUI, ์์ ๋ก์ด ์ ๊ทผ
4. ๋ฏธ๋ค์จ์ด์ ์ข
๋ฅ
๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฏธ๋ค์จ์ด
์ ํ๋ฆฌ์ผ์ด์
์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ์ํํธ์จ์ด
- ODCB
- ๋ง์ดํฌ๋ก์ํํธ์์ ๋ง๋ฌ, ์๋์ฐ ๊ธฐ๋ฐ ํด๋ผ์ด์ธํธ ์๋ฒ ์์คํ
์์ ์ฌ์ฉ๋จ
- ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ๋ฐ ํด์์ DB์ ์ฝ๊ฒ ์ ๊ทผํ๋๋ก api ์ ๊ณต
- IDAPI
- Inprise์์ ๋ง๋ฌ, ํด๋ผ์ด์ธํธ๊ฐ ์๊ฑฐ๋ฆฌ DB์ ์ ๊ทผํ ๋ ์ฉ์ดํ๋๋ก ์ค๊ณ
- RDA/DRDA
- RDA์ DRDA๋ ์ ํ์ด ์๋ ํ์ค์ด๋ค. IBM์ DB์ ์ ํ์ค.
- ๊ฐ๋ฐ์๋ค์๊ฒ DB์ ์ ๊ทผํ๋ ํ์ค ๋ฐฉ์์ ์ ๊ณตํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ํ ํ๋ซํผ ํ๊ฒฝ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ ์ฐ๊ฒฐ์ ์ ๊ณต.
- ๊ฐ์ฒด ์ฐ๊ฒฐ ์ฝ์
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ง์ดํฌ๋ก์ํํธ์ ์ ํ, ํด๋ผ์ด์ธํธ์ ์ ํ๋ฆฌ์ผ์ด์
๋ค์ ๊ฐ์ฒด์งํฅํ์ ๋ฐ๋ผ ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฏธ๋ค์จ์ด์ ์ ์ฉ๋๊ธฐ ์์ํ ๋ํ์ ์ธ ์
- ์์ค(WAS)
- ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(DBMS) ์ฌ์ด์์ ๋์ํ๋ ๋ฏธ๋ค์จ์ด๋ก, ์น ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ค ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ํ๋๋ก ์ง์ํ๋ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์๋ค.
- ์น ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ ์ธ ์ฝํ
์ธ ๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ์ ์กํ๋ ์ญํ ์ ํ๊ณ , ์์ค๋ ํ๋ก๊ทธ๋จ์ ๋์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ์ ์กํ๋ ์ญํ ์ ํ๋ค
๐ ํต์ ๋ฏธ๋ค์จ์ด
ํต์ ๋ฏธ๋ค์จ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ์ ๋ณด ๊ตํ์ ์ ๊ณตํ๋ฉฐ, ํด๋ผ์ด์ธํธ ์๋ฒ ์์คํ
๊ฐ๋ฐ์ ์์ด ํ์คํ ํ๋ก๊ทธ๋จ ๊ฐ ํต์ ๋ชจ๋ธ์ ์ ๊ณตํ๋ค.
- ์๊ฒฉ ํ๋ก์์ ํธ์ถ (Remote Procedure Call, RPC)
- ํด๋ผ์ด์ธํธ๊ฐ ์๊ฒฉ์์ ๋์ํ๋ ํ๋ก์์ ๋ฅผ ํธ์ถํ๋ ์์คํ
. ๋๊ธฐ ๋๋ ๋น๋๊ธฐ ์ง์.
- ๋ฉ์์ง ์งํฅ ๋ฏธ๋ค์จ์ด (Message Oriented Middleware, MOM)
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ ๋ฉ์์ง๋ ์ ์ฅ์์ ์์ฒญํ ๋ ์ ์ฅํ๋ฉด์, ๋ค๋ฅธ ์
๋ฌด๋ฅผ ์ง์ํ ์ ์๋๋ก ํ๋ ๋น๋๊ธฐ์ ๋ฏธ๋ค์จ์ด.
์ฐธ๊ณ ์๋ฃ (Reference)
https://velog.io/@unyoi/%EC%9D%B8%ED%94%84%EB%9D%BC-%EB%BF%8C%EC%8B%9C%EA%B8%B01-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%EA%B0%9C%EB%85%90%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
https://ko.wikipedia.org/wiki/%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4
http://wiki.hash.kr/index.php/%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4