Skip to content

DAMICHOI/tiny-nginx

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Tiny Nginx

Tiny Nginx ๋Š” Nginx ๋ฅผ ๋ชจํ‹ฐ๋ธŒ๋กœ ํ•œ ์บ์‹ฑ๊ณผ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๋Œ€๊ทœ๋ชจ์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง๋ฉดํ•œ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ธ์ง€, ๊ทธ ๋ฌธ์ œ์ ์„ Nginx ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ๋Œ€๊ทœ๋ชจ์˜ ํŠธ๋ž˜ํ”ฝ์˜ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ์™€ ์บ์‹ฑ์„ ํ†ตํ•ด ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ๋ฅผ ์ ์šฉํ•˜์—ฌ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
  • ํšจ์œจ์ ์ธ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

Tiny Nginx Architecture

  • ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด CircleCi ๋ฅผ ํ™œ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•˜์—ฌ Prometheus ์™€ Grafana ๋ฅผ ํ™œ์šฉ์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์„ฑ๋Šฅ์„ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด Gatling ์„ ํ™œ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” CircleCi ๋ฐ Prometheus, Grafana ์™€์˜ ๋†’์€ ํ˜ธํ™˜์„ฑ์— ๋”ฐ๋ผ k6 ๋กœ ๋Œ€์ฒด๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ธฐ์ˆ  ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • Java11
  • Maven
  • Netty
  • Google Cloud Platform(GCP)
  • CircleCi
  • Prometheus
  • Grafana
  • Gatling (k6๋กœ ๋Œ€์ฒด๋  ์˜ˆ์ •)
  • IntelliJ

Git Branch ์ „๋žต

Workflow๋Š” feature, main, release, hotfix 4๊ฐ€์ง€์˜ ๋ธŒ๋žœ์น˜๋กœ ๋‚˜๋ˆ„์–ด ์ž‘์—…ํ•˜๊ณ  ์žˆ๊ณ , ๋ชจ๋“  ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•ด Pull Request๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์™„๋ฃŒ ํ›„ Merge๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Keyword

  • feature : ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„์„ ๋‹ด๋‹นํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • main : ๊ฐœ๋ฐœ๋œ ๋‚ด์šฉ์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜
  • release : ์ตœ์ข…์ ์œผ๋กœ ๋ฐฐํฌ๋˜๋Š” ๋ธŒ๋žœ์น˜
  • hotfix : ๋ฐฐํฌ๋œ ์†Œ์Šค์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ์„ฑ๋˜๋Š” ๋ธŒ๋žœ์น˜

๋ธŒ๋žœ์น˜ ์ „๋žต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ์„ Origin ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ feautre/{๊ธฐ๋Šฅ๋ช…} ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  Commit log๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด Upstream ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ main ๋ธŒ๋žœ์น˜์— Pull Request๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ณ„ํšํ–ˆ๋˜ ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ์™„์„ฑ๋˜๊ณ  ์ด์ƒ์ด ์—†์œผ๋ฉด, main ๋ธŒ๋žœ์น˜์—์„œ release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  4. release ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด hotfix ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜๋ฉด release ๋ธŒ๋žœ์น˜์™€ main ๋ธŒ๋žœ์น˜์— ๊ฐ๊ฐ merge ํ•ฉ๋‹ˆ๋‹ค.

Wiki

Tiny Nginx ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ๊ธฐ์ˆ ์ ์ธ ๊ณ ๋ฏผ๋“ค์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%