๋์ธ๋ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ! โ๏ธ
CI/CD ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์ธ์.
๐ข ์๊ฐ ์ ํ์ธํด์ฃผ์ธ์!
- ํ์ต ํ๊ฒฝ์ ๋ฐ๋ผ ๊ฐ์ ์ค๋์ค๊ฐ ๊ณ ๋ฅด์ง ์์ ์ ์์ต๋๋ค. ์น์
0~2 ์์
์ค ๊ฐํ์ ์ธ ๋
ธ์ด์ฆ ์ํฅ์ด ๋ค๋ฆด ์ ์์ผ๋, ์๊ฐ ์ ๊ฐ์ [๋ฏธ๋ฆฌ๋ณด๊ธฐ] ์์
์ ํ์ธํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
ํน์, ์ฌ๋ฌ๋ถ์ ๊ณ ๋ฏผ์ ์๋๊ฐ์?
๊ฐ๋ฐ์ ์๋ฃํ ๊ฒฐ๊ณผ๋ฌผ์ ์ด์ ์๋ฒ์ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ฐฐํฌํด์ผ ํ๋์?
์ฌ๋ฌ ํ๊ฒฝ์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ฐฐํฌํ๋ ค๋ฉด ๋ฐฐํฌ ํ๊ฒฝ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผ ํ๋์?
์ปจํ
์ด๋ ๊ฐ์ํ ํ๊ฒฝ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
๋ฐ๋ธ์ต์ค์ ํต์ฌ, CI/CD
Jenkins๋ก ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ๊ฒ!
์ ํจ์ค(Jenkins)?
์ง์์ ํตํฉ(CI) ยท ์ง์์ ๋ฐฐํฌ(CD)๋ฅผ ๋์์ฃผ๋ ์๋ํ ๋๊ตฌ, Jenkins๋ฅผ ์ด์ฉํด ์๋ํ ํ์ดํ๋ผ์ธ์ ์ง์ ๊ตฌ์ถํด๋ณผ ์ ์์ต๋๋ค.
๋ณธ ๊ฐ์๋ CI/CD ์๋ํ ๋๊ตฌ์ธ Jenkins๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ํ๊ณ ๋ฐฐํฌํ๋ ๋ฐ์ ํ์ํ ํ๋ก์ธ์ค์ ๋ํด ์ดํดํ๊ณ , ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด๋ ๊ณผ์ ์
๋๋ค. ๊ฐ์์์ ์ฐ์ด๋ 20๊ฐ์ ํ์ต ์ํ์ ํตํด, ์๊ฐ์ ์ฌ๋ฌ๋ถ์ ๊ฐ๋ฐ์ด ์๋ฃ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ - ํ
์คํธ - ๋ฐฐํฌํ๋ ๋ฐ ํ์ํ ์ ๊ณผ์ ์ ๋ํด ํ์ตํฉ๋๋ค. ๋ํ, ๋ก์ปฌ PC์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์์ ๋ง์ ์๋ํ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ์ง์ ๊ตฌ์ถํด ๋ณผ ์ ์์ต๋๋ค.
2010๋
๋ ์ดํ IT ์์คํ
์ Resilient + Anti-Fragile + Cloud Native๋ฅผ ํต์ฌ ํค์๋๋ก ๋ฐ์ ํด ์์ต๋๋ค. DevOps๋ผ๋ IT ๋ฌธํ๊ฐ ์๊ฒจ๋ฌ๊ณ , ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํคํ
์ฒ๊ฐ ๋์
๋์์ผ๋ฉฐ, ์์คํ
์ ์ด๋ ํ ํ๊ฒฝ์์๋ ์ ์ฐ์ฑ์ ๊ฐ์ง๊ณ ๋์ฒํ ์ ์์ด์ผ ํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์ค๊ณํ ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ ๋ฐฉ์์ผ๋ก ๋๋ฉ์ธ์ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐํ๊ธฐ ์์ํ๊ณ , ์๋น์ค๋ ์ ๊ฒ๋ ์์ญ ๊ฐ์์ ๋ง๊ฒ๋ ์๋ฐฑ ๊ฐ ์ด์์ผ๋ก ์ชผ๊ฐ์ง๊ธฐ๋ ํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ์๋น์ค๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ๋ฐ, ๋น๋, ๋ฐฐํฌ๋ ์ ์๋ ํ๊ฒฝ์ผ๋ก ์ ํ๋์์ต๋๋ค. DevOps ํ๊ฒฝ์์๋ ์๋น์ค์ ๋ํ ๊ฐ์ ๋ฐ ๋ฌธ์ ์ ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๋๋ก ์๊ตฌ๋์์ต๋๋ค. ๊ฐ๋ฐ ๋จ์๊ฐ ๋ ์๊ฒ ๊ตฌ์ฑ๋๊ณ , ๋ฐฐํฌ๋ ๋ ์์ฃผ ์งํ๋์ด์ผ ํ์ต๋๋ค.
์ด์ ๋ ๊ฐ๋ฐ์๋ ์ด์์๊ฐ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ์์ญ~์๋ฐฑ ๊ฐ์ ์๋น์ค๋ค์ ๋์ด์ ์ผ์ผ์ด ๋น๋ํ๊ณ ํจํค์งํ๊ณ , ๋ฐฐํฌํ๋ ์์
์ ์์์
์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๊ท๋ชจ๊ฐ ๋์์ต๋๋ค. ์์คํ
์์ฒด์ ๋ณต์ก์ฑ์ ๋ ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ์๋น์ค๋ฅผ ๋น๋ํ๊ณ ๋ฐฐํฌํ๋ ์์
์ด ํ๋์ ์ปค๋ค๋ ์
๋ฌด๊ฐ ๋ ์๋ ์๊ณ , ์์
๋ก๋๊ฐ ์ฌํ๊ฒ ๊ฑธ๋ฆฌ๋ ์์๊ฐ ๋์ด๋ฒ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค.
์ค๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ง์์ ์ธ ํตํฉ(CI)๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ(CD)๋ฅผ ์ํ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ ์ผ์ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ธฐ ์ํ ํ์ ๋ถ๊ฐ๊ฒฐํ ์ ํ์ด ๋์์ต๋๋ค. Git์ผ๋ก๋ถํฐ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๋น๋๋ฅผ ์งํํ๊ณ , ํ
์คํธ ์ผ์ด์ค๋ฅผ ์คํํ๋ฉฐ, ๋ฐฐํฌ๋ฅผ ์ํ ํจํค์ง๋ฅผ ๋ง๋ค๊ณ , ์ด์ ์์คํ
์ ๋ฐฐํฌํ๋ ์ ๊ณผ์ ์ด ์๋ํ ํ๋ก์ธ์ค์ ์ํด ์งํ๋ฉ๋๋ค. ์ด๋ฌํ ์๋ํ ํ๋ก์ธ์ค๋ ๋ ์์ฃผ ๋น๋ํ๊ณ , ๋ ์์ฃผ ํ
์คํธํ๊ณ , ๋ ์์ฃผ ๋ฐฐํฌํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํจ์ผ๋ก์จ ๊ฒฐ๊ตญ์๋ ์์คํ
ํ์ง์ ํฅ์์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ๋ฉ๋๋ค.
โJenkins๋ฅผ ์ด์ฉํ CI/CD Pipeline ๊ตฌ์ถโ ๊ฐ์์์๋
์ง๋ โSpring Boot๋ฅผ ์ด์ฉํ RESTful WEB Services ๊ฐ๋ฐโ๊ณผ โSpring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA)โ ๋ ํธ์ ๊ฐ์๋ฅผ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ์ ์๋ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํ์๋ค๋ฉด, ์ด๋ฒ ๊ฐ์์์๋ Spring Framework + Spring Boot๋ก ๊ฐ๋ฐ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ก์ปฌ ํ๊ฒฝ์ด๋, ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๊ธฐ ์ํด ํ์ํ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด๋ณด๋ ๊ณผ์ ์ ๊ฒฝํํด ๋ด
๋๋ค.
์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ์๊ฐ์ ์ฌ๋ฌ๋ถ์ CI/CD์ ๋ํ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ ํ๊ฒฝ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ , ์์ ๋ง์ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ถํด ๋ณผ ์ ์์ต๋๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ฐ์ ๐
Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA)
Dowon Lee
์ด๊ธ / Spring Cloud, MSA, Spring Boot, Kafka, ์ํคํ
์ฒ, JPA, rabbitmq
Spring framework์ Spring Cloud ์ ํ๊ตฐ์ ์ด์ฉํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํด ๋ณด๋ ๊ณผ์ ์
๋๋ค. Cloud Native Application์ผ๋ก์จ์ Spring Cloud๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, ๊ตฌ์ฑ์ ์ด๋ป๊ฒ ํ๋์ง์ ๋ํด ๋ฐฐ์ธ ์ ์๋ ๊ฐ์์
๋๋ค.

์ด๊ธ
Spring Cloud, MSA, Spring Boot
Spring Cloud๋ก ๊ฐ๋ฐํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
(MSA)
Dowon Lee
์ด๊ธ / Spring Cloud, MSA, Spring Boot, Kafka, ์ํคํ
์ฒ, JPA, rabbitmq
์ด๋ฐ ๋ถ๋ค๊ป
์ถ์ฒํฉ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์
์
๊ฐ๋ฐํด ๋ณธ ์ ์ด
์๋ ๋ถ
์์ ๋ง์ CI/CD
์๋ํ ํ์ดํ๋ผ์ธ์
๊ตฌ์ถํ๋ ค๋ ๋ถ
์ด์ ์๋ฒ์
์ ํ๋ฆฌ์ผ์ด์
์
์ปจํ
์ด๋ ๊ฐ์ํ ํ๊ฒฝ์
๋ฐฐํฌํ๋ ค๋ ๋ถ
CI/CD ์๋ํ
ํ์ดํ๋ผ์ธ์ ํตํด
ํด๋ผ์ฐ๋ ํ๊ฒฝ์
์ ํ๋ฆฌ์ผ์ด์
์
๋ฐฐํฌํ๋ ค๋ ๋ถ
โ
์๊ฐ ํ, ์ด๋ฐ ๊ฒ๋ค์ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
- ์ง์์ ์ธ ํตํฉ๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ์ ๋ํด ์ดํดํฉ๋๋ค.
- ๋ก์ปฌ ํ๊ฒฝ์์ ์ค์ตํ ์ ์๋ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณผ ์ ์์ต๋๋ค.
- ์์ ์ด ์ง์ ์์ฑํ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ๊ฐ์์์ ์ ๊ณต๋๋ ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ฉํ์ฌ Tomcat ์น ์๋ฒ์ Docker ๊ฐ์ํ ํ๊ฒฝ์ ๋ฐฐํฌํ ์ ์๋ ์๋ํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ๊ฐ์์์ ์ ๊ณต๋๋ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐํ์ผ๋ก ์์ ๋ง์ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
ํ์ต ๋ด์ฉ์
ํ์ธํด๋ณด์ธ์.
๐ก CI/CD ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ํ์ตํ๊ณ , ์ค์ต ์ฝ๋๋ฅผ ํตํด ์ง์ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ถํด ๋ณผ ์ ์์ต๋๋ค. ์๊ฐ์ ๋ถ๋ค์ ์์ ์ด ์ฌ์ฉํ๋ ํ๊ฒฝ์ ๋ง๊ฒ ๋ก์ปฌ ํ๊ฒฝ์์์ ๋ฐฐํฌ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์์ ๋ฐฐํฌ๋ฅผ ๋ชจ๋ ์ค์ตํด ๋ณผ ์ ์์ต๋๋ค. ๋ฐฐํฌํ๊ณ ์ ํ๋ ์ด์ ํ๊ฒฝ์ ๋ฐ๋ก ์ ์ฉํด์ ํ
์คํธํด ๋ณผ ์ ์๋ 25์ฌ๊ฐ์ ์ค์ต ์์ ๋ฅผ ํตํด ์์ ๋ง์ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํด ๋ณผ ์ ์์ต๋๋ค. *Windows, macOS(Intel Chip/Apple Silicon Chip) ํ๊ฒฝ ์ง์
Section 1 - DevOps์ CI/CD
- DevOps์ CI/CD ํ์ดํ๋ผ์ธ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 2 - Jenkins๋ฅผ ์ด์ฉํ CI/CD ํ์ต
- CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์ํ Jenkins๋ฅผ ์ค์น, ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
- Tomcat(ํฐ์บฃ) ์น ์๋ฒ์ Docker(๋์ปค) ๊ฐ์ํ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค.
Section 3 - Jenkins + Infrastructure as Code
- Infrastructure as Code์ ๋ํด ์ดํดํ๊ณ Ansible(์ค์๋ธ) ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
- Jenkins์ Ansible ์๋ฒ์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 4 - Jenkins + Ansible + Kubernetes ์ฐ๋
- ์ค์ต์ ์ํ Kubernetes๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
- Jenkins์์ Ansible ์๋ฒ์ Kubernetes๋ฅผ ์ฐ๋ํ์ฌ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 5 - Advanced Jenkins ์ฌ์ฉ โ - Pipeline
- Jenkins Pipeline ๊ธฐ๋ฅ์ ๋ํด ์ดํดํฉ๋๋ค.
- Jenkins Pipeline ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 6: Advanced Jenkins ์ฌ์ฉ โก - SonarQube, Multi nodes
- Jenkins ๋ฉํฐ ๋
ธ๋์์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
- SonarQube(์๋ํ๋ธ) ์์คํ
๊ณผ ์ฐ๋ํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 7: ์์ฉ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๊ธฐ
- ์์ฉ ํด๋ผ์ฐ๋์ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ฑํฉ๋๋ค.
- AWS EC2 ์๋ฒ์ ๋ฐฐํฌ ํ๊ฒฝ์ ์ฌ์ฉ๋๋ ์๋น์ค๋ฅผ ์ค์นํ๊ณ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
Section 8: ์ค์ต ํ๊ฒฝ์ ์ํ ํ์ SW
- ๊ฐ์์์ ์ฌ์ฉ๋ SW, ๋๊ตฌ์ ๋ํด ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค. (Windows, MacOS)
- ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ณ์ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ์๋ฒ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํฉ๋๋ค.
๐พ ํ์ต ๊ด๋ จ ์ฐธ๊ณ ์ฌํญ
- ๋ณธ ๊ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ๋ฐ์ ํ์ํ ๋ด์ฉ๊ณผ ๊ณผ์ ์ ๋ํด ํ์ตํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. (์๊ฐ์ ํ์ํ ์ฌ์ ์ง์์ ์๊ฐํ์ด์ง ํ๋จ [์ ์ ์ง์] ๋ฐ Q&A๋ฅผ ํ์ธํด์ฃผ์ธ์.)
- ๊ฐ์๋ macOS ํ๊ฒฝ์์ ์งํ๋๋ฉฐ, Windows ํ๊ฒฝ์ ์๊ฐ์๋ค์ ์ํ ๋ช
๋ น์ด ๋ฐ ์คํฌ๋ฆฝํธ๋ ํจ๊ป ์ ๊ณตํ๊ณ ์์ต๋๋ค.
- ๊ฐ์๋ฅผ ์ํ ํ์ SW ์ค์น์ ๋ํ ์๊ฐ๋ฅผ Section 9 ์์ ์ค๋ช
ํ๊ณ ์์ต๋๋ค. ์ค์ต ์งํ์ ์์ Section 9๋ฅผ ๋จผ์ ์๊ฐํ์๊ธฐ๋ฅผ ๊ถ์ฅ๋๋ฆฝ๋๋ค.
- ๊ฐ์์์ ์ฌ์ฉํ ์คํฌ๋ฆฝํธ ๋ฐ ์ฝ๋๋ ์๋ Github์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
- https://github.com/joneconsulting/jenkins_pipeline_script
- https://github.com/joneconsulting/jenkins_cicd_script
Q&A ๐ฌ
Q. ๊ฐ์๋ฅผ ์๊ฐํ๊ธฐ ์ํด ํ์ํ ์ ์ ๊ณผ๋ชฉ์ด๋ ์ง์์๋ ์ด๋ค ๊ฒ์ด ์๋์?
๊ฐ์์์๋ ํ๋ก๊ทธ๋๋ฐ์ ์ธ ๋ถ๋ถ์ ๋ํ ์ค๋ช
์ ๊ฑฐ์ ํ์ง ์์ต๋๋ค. ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ก์ปฌํ๊ฒฝ์ด๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐ ํ์ํ ๊ณผ์ ๊ณผ ๋ฐฉ๋ฒ์ ๋ํด ๊ธฐ์ด๋ถํฐ ํ์ตํฉ๋๋ค. ์ถ๊ฐ๋ก Git๊ณผ ๊ฐ์ ํ์๊ด๋ฆฌ ์๋น์ค์ ์ฉ๋, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ดํด, ๊ฐ์ํ ์๋น์ค์ ๋ํ ์ดํด๋ฅผ ๊ฐ์ง๊ณ ๊ณ์๋ค๋ฉด, ๊ฐ์ ๋ด์ฉ์ ์ดํดํ๋ ๋ฐ์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Q. ๊ฐ์์์ ์ฌ์ฉ๋๋ ํ๊ฒฝ์ ์ด๋ป๊ฒ ๋๋์?
๋ณธ ๊ฐ์์์๋ ์์ ์ด ๊ฐ๋ฐํ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ๊ฐ์์์ ์ ๊ณต๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๊ธฐ ์ํด ๋ก์ปฌ ํ๊ฒฝ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ก์ปฌ ํ๊ฒฝ์ ์ค์น ๋ Docker Desktop์ ์ด์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ์ ํ์ํ SW๋ ์์คํ
(Tomcat, SSH ์๋ฒ, Kubernetes ๋ฑ)์ ๊ตฌ์ฑํ๊ณ ์์ผ๋ฉฐ, ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์๋๋ก ์์ ๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ถ๊ฐ๋ก, ๊ฐ์ ํ๋ฐ๋ถ์์๋ ๋ก์ปฌ ํ๊ฒฝ์ ๊ตฌ์ถ๋ ๋ด์ฉ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ ์ค์ตํ๋ ๋ถ๋ถ๋ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋ณธ ๊ฐ์์ ๋ํ ์ค์ต์ macOS ํ๊ฒฝ์์ ์งํ๋๊ณ ์์ง๋ง, Windows ์ฌ์ฉ์๋ฅผ ์ํ ๋ช
๋ น์ด ๋ฐ ์คํฌ๋ฆฝํธ๋ ํจ๊ป ์ ๊ณตํ๊ณ ์์ต๋๋ค.
Q. CI/CD ์๋ํ ๋ฐฐํฌ์ ๋ํ ๋ด์ฉ์ ์ด๋ ์์ค๊น์ง ๋ค๋ฃจ๋์?
๋ณธ ๊ฐ์๋ ์ง์์ ์ธ ํตํฉ(CI)๊ณผ ์ง์์ ์ธ ๋ฐฐํฌ(CD)๋ผ๋ ๊ฐ๋
์ ์ฒ์ ์ ํ์๋ ๋ถ๋ถํฐ, CI/CD ํ์ดํ๋ผ์ธ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์ ์๋ฒ์ ๋ฐฐํฌํ๋ ค๋ ๊ฐ๋ฐ์๊น์ง ์ค์ตํด ๋ณผ ์ ์๋ 20์ฌ๊ฐ์ ์ค์ต ์ฝ๋๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ๊ฐ์์์ ํ์ตํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๊ธฐ ์ํ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. Kubernetes Cluster๋ฅผ ์ด์ฉํ Jenkins์ ์ฌ์ฉ์ด๋ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง, ์ง์์ ์ธ ์ค์ผ์ค๋ง์ ์ํ ์์
์ "CI/CD ์๋ํ ๋ฐฐํฌ ์ฌํ๊ณผ์ (๊ฐ์ )"์ ํตํด ์ค๋น ์ค์
๋๋ค.
์ง๊ธ 6,000๋ช
์ด์์ด ๋ฃ๊ณ ์๋
MSA ๊ฐ๋ฐ์ ๋
ธํ์ฐ๊ฐ ๊ถ๊ธํ๋ค๋ฉด?
ํ๊ท ๋ณ์ 4.8โ
๋์ ์๊ฐํ 500+
Spring Boot & Spring Cloud ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ ๋ก๋๋งต (ํด๋ฆญ)