๐ ๊ณ์ธต์ ์ํคํ ์ฒ
Architectural Styles
์ด๊ฑฐ๋ ํด๋์ค๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์ => ์ธํฐํ์ด์ค๋ ์ ๋ ์ด์ด์
๋ง์ดํฌ๋ก ์ปค๋์ ๊ณตํต๋ถ๋ถ์ ๊ธธ๊ฒ ๋๊ณ ์๋ ์ธํฐ๋ ์๋ฒ๋ ์์ ์ต์คํฐ๋ ์๋ฒ๊ฐ ์ฌ๊ธฐ๋ฅผ ๊ฑฐ์ณ์ ํต์ ํ๋ค. ์ต์คํฐ๋์ a1,a2, โ a6์ด๋ ๊ฒ ์์๋ ์ด๋ํฐ๋ฅผ ํตํด ์ธํฐํ์ด์ค๋ฅผ ๋ง์ถ์ ์๋ค.
- ๋ง๊ทธ๋๋ก ์ปค๋์ด ์๋๋ฐ ์ปค๋์ด ํฌ์ง์๋ค๋๊ฑฐ
- OCP ํ์ฉ, ํ๋ฌ๊ทธ์ค ํ๋ ์ด
- ํ ์์คํ ์ด ํ๋ฌ๊ทธ์ธ๋ ์์คํ ์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ด ์กฐ๊ธ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- Family of Applications / ๋ฒ์ ์ ์ฌ์ฉ => ๋ฒ์ ์ ๊ฒฝ์ฐ์๋ 1.0 2.0 3.0 ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅํ ์ปค๋์ด ์๋๊ฒฝ์ฐ ์ด๋ํฐ๋ก ํด๊ฒฐ => ์ด๋ผโฆ์คํ๋ง ๋์คํจ์ฒ
- ์ด๋ํฐ๊ฐ ํต์ฌ์ธ๋ฏ? Adaptive System style์ด๋ผ๊ณ ํจ
ierarchical Software Architecture, ํ๊ตญ์ด๋ก ๊ณ์ธต์ ์ํํธ์จ์ด ์ํคํ ์ฒ๋ผ ๋ถ๋ฆฌ๋ ์ํคํ ์ฒ์ ๋ํด ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
Hierarchical Architecture๋ ์ ์ฒด ์์คํ ์ ๊ณ์ธต ๊ตฌ์กฐ์ ์ผ๋ก ๋๋์ด์ ธ ์์ผ๋ฉฐ ๊ณ์ธต์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ๋ ๋ฒจ์ ์๋ธ์์คํ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. Hierarchical Software Architecture๋ ๋งค์ฐ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ์ด์์ฒด์ , ๋คํธ์ํฌ ํ๋กํ ์ฝ ๊ณ์ธต๋ค, ์ธํฐํ๋ฆฌํฐ, ๊ทธ ์ธ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋๊ณ ์๋๋ฐ์, ์ด ์ํคํ ์ฒ์ ๊ฐ์ฅ ๋ํ์ ์ธ ๊ตฌ์กฐ๋ก์ ์ฌ๋ฌ๋ถ๋ค์ด ๊ฐ์ฅ ๋ง์ด ์ ํด๋ณธ ์ํคํ ์ฒ์ ํ ์๊ฐ ์๋๋ก์ด๋ ์ผ ๊ฒ ๊ฐ์ต๋๋ค.
์ ์๋๋ก์ด๋ ์ํคํ ์ฒ๋ฅผ ๋ณด์๋ฉด Applications, Application Framework, Libraries, Linux Kernel ๊น์ง ์ฌ๋ฌ ๊ฐ์ ์๋ธ์์คํ ์ด ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ํ๋์ ์์คํ ์ ์ด๋ฃจ๊ณ ์์ต๋๋ค. ๊ฐ ์๋ธ์์คํ ์ ์์ ์์คํ ์ด ํ์ ์์คํ ์ ํธ์ถํ๋ ๊ตฌ์กฐ, ์ฆ Call-and-Return ์ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค. ์๋ก ๋ค๋ฅธ ๊ณ์ธต ๋ ๋ฒจ๋ค์ Method Invocation์ ์ํด ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ํ์ ๋ ๋ฒจ์ ์๋ธ์์คํ ์ด ์์ ๋ ๋ฒจ ์๋ธ์์คํ ์๊ฒ ํ์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ด๋ฐ Hierarchical Software Architecture ์คํ์ผ์ ๊ฐ์ง๋ ์ฌ๋ฌ ์ํคํ ์ฒ๋ค์ด ์กด์ฌํฉ๋๋ค. ๊ฐ ์ํคํ ์ฒ์ ๋ํด์๋ ๋ค๋ฅธ ๊ธ๋ก ๋ค๋ฃฐ ์์ ์ด๋ ์ฐธ๊ณ ๋ฐ๋๋๋ค.
-
Master - Slave Architecture
-
Layered Architecture
-
Virtual Machine Architecture
-
Plug-in Architecture
-
Micro-kernel Architecture
Hierarchical Software Architecture๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์ ๋ช ๊ฐ์ง ์ฃผ์ํด์ผ ํ ๋ถ๋ถ๋ค์ด ์์ต๋๋ค. ๋จผ์ , ๊ณ์ธต์ ๋๋๋ ๊ธฐ์ค์ด ๋ช ํํด์ผ ํฉ๋๋ค. ๊ฐ ๊ณ์ธต์ ํ์ ๊ณ์ธต๋ง์ ์์กดํด์ผ ํ๋ฉฐ, ๊ฐ ๊ณ์ธต์ ๋ช ํํ๊ณ ํน์ ์ ์ธ ํ์คํฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค. ๋ค์์ผ๋ก ๊ณ์ธต์ ๋ช ๊ฐ๋ก ๋๋์ง๋ ๊ณ ๋ฏผํด์ผ ํฉ๋๋ค. ๋ฌด์กฐ๊ฑด ๋ง๊ฑฐ๋ ๋ฌด์กฐ๊ฑด ์ ๋ค๊ณ ์ข์ ๊ฒ์ด ์๋ ๋ณธ์ธ์ด ์ค๊ณํ๋ ์์คํ ์ ๊ฐ์ฅ ์ ํฉํ ๊ณ์ธต์ ์๋ฅผ ์ ์ํด์ผํฉ๋๋ค. ์ธ ๋ฒ์งธ๋ก ๊ฐ ๊ณ์ธต์ ๋ํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํด์ผ ํฉ๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ์ ์ ์ํด์ผ ๊ณ์ธต์ ์์ ์ฌํญ์ด ๋ฐ์ํ์ฌ๋ ๋ค๋ฅธ ๊ณ์ธต์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ์ ์๋์ด์ผ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๊ฐ ๊ณ์ธต์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๊ณ ๋ฏผํด์ผ ํฉ๋๋ค. ํด๋น ์๋ฌ๋ฅผ ๊ทธ ๊ณ์ธต์์ ์ฒ๋ฆฌํ ์ง ์๋๋ฉด, ์์ ๊ณ์ธต์๊ฒ ์ ๋ฌํ ์ง์ ๋ํ ๋ถ๋ถ๋ ์ ์ ์ํด์ผํฉ๋๋ค.
Hierarchical Software Architecture์ ๋ํด ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ถ์ฒ: https://sonseungha.tistory.com/515?category=534435 [Developerโs Delight]