- ํ๋ก์ ํธ ๊ฐ์
- ๋๋ฉ์ธ ๋ฐ ์ค๊ณ๋ฌธ์
- ์๋น์ค ์์นดํ ์ฒ
- ํต์ฌ๊ธฐ๋ฅ
- ํธ๋ฌ๋ธ์ํ
- ๋ฐฐ๋๋ฏผํด ๋ํธ์ธ๋ค์ด ์ ๊ธฐ์ ๋ชจ์ ๊ณผ ์ผํ์ฑ ๋ชจ์ ์ผ๋ก ๋ฐฐ๋๋ฏผํด์ ์น ์ ์๋๋ก ๊ด๋ฆฌํด์ฃผ๋ ์๋น์ค
- ์์น๊ธฐ๋ฐ ์ฒด์ก๊ด, ๋ฒ๊ฐ, ํด๋ฝ ์กฐํ๊ธฐ๋ฅ ์ ๊ณต
- ์ฌ์ฅ๋๋ค์ ์ฒด์ก๊ด์ ๋ฑ๋กํ๊ณ ์ฝํธ ์์ฝ์ ๋ฐ๊ณ , ์ ์ ๋ค์ ์ฌ์ค ์ฒด์ก๊ด ์์ฝ๊ฐ๋ฅ
- ์ ์ ๋ค๊ฐ ํ๊ฐ๋ฅผ ํตํด ์ค๋ ฅ ๋ฐ ๋งค๋์ ์ ํ๊ฐ ๊ธฐ๋ฅ ์ ๊ณต
์ฌ์ง | ์ด๋ฆ | ๋ด๋น ๋๋ฉ์ธ | ๋ธ๋ก๊ทธ ๋งํฌ | GitHub ๋งํฌ |
---|---|---|---|---|
๊น์ฑ์ฃผ | ๋ฒ๊ฐ, ์ฐธ์ฌ์ | ๋ธ๋ก๊ทธ | GitHub | |
๋จํํ | ์๋ฆผ, ๋ชจ์, ๋ชจ์๋ฉค๋ฒ, ๋๊ธ, ๋๋๊ธ |
๋ธ๋ก๊ทธ | GitHub | |
์ ์์ง | ์ ์ ๋ฆฌ๋ทฐ, ์ข์์, ๋ชจ์ ๊ฒ์๊ธ |
๋ธ๋ก๊ทธ | GitHub | |
์ค์งํ | ๋ชจ์์ผ์ , ์์ฝ | ๋ธ๋ก๊ทธ | GitHub | |
๊ฐ๋์ค | ์ ์ , ์ฒด์ ๊ด, ์ฝํธ, ์ฝํธ์๊ฐ |
๋ธ๋ก๊ทธ | GitHub |
- ๊นํ๋ธ main ๋ธ๋์น์ ์ฝ๋๋ฅผ ์ฌ๋ฆฌ๋ฉด workflow ํ์ผ์ ํตํด ์๋์ผ๋ก build๊ฐ ๋๊ณ , ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑ
- ๋ง๋ ๋์ปค ์ด๋ฏธ๋ฅผ ECR โlatestโ๋ผ๋ ์ด๋ฏธ์ง ํ ๊ทธ๋ฅผ ๋ถ์ฌ ํธ์
- ECS(fargate)๋ workflow์์ ์ง์ ํ task definition์ ๋ฐ๋ผ์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ pull ํด์ ๋ฐฐํฌ
- ์ ์ ํ์๊ฐ์ ์์ ์์ฑ๋๋ ์ด๋ฏธ์ง๋ S3 ๋ฒ์ผ์์, ๋ฉ์ธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค (mySQL) ๊ด๋ฆฌ๋ RDS ์์, ๊ทธ๋ฆฌ๊ณ ๋ถ์ฐ๋ฝ๊ณผ ์บ์ฑ์์ ์ฌ์ฉํ๋ redis๋ ๋ณ๋์ EC2์์ ๊ด๋ฆฌ
- Amazon ECR vs Docker Hub
- Amazon ECR
- ์ฅ์ : AWS IAM๊ณผ ํตํฉ๋์ด AWS ๋ด ๋ณด์ ๊ด๋ฆฌ๊ฐ ๊ฐํธํ๋ฉฐ, ๋ฆฌํฌ์งํ ๋ฆฌ ์ ์ฑ ์ ํตํด ์ด๋ฏธ์ง ์ ๊ทผ์ ์ ์ดํ ์ ์์. AWS ์๋น์ค์์ ์ฐ๋์ด ์ฌ์.
- ๋จ์ : AWS์ ์ข ์์ ์ด๋ฉฐ, AWS ์ธ ๋ค๋ฅธ ํ๊ฒฝ์์์ ์ฌ์ฉ์ด ์ ํ์ ์ผ ์ ์์.
- Docker Hub
- ์ฅ์ : ํน์ ํด๋ผ์ฐ๋ ์ ๊ณต์์ ์ข ์๋์ง ์๊ณ , ๋ฉํฐ ํด๋ผ์ฐ๋ ๋ฐ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ์ ์ฐํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ. Docker ๊ณ์ ์ผ๋ก ๋ค์ํ CI/CD ๋๊ตฌ์ ์ ํธํ๋จ (์: CircleCI, TravisCI).
- ๋จ์ : ๋ณ๋์ Docker ์ ์ ์ธ์ฆ์ด ํ์ํ๋ฉฐ, ๋ฌด๋ฃ ํ๋์ ์ ํ๋ private์ ์ฅ์ ๋ฐ ์์ฒญ ์ ํ์ด ์์ด ๋น์ฉ์ด ์ถ๊ฐ๋ ์ ์์.
- Amazon ECR
- ECS vs. Kubernetes
- ECS: AWS์ ์ต์ ํ๋์ด ์ค์ ๊ณผ ๊ด๋ฆฌ๊ฐ ๋น๊ต์ ์ฌ์. AWS ๋ด ์๋น์ค์ ํตํฉ์ด ์ข๊ณ ํธ๋ํฝ์์ ๋ฐ๋ฅธ ์๋ ํ์ฅ ์ง์.
- Kubernetes: ํด๋ผ์ฐ๋(AWS)์ ๋ ๋ฆฝ์ ์ด๊ณ ํ์ฅ์ฑ์ด ์ข๊ณ , ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด๋ ์ปจํ ์ด๋ ๊ด๋ฆฌ๋ฅผ ์ ๊ณต. ์ด๊ธฐ ์ค์ ๊ณผ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ ์ ์์.
- Elastic Load Balancing Algorithm: Round Robin ์๊ณ ๋ฆฌ์ฆ
- ์๋ฒ๊ฐ์ ์ฑ๋ฅ์ด ์ ์ฌํ๊ณ ์ฒ๋ฆฌํ๋ ์์ ๋ค์ด ๊ฐ๋จํ๋ฏ๋ก __์์๋๋ก ๋์๊ฐ๋ฉฐ ์์ __์ ๋๋์ด์ฃผ๋ ๋ผ์ด๋๋ก๋น ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ.
- Jenkins vs GitHub Actions
- Jenkins
- ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ฉ์ด.
- ๋ณต์กํ CI/CD ์ํฌํ๋ก์ ๋ค์ํ ์ธ๋ถ ๋๊ตฌ ํตํฉ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฉ์ด.
- GitHub Actions
- GitHub๋ฅผ ์ฃผ์ ์ฝ๋ ์ ์ฅ์๋ก ์ฌ์ฉํ๋ฉฐ, CI/CD ์ค์ ์ ๊ฐ๋จํ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฉ์ด.
- ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ํฌํ๋ก๋ฅผ ์ ํธํ๋ฉฐ, ๋ณ๋์ ์๋ฒ ์ ์ง๋ณด์๋ฅผ ํ ํ์๊ฐ ์๋ค.
- Jenkins
-
์๊ท๋ชจ ํ๋ก์ ํธ์ธ ๊ฒ๊ณผ AWS์ Github์ ๋ฉ์ธ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๊ณ ๋ คํ์ฌ CI/CD๋ก๋ Github Actions, ์๋น์ค ์ํคํ ์ฒ ๊ด๋ จ ํค์ ๋ชจ๋ AWS์์ ์ฌ์ฉ
-
[์ฌ์ฉ๊ธฐ์ ] MySQL์ ์ต์ ๊ฒฝ๊ณ ์ฌ๊ฐํ์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํ๋ R-Tree ์๋ฃ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ๊ณต๊ฐ์ธ๋ฑ์ค ์ฌ์ฉ
-
[๋์ ์ด์ ]
-
double๊ฐ์ผ๋ก ์ขํ๋ฅผ ๋ฐ๊ณ ๊ณ์ฐํ๊ฒ๋๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ์๋ํด ๋ณต์กํ ์์์ ๊ณ์ฐ
-
๊ฑฐ๋ฆฌ๊ณ์ฐ์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ๋ฏธ์ ์ฉ ์ฑ๋ฅ์ ํ ๋ฐ์
-
[์์น/๊ฒฐ๊ณผ]
-
์๋ต์๋ 567ms โ 157ms (260% ํฅ์)
-
๋ถํ๋ ์ฆ๊ฐ ์ 10953ms โ 165ms (6500% ํฅ์)
-
[์ฌ์ฉ๊ธฐ์ ] Elastic Search ์ nori ํํ์ ๋ถ์ ํ๋ฌ๊ทธ์ธ
-
[๋์ ์ด์ ] ๋ฒ๊ฐ ์ ๋ชฉ ๋ฐ ์ฃผ์๋ก ์ ์ ๊ฐ ๊ฒ์์ ๋ ๋น ๋ฅธ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด
-
[๋์ ๋ฐฉ์]
elastic search์ ํจ์จ์ ๊ทน๋ํ ํ๊ธฐ ์ํด index ํํฐ๋ฅผ ์ฌ๋ฌ๊ฒ ์ ์ฉ์์ผฐ๋ค. ๊ฐํ์ฌ์ ๋ถ์ฌ๋ฅผ ์ ์ธ ์ํค๊ณ , ๋ฒ๊ฐ๋ค ์ ๋ชฉ์์ ์๋ฏธ๊ฐ ์๋ โ๋ฒ๊ฐโ ๋ฐ ์ ์ฌ์ด๋ค์ stopwords๋ก ๋ฑ๋ก ์์ผฐ๋ค. ๋ํ nori_tokenizer๊ฐ ๋จ์ด๋ก ์บ์นํ์ง ๋ชปํ โ๋ฏผํดโ ๊ณผ โ๋ฐฐ๋ฏผโ์ด๋ผ๋ ๋จ์ด๋ค์ (โ๋ฐฐ๋๋ฏผํดโ์ ์ค์ธ ๋ง) synonym์ผ๋ก ๋ฑ๋กํด ์ฃผ์๋ค. -
[์์น/๊ฒฐ๊ณผ]
'/v1/search' API๊ฐ ๊ธฐ๋ณธ JPQL %like% ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๊ฒ์์ด๊ณ '/v2/search' API๊ฐ Elastic Search๋ฅผ ๋์ ํ ์ฟผ๋ฆฌ์ด๋ค.
Elastic Search์ ๋์ ์ผ๋ก ๊ฒ์ ์ฟผ๋ฆฌ์ ์๋๊ฐ ์ฝ 30% ํฅ์๋์๋ค.
-
[์ฌ์ฉ๊ธฐ์ ] Redis๋ฅผ ์ฌ์ฉํ ๋ถ์ฐ๋ฝ
-
[๋์ ์ด์ ] ๋ถ์ฐ๋ฝ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ด ๊ฒฝ์ ์ํ์ ๋ค์ด๊ฐ๋๊ฒ์ ๋ฐฉ์งํ๊ณ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ ์ง, ์๋ฒ ๋ถํ๋ฅผ ๊ด๋ฆฌ ํ๊ธฐ ์ํด
-
[์์น/๊ฒฐ๊ณผ] ์ค๋ณต ์์ฒญ์ด ๋ฐฉ์ง๋์ด ์ฒ๋ฆฌ์๊ฐ์ด ์ฝ [83% ์ฆ๊ฐ] ํ์์ผ๋ฉฐ, ๋ฆฌ๋ทฐ ์ค๋ณต ์์ฑ์ด ๊ฐ์ํ์์ต๋๋ค.
-
RPS ๋น๊ต
-
[์ฌ์ฉ๊ธฐ์ ] Redis ์บ์ฑ
-
[๋์ ์ด์ ] Redis์ ์บ์ฑ์ ์ฌ์ฉํ์ฌ ๋ถํ์ํ DB ์ ๊ทผ์ ๋ฐฉ์งํ์ฌ ์ฒ๋ฆฌ ์๋๋ฅผ ํฌ๊ฒ ํฅ์ํ๊ณ ์๋ฒ์ ๋ถํ๋ฅผ ์ต์ํ ํ๊ธฐ ์ํด
-
[์์น/๊ฒฐ๊ณผ] ์บ์๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์กฐํ ๊ธฐ๋ฅ์ ์๋ต ์๊ฐ์ด ์ฝ [91% ๊ฐ์] , DB์ ๊ฑธ๋ฆฌ๋ ๋ถํ๊ฐ ๊ฐ์ํ์์ต๋๋ค.
-
์๋ต ์๊ฐ
-
[์ฌ์ฉ๊ธฐ์ ] Redis์ SETNX, EXPIRE ๊ธฐ๋ฅ
-
[๋์ ์ด์ ] ๋ถ์ฐ๋ฝ์ ๊ตฌํํ์ฌ ๋์์ ์ฌ๋ฌ ๋ช ์ ์ฌ๋๋ค์ด ์์ฝํ๋ ค๊ณ ํ ๋ ์ค๋ณต ์์ฝ ์์์ ์ ์ธํ๊ธฐ ์ํด์
-
[์์น/๊ฒฐ๊ณผ] ๋ถ์ฐ๋ฝ์ ์ด์ฉํ์ ๋ ์์ฝ 1๊ฐ๋ง ์์ฑ๋๊ณ (2653๊ฐ ์์ฒญ, 2652๊ฐ ์คํจ, 1๊ฐ ์ฑ๊ณต), ๋ฝ์ ๊ฑธ๊ธฐ ์ ๋ณด๋ค RPS(์ด๋น ์ฒ๋ฆฌํ ์ ์๋ ์์ฒญ ์)๊ฐ 149.8->168.9๋ก ํฅ์๋์๋ค.
-
[์ฌ์ฉ๊ธฐ์ ]
- SSE : ํด๋ผ์ด์ธํธ์๊ฒ ์ค์๊ฐ ๋ฐ ๋จ๋ฐฉํฅ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ํธ์
- Redis Pub/Sub : ๋ฉ์์ง ๋ธ๋ก์ปค ์ญํ ์ ํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ๋ฌ
-
[๋์ ์ด์ ]
- Redis Pub/Sub์ ํตํด ์ฌ๋ฌ ์๋ฒ๊ฐ ๋ฉ์์ง๋ฅผ ์ฝ๊ฒ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๊ณ ์๋ฒ ๊ฐ์ ๋ฉ์์ง ์ ๋ฌ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ ํด๋ผ์ด์ธํธ๊ฐ ์ค์๊ฐ์ผ๋ก ๋ฉ์์ง๋ฅผ ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค.
-
[์์น/๊ฒฐ๊ณผ]
-
[์ฌ์ฉ๊ธฐ์ ] ์ง์ค์ฝ๋ฉ
-
[๋์ ์ด์ ] ์ฌ์ฉ์๊ฐ ํน์ ์ขํ๊ฐ์ ์๊ณ ์ ๋ ฅํ๊ธฐ ์ด๋ ค์(์ฃผ์ ์ ๋ ฅ)
-
[์์น/๊ฒฐ๊ณผ]
[CI/CD] Task Fail Error
[์์ฝ]
- ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ชป์ฐพ๋ ์ค๋ฅ: workflowํ์ผ์์ docker image๋ฅผ ์์ฑํ ๋ ํ ๊ทธ์ด๋ฆ๊ณผ task deifnition์์ ์ฐพ๋ ๋์ปค ์ด๋ฏธ์ง์ ํ ๊ทธ ์ด๋ฆ์ ์ผ์น ์์ผ์ ์ค๋ฅ ํด๊ฒฐ
- task definition์ ๋ชป์ฐพ๋ ์ค๋ฅ: AWS ECS์์ ์ต์ task definition์ ์ง์ ๋ค์ด๋ฐ๋ shell command ๋ฅผ ์ฐพ์์ ํด๊ฒฐ
[์๋ฌ ์ํฉ 1]
workflow ํ์ผ๋ก deploy ๊ณผ์ ์ค ํ
์คํฌ๊ฐ ์์ํ, ๋ชจ๋ fail, ํฅํ ์ฌ์๋ํ โMax attempts exceededโ ์๋ฌ ๋ฐ์
[์์ธ ๋ถ์ 1]
ECR์ ์๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ์คํจ๋ฅผ ํ๊ฒ์ด๋ผ ์๊ฐํ์ฌ, image tag๋ฅผ โlatestโ๋ก ์์ ๋ฐ task definition์์๋ โlatestโ๋ผ๋ image tag๋ก ์ด๋ฏธ์ง๋ฅผ ์ฐพ๋๋ก ์์
๋ํ, ๋ ์ด์ task definition์ ์ง์ ์ ์ธ shell command๋ก ๋ถ๋ฅด์ง ์๊ณ ๋ค์ workflow command๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์์
[์๋ฌ ์ํฉ 2]
์์ ํ, AWS ECS (Elastic Container Service)์์ ์ฌ์ฉํ๋ task definition ํ์ผ์ด ์ง์ ๋ ๊ฒฝ๋ก์ ์๋ค๋ ์๋ฌ๊ฐ ๋ฐ์
[์์ธ ๋ถ์ 2]
task definition์ ์ฐพ์ ์ ์๋๋ก revision๋ฒํธ(18)๋ฅผ command์ ํฌํจ
[์๋ฌ ์ํฉ 3]
revision ๋ฒํธ๊ฐ ํ๊ธฐ๋ task definition๋ ๋ชป์ฐพ๋ ์๋ฌ๋ฐ์
[์์ธ ๋ถ์ 3]
task definition์ ์ฐพ์ ์ ์๋๋ก revision๋ฒํธ(18)๋ฅผ command์ ํฌํจ
๊ณต์ ํํ์ด์ง๋ฅผ ์ฐพ์๋ณด๋ task definition์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ์ฅํ์ง ์์ ๊ฒฝ์ฐ AWS์์ ๋ค์ดํด๊ฐ๋ shell command ๋ฅผ ์ฐ๋ฉด๋๋ค๊ณ ํ์ฌ์, ๋ค์๊ณผ ๊ฐ์ด ์์ .
- name: Download task definition
run: |
aws ecs describe-task-definition --task-definition my-task-definition-family --query taskDefinition > task-definition.json
์ธ๋ฑ์ค ์ ์ฉ๊ณผ์
์ ์ ๋ฆฌ๋ทฐ ๋ถ์ฐ๋ฝ
- [๋ฌธ์ ]
- ๋ฆฌ๋ทฐ ์์ฑ์ ์ค๋ณต๋๋ ๋ฆฌ๋ทฐ ๋ฐ์์ ์ค์ด๊ณ ์ ๋ถ์ฐ๋ฝ์ ์ ์ฉ์ํค๊ณ ์ ํจ
- ๋ถ์ฐ๋ฝ์ ๊ฑธ์์ผ๋, ํ ์คํธ ๊ฒฐ๊ณผ ์ถฉ๋ณต๋๋ ์์ฒญ์ด 2~3๊ฑด ๋ฐ์ํ๋๊ฒ์ ๋ฐ๊ฒฌ
- [๊ณผ์ ]
- [๊ฒฐ๊ณผ]
- ๋ถ์ฐ๋ฝ ์ ์ฉ ํ ์ฒ๋ฆฌ์๊ฐ ์ฑ๋ฅ์ด ์ฝ 83% ์ฆ๊ฐํ์ฌ ์ฑ๋ฅ ๊ทน๋ํ
- DB์ธ๋ฑ์ฑ์ ๋ํด ์ฌ๋์๊ฒ ํ์ตํ๊ณ ์ ์ฉ ํ ์ ์์ด์ ์ข์์ต๋๋ค, Elasticsearch๋ฅผ ์ ์ฉ์์ผ๋ดค์ผ๋ ๊ธฐ์ด์ ์ธ ์์ค์ผ๋ก๋ง ์ ์ฉํด๋ด์ ์์ฌ์ ์ต๋๋ค. ๋ค์๋ฒ์๋ ์กฐ๊ธ Elastcisearch๋ฅผ ๊ณ ๋ํํ์ฌ ๊ฒ์ ๊ธฐ๋ฅ์ ์์ฑ๋๋ฅผ ๋์ฌ๋ณด๊ณ ์ถ์ต๋๋ค.
- CI/CD ๊ด๋ จํ์ฌ MSA ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ๊ฐ์ง ๋ชปํ ๊ฒ ์ด ์์ฝ๋ค. ํ์ดํด๋ฆฌ์ด ์ดํ์ด ๋ค์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋งํผ ์ฌ์ฅ๋์ ์ฒด์ก๊ณผ ๊ด๋ฆฌ, ๋ชจ์๊ด๋ฆฌ, ๋ฒ๊ฐ๊ด๋ฆฌ, ์ ์ ์์ฝ๊ด๋ฆฌ ๋ฑ์ผ๋ก ์๋ฒ๋ฅผ ์ธ๋ถํ ํด์ ๊ด๋ฆฌํ๋ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ ธ์ผ๊ฐ๋ฉด ๋ ์ข์์ ๊ฒ ๊ฐ๋ค.
- ์๋ฆผ ์๋น์ค๋ฅผ ๊ตฌํํ๋ฉด์ SSE์ ๋ฉ์์งํ, Redis Pub/SUb์ ๋ํ ๋ด์ฉ ์ ๋ฆฌ์ ์ ๊ฐ ๊ตฌ์ถํ๋ ค๋ ์๋น์ค์ ํ๋ฆ, ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ์ดํดํ์ง ๋ชปํ๊ธฐ๋ ํ์ผ๋ฉฐ ํธ๋ฌ๋ธ ์ํ ๊ณผ ์ฝ๋ ๋ฆฌํฉํ ๋ง์ด ๋๋ ค์ ์ค์ ์ฝ๋ ์์ฑ ์์์ด ๋ฆ์ด์ก์ต๋๋ค.
- ๊ณํํ๋๊ฒ ๋ณด๋ค ๊ตฌํ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ๊ณ ๋ค์ ํ๊ฒ๋๋ค๋ฉด ๊ณต๋ถํ ๋ด์ฉ๊ณผ ๋ด๊ฐ ๊ตฌํํ๋ ค๋ ์๋น์ค์ ํ๋ฆ๊ณผ ๊ตฌ์กฐ๋ฅผ ์ ์ ๋ฆฌํ๊ณ ์ค์ ๊ตฌํ ์์์ ๋น ๋ฅด๊ฒ ์์ํ์ฌ ์ํ์ฐฉ์ค๋ฅผ ๋๋ ค์ํ์ง ์๊ณ ์ ๊ธฐ๋กํด๋ณด๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ํด๋ณด์ง ๋ชปํ RabbitMQ์ Kafka ์ ์ฉ์ ๋์ ํด๋ณด๊ณ ์ถ์ต๋๋ค.
- Redis๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ์ฐ๋ฝ์ ์ ์ฉํ์๋, ํ๋ก์ ํธ์ ํน์ฑ์ ๋ฌด๊ฑฐ์ด Redisson๋ณด๋ค๋ ๊ฐ๋ณ๊ณ ์ฑ๋ฅ์ด ์ข์ Lettuce๋ฅผ ์ฌ์ฉํ์๋๋ฐ ๊ธฐํ๊ฐ ๋๋ค๋ฉด Redisson์ ํ์ฉํด๋ณด๊ณ ์ถ์ต๋๋ค.
- ๋์์ฑ ์ ์ด๋ฅผ ํ๊ธฐ ์ํด ๋ถ์ฐ๋ฝ์ ์ ์ฉํ๋๋ฐ DB ์กฐํํ ๋ ์บ์๋ฅผ ์ด์ฉํ์ฌ ์ฃผ ์กฐํ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ, ๋ฐ๋ณต์ ์ธ DB ์กฐํ๋ฅผ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ถ์ต๋๋ค.