๋ง์ ์คํํธ์ ์ด ์ด๋ฐ ์ผ์ ๊ฒช์์ต๋๋ค. ๋งค์ผ ์๋ง์ ์ ๊ท ์ฌ์ฉ์๊ฐ ๋ฑ๋กํ๊ณ ๊ฐ๋ฐํ์ ์๋น์ค๋ฅผ ๊ณ์ ์คํํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํฉ๋๋ค.
์ด๋ ์ข์ ๋ฌธ์ ์ด์ง๋ง, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฌด๊ฒ๋ ์๋ ์ํ์์ ์์ญ๋ง ๋ช ์ ์ฌ์ฉ์๋ก ์กฐ์ฌ์ค๋ฝ๊ฒ ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ํํ ์ ๋ณด๊ฐ ์น์ ๊ฑฐ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ ๋ณ๋ชฉ ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ(์ข ์ข ๋ ๋ค)์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๋๋ค์ ์๋ง์ถ์ด ํ๋ก์ ํธ๋ฅผ ์ ๋ง ์ง์งํ ํ๋ก์ ํธ๋ก ํ์ฅํ๊ธฐ ์ํด ๋ค์ ์ง๋ถํ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค.
์ ๋ณด๋ฅผ ํํฐ๋งํ๊ณ ๊ธฐ๋ณธ ๊ณต์์ ์ ์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ์ฌ์ง ๊ณต์ ์ฌ์ดํธ Graminsta๋ฅผ ์ฌ์ฉ์ 1๋ช ์์ 100๋ช ๊น์ง ๋จ๊ณ์ ์ผ๋ก ํ์ฅํ ์์ ์ ๋๋ค.
๊ด๊ฐ์ด 10๋ช
, 100๋ช
, 1000๋ช
, 10๋ง๋ช
, 000๋ง๋ช
์ผ๋ก ๋์ด๋ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋์ง ์ ์ด๋ณด์.
์ฌ์ฉ์ 1๋ช : ๋จธ์ 1๋
์น์ฌ์ดํธ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๊ฑฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ธ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค.
- API
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํด๋ผ์ด์ธํธ(๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด ๋๋ ์น์ฌ์ดํธ)
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๊ตฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. API๋ ์ด ๋ฐ์ดํฐ์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค.
์ํคํ ์ฒ ๊ด์ ์์ ํด๋ผ์ด์ธํธ์ API ์ํฐํฐ๊ฐ ์์ ํ ๋ถ๋ฆฌ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ํ์ฅ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค.
์ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์์ํ๋ฉด ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์ ๋ชจ๋ ๋์ผํ ์๋ฒ์์ ์คํ๋ ์ ์์ต๋๋ค. ์ด๋ค ๋ฉด์์ ์ด๊ฒ์ ์ฐ๋ฆฌ์ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ ์ฌํฉ๋๋ค. ํ ๋ช ์ ์์ง๋์ด๊ฐ ๋์ผํ ์์คํ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, API ๋ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์คํํฉ๋๋ค.
์ด๋ก ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ด ๋จ์ผ DigitalOcean Droplet ๋๋ AWS EC2 ์ธ์คํด์ค์ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ฆ, ์ฌ์ดํธ์ ๋ ๋ช
์ด์์ ์ฌ์ฉ์๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฑฐ์ ํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ธต์ ์ ์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค.
์ฌ์ฉ์ 10๋ช : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๋์ ์์ค์ผ๋ก ์ด๋
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Amazon RDS ๋๋ Digital Ocean Managed Database์ ๊ฐ์ ๊ด๋ฆฌํ ์๋น์ค๋ก ๋ถํ ํ๋ฉด ์ค๋ซ๋์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋จ์ผ ๋จธ์ ์ด๋ EC2 ์ธ์คํด์ค์์ ์์ฒด ํธ์คํ ํ๋ ๊ฒ๋ณด๋ค ์กฐ๊ธ ๋ ๋น์ธ์ง๋ง, ์ด๋ฌํ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ค ์ง์ญ ๋ฐฑ์ , ์ฝ๊ธฐ ๋ณต์ ๋ณธ, ์๋ ๋ฑ ๋ฏธ๋์ ์ ์ฉํ ์ ์ฉํ ํ์ฅ ๊ธฐ๋ฅ์ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐฑ์ ๋ฑ์ด ์์ต๋๋ค.
ํ์ฌ ์์คํ
์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์ 100๋ช : ํด๋ผ์ด์ธํธ๋ฅผ ๋ณ๋์ ์์ค์ผ๋ก ์ด๋
๋คํํ ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์๋ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ง ์ข์ํ์ต๋๋ค. ํธ๋ํฝ์ด ๋์ฑ ์์ ๋๊ณ ์์ผ๋ฏ๋ก ์ด์ ํด๋ผ์ด์ธํธ๋ฅผ ๋ณ๋์ ์์ค์ผ๋ก ์ด๋ํ ๋์ ๋๋ค. ์ฃผ๋ชฉํด์ผ ํ ์ ์ ๋ถ๋ฆฌ ์ํฐํฐ๋ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ํต์ฌ ์ธก๋ฉด์ ๋๋ค. ์์คํ ์ ํ ๋ถ๋ถ์ด ๋ ๋ง์ ํธ๋ํฝ์ ์์ ํ๋ฉด ์ด๋ฅผ ๋ถํ ํ์ฌ ํน์ ํธ๋ํฝ ํจํด์ ๋ฐ๋ผ ์๋น์ค๊ฐ ํ์ฅ๋๋ ๋ฐฉ์์ ์ ์ดํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์ ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ API์ ๋ณ๊ฐ๋ก ์๊ฐํ๊ณ ์ถ์ ์ด์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์น, ๋ชจ๋ฐ์ผ ์น, iOS, Android, ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ , ํ์ฌ ์๋น์ค ๋ฑ ๋ค์ํ ํ๋ซํผ์ ๋ํ ๊ฐ๋ฐ์ ๋งค์ฐ ์ฝ๊ฒ ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ค์ ๋ชจ๋ ๋์ผํ API๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ์ผ ๋ฟ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์ด์ ์ฌ์ฉ์๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ถ์๋ฅผ ๊ฐ์ฅ ์์ฃผ ์์ฒญํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ API ์ํฐํฐ๋ฅผ ๋ถ๋ฆฌํ๋ฉด ์ด ์์ ์ด ๋ ์ฌ์์ง๋๋ค.
๊ทธ๋ฌํ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์ 1000๋ช : ๋ก๋ ๋ฐธ๋ฐ์ ์ถ๊ฐ
์ํฉ์ด ์ข์์ง๊ณ ์์ต๋๋ค. Graminsta ์ฌ์ฉ์๋ค์ ์ ์ ๋ ๋ง์ ์ฌ์ง์ ์ ๋ก๋ํ๊ณ ์์ต๋๋ค. ๋ฑ๋ก ๊ฑด์๋ ๋์ด๋๊ณ ์๋ค. ์ฐ๋ฆฌ์ ๋จ์ผ API ์๋ฒ๋ ๋ชจ๋ ํธ๋ํฝ์ ๋ฐ๋ผ์ก๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. ์ฒ ๋ถ์ด ๋ ํ์ํด์!
๋ก๋ ๋ฐธ๋ฐ์๋ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ฐ๋ ์ ๋๋ค. ํต์ฌ ์์ด๋์ด๋ API ์์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋ฐฐ์นํ๊ณ ๊ฐ๋ณ ์๋น์ค ์ธ์คํด์ค์ ํธ๋ํฝ์ ๋ถ์ฐ์ํค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ํ์ ์ผ๋ก ํ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฆ, ๋์ผํ ์ฝ๋๋ก ๋ ๋ง์ ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ์ฒ๋ฆฌํ ์ ์๋ ์์ฒญ ์๋ฅผ ๋๋ฆฝ๋๋ค.
์น ํด๋ผ์ด์ธํธ ์๊ณผ API ์์ ๋ณ๋์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋ฐฐ์นํ ์์ ์ ๋๋ค. ์ด๋ API ์ฝ๋์ ์น ํด๋ผ์ด์ธํธ ์ฝ๋๋ฅผ ์คํํ๋ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ์คํํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์๋ ๋ก๋๊ฐ ์ ์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๋ ๋ค๋ฅธ ์ค์ํ ์ด์ , ์ฆ ์ค๋ณต์ฑ์ ์ป์ต๋๋ค. ํ ์ธ์คํด์ค๊ฐ ์คํจํ๋ฉด(์๋ง๋ ๊ณผ๋ถํ ๋๋ ์ถฉ๋) ๋ค์ด์ค๋ ์์ฒญ์ ๊ณ์ ์๋ตํ๋ ๋ค๋ฅธ ์ธ์คํด์ค๊ฐ ๋จ์ต๋๋ค. ์ธ์คํด์ค๊ฐ ํ๋๋ง ์๋ํ๋ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ์์คํ ์ด ์ค๋จ๋ฉ๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์๋ ์๋ ํฌ๊ธฐ ์กฐ์ ๋ ์ ๊ณตํฉ๋๋ค. ์ต๋ ๋ถํ๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ์ธ์คํด์ค ์๋ฅผ ๋๋ฆฌ๊ณ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ ์๊ณ ์์ ๋ ์ธ์คํด์ค ์๋ฅผ ์ค์ด๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒญ ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด API ์์ค์ ๊ฑฐ์ ๋ฌดํ์ ํ์ฅํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ. ํ์ฌ ์ฐ๋ฆฌ ์์คํ ์ Heroku ๋๋ AWS์ Elastic Beanstalk์ ๊ฐ์ PaaS ํ์ฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค(์ด๊ฒ์ด ๋ฐ๋ก ์ธ๊ธฐ๊ฐ ์๋ ์ด์ ์ ๋๋ค). Heroku๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๋์ ํธ์คํธ์ ๋ฐฐ์นํ๊ณ ์๋ ํ์ฅ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ด๋ฆฌํ๋ฉฐ API์ ๋ณ๋๋ก ์น ํด๋ผ์ด์ธํธ๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ด๊ธฐ ๋จ๊ณ์ ํ๋ก์ ํธ๋ ์คํํธ์ ์ Heroku๋ฅผ ์ฌ์ฉํ๋ ํฐ ์ด์ ์ ๋๋ค. ์ฆ, ๋ชจ๋ ๊ธฐ๋ณธ ์๋น์ค๋ฅผ ์ฆ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ์ฉ์ 10๋ช : CDN
์๋ง๋ ์ฐ๋ฆฌ๋ ์ฒ์๋ถํฐ ์ด ์ผ์ ํ์ด์ผ ํ์ ๊ฒ์ ๋๋ค. ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ์ฌ์ง์ ์๋ฝํ๋ ๊ฒ์ด ์๋ฒ์ ๋๋ฌด ๋ง์ ๋ถ๋ด์ ์ฃผ๊ธฐ ์์ํ์ต๋๋ค.
์ด ๋จ๊ณ์์๋ ์ด๋ฏธ์ง, ๋น๋์ค ๋ฑ์ ์ ์ ์ฝํ ์ธ (AWS S3 ๋๋ Digital Ocean Spaces)๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ API๋ ์ด๋ฏธ์ง ์ ๊ณต ๋ฐ ์๋ฒ์ ์ด๋ฏธ์ง ์ ๋ก๋์ ๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ์ง ์์์ผ ํฉ๋๋ค.
ํด๋ผ์ฐ๋ ํธ์คํ ์ ๋ ๋ค๋ฅธ ์ฅ์ ์ CDN์ ๋๋ค(AWS๋ ์ด ์ถ๊ฐ ๊ธฐ๋ฅ์ Cloudfront๋ผ๊ณ ๋ถ๋ฅด์ง๋ง ๋ง์ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ์ ๊ณต์ ์ฒด๊ฐ ์ด๋ฅผ ์ฆ์ ์ ๊ณตํฉ๋๋ค). CDN์ ์ ์ธ๊ณ ๋ค์ํ ๋ฐ์ดํฐ ์ผํฐ์ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ์บ์ํฉ๋๋ค.
๋น์ฌ์ ๋ฉ์ธ ๋ฐ์ดํฐ ์ผํฐ๋ ์คํ์ด์ค์ ์์ ์ ์์ง๋ง ๋๊ตฐ๊ฐ ์ผ๋ณธ์ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๋ฉด ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ ์ด๋ฅผ ๋ณต์ฌํ์ฌ ์ผ๋ณธ ๋ฐ์ดํฐ ์ผํฐ์ ์ ์ฅํฉ๋๋ค. ์ผ๋ณธ์์ ์ด ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๋ ๋ค์ ์ฌ๋์ด ํจ์ฌ ๋ ๋นจ๋ฆฌ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ค์ด๋ก๋ํ๊ณ ์ง๊ตฌ ์ ์ฒด๋ก ์ ์กํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฌ์ง์ด๋ ๋น๋์ค์ ๊ฐ์ ๋์ฉ๋ ํ์ผ์ ์์ ํ ๋ ์ค์ํฉ๋๋ค.
100๋ช ์ ์ฌ์ฉ์: ๋ฐ์ดํฐ ๊ณ์ธต ํ์ฅ
CDN์ ๋ง์ ๋์์ ์ฃผ์์ต๋๋ค. ํธ๋ํฝ์ด ์ต๊ณ ์๋๋ก ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ ๋ช ํ ๋น๋์ค ๋ธ๋ก๊ฑฐ Mavid Mobrick์ด ๋ฐฉ๊ธ ์ฐ๋ฆฌ์ ๋ฑ๋กํ๊ณ ๊ทธ๋ค์ด ๋งํ๋ ๋๋ก ๊ทธ์ "์คํ ๋ฆฌ"๋ฅผ ๊ฒ์ํ์ต๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์ ๋๋ถ์ API ์๋ฒ์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ฎ๊ฒ ์ ์ง๋์ง๋ง(XNUMX๊ฐ์ API ์ธ์คํด์ค ์คํ) ์์ฒญ์ ๋ํ ์๊ฐ ์ด๊ณผ๊ฐ ๋ง์ด ๋ฐ์ํ๊ธฐ ์์ํฉ๋๋ค... ์ด๋ฌํ ์ง์ฐ์ ์ด๋์์ ๋ฐ์ํฉ๋๊น?
์ธก์ ํญ๋ชฉ์ ์กฐ๊ธ ์ดํด๋ณด๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ CPU๊ฐ 80-90% ๋ก๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๊ณ์ ๋๋ฌํ์ต๋๋ค.
๋ฐ์ดํฐ ๊ณ์ธต์ ํ์ฅํ๋ ๊ฒ์ ์๋ง๋ ๋ฐฉ์ ์์์ ๊ฐ์ฅ ์ด๋ ค์ด ๋ถ๋ถ์ผ ๊ฒ์ ๋๋ค. API ์๋ฒ๋ ์ํ ๋น์ ์ฅ ์์ฒญ์ ์ฒ๋ฆฌํ๋ฏ๋ก ๋ ๋ง์ API ์ธ์คํด์ค๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ฝ ๋๋ถ๋ถ์ ์ฌ๋๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (PostgreSQL, MySQL ๋ฑ)์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์บ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ๋์ด๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ ์๋ก์ด ๊ตฌ์ฑ ์์์ธ ์บ์ ๊ณ์ธต์ ๋์ ํ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์บ์ฑ ๋ฐฉ๋ฒ์ Redis ๋๋ Memcached์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ด ํค-๊ฐ ๋ ์ฝ๋ ์ ์ฅ์์ ๋๋ค. ๋๋ถ๋ถ์ ํด๋ผ์ฐ๋์๋ AWS์ Elasticache์ Google Cloud์ Memorystore ์๋น์ค์ ๊ด๋ฆฌํ ๋ฒ์ ์ด ์์ต๋๋ค.
์บ์๋ ์๋น์ค๊ฐ ๋์ผํ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ ๋ ์ ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ๋ฒ๋ง ์ก์ธ์คํ๊ณ ์ ๋ณด๋ฅผ ์บ์์ ์ ์ฅํ๋ฉฐ ๋ค์๋ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด Graminsta ์๋น์ค์์๋ ๋๊ตฐ๊ฐ ์คํ Mobrik์ ํ๋กํ ํ์ด์ง๋ก ์ด๋ํ ๋๋ง๋ค API ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด๋น ํ๋กํ์ ์ ๋ณด๋ฅผ ์ฟผ๋ฆฌํฉ๋๋ค. ์ด๋ฐ ์ผ์ด ๊ณ์ํด์ ๋ฐ์ํฉ๋๋ค. Mobrik์ ํ๋กํ ์ ๋ณด๋ ์์ฒญํ ๋๋ง๋ค ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ์บ์ฑ์ ํ์ํฉ๋๋ค.
Redis์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฒฐ๊ณผ๋ฅผ ํค๋ณ๋ก ์บ์ํฉ๋๋ค. user:id
์ ํจ๊ธฐ๊ฐ์ 30์ด์
๋๋ค. ์ด์ ๋๊ตฐ๊ฐ Mobrik์ ํ๋กํ์ ๊ฐ๋ฉด ๋จผ์ Redis๋ฅผ ํ์ธํ๊ณ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด Redis์์ ์ง์ ์ ์กํ๋ฉด ๋ฉ๋๋ค. ์ด์ ์ฌ์ดํธ์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํ๋กํ์ ๋ํ ์์ฒญ์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ก๋ํ์ง ์์ต๋๋ค.
๋๋ถ๋ถ์ ์บ์ฑ ์๋น์ค์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ณด๋ค ํ์ฅ์ด ๋ ์ฝ๋ค๋ ๊ฒ์
๋๋ค. Redis์๋ Redis ํด๋ฌ์คํฐ ๋ชจ๋๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์์ ์ ์ฌ
๊ฑฐ์ ๋ชจ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์บ์ฑ์ ์ฌ์ฉํ๋ฉฐ ์ด๋ ๋น ๋ฅธ API์ ์ ๋์ ์ผ๋ก ํ์์ ์ธ ๋ถ๋ถ์ ๋๋ค. ๋ ๋น ๋ฅธ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ๋ ์์ฐ์ ์ธ ์ฝ๋๊ฐ ๋ชจ๋ ์ค์ํ์ง๋ง ์บ์๊ฐ ์์ผ๋ฉด ์๋น์ค๋ฅผ ์๋ฐฑ๋ง ๋ช ์ ์ฌ์ฉ์๋ก ํ์ฅํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ณต์ ๋ณธ ์ฝ๊ธฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ ์๊ฐ ํฌ๊ฒ ์ฆ๊ฐํ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๋ ํ๋์ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์์์ ์ค๋ช ํ ๊ด๋ฆฌ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ ๋ฒ์ ํด๋ฆญ์ผ๋ก ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ต์ ์ํ๋ก ์ ์ง๋๋ฉฐ SELECT ๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์ ๋จ๊ณ
์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ณ์ ํ์ฅ๋จ์ ๋ฐ๋ผ ์๋น์ค๋ฅผ ๊ณ์ ๋ถ๋ฆฌํ์ฌ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด Websocket์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด Websocket ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ๋ณ๋์ ์๋น์ค๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์์ฒด ๋ก๋ ๋ฐธ๋ฐ์ ๋ค์ ์ ์ธ์คํด์ค์ ๋ฐฐ์นํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ณต๊ฐ ์น์์ผ ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก HTTP ์์ฒญ ์์ ๊ด๊ณ์์ด ํ์ฅ ๋ฐ ์ถ์ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ค์ ์ ํ์ ๊ณ์ํด์ ๋ง์ ์ธ์ธ ๊ฒ์ ๋๋ค. ์ด ๋จ๊ณ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํํฐ์ ๋๊ณผ ์ค๋ฉ์ ์ฐ๊ตฌํ ๋์ ๋๋ค. ๋ ์ ๊ทผ ๋ฐฉ์ ๋ชจ๋ ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ํ์ํ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฑฐ์ ๋ฌดํ์ ํ์ฅํ ์ ์์ต๋๋ค.
๋ํ New Relic ๋๋ Datadog๊ณผ ๊ฐ์ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถ์ ์๋น์ค๋ฅผ ์ค์นํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ๊ฐ์ ์ด ํ์ํ ๋ถ๋ถ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ท๋ชจ๋ฅผ ํ์ฅํ๋ฉด์ ์ฐ๋ฆฌ๋ ๋ณ๋ชฉ ํ์์ ์ฐพ์ ์ ๊ฑฐํ๋ ๋ฐ ์ง์คํ๊ณ ์ถ์ต๋๋ค. ์ข ์ข ์ด์ ์น์ ์ ์์ด๋์ด ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ค
์ด ๊ฒ์๋ฌผ์ ๋ค์ ์ค ํ๋์์ ์๊ฐ์ ์ป์์ต๋๋ค.
๊ฐ์ฃผ
- ์ฌ๋ฌ ์ธ์คํด์ค์ ๊ฑธ์น ๋ก๋ ๋ถ์ฐ ์ธก๋ฉด์์๋ ์ ์ฌํ์ง๋ง Redis ํด๋ฌ์คํฐ์ ๊ธฐ๋ณธ ๊ตฌํ์ ๋ก๋ ๋ฐธ๋ฐ์์ ๋งค์ฐ ๋ค๋ฆ
๋๋ค.
[๋ฐํ]
์ถ์ฒ : habr.com