-
๐ฅ๏ธ Computer science/: Computer architecture ๐ป
[CS] ํจ์ ํธ์ถ๋ฐฉ๋ฒ (์ ์ ๋งํน vs ๋์ ๋งํน vs RPC)
2023. 12. 8.
ํจ์ ํธ์ถ ๋ฐฉ๋ฒ
์ ์ ๋งํน (Static Linking)
- ์คํ ํ์ผ ์์ฑ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ์ฌ ์์ฑํจ
- ํ๋ก๊ทธ๋จ ํฌ๊ธฐ๊ฐ ํฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ด ์ข์ง ์์
- ๋์ ๋งํน ๋ฐฉ์ ๋๋น, ๋์ ๋งํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ๋ณด๋ค ๋น ๋ฅด๋ค. ๋ชจ๋ ์ฝ๋๋ ํ๋์ ์คํ ๋ชจ๋์ ๋ด๊ธฐ๋ฏ๋ก ๋ถ์ผ์น์ ๋ํ ๊ฑฑ์ ์ ํ์ง ์์๋ ๋๋ค.
- ex) ์์ ์ด ์์ฑํ ํ๋ก๊ทธ๋จ์์ A๋ผ๋ ์ธ๋ถ ํจ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, A๋ผ๋ ์ธ๋ถ ํจ์์ ๋ํ ์ ๋ณด๋ฅผ ์์ ์ด ์์ฑํ ํ๋ก๊ทธ๋จ์ ์คํํ์ผ์ ๋ง๋ค ๋ ๋ณต์ฌํด์จ๋ค.
๋์ ๋งํน (Dynamic Linking)
- ์คํ ํ์ผ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋๋ฅผ ํฌํจํ์ง ์๊ณ , ํด๋น ๋ชจ๋์ ์ฃผ์๋ง์ ๊ฐ์ง๊ณ ์๋ค๊ฐ ๋ฐํ์์ ์คํ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์์น๋ ๋ ํด๋น ๋ชจ๋ ์ฃผ์๋ก ๊ฐ์ ํ์ํ ๊ฒ์ ๋ค๊ณ ์ค๋ ๋ฐฉ์
- ์ ์ ๋งํน ๋ฐฉ์ ๋๋น, ์คํ ํ์ผ ํฌ๊ธฐ๊ฐ ํจ์ฌ ์๊ณ , ์คํ์์๋ ์๋์ ์ผ๋ก ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํจ. ๋๋ฆฌ๊ณ ์ค๋ฒํค๋๊ฐ ์กด์ฌํ๋ค๋ ๋จ์ ์ด ์์.
- ํ์ํ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉด ์คํ ๋ถ๊ฐํจ
- ๋ถ์ผ์น์ ๋ํ ๋ฌธ์
- ex) ์ฌ๋ฌ๊ฐ์ ํ๋ก๊ทธ๋จ์์ ๋์ผํ A๋ผ๋ ์ธ๋ถ ํจ์๋ฅผ ์ด์ฉํ๋ค๊ณ ํด๋ A ๋ชจ๋์ ์ฃผ์ ํ๋๋ง ์์ผ๋ฉด ๋๋ค. ๊ฐ๊ฐ์ ์คํ ๊ฐ๋ฅํ ๋ชฉ์ ํ์ผ์์๋ A๋ฅผ ๋ณต์ฌํด์ A ๊ทธ ์์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์๋๋ผ A๊ฐ ์๋ ๊ณณ์ ์ฃผ์๋ง ๊ฐ๋ฆฌํค๊ณ ์๋ค.
์๊ฒฉ ํจ์ ํธ์ถ(RPC: Remote Procedure Call)
- ๋ณ๋์ ์๊ฒฉ ์ ์ด๋ฅผ ์ํ ์ฝ๋ฉ ์์ด ๋ค๋ฅธ ์ฃผ์ ๊ณต๊ฐ์์ ํจ์๋ ํ๋ก์์ ๋ฅผ ์คํํ ์ ์๊ฒ ํ๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ๊ธฐ์
- RPC๋ฅผ ์ด์ฉํ๋ฉด ํ๋ก๊ทธ๋๋จธ๋ ํจ์ ๋๋ ํ๋ก์์ ๊ฐ ์คํ ํ๋ก๊ทธ๋จ์ด ์กด์ฌํ๋ ๋ก์ปฌ ์์น์ ์๋ , ์๊ฒฉ ์์น์ ์๋ ์๊ด์์ด ๋์ผํ ๊ธฐ๋ฅ์ ์ํํ ์ ์์์ ์๋ฏธ
- ๋ถ์ฐ ๋คํธ์ํฌ ํ๊ฒฝ์์ ์๊ฒฉ์ง ์ปดํจํฐ์ ํจ์๋ฅผ ํธ์ถํจ
- ์ปดํจํฐ๋ฅผ ์ฐ๊ฒฐํ๋ RPC protocol์ด ํ์ํจ
- ์ผ๋ฐ์ ์ธ ํ๋ก์ธ์ค๋ ํจ์๋ง ํธ์ถํด์ ์คํํ์ง๋ง, ๋ฉ์์ง์ ์ํํด์ ์์ ๊ณผ ๋ค๋ฅธ ์ฃผ์ ๊ณต๊ฐ์์ ๋์ํ๋ ํ๋ก์ธ์ค์ ํจ์๋ฅผ ์คํํ ์ ์๊ฒ ํด์ค ⇒ MSA ์๋น์ค๋ฅผ ๋ง๋ค ๋, ์ธ์ด๋ ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ,๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์ดํ๋ฆฌ์ผ์ด์ ์ด ์์ ์ ์ปดํจํฐ์์ ํจ์๋ฅผ ํธ์ถํ๋๋ก ํ๋ ๊ฒฝํ์ ์ ๊ณตํ๋ stub๊ณผ ์ด๋ฅผ ์ง์ํ๋ IDL(Interface Definition Language)๊ฐ ํ์ํจ
์ฐธ๊ณ
RPC๋?
๋๊ธ