2023. 7. 8. 14:54ใSystem ์์ ์ค/DevOps
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ Docker๋ฅผ ์ด์ฉํ PostgreSQL 15 ์ค์น
๐ฝ ๊ฐ์
๐ฆ ์๊ฐ
์ด๋ฒ์๋ ์ง๋ ๊ธ์์ ์ค์นํ๋ SonarQube์ ์ ๋ณด์ Data๋ฅผ ์ ์ฅํ Data Base๋ฅผ ๊ตฌ์ถํด ์ฃผ๋ ค๊ณ ํด์.
Data Base๋ฅผ ๊ตฌ์ฑํ๋ ค๊ณ ํ๋ ์ด์ ๋ ์์ ๊ฐ์ด ์๋ํ๋ธ๊ฐ ๋์ํ๋ฉด์ ๋ถ์ ์๋ฃ, ์ค์ ๋ฑ์ Data Base์ ์ ์ฅ ์ํฌ ์ ์๊ฒ ํ๊ธฐ ์ํจ์ด์์.
์ฃผ๋๊ฐ ์ ์ ์ฝ๋ ๋ถ์์ฉ์ผ๋ก ์ค์นํ ์๋ํ๋ธ์ ๋ฒ์ ์ 9.8 ๋ฒ์ ์ด์์.
์๋ํ๋ธ ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์๋ํ๋ธ๋ ์ด 3๊ฐ์ง์ DBMS๋ฅผ ์ง์ํ๊ณ ์๋ค๊ณ ํด์.
โ PostgresSQL
โ MSSQL
โ Oracle SQL
์ฃผ๋๋ ์ด ์ค ๋ฌด๋ฃ๋ก ์ด์ฉํ ์ ์๋ PostgresSQL์ ์ค์นํ ๊ฒ์ธ๋ฐ, ๊ณต์ ๋ฌธ์์๋ 11~15๋ฒ์ ๊น์ง ์ง์ํ๋ค๊ณ ๋์ ์์ด์. ๊ทธ๋์ PostgreSQL 15 Version์ Docker์ ์ด์ฉํด์ ์ค์นํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
๐ฝ PostgreSQL 15
๐ฆ ์ค์นํ๊ธฐ
์ฃผ๋๋ ์์ PostgresSQL 15.2 Version์ ์ค์นํ๋๋ก ํด ๋ณผ๊ฒ์.
์ต์ด Image๋ฅผ ๋ด๋ ค ๋ฐ๊ธฐ ์ํด ์์ ๊ฐ์ด ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด ์ฃผ์์ด์.
Docker Image๊ฐ ์ ๋ด๋ ค ๋ฐ์์ง๊ฑธ ํ์ธํ ์ ์์ด์.
์ฃผ๋๋ ์ด ์ ๊ณผ ๊ฐ์ด Shell Script๋ฅผ ์ด์ฉํด์ Docker ๊ธฐ๋ ๋ช
๋ น์ด๋ฅผ ์์ฑํด ์ฃผ๋๋ก ํ ๊ฒ์.
์ฃผ๋๋ ์์ ๊ฐ์ด Shell Script๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์.
์ฌ๊ธฐ์ --restart=unless-stopped๋ Docker Host OS๊ฐ Booting ๋๋ฉด ์๋์ผ๋ก ์ฌ์์ํ๋ผ๋ Option ๊ฐ์ด์์.
๐ก Docker ์๋ ๊ธฐ๋ ๊ด๋ จ Option
1. --restart=" " : Container ๋ด๋ถ Process ์ข ๋ฃ ์ ์ฌ ์์ ์ ์ฑ ์ค์
โ no : Process๊ฐ ์ข ๋ฃ๋๋๋ผ๋ Container๋ฅผ ์ฌ์์ ํ์ง ์์
โ on-failue : Process exit code๊ฐ 0๊ฐ ์๋ ๋๋ง ์ฌ ์์ (๋ฏธ ์ง์ ์ ๋ฌธ์ ๊ฐ ์์ด๋ ๊ณ์ Container ์ฌ์์ ์๋)
โ always : Process exit code์ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์์ ์๋
โ unless-stopped : Booting ์ ์๋์ผ๋ก Container ์ฌ์์
๊ทธ๋ฐ ๋ค ๋ง๋ค์ด์ง Shell Script File ๊ถํ์ ์ค์ ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด Docker Container๊ฐ ์ ์์ ์ผ๋ก ๊ธฐ๋๋๊ฑธ ์ ์ ์์ด์.
๐ฆ ์ ์ํ๊ธฐ
PostgresSQL์ด ์ ์์ ์ผ๋ก ์ ์๋ํ๋์ง ํ๋ฒ ํ์ธํด ๋ณผ๊ฒ์.
์์ ๋ช
๋ น์ด๋ฅผ ํตํด ๋ง๋ค์ด์ง PostgresSQL Conainter์ ์ ์ํด ์ฃผ์์ด์.
์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ฉด PostgresSQL์ ์ ์ํ ์ ์์ด์.
์ SQL๋ฌธ์ผ๋ก ํ์ฌ ์กด์ฌํ๋ ์ ์ฒด DB ์ด๋ฆ์ ํ์ธํ ์ ์์ด์.
์ SQL๋ฌธ์ผ๋ก๋ ์ฌ์ฉ์๊ฐ ์์ฑํ DB ์ด๋ฆ๋ง ์ถ๋ ฅ๋๊ฒ ํ๋ผ๋ ๋ช
๋ น์ด์์.
์ SQL๋ฌธ์ ํตํด ์์ฑ๋ Data Base์ Schema๋ฅผ ํ์ธํ ์ ์์ด์.
postgresSQL์ ์์ ๊ฐ์ด ๊ณ์ ์ ์์ฑํด ์ค ์ ์์ด์.
๊ทธ๋ฆฌ๊ณ ์์ ๊ฐ์ด DB๋ฅผ ๋ง๋ค๊ณ , sonaradmin ๊ณ์ ์ ์์ ์ฃผ๋ก ํด ์ฃผ์์ด์.
์์ ๊ฐ์ด sonaradmin ๊ณ์ ์ DB๋ฅผ ์์ฑํ ์ ์๋ ๊ถํ์ ์ฃผ์์ด์.
sonaradmin ๊ณ์ ์ sonarqube DB์ ๋ชจ๋ ๊ถํ์ ์ฃผ์์ด์.
๐ฆ GUI ๋๊ตฌ ์ฐ๋ํ๊ธฐ
์ด๋ฒ์๋ DBMS๋ฅผ ๊ด๋ฆฌํ๋๋ฐ, ๋ณด๋ค ํธ๋ฆฌํ GUI ๋๊ตฌ์ ์ฐ๋ ํด ๋ณด๋๋ก ํ ๊ฒ์.
์ฃผ๋๋ Jet Brain์ DataGrip์ ์ฌ์ฉํ๊ณ ์์ด์.
์ฐ๊ฒฐ ํ
์คํธ ๊ฒฐ๊ณผ ์ ์ฐ๊ฒฐ ๋๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
๋ค์ ๊ธ์์ ์๋ํ๋ธ์ PostgresSQL ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ธ์ ๋จ๊ฒจ ๋ณด๋๋ก ํ ๊ฒ์.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."