์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์ฑ์ฉํ์ ํ
- di
- 2024-08-20
- Python
- url
- Dialog
- OpenAPI
- IOC
- menutab
- fontstyle
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- URN
- AndroidStudio
- Factory Method Pattern
- uri
- FACTORY
- Kotlin
- ํ๋ IT&E
- reflection
- OOP
- udp
- tcp
- datepicker
- http method
- 2024-08-21
- swagger
- Android Studio
- ์ฝ๋์
- ์ด๋ ธํ ์ด์
- ๊ธฐ์ด100์
dingdong coding
Monolithic Architecture, Micro Service Architecture ๋ณธ๋ฌธ
Monolithic Architecture, Micro Service Architecture
๐ถ ๊ฐ๋ฐ๊ฐ๋ฐ ๐พ 2022. 6. 27. 13:09Monolithic Architecture, Micro Service Architecture (MSA) ์ ๋ํด ์์๋ณด๊ธฐ ์ ๋จผ์ ๋ ์ํคํ ์ณ๋ฅผ ๋น๊ตํ๋ ๊ทธ๋ฆผ์ ์ดํด๋ด ์๋ค.
** ์ผ์ชฝ์ ๋ชจ๋๋ฆฌ์(Monolithic), **์ค๋ฅธ์ชฝ์ ๋ง์ดํฌ๋ก ์๋น์ค(Micro Service)
๋ณด๋ค์ถ์ด Monolithic์ ํ๋์ Project๋ก ํตํฉ๋์ด ๊ฐ๋ฐ๋๋, MSA๋ ๋ชจ๋๋ณ๋ก ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ ์ํคํ ์ณ์ ํน์ง๊ณผ ์ฅ๋จ์ ์ ์์๋ด ์๋ค.
Monolithic Architecture
๊ธฐ์กด์ ์ฌ์ฉํ๋ ์ ํต์ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ ์์คํ , ์ํํธ์จ์ด์ ๊ตฌ์ฑ์์๊ฐ ํ ํ๋ก์ ํธ์ ํตํฉ๋์ด ์๋ ๊ตฌ์กฐ์ ๋๋ค.
1 Project : 1 Application์ผ๋ก ๊ตฌ์ฑ๋์ด ๋ณดํต ๋์ผํ ๊ฐ๋ฐ ํด์ ์ด์ฉํด ๊ฐ๋ฐํ๊ณ , ๋ฐฐํฌ์ ํ ์คํธ๋ ํ๋์ Application๋ง ์ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ๋ฐ ํ๊ฒฝ์ค์ ์ด ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก ์๊ท๋ชจ ํ๋ก์ ํธ์์ ๋ง์ด ์ฐ์ ๋๋ค.
์ฅ์
• Local ํ๊ฒฝ์์ ๊ฐ๋ฐ ํธ๋ฆฌํจ
• ํตํฉ ์๋๋ฆฌ์ค ํ ์คํธ ์งํ ์์
• ๊ฐํธํ ๋ฐฐํฌ
ํ์ง๋ง ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ ๊ฐ์ ์ฅ์ ๋ ๋จ์ ์ผ๋ก ๋ฐ๋๋ ์๊ฐ์ด ์ต๋๋ค.
๋จ์
• ์ฝ๋์ ์์ ๋ฐ ์ถ๊ฐ, ํจ์จ์ ์ธ ์์๊ด๋ฆฌ๊ฐ ์ด๋ ค์
- ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ํ๋์ ์๋น์ค์ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์๊ธฐ ์งธ๋ฌธ์ ์์ ์ ๋ํ ์ํฅ๋ ํ์ ์ด ์ด๋ ค์
• Build ๋ฐ Test ์๊ฐ์ด ๊ธธ์ด์ง
- ์์ ์์ ์๋ ์์คํ ์ ์ฒด๋ฅผ ๋น๋ํด์ผํ๊ณ ํ ์คํธ ์๊ฐ๋ ๊ธธ์ด์ง๋ค.
• scale out, ์์ฃผ ์ ๋ฐ์ดํธ ๋ถ๊ฐ๋ฅ
- Monolithic Architecture์์๋ ์ฌ์ฉ๋์ง ์๋ ๋ค๋ฅธ ๋ชจ๋ ์๋น์ค๊ฐ Scale-out ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ถ Scale-out ์ด๋ ต
• ๋ถ๋ถ์ ์ฅ์ ๊ฐ ์๋น์ค ์ ์ฒด์ ์ธ ์ฅ์ ๋ก ์ด์ด์ง
- ์ด๋ฒคํธ ์๋น์ค์ ํธ๋ํฝ์ด ๋ชฐ๋ ค ํด๋น ์๋ฒ๊ฐ ์ฃฝ๊ฒ ๋๋ฉด ๋ค๋ฅธ ๋ชจ๋ ์๋น์ค ์ญ์ ๋ง๋น๋๋ ์ํฉ ๋ฐ์ ex) ์๊ฐ์ ์ฒญ..ใ
- ๊ฐ๋ฐ์์ ์๋ชป๋ ์ฝ๋ ๋ฐฐํฌ ๋๋ ๊ฐ์์ค๋ฐ ํธ๋ํฝ ์ฆ๊ฐ๋ก ์ธํด ์ฑ๋ฅ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋, ์๋น์ค ์ ์ฒด ์ฅ์ ๋ก ํ๋๋จ
• ์๋ก์ด ๊ธฐ์ ์ ์ฉ์ด ์ด๋ ต๊ณ ํ Framework ์ ์ธ์ด์ ์ข ์์ ์ด๊ฒ ๋๋ค.
- ๋ง์ฝ Spring Framework๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ blockchain ์ฐ๋ ๋ชจ๋์ ์ถ๊ฐํ ๋ node.js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๊ฐ์ธ์ด๋ค. ๊ทธ๋ฌ๋ java๋ฅผ ์ด์ฉํ์ฌ ํด๋น ๋ชจ๋์ ์ ์ฉํ ์ ๋ฐ์ ์๋ค. ์ ์ ํ๋ framework๊ฐ Spring์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๊ท๋ชจ ํ๋ก์ ํธ์ธ ๊ฒฝ์ฐ์๋ ํน๋ณํ ๋๋ ํ์ ์์ด Monolithic Architecture๊ฐ ํฉ๋ฆฌ์ ์ผ ์ ์์ผ๋, ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ณ ํ ํ๋ก์ ํธ์ ์ํ ๊ฐ๋ฐ์์๊ฐ ๋ง์์ง ์๋ก ์ ๊ฐ์ ๋จ์ ๋ค์ด ๋ถ๊ฐ๋์ด ๋ํ๋ฉ๋๋ค.
๋ํ ์ต๊ทผ ๋ฑ์ฅํ๋ ํ๋ก์ ํธ๋ ๋์ฒด๋ก ๋ง์ ๊ธฐ๋ฅ, ๋๊ท๋ชจ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ Monolithic ์ ํ๊ณ์ ์ ๊ทน๋ณตํ ์ ์๋ MSA๊ฐ ๋ฑ์ฅํ๊ฒ ๋์์ต๋๋ค.
ํน์ ํ ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ์ ์๋น์ค๋ฅผ ์ฌ๋ฆฌ๋ on-promise ์๋ฒ ๊ธฐ๋ฐ์ Monolithic Architecture์์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์ด์ฉํ์ฌ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ MicroService Architecture๋ก ๋ง์ ์๋น์ค๋ค์ด ์ ํ๋๊ณ ์์ต๋๋ค.
Micro Service Architecture , MSA
ํ๋์ ํฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋๋ ๋ง๋๋ ์ํคํ ์ณ๋ก MSA๋ 1๊ฐ์ ์์คํ ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ๊ฐ๋ฅํ ๊ฐ๊ฐ์ ์๋น์ค๋ก ๋ถํ ํฉ๋๋ค. ์ฆ, MSA๋ ๋ ๋ฆฝ๋ ๊ฐ๊ฐ์ ๋ชจ๋์ ์กฐ๋ฆฝํ์ฌ ๋ง๋๋ ํ๋์ ์๋น์ค๋ฅผ ์ํ ์ํคํ ์ณ์ ๋๋ค. ( SRP, Single Responseiblity Principle ๋จ์ผ์ฑ ์์์น ์ค์ )
MSA๋ก ๊ตฌ์ฑ๋ ๊ฐ๊ฐ์ ์๋น์ค๋ API๋ฅผ ํตํด์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ 1๊ฐ์ ํฐ ์๋น์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ฆ, ์๋น์ค์ end-point(์ ๊ทผ์ )์ API ํํ๋ก ์ธ๋ถ์ ๋ ธ์ถํ๊ณ , ์ค์ง์ ์ธ ์ธ๋ถ์ฌํญ์ ๋ชจ๋ ์ถ์ํ ํฉ๋๋ค. ๋ด๋ถ์ ๊ตฌํ๋ก์ง, ์ํคํ ์ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ง ์ ์ง ์ฒด๊ณ์ ๊ฐ์ ๊ธฐ์ ์ ์ธ ์ฌํญ๋ค์ ์๋น์ค API์ ์ํด ์ฒ ์ ํ๊ฒ ๊ฐ๋ ค์ง๋๋ค.
์ฅ์
• ์ผ๋ถ ์๋น์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ฌ๋ ์ ์ฒด ์๋น์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
- ๊ฐ๊ฐ์ ์๋น์ค๊ฐ ๋ชจ๋ํ ๋์ด ์์ด ๊ฐ๊ฐ ๊ฐ๋ณ ์๋น์ค๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๊ณ , ์ ์ง๋ณด์๋ ์ฝ๊ฒ ํ ์ ์๋๋ก ์ค๊ณ๋์ด ์๋ค.
• ๊ฐ๊ฐ์ ์๋น์ค๋ค์ ์๋ก ๋ค๋ฅธ ์ธ์ด์ ํ๋ ์์ํฌ๋ก ๊ตฌ์ฑ๋ ์ ์๋ค.
- ํ ๋จ์๋ก ์ ์ ํ ์์ค์์ ๊ธฐ์ ์คํ์ ๋ค๋ฅด๊ฒ ๊ฐ์ ธ๊ฐ ์ ์์ต๋๋ค.
• Scale - out ๊ฐ๋ฅํ์ฌ ์๋น์ค์ ํ์ฅ์ด ์ฉ์ดํ๋ค
- ์๋น์ค ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ๊ฐ๊ฐ ์๋น์ค์ ๋ถํ์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก scale-out์ด ๊ฐ๋ฅํ๋ค. ๋ฉ๋ชจ๋ฆฌ, CPU ์ ์ผ๋ก ์๋น๋ถ๋ถ ์ด๋์ด ๋๋ค.
๋จ์
• ์๋น์ค๊ฐ ๋ถ๋ฆฌ๋์ด ์์ด, ํ ์คํ ์ด๋ ํธ๋์ญ์ ์ฒ๋ฆฌ ๋ฑ์ด ์ด๋ ต๋ค.
- ๊ฐ๋ฐํ๊ฒฝ๊ณผ ์ค์ ์ด์ํ๊ฒฝ์ ๋์ผํ๊ฒ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ด ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ํตํฉํ ์คํธ๊ฐ ์ด๋ ต์ต๋๋ค.
- ๋น์ฆ๋์ค์ ๋ํ DB๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋น์ค๋ ๊ฐ๊ธฐ ๋ค๋ฅด๊ณ , ์๋น์ค์ ์ฐ๊ฒฐ์ ์ํด์๋ ํต์ ์ด ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ํธ๋์ญ์ ์ ์ ์งํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๋ค.
• API Gateway, ์๋น์ค ๊ฐ์ API๋ก ํต์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ํ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
- ๊ฐ ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋ฒ๋ก ๋ถ๋ฆฌ ๋ฐฐํฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฒ URL์ด ๋ค๋ฅผ ์๋ฐ์ ์์ต๋๋ค.
- ์ด ๋ API Gateway๋ API ์๋ฒ ์ ๋จ์์ ๋ชจ๋ API ์๋ฒ๋ค์ End-Point๋ฅผ ๋จ์ผํํ์ฌ ๋ฌถ์ด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
• ์๋น์ค ๊ฐ์ ํธ์ถ์ด ์ฐ์์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊น ๋ฐ ์๋ฌ ํธ๋ ์ด์ฑ์ด ์ด๋ ต๋ค.
์ด์ฒ๋ผ MSA๋ ์๋น์ค๊ฐ ๋ชจ๋ ๋ถ์ฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ด๋ถ ์์คํ ์ ํต์ ์ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ์ผํ ์ง, ํต์ ์ฅ์ ์ ์๋ฒ์ ๋ถํ๋ฑ์ด ์์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํธ๋์ญ์ ์ ์ ์งํ ์ง ๊ฒฐ์ ํ๋ ๋ฑ ๋ชจ๋๋ฆฌ์์ ๋นํด ์๋์ ์ผ๋ก ๋ง์ด ๋ณต์กํฉ๋๋ค.
ํ์ต์ ๋ง์ ๋์์ด ๋ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ต๋๋ค. ๐
์ฐธ์กฐ ๋ฐ ์ถ์ฒ
[MSA] Monolithic Architecture VS Micro Service Architecture
'๐Web & Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Web, Network ] ๊ด๋ จ ์ฉ์ด ์ ๋ฆฌ ( ๊ฐ์ธ ํ์ต์ฉ ) (0) | 2022.07.13 |
---|---|
[ OS ] ํ๋ก์ธ์ค์ ์ค๋ ๋ Process, Thread (0) | 2022.07.12 |
RESTful API (0) | 2022.06.15 |
HTTP Method (0) | 2022.04.09 |
HTTP (0) | 2022.03.27 |