์กฐํ์ ์์ API ๊ตฌํ
๋ฒ์ ๋ฆฌ์คํธ์ ๊ฐ ์์ดํ
์ด ํด๋ฆญ๋ ๋ ํด๋น ์์ดํ
์ด DB์ ์๋ค๋ฉด count
๋ฅผ ์ฆ๊ฐ์ํค๊ณ ์๋ค๋ฉด ํด๋น ์์ดํ
์ DB์ ์๋ก ์ถ๊ฐํ๊ณ count
๋ฅผ 1๋ก ์ค์ ํด์ฃผ์๋ค. ์กฐํ์๋ฅผ ๋ค๋ฃจ๋ API๋ ๋งํ์์ด ์ ๊ตฌํ๋์์ง๋ง ์์๋ฅผ ๋ฐ์์ค๋ ๋ถ๋ถ์์ ํ์ฐธ ๊ตฌ๊ธ๋ง์ด ํ์ํ๋ค..
5์๊น์ง์ ์์๋ฅผ ๋ฐ์์จ๋ค๋ฉด count
๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ 5๊ฐ๋ง ๊ฐ์ ธ์ค๋๋ก ํ๋ฉด ๋๋ค. mongoDB๋ฅผ ๋ณ๋ก ๋ค๋ค๋ณด์ง ์์์ง๋ง ์กฐ๊ธ ๊ฒฝํ์ ์ํด์ ์ง๊ด์ ์ผ๋ก ์ง ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค..
rank_list = db.ranking.find().sort({'count':-1}).limit(5)
๊ฑฐ์ ๋์
๋๋ฆฌ ํ์
์ผ๋ก ์กฐ๊ฑด์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์์ ๋น์ฐํ ์ ๋ ฌ์กฐ๊ฑด๋ {'ํ๋์ด๋ฆ': ์กฐ๊ฑด}์ผ๋ก ์ฌ์ฉํ๋๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ฌ์ค ์๋ฌ์ ๋ํด ์ ํํ๊ฒ ํ์ ํ์ง๋ ๋ชปํ์ง๋ง ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ์๋ค..
rank_list = db.ranking.find({}).sort([('count',-1)]).limit(5)
sort([('์ด๋ฆ':์กฐ๊ฑด)])
... ์ ๋ ฌ ์กฐ๊ฑด์ ๋ฆฌ์คํธ ์์ ํํ๋ก ๋ฐ๋๋ค.. ๊ต์ฅํ ์์ํ๊ฒ ๋๊ปด์ง๋ ๋ฌธ๋ฒ์ด๋ค.
์๋ฌดํผ ์ด๋ ๊ฒ DB์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ก ์๋ต์ ๊ตฌ์ฑํ์ฌ ์ ๋ด๋ ค์ฃผ์๋ค.
rank_result = []
for idx, rank in enumerate(rank_list):
doc = {
'rank':idx+1,
'title':rank['title'],
'count':rank['count']
}
rank_result.append(doc)
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ฒ์ ์ง์คํ๋ ๊ฒ๋ ์ฌ๋ฏธ์์ง๋ง ์ด๋ฒ ์บ ํ์์ ์ป๊ณ ์ ํ๋ ๋ฌด๊ธฐ ์ค ํ๋์ธ ์ธํ๋ผ ๊ธฐ์ ๋ ํํํ ๊ณต๋ถํ๋ค.
CloudFront๋ฅผ ์ฌ์ฉํ๋ ์ด์
AWS๋ ์ธ๊ณ์ ์ผ๋ก ๋ง์ region
์ ๊ฐ๊ณ ์๋ค.
๋ด๊ฐ ๋ํ๋ฏผ๊ตญ region
์์ S3 ๋ฒํท์ ํตํด ์ ์ ๋ฆฌ์์ค๋ค์ ํธ์คํ
ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
๋ด S3 ๋ฒํท์ ๋ฏธ๊ตญ์ ์๋ region
์์ ์ ๊ทผํ๊ณ ์ ํ๋ค๋ฉด ๋น์ฐํ ๊ฑฐ๋ฆฌ ๋๋ฌธ์ ๋คํธ์ํฌ ์๋๊ฐ ๋๋ ค์ง ๊ฒ์ด๋ค.
์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด CloudFront
๋ region
๊ฐ ๋ฆฌ์์ค์ ์ ๊ทผ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด ์บ์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
CloudFront CDN (Contents Delivery Network)
S3๋ฒํท๊ณผ CloudFront ์์ฑ ๋ฐ ์ฐ๋
์ถ์ ์ฐํด๋ก ๋์ด์ง ์ ์ ์ ๋ถ์ฌ์ก๊ณ ์ด๋ฒ ์ฃผ๋ ์ํ๋ค!