๐ DevOps์ ์ดํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์์ฑ
์ต๊ทผ ๋ช ๋ ๋์ IT ์ฐ์ ์ ํจ๋ฌ๋ค์์ด ์ปค๋ค๋ ๋ณํ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ณํ์ ์ค์ฌ์๋ ๋ฐ๋ก 'DevOps'๊ฐ ์์ต๋๋ค. DevOps๋ ๊ฐ๋ฐ(Development)๊ณผ ์ด์(Operations)์ ํฉ์ฑ์ด๋ก, ๊ฐ๋ฐํ๊ณผ ์ด์ํ์ด ๊ธด๋ฐํ ํ๋ ฅํ์ฌ ์ํํธ์จ์ด์ ๋ฐฐํฌ์ ์ด์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ด์ ํจ๊ป ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฑ๊ณต์ ์ธ DevOps ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ธ ์์์ ๋๋ค. ๋ฐ์ดํฐ์ ์ ํฉ์ฑ, ์ ๊ทผ์ฑ ๋ฐ ์ฑ๋ฅ์ ์ ๋ฐ์ ์ธ ์์คํ ์ ํจ์จ์ฑ๊ณผ ์ง๊ฒฐ๋๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.

์ ๊ฐ์ธ์ ์ธ ๊ฒฝํ์ผ๋ก๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ๊ฐ ์ค๋ฅ๋ฅผ ์ค์ด๊ณ ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ๋จ์ถํ๋ ๋ฐ ์ผ๋ง๋ ์ค์ํ์ง๋ฅผ ์ ์๊ณ ์์ต๋๋ค. ํนํ ํจ์จ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ ํ์ํฌ์ ์ปค๋ฎค๋์ผ์ด์ ์ ํตํด ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ํ์๋ค์ด ์๋ก์ ์์ ๋ด์ฉ์ ์ ์ดํดํ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ ์ ๋ ฅ ์ค๋ฅ์ ๊ฐ์ ์ฌ์ํ ์ค์๋ค์ด ์ค์ด๋ค๊ฒ ๋์ฃ . ์ด๋ ๊ฒ ๊ทธ ๊ธฐ๋ณธ์ด ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ DevOps์ ํจ๊ณผ์ ์ธ ๊ฒฐํฉ์ ํตํด ์์ฐ์ฑ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๐ก DevOps์ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ์๋ํ๋ก ํจ์จ์ ๋์ด๋ ๋ฐฉ๋ฒ
โDevOps์ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ์๋ํ๋ก ํจ์จ์ ๋์ด๋ ๋ฐฉ๋ฒโ์ด๋ ๋จ์ํ ๊ธฐ์ ์ ์ธ ์ ๊ทผ์ ๋์ด์, ์ฌ๋๊ณผ ์ฌ๋ ๊ฐ์ ํ๋ ฅ์ด ์ค์ํ๋ค๋ ๊ฒ์ ์์ง ๋ง์์ผ ํฉ๋๋ค. ํ์ ์ ์ ์ ๋ ๋จํฉ์ํค๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์ ์ ์๋ํํ์ฌ ์ค์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์๋ํ๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ค์ฌ์ฃผ๊ณ ๊ฐ๋ฐํ์ด ๋น์ฆ๋์ค ๊ฐ์น์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์๋๋ก ๋์์ค๋๋ค.
์ฐ์ , CI/CD(์ง์์ ํตํฉ๊ณผ ์ง์์ ๋ฐฐํฌ)๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ์์คํ ์ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ์์ฝ๊ฒ ํตํฉํ๊ณ ์๋์ผ๋ก ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ค์๋ก ์ธํด ์๊ธธ ์ ์๋ ๋ฌธ์ ๋ค์ ์๋ํ๋ ํ ์คํธ๊ฐ ์ก์๋ด๋ฉฐ, ์์ ์ ์ธ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ก ์ธํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฆ์ด ๋งค๋๋ฌ์์ง๋๋ค.
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ๊ด๋ฆฌํ๋ ์ธํ๋ผ๋ก์์ ์ฝ๋(Infrastructure as Code, IaC)์ ๋๋ค. IaC๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ๊ณผ ๊ด๋ฆฌ๋ฅผ ์ฝ๋๋ก ์๋ํํ๋ฉด ํจ์จ์ฑ์ ๊ทน๋ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด ๋ฐ๋ณต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์ ์๋์ผ๋ก ์งํํ๋ฉด, ํ๊ฒฝ ์ค์ ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ฉฐ ๋ฌดํํ ์ค์ผ์ผ๋ง์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.

๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ํ์ ์ด์
DevOps์ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ์๋ํ๋ก ํจ์จ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ์ตํ๊ฒ ๋๋ฉด ์ป๋ ์ด์ ์ ๋ฌด๊ถ๋ฌด์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ์๊ฐ์ ๋ค๋ฅธ ์ค์ํ ํ๋ก์ ํธ์ ํ ์ ํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๋ ์ค์ ๊ณผ๊ฑฐ ์ ํ๋ก์ ํธ ๊ฒฝํ๊ณผ๋ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ํ๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ์ถฉ๋ถํ ์ ์ฃผ์์ ์ ์๊ฐ์ผ๋ก ๊ฐ์์ํฌ ์ ์์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ด ์๊ฐ์ ์ฌ์ฉํด ๋ ์ฐฝ์์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ์ง์คํ ์ ์์ฃ .
๋ํ, ์๋ํ๋ ์ค๋ฅ๋ฅผ ์ค์ด๋ ๋ฐ๋ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค. ์๋ ์์ ์์ ๋ฐ์ํ ์ ์๋ ์ค์๋ ์์๋ณด๋ค ๋ ์์ฃผ ๋ํ๋๊ธฐ ๋ง๋ จ์ ๋๋ค. ํ์ง๋ง ์๋ํ๋ฅผ ํตํด ์ด๋ฌํ ์ค์๋ฅผ ๋ฏธ์ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒฐ๊ตญ ๋ ํ์ง ๋์ ์ ํ์ ์์ฅ์ ์ ๊ณตํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
โ ์ค์ฒ์ ๋ฐฉ๋ฒ
์ด์ DevOps์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ณํ์ฌ ์๋ํํ๋ ์ค์ฉ์ ์ธ ๋ฐฉ๋ฒ๋ค์ ๋ํด ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก ๋์ ํ ์ ์๋ ๋๊ตฌ๋ Jenkins์ ๊ฐ์ CI/CD ํด์ ๋๋ค. Jenkins๋ ์์ค ์ฝ๋ ๊ด๋ฆฌ ์์คํ ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋์ผ๋ก ๋น๋์ ๋ฐฐํฌ๋ฅผ ์งํํฉ๋๋ค. ๋น์ทํ ๋๊ตฌ๋ก๋ GitLab CI/CD, CircleCI๋ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ ํธํ์๋์?
๋ค์์ผ๋ก๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS) ๋ด์ฅ์ ํตํด ์๋ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, MySQL์ ํธ๋ฆฌ๊ฑฐ ๊ฐ์ ๊ธฐ๋ฅ์ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์๋์ผ๋ก ์์ ์ ์ํํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ์ ํ ํ์ฉํ๋ฉด ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ์๋ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๐ ๋ฐ์ดํฐ ์ง์ ํ ์ด๋ธ
| ์๋ํ ๋ฐฉ๋ฒ | ์ฅ์ | ์์ ๋๊ตฌ |
|---|---|---|
| CI/CD | ์ฝ๋ ๋ฐฐํฌ ์๋ํ | Jenkins, GitLab CI/CD |
| IaC | ํ๊ฒฝ ์ค์ ์๋ํ | Terraform, Ansible |
| DBMS ๋ด์ฅ ๊ธฐ๋ฅ | ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง | MySQL, PostgreSQL |
ํจ๊ป ์ฝ์ด๋ณผ ๋งํ ๊ธ์ ๋๋ค
ํ๋ก๊ทธ๋๋จธ์ค SQL ์ฝ๋ฉ ํ ์คํธ select ๋ฌธ์ ํ์ด
ํ๋ก๊ทธ๋๋จธ์ค SQL ์ฝ๋ฉ ํ ์คํธ select ๋ฌธ์ ํ์ด SQL ์ฐ์ตํ์ ๋ค๊ณ ํ๋ก๊ทธ๋๋จธ์ค SQL ํ์ด๋ณด์๋ ๋ถ๋ค์ด ๋ง์ด ๊ณ์๋ค์. ์ค๋๋ถํฐ ํ๋์ฉ ํ์ด๋ฅผ ์จ๋ณผ๊น ํฉ๋๋ค. ์์, ๊ทธ๋ผ ๋ ๊ณ ๋ ๊ณ ~!!! select ๋ชจ๋
stricky.tistory.com
mongoDB Docker๋ก ์ค์นํ์ฌ ์ ์ํ๊ธฐ
mongoDB Docker๋ก ์ค์นํ์ฌ ์ ์ํ๊ธฐ ์๋ ํ์ธ์. ํด์ผ์ง~ ํด์ผ์ง~ ํ๋ฉด์ ์์ง ๋ชปํ๋๊ฑธ ์ค๋ ํฉ๋๋ค. ๋ฐ๋ก mongoDB ์ ๋ฌธ ์ ๋๋ค. ์์ผ๋ก ์ ๋ฌด์ ์ผ๋ก ํ์ํ ์๋ ์์๊ฒ ๊ฐ๊ณ , ์ ์ ์คํฌ ํ์ฅ์ ์ํด
stricky.tistory.com
mysql error 1267 (HY000): Illegal mix of collations ๋ฌด์กฐ๊ฑด ํด๊ฒฐ๋ฐฉ๋ฒ
mysql error 1267 (HY000): Illegal mix of collations ๋ฌด์กฐ๊ฑด ํด๊ฒฐ๋ฐฉ๋ฒ ์๋ ํ์ธ์. ๊ฐ์๊ธฐ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์์ ํฉ๋๋ค. [HY000][1267] (conn=10) Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IM
stricky.tistory.com
๐ฌ ๊ฒฐ๋ก ๋ฐ FAQ
DevOps์ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ์๋ํ๋ก ํจ์จ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ๋จ์ํ ํ์ ์ด ์๋, ๊ธฐ์ ์ ๊ฒฝ์๋ ฅ์ ๊ฒฐ์ ์ง๋ ์ค์ํ ์์์ ๋๋ค. ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ ํ์ฑ๊ณผ ์ ์์ฑ์ ๊พํ๊ธฐ ์ํด ์๋ํ๋ฅผ ํตํด ํํธ๋์ญ๊ณผ ํ๋ ฅ์ ๊ฐํํ๋ฉฐ, ํ์ํ ์ ๋ณด์ ์ฝ๊ฒ ์ ๊ทผํ๋๋ก ํ๋ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๋น์ฆ๋์ค์์ ์ด๋ฐ ๋ณํ๋ฅผ ์ง์ ๊ฒฝํํ ์ ์์ผ๋ฉฐ, ๋์๊ฐ ์ค์ ๋ก ๊ตฌํํด ๋ณด๊ธธ ๋ฐ๋๋๋ค.
FAQ
Q1: DevOps๋ ๋ฌด์์ธ๊ฐ์?
A1: DevOps๋ ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉ์ ํตํด ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์๋์ ํ์ง์ ๋์ด๋ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
Q2: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ํ์ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A2: ์๋ํ๋ฅผ ํตํด ๋ฐ๋ณต์ ์ธ ์์ ์ ์ค์ด๊ณ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ์ฌ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํจ์ ๋๋ค.
Q3: ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์๊น์?
A3: Jenkins, GitLab CI/CD ๊ฐ์ CI/CD ๋๊ตฌ์ Terraform, Ansible ๊ฐ์ IaC ๋๊ตฌ๊ฐ ์ ์ฉํฉ๋๋ค.