Tiny Nginx ๋ Nginx ๋ฅผ ๋ชจํฐ๋ธ๋ก ํ ์บ์ฑ๊ณผ ๋ก๋๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ ํฌํจํ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ์
๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ ๋๊ท๋ชจ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ์ฌ ๊ฐ๋ฐ์๋ค์ด ์ง๋ฉดํ ๋ฌธ์ ๋ ๋ฌด์์ธ์ง, ๊ทธ ๋ฌธ์ ์ ์ Nginx ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง์ ๋ํ ๊ถ๊ธ์ฆ์ผ๋ก๋ถํฐ ์์๋์์ต๋๋ค.
- ๋๊ท๋ชจ์ ํธ๋ํฝ์ ๋ถ์ฐ ์ฒ๋ฆฌ์ ์บ์ฑ์ ํตํด ๋ถํ๋ฅผ ์ค์ด๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ๋จ์ํ ๊ธฐ๋ฅ ๊ตฌํ๋ฟ๋ง ์๋๋ผ ์ง์ ๊ตฌํํด๋ณด๋ฉฐ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ๊ฐ์ฒด ์งํฅ ์๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ์ ์ง ๋ณด์๊ฐ ์ฉ์ดํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ํจ์จ์ ์ธ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ํ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ์๋ํํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
- ๋น๋์ ํ ์คํธ๋ฅผ ์๋ํํ์ฌ ๊ฐ๋ฐ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด CircleCi ๋ฅผ ํ์ฉํ์์ต๋๋ค.
- ์๋ฒ์ ์ํ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ์ฌ Prometheus ์ Grafana ๋ฅผ ํ์ฉ์์ต๋๋ค.
- ๋ถํ ํ ์คํธ๋ฅผ ํตํด ์๋ฒ์ ์ฑ๋ฅ์ ์ฒดํฌํ๊ธฐ ์ํด Gatling ์ ํ์ฉํ์์ต๋๋ค. ์ด ๋๊ตฌ๋ CircleCi ๋ฐ Prometheus, Grafana ์์ ๋์ ํธํ์ฑ์ ๋ฐ๋ผ k6 ๋ก ๋์ฒด๋ ์์ ์ ๋๋ค.
- Java11
- Maven
- Netty
- Google Cloud Platform(GCP)
- CircleCi
- Prometheus
- Grafana
- Gatling (k6๋ก ๋์ฒด๋ ์์ )
- IntelliJ
Workflow๋ feature, main, release, hotfix 4๊ฐ์ง์ ๋ธ๋์น๋ก ๋๋์ด ์์
ํ๊ณ ์๊ณ , ๋ชจ๋ ๋ธ๋์น์ ๋ํด Pull Request๋ฅผ ํตํ ์ฝ๋ ๋ฆฌ๋ทฐ ์๋ฃ ํ Merge๋ฅผ ํ๊ณ
์์ต๋๋ค.
Keyword
feature: ๊ธฐ๋ฅ์ ๊ตฌํ์ ๋ด๋นํ๋ ๋ธ๋์นmain: ๊ฐ๋ฐ๋ ๋ด์ฉ์ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ธ๋์นrelease: ์ต์ข ์ ์ผ๋ก ๋ฐฐํฌ๋๋ ๋ธ๋์นhotfix: ๋ฐฐํฌ๋ ์์ค์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ฉด ์์ฑ๋๋ ๋ธ๋์น
๋ธ๋์น ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ตฌํํ ๊ธฐ๋ฅ์ Origin ๋ ํฌ์งํ ๋ฆฌ์
feautre/{๊ธฐ๋ฅ๋ช }๋ธ๋์น์์ ๊ฐ๋ฐ์ ํ๊ณ Commit log๋ฅผ ์์ฑํฉ๋๋ค. - ์์
์ด ์๋ฃ๋๋ฉด Upstream ๋ ํฌ์งํ ๋ฆฌ์
main๋ธ๋์น์ Pull Request๋ฅผ ํฉ๋๋ค. - ๊ณํํ๋ ๊ธฐ๋ฅ์ด ๋ชจ๋ ์์ฑ๋๊ณ ์ด์์ด ์์ผ๋ฉด,
main๋ธ๋์น์์release๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค. release๋ธ๋์น์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ฉดhotfix๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ์์ ํฉ๋๋ค. ์ค๋ฅ ์์ ์ด ์๋ฃ๋๋ฉดrelease๋ธ๋์น์main๋ธ๋์น์ ๊ฐ๊ฐ merge ํฉ๋๋ค.
Tiny Nginx ์ ๋ํ ์์ธํ ์ค๋ช
๊ณผ ๊ธฐ์ ์ ์ธ ๊ณ ๋ฏผ๋ค์ ํ์ธํ์ค ์ ์์ต๋๋ค.
