๐ ์๊ฐ
- ์ด๋ฆ: ๋ฐ์ง์
- ํ๋ ฅ: ๊ฒฝํฌ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ ์กธ์
๊น์ด ํ๊ณ ๋ค๊ณ ์ถ์ ๋ฐ๋ธ์ต์ค ์์ง๋์ด ๋ฐ์ง์์ ๋๋ค.
ํ์ฌ ๋ฐ๋ธ์์คํฐ์ฆ์์ ๋ฐ๋ธ์ต์ค ์์ง๋์ด๋ก์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ฌ๋ฌ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๊ธฐ์ ๋ค์ ํ์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋๊ฐ๊ณ ์์ต๋๋ค.
์ฌ๋ฌ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ ์ค์์๋ ์ฃผ๋ก Istio
์ ArgoCD
, Argo Rollout
์ ์ฃผ๋ก ๋ด๋นํ๊ณ ์์ต๋๋ค.
๊ธฐ์ ์คํ ๋ฐ ๊ด์ฌ์ฌ
- Kubernetes
- Istio
- ArgoCD
- Argo Rollout
- Helm3
- Terraform
- Backend
- Golang
- Java Spring Boot, JPA
- MSA, DDD, CQRS, ๋ฉ์์ง ํ, ์ด๋ฒคํธ ๋๋ฆฌ๋ธ ์ํคํ ์ณ
- TDD
๐ผ ๊ฒฝ๋ ฅ ์ฌํญ
๋ฐ๋ธ์์คํฐ์ฆ ์ธํ๋ผ ํ ๋ฐ๋ธ์ต์ค ์์ง๋์ด (2022.05~)
- Istio, ArgoRollout, ArgoCD, Github Action, Helm์ ์ด์ฉํด Kubernetes์์ ์์ฝ๊ฒ Canary ๋ฐฐํฌํ ์ ์๋ ์ธํ๋ผ, CI/CD๋ฅผ ๊ตฌ์ถ
- ์๋น์ค๋ฉ์ฌ(Istio) ๊ด๋ จ ์
๋ฌด ์ํ
- Istio ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์งํ
- ์ฑ๋ฅ ๋ฐ ๋ชจ๋ํฐ๋ง ๊ฐ์
- Istio๋ฅผ ์ด์ํ๋ฉด์ ์์๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ค ํธ๋ฌ๋ธ์ํ
- ArgoCD ๊ด๋ จ ์
๋ฌด ์ํ
- ArgoCD ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ์งํ, ์๋ก์ด ๊ธฐ๋ฅ ๋์
๋น๊ทผ๋ง์ผ ํ๋ซํผ ํ ์๋ฒ ์์ง๋์ด ์ธํด [2021.12~2022.02]
- ๋ฌธ์ ๋ฐ์ก ํ๋ซํผ์ Golang ์๋ฒ๋ฅผ ๋ด๋น
- ํนํ ๊ธฐ์กด์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ์ ๋ฌด๋ฅผ ์งํ
- ์ผ๋ฐ์ ์ผ๋ก ํ๋ฃจ 400๊ฑด ์ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฐ์ก ์๋ฌ๋ฅผ 95% ์ด์ ํด๊ฒฐ ๋ฐ ๊ฐ์
- ๋ฌธ์ ๋ฐ์ก ์
์ฒด์ ์ฅ์ ๋ฐ ๊ธฐํ ์ฅ์ ๋ค์ด ์ ํ๋์ง ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ค์์์
Circuit breaker
ํจํด์ ์ ์ฉ - ํ๋ฃจ ์ ๋ฐฑ๊ฑด์ฉ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฐ์ก ์
์ฒด์์
keep-alive
๊ด๋ จ ์ด์ ํด๊ฒฐ- Wireshark๋ก TCP ํจํท ๋ถ์ ํ ๋ฌธ์ ์
์ฒด ์ธก
MaxIdleConnectionTimeout
์ ๋ฐํ๋
- Wireshark๋ก TCP ํจํท ๋ถ์ ํ ๋ฌธ์ ์
์ฒด ์ธก
- ๋ฌธ์ ๋ฐ์ก์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์ง ๋ชปํ ์ผ์ด์ค์ ๋ํ ์ฌ์๋ ๋ก์ง ๊ฐ์
๋ฐฐํํก ๊ฐ๋ฐ ๋ฆฌ๋ [2021.03~2021.12]
์งง์ ์์์ ๋ฐํ์ผ๋กํ ๋๊ฒฐ ์๋น์ค ๋ฐฐํํก์์ AWS ์ธํ๋ผ ๊ด๋ฆฌ ๋ฐ Spring boot ์์ฃผ๋ก ์ ์ฒด ๋ฐฑ์๋ ๊ฐ๋ฐ ํ์ต๋๋ค.
TDD
๋ฅผ ๋ฐํ์ผ๋กSpring Boot
RESTful API ์๋ฒ ๊ฐ๋ฐJPA
๋ฅผ ์ด์ฉํ๋ฉฐ ๋ณต์กํ ์ฐธ์กฐ ๊ด๊ณ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ- ์กฐํ ์ ๋งค๋ฒ ํน์ ๊ฐ์ ๊ณ์ฐํ์ง ์๊ณ ๋ฐฐ์น ๋ฐฉ์๋ก ํน์ ๊ฐ์ ์ค๋ ์ท์ ์ ์ฅ
- ๋ฐฐ์น ๋ฐฉ์์ In-Query ๋๋ ํ์น ์กฐ์ธ ์ด์ฉ
- ๋ถํ์ํ Eager Loading ์ ๊ฑฐ
AWS
๋ฅผ ์ด์ฉํ ํด๋ผ์ฐ๋ ์ํคํ ์ณ ์ค๊ณ ๋ฐ ๊ด๋ฆฌ- ํ์ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ต์ํ์ง๋ง ์ด๊ธฐ ์คํํธ์
์ ์ํฉ์ ๋ง์ถฐ
Elastic Beanstalk
๋ฐํ์ ์ํคํ ์ณ ์ค๊ณ.
- ํ์ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ต์ํ์ง๋ง ์ด๊ธฐ ์คํํธ์
์ ์ํฉ์ ๋ง์ถฐ
Jenkins
์Github Action
์ ํตํด ํ ์คํธ/๋น๋/๋ฐฐํฌ๋ฅผ ์๋ํ
Megazone Cloud์์ DevOps ์ธํด [2020.04~2020.08]
terraform
์ ์ด์ฉํด AWS ๊ฐ๋ฐ ์ธํ๋ผ๋ฅผ IaC๋ก ๊ตฌ์ถ ๋ฐ ๊ด๋ฆฌ- terraform์ ํตํด IaC๋ฅผ ์ฒ์ ์ ํ๊ฒ ๋์๊ณ , ์ ์ธ์ ์ธ ์ค์ ๊ณผ ๋ฉฑ๋ฑ์ฑ์ด ๊ฐ์ ธ๋ค์ฃผ๋ ์์ ์ฑ, ์ค์์ฑ์ ๋๋ผ๊ฒ ๋จ.
- ๋จ์ํ ์ง์ฌ์ง ์ํคํ ์ณ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ข ๋ ์ต์ ํํ ์ ์๋ ๋ฐฉ์๋ค์ด๋ ์ค๊ณํ๋ ๋ฒ๋ ๋ฐฐ์๊ฐ ์ ์์์.
Kubernetes
(AWS EKS) ์์์๋ง์ดํฌ๋ก์๋น์ค
๋ค์ ์ปจํ ์ด๋๋ก ๊ด๋ฆฌSpinnaker
,Github Action
,Jenkins
๋ฅผ ํตํ CI/CD ํ์ดํ๋ผ์ธ ์๋ํ- ๋ค์ํ ๊ธฐ์ ์ ์ ํด๋ณด๋ฉด์ ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋ํ ์์ ๊ฐ์ด ์๊ฒผ๋ค.
- ํ์์ ๊ฐ๋ฐ ์ค์ธ ์๋น์ค๋ฅผ Helm chart๋ก ํจํค์ง
- SaaS ํํ๋ก๋ง ์ด์ฉ ๊ฐ๋ฅํ๋ ์๋น์ค๋ฅผ ๊ตฌ์ถํ์ผ๋ก ์ด์ฉํ ์ ์๋๋ก ํจ
- Helm chart๊ฐ ๊พธ์คํ ๊ฐ๋ฐ๋์ด ํ์๋ ์ฌ๋ด์ SaaS๋ Helm์ผ๋ก ๊ด๋ฆฌ๋๊ณ ์๋ ๋ฏํจ.
๐ป ์ฌ์ด๋ ํ๋ก์ ํธ
์ฟ ๋ฎค ํ๋ก์ ํธ ๋ฆฌ๋, ๋ฐ๋ธ์ต์ค ์์ง๋์ด, ๋ฐฑ์๋ ๊ฐ๋ฐ [2020.10~xxxx.xx]
๊ฒฝํฌ๋ํ๊ต ์ปค๋ฎค๋ํฐ ์๋น์ค ์ฟ ๋ฎค ๊ฐ๋ฐ ์ค
- ์ปจํ
์ด๋ ๋จ์์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ณ ์ค๊ณ ๋ฐ ๊ตฌ์ถ
- ํ ํ๋ก์ ํธ์์
Golang
, JavaSpring boot
, PythonDjango
๋ฑ์ ์ธ์ด์ ํ๋ ์์ํฌ๋ฅผ ๋์ ํ๋ฉด์ ๋ค์ํ ๊ฒฝํ์ ํด๋ณผ ์ ์์์
- ํ ํ๋ก์ ํธ์์
- ๋ํ์ ์ฌ์ด๋ ํ๋ก์ ํธ์์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฌ์ฉํ๋ฉด์๋ ๋น์ฉ ์ต์ ํ
ArgoCD
์Github Action
์ ์ด์ฉํ CI/CD- ๋ฐ๋ธ์ต์ค ์ธํด ๋ ๊ฒฝํํ๋
ArgoCD
์Spinnaker
์ค ArgoCD ArgoCD๋ฅผ ์ฌ์ด๋ ํ๋ก์ ํธ์ ๋์ ํ๊ธฐ๋ก ์ ํ- ArgoCD๊ฐ ์ข ๋ IaC๋ก ๊ด๋ฆฌํ๊ธฐ ์ฌ์ ๊ณ , ๊ตฌ์ถํ๊ธฐ๋ ํธํ๋ค. GitOps๋ฅผ ๋ฐํ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๊ธฐ ์์ฃผ ํธํ์.
- Spinnaker์๋ CI์์ ์ฐ๋์ด๋ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ๋ค๋ ๋ง์์ง๋ง ๊ฐ๋ณ๊ฒ Github Action์ผ๋ก CI๋ฅผ ํ๊ณ ์๋ ์ฐ๋ฆฌ์๊ฒ ํ์ ์๋ ๊ธฐ๋ฅ์ด ๋ง์๋ค.
- ๋ฐ๋ธ์ต์ค ์ธํด ๋ ๊ฒฝํํ๋
- ๋ถ๋ถ์ ์ผ๋ก
TDD
๋ฅผ ๋์- Golang์ผ๋ก ๊ตฌํํ ๋๊ธ ์๋น์ค, Spring Boot๋ก ๊ตฌํํ ์๋ฆผ ์๋น์ค์์ TDD๋ฅผ ๋์ .
- ๋น๊ต์ Django๋ก ๊ตฌํํ ์ปค๋ฎค๋ํฐ ๋ฉ์ธ ์๋น์ค๋ ๋จ์ CRUD ์์ฃผ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์ฝ๋ ์์ด ์งํํ ๋ง ํ์.
๋๋ฐ๋์์ ๋ฐฑ์๋, ํด๋ผ์ฐ๋ ์ธํ๋ผ ๋ด๋น [2021.08~xxxx.xx]
๊ฐ๋ฐ ๋์๋ฆฌ ๋ํ๋ง์์ 10๊ธฐ ๋ฐฑ์๋ ํฌ์ง์ ์ผ๋ก ํ๋ํ์ต๋๋ค.
Golang
์์ฃผ์MSA
- ์ธ์ฆ, ์ธ๊ฐ, ์์ฒญ ์ ๋ฌ ๋ฑ์ ๊ด๋ฆฌํ๋ API Gateway ์๋ฒ
- RESTful API ์์ ์ ์ํ API ์๋ฒ
- ๋์์ ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ๋ Python ์๋ฒ
- ElasticBeanstalk๊ณผ Lambda ์์ฃผ์ ์๋ฒ ์ค๊ณ
TDD
, ์ ๋ํ ์คํธ, Mocking์ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉ
๊ธฐํ ํ๋๋ค
- ๊ฐ๋ฐ ๋์๋ฆฌ ๋ํ๋ง์์ 10๊ธฐ ๋ฐฑ์๋๋ก ํ๋ [2021.08~2021.12]
- 2021 ์คํ์์ค ์ปจํธ๋ฆฌ๋ทฐ์ ์์นด๋ฐ๋ฏธ Golang Yorkie ํ๋ก์ ํธ ๋ฉํฐ [2021.08~2021.09]
- ์คํ ์์ค ์ปจํธ๋ฆฌ๋ทฐํค: ์คํ์คํ ํ ๋ฉํฐ [2020.08~2020.09]
- ํ๊ตญ AWS Communitiy KRUG์ ๋ํ์ ๊ทธ๋ฃน AUSG์์ 3๊ธฐ๋ก ํ๋ ์ค [2019.06~]
- ๊ฒฝํฌ๋ํ๊ต ์ํํธ์จ์ด ํ์คํฐ๋ฐ ์น/์ฑ ์ต์ฐ์์ ์์ [2019.11]