์ ์ฒด ๊ธ (39) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [CI/CD] ์ค์๊ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ - CI/CD๋ฅผ ์ํ Dockerfile ์์ฑํ๊ธฐ ๐ ๋ชฉ์ฐจ ์ง๋ ํฌ์คํ ์์ GitHub Actions๋ฅผ ํ์ฉํด CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด ๋ณด์๋ค.[CI/CD] ์ค์๊ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ - GitHub Actions๋ฅผ ํตํ CI/CD ๊ตฌ์ถํ๊ธฐ - (2) ์ด๋ฒ ํฌ์คํ ์์๋ Dockerfile์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. ๐ Dockerfile์ด๋? Dockerfile์ Docker์์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ฉ๋๋ก ์์ฑํ๋ ์คํฌ๋ฆฝํธ(์ค์ ํ์ผ)์ด๋ค. FROM, RUN, COPY ๋ฑ์ ๋ช ๋ น์ด๋ฅผ ํฌํจํ๋ฉฐ, ์ด ๋ช ๋ น์ด๋ค์ ์์๋๋ก ์คํํ์ฌ ์ปจํ ์ด๋ ํ๊ฒฝ์ ํ์ํ ๋ชจ๋ ์์๋ฅผ ๋ด์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ค. Dockerfile์ ์์ฑํ๊ธฐ ์ ์, Dockerfile์ ์์ฑํ๋ฉด ์ด๋ค ์ฅ์ ์ด ์๋์ง ํ์ธํด ๋ณด์.1๏ธโฃ ์ด.. [Java] Jackson ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ObjectMapper ๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค. [Redis] ํญ๊ณต ์๋งค ์๋น์ค - ํญ๊ณต๊ถ ์๋งค ๋์์ฑ ์ด์ ํด๊ฒฐ์ ์ํ Redisson ๋ถ์ฐ ๋ฝ ์ ์ฉ ๐ ๋ชฉ์ฐจ Spring Boot MSA ๊ธฐ๋ฐ์ผ๋ก ํญ๊ณต๊ถ ํฐ์ผํ ์๋น์ค๋ฅผ ๊ตฌํํ๋ ์ค, ํญ๊ณต๊ถ ์๋งค ์ ๋ฐ์ํ ์ ์๋ ๋์์ฑ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋๊ธฐ์ด ์๋น์ค์ Redis์ Redisson ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ๋ถ์ฐ ๋ฝ์ ์ ์ฉํ๋ค. ์ด๊ธฐ ๊ตฌํ ๋น์ ๋๊ธฐ์ด ์๋น์ค๊ฐ ์ฌ์ฉ์ ์์ฒญ ์์๋ฅผ ๋ณด์ฅํ๊ณ ์์์ง๋ง,'๋๊ธฐ์ด ์๋น์ค์ ์ ์ฉ๋ ๋์์ฑ ์ ์ด๊ฐ ํญ๊ณตํธ ์๋น์ค์์์ ์ข์ ์๊น์ง ์์ ํ๊ฒ ๋ณด์ฅํด ์ค ์ ์์๊น?'๋ผ๋์๋ฌธ์ ๊ฐ์ง๊ฒ ๋๋ฉด์ ์๋น์ค ๊ฐ ๋์์ฑ ์ ์ด์ ์ฑ ์ ๋ถ๋ฆฌ์ ๋ํ ๋ฌธ์ ์ ์ ์ธ์ํ์ฌ ๊ฐ์ ํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณด์๋ค. ๐ ๋๊ธฐ์ด ์๋น์ค์๋ง ์ ์ฉ๋ ๋์์ฑ ์ ์ด์ ์๋ฌธ์ ๊ฐ์ง๊ณ ๋ ๊ณ๊ธฐ ํญ๊ณตํธ ์๋งค ์๋น์ค์ ๊ธฐ๋ณธ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค. 1๏ธโฃ ์ฌ์ฉ์๊ฐ ํญ๊ณตํธ ์์ฝ ์์ฒญ2๏ธโฃ ๋๊ธฐ์ด .. [Redis] Redis Cache ์ง๋ ฌํ ๋ฐ ์ญ์ง๋ ฌํ ์ค๋ฅ์ ๋ฐ์๊ณผ ํด๊ฒฐ ๐ ๋ชฉ์ฐจ ํญ๊ณต๊ถ ํฐ์ผํ ์๋น์ค๋ฅผ ๊ตฌํํ๋ ์ค, ํญ๊ณต๊ถ ์กฐํ ์๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด Redis Cache๋ฅผ ์ ์ฉํ๊ฒ ๋์๋ค.ํ์ง๋ง, ์บ์๋ฅผ ์ ์ฅํด์ ๊บผ๋ด์ค๋ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ธํ๋ค.์ด๋ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณด์๋ค. ๐ Redis Cache๋ฅผ ์ ์ฉํ๊ฒ ๋ ์ด์ ์ฐ์ Spring Boot MSA ์ํคํ ์ฒ ๊ธฐ๋ฐ์ผ๋ก ๋์ฉ๋ ํธ๋ํฝ์๋ ์์ ์ ์ธ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ํ๋ก์ ํธ์ ๋ชฉํ์๊ณ , ๊ทธ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ํญ๊ณต๊ถ ์๋งค ์๋น์ค๋ฅผ ๊ตฌํํ๊ณ ์์๋ค. ์ด๋, ๋๊ธฐ์ด๊ณผ ์์ฝ ์๋น์ค ๊ทธ๋ฆฌ๊ณ ์ค์ ํญ๊ณตํธ API(Amadeus API)๋ฅผ ์ฐ๋ํ ํตํฉ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์งํํ๋ฉด์ ๋ฌธ์ ์ ์ ๋ฐ๊ฒฌํ๊ฒ ๋์๋ค. ๐ก Jmeter๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ผ๋ก ํ ์คํธ๋ฅผ ํด๋ณธ.. [Redis] ์์ ์ฃผ๋ฌธ ๊ด๋ฆฌ ํ๋ซํผ - Redis์ ์ค์ผ์ค๋ฌ๋ฅผ ํ์ฉํ ๋ฆฌ๋ทฐ ํ์ ๊ตฌํ ๐ ๋ชฉ์ฐจ Spring Boot๋ฅผ ๊ธฐ๋ฐ์ผ๋ก '์์ ์ฃผ๋ฌธ ๊ด๋ฆฌ ํ๋ซํผ'์ ๊ฐ๋ฐํ๊ฒ ๋์๋ค.์์์ ๊ณผ ๋ฆฌ๋ทฐ ๋๋ฉ์ธ์ ๋งก์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฒ ๋์๋๋ฐ,๊ฐ๊ฒ ์กฐํ ์ ๋ฆฌ๋ทฐ์ ํ์ ๊ณผ ๊ฐ์๊ฐ ํจ๊ป ์กฐํ๋์ด์ผ ํ๋ ์๊ตฌ์ฌํญ์ด ์์๋ค. ์ฌ๋ฌ ๋ฒ์ ๊ณ ๋ฏผ์ ๊ฑฐ์ณ ๋ฆฌ๋ทฐ ํ์ ๊ณผ ๋ฆฌ๋ทฐ ๊ฐ์๋ฅผ N+1 ๋ฌธ์ ์์ด ์กฐํ ๊ฐ๋ฅํ๋๋ก ๊ตฌํํ์๋ค.์ด๋ค ๋ฌธ์ ์ ์ด ์์๋์ง์ ๊ทธ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. ๐ ํ๋ก์ ํธ ์๊ตฌ์ฌํญ ์ด ํ๋ก์ ํธ์ ํ์ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ ์ค ํ๋์ด๋ค. ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ์ ์ดํด๋ณด๋ฉด, ๊ฐ๊ฒ ๋ชฉ๋ก์ ์กฐํ ์ ํ์ ์ ๋ ธ์ถํด์ผ ํ๋ค๊ณ ๋์ด์๋ค.์ฒ์์ ๊ธฐ๋ฅ๋ง ์๊ฐํ๊ณ ๊ตฌํ์ ํ๋ค ๋ณด๋ ๊ฐ๊ฒ๋ฅผ ์์ธ ์กฐํํ๊ฑฐ๋ ๊ฒ์ํด์ ๊ฐ๊ฒ ๋ชฉ๋ก์ ์กฐํํ ๋, ๋ฆฌ๋ทฐ ์์ ํ์ ์ ๊ทธ๋๊ทธ๋ ๊ณ์ฐํ์ฌ ๋ณด์ฌ์ฃผ๋๋ก ๋ก์ง์ ์์ฑํ๋ค.๐ก ๋ฆฌ๋ทฐ ๋ฐ .. [CI/CD] ์ค์๊ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ - GitHub Actions๋ฅผ ํตํ CI/CD ๊ตฌ์ถํ๊ธฐ - (2) ๐ ๋ชฉ์ฐจ ์ง๋ ํฌ์คํ ์์ CI/CD๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ์์๋ณด์๋ค.[CI/CD] ์ค์๊ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ - GitHub Actions๋ฅผ ํตํ CI/CD ๊ตฌ์ถํ๊ธฐ - (1) ์ด๋ฒ ํฌ์คํ ์์๋ ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ ๊ณผ ๋๋ถ์ด GitHub Actions๋ฅผ ํ์ฉํด ์ง์ CI/CD๋ฅผ ๊ตฌ์ถํด ๋ณด์. ๐ GitHub์์ ์ค์ ํ๊ธฐ ์ธํ ๋ฆฌ์ ์ด์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ์ฐ๊ฒฐํด ์ฃผ๊ฑฐ๋ ๊นํ๋ธ์์ ๋ฐ๋ก ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์ฑํด๋ ๋๋ค. ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์ฑํ๋ฉด ๋์ค๋ ํ์ด์ง์์ Actions ํญ์ ์ ํํ๊ฑฐ๋ creating new file์ ์ ํ ํ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์ค๋ค. Actions ํญ์ ์ ํํ๋ฉด ํ ํ๋ฆฟ์ ๊ฒ์ํ๊ณ ์ ํํ ์ ์๋ ํ์ด์ง๋ก ๋์ด๊ฐ๊ณ , creating n.. [CI/CD] ์ค์๊ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ - GitHub Actions๋ฅผ ํตํ CI/CD ๊ตฌ์ถํ๊ธฐ - (1) ๐ ๋ชฉ์ฐจ ๊ฐ์ธ์ ์ผ๋ก SpringBoot๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ค์๊ฐ ์ฑํ ์๋ฒ๋ฅผ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค.์ด์ปค๋จธ์ค ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์๊ฐ ์ ์ง์ ๊ตฌํํด๋ณด์ง ๋ชปํ๋ ๋ถ๋ถ์ ์์ฃผ๋ก ์งํํ ์์ ์ด๋ค.์ด๋ฒ ํฌ์คํ ์์๋ CI/CD๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ์์๋ณด๋๋ก ํ์. ๐ CI/CD๋? CI/CD๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ฌ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ๋ฐฐํฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ Continuous Integration(์ง์์ ํตํฉ)๊ณผ Continuous Delivery/Deployment(์ง์์ ์ ๋ฌ/๋ฐฐํฌ)์ ์ฝ์์ด๋ค. ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ์๊ฐ๋ถํฐ ์ค์ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๊ฐ๊น์ง์ ๋ชจ๋ ๊ณผ์ ์ ์๋ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. โ๏ธ CI(์ง์์ ํตํฉ)๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์์ฃผ ๋ณํฉํ๊ณ , .. [Docker] Docker๋ก Tomcat ์คํํ๊ธฐ ๐ ๋ชฉ์ฐจ ์ง๋๋ฒ ํฌ์คํ ์์ Docker์ Docker๋ก MySQL์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์๋ค.[Docker] Docker๋ก MySQL ์คํํ๊ธฐ [Docker] Docker๋ก MySQL ์คํํ๊ธฐ๐ ๋ชฉ์ฐจ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ MySQL ์ค์ ์ ์ด๊ฒ์ ๊ฒ ๋ณ๊ฒฝํด ๋ณด์๋ค.์ดํ, ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ์ค์ ์ ๋ค์ ๋ฐ๊ฟ์ผ ํด์ ๋ถํธํ๋ ๊ฒฝํ์ด ์๋ค.์ค์ ์ ๋ค์ ๋ณ๊ฒฝํด์ผzzudev.tistory.com ์ด๋ฒ ํฌ์คํ ์์๋ Docker๊ฐ ์ด๋ฏธ ์ค์น๋์ด ์๋ค๋ ๊ฐ์ ํ์,Docker๋ฅผ ์ด์ฉํ์ฌ ํฐ์บฃ(Tomcat)์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. ๐ ํฐ์บฃ(Tomcat) ๋ฒ์ ํ์ธ Docker๋ ์ด๋ฏธ ์ค์น๋์ด ์๋ค๋ ๊ฐ์ ํ์, ํฐ์บฃ(Tomcat) ์ปจํ ์ด๋๋ฅผ ์คํ.. ์ด์ 1 2 3 4 5 ๋ค์