ํฐ์คํ ๋ฆฌ ๋ทฐ
๐งฑ CI/CD
๐ CI - Continuous Integration, ์ง์์ ์ธ ํตํฉ
๐ก Instruction
CI ๋ผ๋ ๊ฐ๋ ์ด ์๋ฟ์ง ์์์, ๋ฆฌํฉํ ๋ง์ ์ ์ ๋งํด ํ์ธ๋ฌ์ ๋ธ๋ก๊ทธ๋ฅผ ๋ฒ์ญํ๋ฉฐ ๊ณต๋ถํด๋ณด์๋ค. ์๋ ๊ธ์ ์ถ์ฒ๋ฅผ ๋ฐํ ์ฌ์ดํธ์ ๋ฒ์ญ ๊ธ์ด๋ค.
์ง์์ ์ธ ํตํฉ์ ์กฐ์ง์ ๊ตฌ์ฑ์๋ค์ด ๋น๋ฒํ๊ฒ - ํ๊ท ์ ์ผ๋ก ์ต์ ํ๋ฃจ์ ํ ๋ฒ -์์ ์ ์์ ์ ํตํฉํ์ฌ ํ๋ฃจ์ ์ฌ๋ฌ ๋ฒ ํตํฉ์ด ์ผ์ด๋๊ฒ๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฃจํด์ด๋ค. ๊ฐ ํตํฉ์ ์ต๋ํ ๋น ๋ฅด๊ฒ ํตํฉ ์์ ์๋ฌ๋ค์ ํ์ ํ๊ธฐ ์ํด ๋น๋ ์๋ํ (ํ ์คํธ๋ฅผ ํฌํจํ๋) ๋ฅผ ํ์ฉํ๋ค. ๋ง์ ์กฐ์ง๋ค์ ์ด ์ ๊ทผ๋ฐฉ๋ฒ์ด ํตํฉ ๊ณผ์ ์์์ ๋ฌธ์ ๋ฅผ ํ์ ํ๊ฒ ๊ฐ์์ํค๊ณ ๋ ๋น ๋ฅด๊ฒ ์ผ๊ด๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ์ ์๊ฒ ํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค. - ๋งํด ํ์ธ๋ฌ -
๐ฆพ CI ํ์ฉ์ ์ด์
- CI ๋ฅผ ํ์ฉํ ์ํํธ์จ์ด์ ๊ฐ๋ฐ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค:์ด์ ์ฑ๊ณต์ ์ธ ๋น๋๋ฅผ ํ์ผ๋, ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ด๊ฐ ํ ์
๋ฌด๋ฅผ ์ปค๋ฐํ ์ ์๋ค. ๋ฌผ๋ก , ๋ค๋ฅธ ์ฌ๋์ด ๋ด๊ฐ ์ต์ด ๋ณต์ฌ๋ณธ์ ๋ณ๊ฒฝ์ ํ์ฌ ์ปค๋ฐํ๊ธฐ ์ ์ ์ด๋ฏธ ๊ฐ์ ๋ณต์ฌ๋ณธ์ ๋ค๋ฅธ๋ณ๊ฒฝ์ ํ ํ ์ปค๋ฐ์ ํ์ ์ ์๋ค. ๊ทธ๋ฌ๋ค๋ฉด ๋จผ์ ๋๋ ๋ค๋ฅธ ์ฌ๋์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฉํ ๋ค์ ๋ค์ ๋น๋๋ฅผ ํ๋ค. ๋ด ๋ณ๊ฒฝ๊ณผ ์ถฉ๋์ด ์ผ์ด๋๋ฉด, ์ปดํ์ผ ๊ณผ์ ์ด๋ ํ
์คํธ์์ ํ์ธ๋ ๊ฒ์ด๋ค. ์ด ์ถฉ๋์ ํด๊ฒฐํด์ ๋ฉ์ธ ๋ธ๋์น์ ์์
๊ณผ ๋๊ธฐํ๋ ์ํํธ์จ์ด๋ฅผ ๋น๋ํ ๋๊น์ง ๋ฐ๋ณตํ๋ ๊ฒ์ ๋์ ๋ชซ์ด๋ค.๋ง์ฝ ๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์ ์ถฉ๋์ด ์ผ์ด๋๋ค๋ฉด, ๋ ๋์ค์ ์ปค๋ฐํ ๊ฐ๋ฐ์๊ฐ ๋น๋ํ๋ฉด์ ๋ฐ๊ฒฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ง์ฝ ์ด ์์ ์์ ๋ฐ๊ฒฌ์ด ์๋๋๋ผ๋ ํตํฉ ์ปดํจํฐ์์ ๋ฐ๊ฒฌ๋ ๊ฒ์ด๋ค. ์ด์จ๋ ์๋ฌ๋ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌ๋๋ค. ์ด ์์ ์์ ๊ฐ์ฅ ์ค์ํ ์
๋ฌด๋ ์๋ฌ๋ฅผ ๊ณ ์น๋ ๊ฒ์ด๋ค. CI, ์ง์์ ์ธ ํตํฉ ์ ํ๊ฒฝ์์๋ ์ ๋๋ก ์คํจํ ํตํฉ ๋น๋๋ฅผ ์ค๋ ๋๋ฌ์ ์๋๋ค. ์ข์ ์กฐ์ง์์๋ ํ๋ฃจ์ ์ฌ๋ฐ๋ฅธ ๋น๋๊ฐ ๋ง์ด ์ผ์ด๋์ผ ํ๋ค.
- ์ด ๊ณผ์ ์ ๊ฒฐ๊ณผ๋ ์ ์ ์ค๋ฅ๋ค์ ๊ฐ์ง๊ณ ์ ์๋ํ๋ ์์ ์ ์ธ ์ํํธ์จ์ด์ด๋ค. ๋ชจ๋ ๊ฐ๋ฐ์๋ค์ ์์ ์ ์ธ ๊ธฐ๋ฐ ์ฝ๋ (๋ฉ์ธ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ ์ฝ๋) ์์์ ์์
ํ๊ณ , ์ด ์ฝ๋์์ ๋ณ๊ฒฝ ์ ํตํฉ ๋น๋๊ฐ ์ด๋ ค์ธ ์ ๋๋ก ๋ฉ๋ฆฌ ๋ฒ์ด๋๋ ๋ณ๊ฒฝ์ ํ์ง ์๋๋ค. ์๋ฌ๋ ์ฆ์ ๋น๋๋ก ์ธํด ๋น ๋ฅด๊ฒ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ๋ฐ๊ฒฌ๋๋ค.
- ๊ฒฐ๊ตญ ๋น๋๋ฅผ ์ฑ๊ณตํ๋ค๋ฉด, ์ด์ ์ง์ง ์ปค๋ฐ ๋ฐ ํธ์ ๋๋ PR์ ํ ์ ์๋ค. ํ์ง๋ง ์ด๋ก์ ๋ชจ๋ ์ผ์ด ๋๋ ๊ฒ์ ์๋๋ค. ์ด ์์ ์์ ์ฐ๋ฆฌ๋ ๋ค์ ๋น๋๋ฅผ ํ๋๋ฐ, ์ด๋ฒ์๋ ๋ด ์ปดํจํฐ๊ฐ ์๋๋ผ ํตํฉ ๊ฐ๋ฐ์ ์ํ ์ปดํจํฐ์์ ์
๋ฐ์ดํธ๋ ํ๋ก์ ํธ์ ๋น๋๋ฅผ ์งํํ๋ค. ์ด ๋น๋๊น์ง ์ฑ๊ณตํด์ผ, ์
๋ฌด๋ฅผ ๋ง์น ๊ฒ์ด๋ค. ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ํ ์ปดํจํฐ์์ ์ปค๋ฐํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์
๋ฐ์ดํธ ํ ๋ ํน์๋ผ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋์น ๊ฒ์ด ์์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ํตํฉ ๊ฐ๋ฐ ์ปดํจํฐ์์์ ๋น๋๋ ๋ด๊ฐ ์ง์ ํ ์๋ ์๊ณ , Cruise (CruiseControl, CI ๋๊ตฌ์ด๋ค) ์ ์ํด ์๋ํ๋ ์๋ ์๋ค.
- ํตํฉ๋์ด ์๋ ํ์ฌ์ ์์ค ์ฝ๋์ ๋ณต์ฌ๋ณธ์ ๋์ ์ปดํจํฐ์ ์ ์ฅํ๋ ๊ฒ์ผ๋ก ์ผ์ ์์ํ๋ค. ์ฆ, ์์ค ์ฝ๋ ๊ด๋ฆฌ ์์คํ (Git ๊ณผ ๊ฐ์) ์ ์ฌ์ฉํด์ ํ์ฌ ์์ ์์ ๋์ ์ค์ธ ์ฝ๋์ ๋ณต์ฌ๋ณธ์ ๊ฐ์ ธ์จ๋ค. ์ด์ ์ด ๋ณต์ฌ๋ณธ์ ๊ฐ์ง๊ณ ๋์๊ฒ ๋ฐฐ์ ๋ ์ ๋ฌด๋ฅผ ํ๋ค. ์ฝ๋์ ๋ณ๊ฒฝ ๋ฟ๋ง ์๋๋ผ ํ ์คํธ์ ์ถ๊ฐ ๋๋ ๋ณ๊ฒฝ๋ ์ผ์ด๋ ๊ฒ์ด๋ค. CI ๋ ์ํํธ์จ์ด ๋ด์ ์๋ํ ๋์ด ์๋ ํ ์คํธ๊ฐ ๋ง๋ค๋ ๊ฒ์ ๊ฐ์ ํ๋ค. ์ ๋ฌด ์ค๊ฐ ๋๋ ๋ง์น ํ์๋ ๊ฐ๋ฐํ๊ณ ์๋ ์ปดํจํฐ์์ ์๋ํ๋ ๋น๋๋ฅผ ์คํํ๋ค. ๋น๋ ๊ณผ์ ์๋ ๋ด ์ปดํจํฐ ๋ด์ ๋ณต์ฌ๋ณธ์ ๊ฐ์ ธ๊ฐ์, ์ปดํ์ผ ํ ์คํ ๊ฐ๋ฅํ ํ์ผ๋ก ๋ง๋ ํ ์๋ํ๋ ํ ์คํธ๋ฅผ ์คํํ๋ ์ผ๋ค์ด ํฌํจ๋๋ค. ๋ชจ๋ ํ ์คํธ๋ค์ ํฌํจํ ๊ณผ์ ์ ์๋ฌ๊ฐ ์์ด ๋ง์น๋ฉด ๋น๋๊ฐ ์ฑ๊ณตํ ๊ฒ์ด๋ค.
โ๐ผ Summary
์ ๊ธ์ ์ํ๋ฉด, CI ๋ ์ด๋ ค์ด ๊ฐ๋ ์ด ์๋๋ผ ์ง์์ ์ผ๋ก ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ฉด์ ํจ๊ป ์ผํ๋ ๋๋ฃ ๊ฐ๋ฐ์๋ค์ ์ฝ๋์์ ์ถฉ๋์ ํผํด ๋น๋ํ๊ณ , ํตํฉํ๋ ์ผ๋ จ์ ๊ฐ๋ฐ ๋ฃจํด ์ ์ฒด๋ฅผ ๋งํ๋ ๊ฒ์ด๋ค. ๋ํ ์ฅ์ ์ ์ด๋ฆฌ๊ธฐ ์ํด์ ์๋ํ๋ ํ ์คํธ์ ์กด์ฌ ์ฌ๋ถ๊ฐ ์ค์ํ๋ค.
๐ข CD - Continuous Delivery / Deployment, ์ง์์ ์ธ ์ ๊ณต, ๋ฐฐํฌ
๐ผ Continuous Delivery, ์ง์์ ์ธ ์ ๊ณต
์ง์์ ์ธ ์ ๊ณต์ ์ง์์ ์ธ ํตํฉ์ ์ฐ์ฅ์ ์ด๋ค. ๋น๋๊ฐ ์๋ฃ๋ ํ์ ๋ชจ๋ ์ฝ๋์ ๋ณ๊ฒฝ์ฌํญ์ ํ
์คํธ + ๋ฆด๋ฆฌ์ฆ ๊ฐ๋ฅ ํ๊ฒฝ, ์ฆ ์ฝ๋๊ฐ ์ค์ ๋ก ์๋ฒ์ ๋ฐฐํฌ๋๊ธฐ ์ง์ ๊น์ง์ ๊ณผ์ ์ ์๋ํํ๋ค. ์ฆ CI ๋ ๋ชจ๋ ๋จ๊ณ์์ ์ฌ๋์ด ๊ฐ์
๋์ง๋ง, ์ง์์ ์ธ ์ ๊ณต์์๋ ํ
์คํธ ํ ๋ฆด๋ฆฌ์ฆํ ์ ์๋ ์ํํธ์จ์ด์ ์ํ๊น์ง ๋ง๋๋ ๊ณผ์ ์ด ์๋ํ ๋๋ค.
์ด๋ ์ธ์ ๋ ์ง ๋ฒํผ ํด๋ฆญ์ด๋ผ๋ ๊ฐ์
ํ ๋ฒ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ ์ ์์์ ์๋ฏธํ๋ค.
๊ทธ๋์ ์ด๋ก ์์ผ๋ก๋, ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์๋ฌด ๋๋ ๋ฐฐํฌ๋ฅผ ํ ์ ์๋ค. ํ์ง๋ง ๋์ํ๋ ํ๋ก๋์ ์ํํธ์จ์ด๊น์ง์ ๋ฐฐํฌ๋ ์ต๋ํ ๋นจ๋ฆฌ ์งํํด์ผ ํ๋ค. ๊ทธ๋์ผ ๋ฌธ์ ์์ ์ฝ๊ฒ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํ ์์ ํฌ๊ธฐ์ ๋ฐฐ์น๋ฅผ ๋ฆด๋ฆฌ์ฆํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๐ Continuous Deployment, ์ง์์ ์ธ ๋ฐฐํฌ
์ง์์ ์ธ ๋ฐฐํฌ๋ ์ง์์ ์ธ ์ ๊ณต๋ณด๋ค๋ ํ ๊ฑธ์ ๋ ๋์๊ฐ๋ค. ์์ฐ ํ์ดํ๋ผ์ธ์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์น ๋ณ๊ฒฝ์ฌํญ๋ค ๋ชจ๋๋ ์๋์ ์ผ๋ก ๊ณ ๊ฐ๋ค์๊ฒ ๋ฆด๋ฆฌ์ฆ๋๋ค. ๋ฆด๋ฆฌ์ฆ๋ง์ ์๋ํ๋ ๊ฒ์ด๋ค. ์ฌ๋์ด ๊ฐ์
ํ๋ ๊ณณ์ ์๋ค. ํ
์คํธ๊ฐ ์คํจํ์ ๋์๋ง ์๋ก์ด ๋ณ๊ฒฝ์ฌํญ์ด ๋ฆด๋ฆฌ์ฆ๋๋ ๊ฒ์ ๋ง๋๋ค.
์ง์์ ์ธ ๋ฐฐํฌ๋ ๊ณ ๊ฐ๋ค๊ณผ์ ์ํธ์์ฉ์ ๊ฐ์ํํ๋ค. (๊ทธ๋ ๊ทธ๋ด ๊ฒ์ด, ํ ์คํธ๋ง ํต๊ณผํ๋ฉด ๋ฐ๋ก ๊ณ ๊ฐ๋ค ๋ ์๊น์ง ๋ฐฐํฌ๋๋๊น) ๊ทธ๋ฆฌ๊ณ ๋์์ ‘๋ฐฐํฌ ๋ ’ ๊ณผ ๊ฐ์ ๊ฐ๋ฐ์๋ค์ ์๋ฐํ๋ ๋ฌด์ธ๊ฐ๊ฐ ์ฌ๋ผ์ง๋ค. ๊ฐ๋ฐ์๋ค์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ง์คํ ์ ์๊ณ , ์ ๋ฌด๋ฅผ ๋ง์น ๋๋ง๋ค ์๋ฒ์ ๋ฐฐํฌ๋์ด์ ๊ณ ๊ฐ๋ค์๊ฒ ์ ๋ฌ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
CI/CD ๊ธฐ์ ์คํ
์ถ์ฒ
https://mong-blog.tistory.com/entry/CICD๋-๋ฌด์์ผ๊น-with-github-actions
'Infrastructure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CI/CD] GitLab CI ํ์ดํ๋ผ์ธ ์์ฑ ์ ์ฃผ์์ฌํญ (0) | 2022.12.21 |
---|---|
[Infrastructure] ๊ฐ์ ์๋ฒ ํธ์คํ ์ด๋? (0) | 2022.12.17 |
[์ํคํ ์ฒ] ๋ชจ๋ฐ์ผ ์ฑ ์ํคํ ์ฒ ์ค๊ณ ๋ฐฉ๋ฒ (0) | 2022.12.02 |
[Gradle] build scan (0) | 2022.11.30 |
[Docker] Docker ์ฌ์ฉํด์ ์๋ฒ์ ๋ด ํ๋ก์ ํธ ๋ฐฐํฌํ๊ธฐ (0) | 2022.11.25 |
- Total
- Today
- Yesterday
- ์๊ณ ๋ฆฌ์ฆ
- FCM
- JPA
- ์ธ์ฆ/์ธ๊ฐ
- Java Data Types
- N+1
- ์ญ์ง๋ ฌํ
- json web token
- ๊ฐ์ ์๋ฒ
- Jackson
- ๊น๋ฉ
- ์ง์ฐ ๋ก๋ฉ
- docker
- JPQL
- ๋์ปค
- Spring Boot
- Firebase
- JOIN FETCH
- DTO
- @RequestBody
- ci/cd
- ์ค์๊ฐ๋ฐ์ดํฐ
- gitlab
- DeSerialization
- google cloud
- ํ๋ก๊ทธ๋๋จธ์ค
- ๊ธฐ์ง๊ตญ ์ค์น
- ์ฝํ
- spring
- LazyInitializationException
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |