-
Notifications
You must be signed in to change notification settings - Fork 22
๐ ํ๋ก์ ํธ ์ ๋ณด
์ต๊ทผ ํจ์ ์ฝ๊ณ์์ ํ์ ํ ์ค๋์ปค์ฆ ๋ฆฌ์ (resell ยท ์ฌํ๋งค)์ด ํ๋๋ก ๋ ์ค๋ฅด๊ณ ์๋ ์ ์ ๊ณ ๋ คํ์ฌ ํ๋งค์์ ๊ตฌ๋งค์ ์ฌ์ด์์ ์ค๊ฐ์ ์ญํ ์ ํตํด ๊ฐํ ํ๋งค ๋ฐฉ์ง์ ์ฌ๊ธฐ ๋ฐฉ์ง๋ฅผ ์ง์ํ๋ ์ค๊ฐ ๊ฑฐ๋ ํ๋ซํผ
โ
๊ธฐ๋ณธ์ ์ผ๋ก ์ปค๋ฐ ๋ฉ์์ง๋ ์ ๋ชฉ / ๋ณธ๋ฌธ / ๊ด๋ จ์ด์๋ก ๊ตฌ๋ถํ๋ค.
โ
feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
โ
fix : ๋ฒ๊ทธ ์์
โ
docs : ๋ฌธ์ ์์
โ
style : ์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ธ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
โ
refactor : ์ฝ๋ ๋ฆฌํํ ๋ง
โ
test : ํ
์คํธ์ฝ๋, ๋ฆฌํํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
โ
chore : ๊ธฐํ ๋ณ๊ฒฝ์ฌํญ
โ
์ ๋ชฉ์ 50์๋ฅผ ๋๊ธฐ์ง ์๊ณ , ๋ง์นจํ๋ฅผ ๋ถ์ด์ง ์๋๋ค.
โ
์์ด๋ก ์์ฑํ ์ ๊ณผ๊ฑฐ์์ ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ช
๋ น์ด๋ก ์์ฑํ๋ฉฐ, ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค.
โ
์ ํ์ฌํญ ์ด๋ฏ๋ก ๋ชจ๋ ์ปค๋ฐ์ ๋ณธ๋ฌธ๋ด์ฉ์ ์์ฑํ ํ์๋ ์๋ค.
โ
๋ณธ๋ฌธ์ "์ด๋ป๊ฒ" ๋ณด๋ค "๋ฌด์์" ๊ณผ "์"๋ฅผ ์ค๋ช
ํ๋ค.
โ
ํ์ค์ ์ต๋ 72์๋ฅผ ๋๊ธฐ์ง ์๊ณ ์ ๋ชฉ๊ณผ ๊ตฌ๋ถ๋๊ธฐ ์ํด ํ์นธ ๋์ ์์ฑํ๋ค.
โ
์ ํ์ฌํญ ์ด๋ฏ๋ก ๋ชจ๋ ์ปค๋ฐ์ ๊ผฌ๋ฆฌ๋ง์ ์์ฑํ ํ์๋ ์๋ค.
โ
์ด์๋ฒํธ๋ฅผ ์ ๋๋ค. ์ฌ๋ฌ๊ฐ ์ ์ด๋ ์๊ด ์๋ค.
-
PR์ ํตํ merge : ๋ฆฌ๋ทฐ์ด๊ฐ ๋ชจ๋ approve ํด์ผ merge ๊ฐ๋ฅํ๋๋ก ์ ํ
-
Google checkStyle ์ ์ฉ
โ
master : ๋ฒ ํฌ ๋จ๊ณ์ ์ถ์๋ ์ ์๋ ๋ธ๋์น
โ
develop : ๊ฐ๋ฐ์ด ๋๋ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
โ
feature : ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
โ
release : ๋ฒ ํฌ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น
โ
hotfix : ๋ฒ ํฌ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น
โ
issue/* : issue๋ฅผ ๋๋์ด์ ๊ฐ๋ฐ์ ์ ์ฉํ๋ ๋ธ๋์น
Reference : ์ฐ์ํ ํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ : Git-flow
์ฑ๋ฅ ํ ์คํธ ๊ฒฐ๊ณผ Cache์ ์ ์ฉ ์ฌ๋ถ์ ๋ฐ๋ผ ์์ฒญ๋ ์ฑ๋ฅ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค. ๋ฐ๋ผ์ Redis ์๋ฒ๋ฅผ ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌ์์ผ ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํตํด ์บ์ ์ ์ฅ์์ ๊ฐ์ฉ์ฑ์ ์ ์ ์งํด์ผ ํฉ๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ด 3๊ฐ์ ๊ธฐ๋ฅ๋ณ๋ก ๋ ๋์ค ์๋ฒ๋ฅผ ๋ถ๋ฆฌ์์ผฐ์ต๋๋ค.
โ FCM ํ ํฐ ์ ์ฅ์ : [Compact] 1vCPU, 2GB Mem, 50GB Disk
โ Login Session ์ ์ฅ์ : [Compact] 1vCPU, 2GB Mem, 50GB Disk
โ ์บ์ ๋ฐ์ดํฐ ์ ์ฅ์ : [Compact] 1vCPU, 2GB Mem, 50GB Disk
๋ก๊ทธ์ธ ํ ์คํธ์์ 3000๋ช ์ ๊ฐ์ ์ฌ์ฉ์ ์ ์ ์ ๋ถ์์ ํ ์ฑ๋ฅ์งํ๋ฅผ ๋ณด์์ต๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด์ WAS 1๋๋ง ์ด์ฉํ๋ ๋ฐฉ์์์ ์น์๋ฒ nginx์ WAS1๋๋ฅผ ์ถ๊ฐ๋ก ๋์ด์ ๋ก๋๋ฐธ๋ฐ์ฑ์ ํตํ ๋ถํ ๋ถ์ฐ์ด ๊ฐ๋ฅํ๋๋ก ์๋ฒ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ์์ต๋๋ค.
โ WAS 1 : [Compact] 1vCPU, 2GB Mem, 50GB Disk
โ WAS 2 : [Compact] 1vCPU, 2GB Mem, 50GB Disk
โ nginx : [Compact] 1vCPU, 2GB Mem, 50GB Disk
์ฑ๋ฅ ํ ์คํธ ์ด์ ์ DB์์ ๋ฐ์ํ๋ ๋ณ๋ชฉํ์์ ๊ฐ์ ํ๊ณ ์ ์ฌ์ ์ Master/Slave ๊ตฌ์กฐ์ Replication์ ๊ตฌ์ฑํ์์ต๋๋ค. ์ผ๋จ Slave์๋ฒ๋ 1๊ฐ๋ง ๊ตฌ์ฑํ์๊ณ , Master ์๋ฒ์ Slave ์๋ฒ ๋ชจ๋ ๋์ผํ ์คํ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
โ MySQL Master : [Compact] 1vCPU, 2GB Mem, 50GB Disk
โ MySQL Slave : [Compact] 1vCPU, 2GB Mem, 50GB Disk
์ฒ์ Jenkins ์๋ฒ๋ฅผ ๋์์ ๋๋ NCP์์ 1๋ ๊ฐ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ micro ์๋ฒ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. git push ๋๋ pull request๊ฐ ๋ฐ์ ํ ๋๋ง๋ค ์๋ ํ ์คํธ์ ๋น๋๊ฐ ์งํ๋๋๋ก ์ค์ ํ์๋๋ฐ, ํ ์คํธ๊ฐ ์งํ๋ ๋๋ง๋ค 20๋ถ์์ ์ต๋ 1์๊ฐ๊น์ง ๊ฑธ๋ฆฌ๊ณ ์ฌํ ๊ฒฝ์ฐ Timeout์ผ๋ก ์ธํด ๋น๋๊ฐ ์คํจํ๋ ๋ฌธ์ ๊ฐ ์๊ฒผ์ต๋๋ค. ๋ฐ๋ผ์ Jenkins ์๋ฒ์ ์คํ์ ๋ค๋ฅธ ์๋ฒ๋ค๋ณด๋ค ์กฐ๊ธ ๋ ๋์ ์ฌ์์ ์ ํํ์ต๋๋ค.
โ Jenkins : [Standard] 2vCPU , 4GB Mem, 50GB Disk
ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ธฐ ์ํด AWS S3์, ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง์ ์ํด AWS Lambda๋ฅผ ์ ํํ์ต๋๋ค. ํด๋น ํ๋ก์ ํธ์์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ ์ ์๋ ์ฌ์ฉ์๋ ๊ด๋ฆฌ์ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ๋์ด ๊ทธ๋ฆฌ ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์ต๋๋ค. ์ถํ ์ปค๋ฎค๋ํฐ์ฑ ๊ฒ์ํ์ ์ถ๊ฐ ๊ตฌํํ๋ค๋ฉด ํด๋น ์๋ฒ ์คํ๋ Sacle -UP์ ์งํํ ์์ ์ ๋๋ค.
โ AWS S3 & Lambda : AWS ํ๋ฆฌ ํฐ์ด (์ด๋ฏธ์ง ์ ์ฅ ๊ธฐ๋ณธ 50GB, Lambda ์๋ณ ๋ฌด๋ฃ์์ฒญ 100๋ง)
์ต๋ํ ์ ํํ ํ ์คํธ ๊ฒฐ๊ณผ ์งํ๋ฅผ ์ป๊ธฐ ์ํด Controller์ Agent, ๊ทธ๋ฆฌ๊ณ ํ ์คํธ Target์ด ๋๋ Server๋ฅผ ๋ชจ๋ ๊ฐ๊ฐ ๋์ด์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์งํํ์์ต๋๋ค.
Controller์ ๋ช ๋ น์ ๋ฐ์ Agent์์ ์ค์ ๋ถํ๋ฅผ ๋ฐ์์ํค๊ธฐ ๋๋ฌธ์ Agent์ ์๋ฒ ์คํ์ ๊ฐ์ฅ ๋๊ฒ ๊ตฌ์ฑํ์์ต๋๋ค.
โ Controller server : [Standard] 2vCPU, 4GB Mem, 50GB Disk
โ Agent server : [Standard] 4vCPU, 8GB Mem, 50GB Disk