Cdnjs: ์ œ์•ˆ - ํฌ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ํ†ต๊ณ„/๋ถ„์„ ์ˆ˜์น˜ ๋ฐ ๊ทธ๋ž˜ํ”„

์— ๋งŒ๋“  2013๋…„ 03์›” 22์ผ  ยท  36์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: cdnjs/cdnjs

CDNJS๋Š” ๊ฐœ๋ณ„ ํŒŒ์ผ์ด CDN์—์„œ ๊ฐ€์ ธ์˜จ ํšŸ์ˆ˜๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๊นŒ? CDNJS๊ฐ€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ๊ฐ ํŒŒ์ผ์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ฐ›๊ณ  ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์ตœ์‹  ์ฐจํŠธ์™€ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด ์ •๋ง ๋Œ€๋‹จํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์šด๋กœ๋“œํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์„œ์‚ฌ์‹œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ์ฝ”๋“œ์™€ ๋ถ„๋ช…ํžˆ ํ˜ธํ™˜๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ธฐ๋ฅผ ์›ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ง€๋‚œ X ์‹œ๊ฐ„ ๋™์•ˆ ๊ฐ€์žฅ ๋งŽ์ด ๋‹ค์šด๋กœ๋“œ๋œ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ์‹  jQuery๊ฐ€ ๋ฐฉ๊ธˆ ์ถœ์‹œ๋˜์–ด CDNJS์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฉฐ์น ์ด ์ง€๋‚˜๊ณ  jQuery์— ๋Œ€ํ•œ ํ†ต๊ณ„๋Š” ์ง€๋‚œ ์ฃผ ๋™์•ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

jQuery 1.9.1 = 20,000 ๋‹ค์šด๋กœ๋“œ
jQuery 1.9.0 = 50,000 ๋‹ค์šด๋กœ๋“œ
jQuery 1.8.3 = 560,000 ๋‹ค์šด๋กœ๋“œ
jQuery 1.8.2 = 120,000 ๋‹ค์šด๋กœ๋“œ
๋“ฑ...

๊ฐœ๋ฐœ์ž๋Š” ์ด๊ฒƒ์„ ๋ณด๊ณ  ๋ฐฉ๋ฌธ์ž๊ฐ€ jQuery 1.9.1์ด ์ƒˆ ๋ฒ„์ „์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์บ์‹œ๋œ jQuery 1.8.3์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ๋“ค์˜ ์ฝ”๋“œ๊ฐ€ 1.8.3๊ณผ ํ˜ธํ™˜๋˜๋Š” ํ•œ, ๊ทธ๋“ค์€ ์ด๊ฒƒ์„ ์„ ํƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์ˆ˜์น˜๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋‹ฌ ํ›„์— ๊ฐœ๋ฐœ์ž๊ฐ€ CDNJS๋กœ ๋Œ์•„์™€ 1.9.1 ํ†ต๊ณ„๊ฐ€ 1.8.3๋ณด๋‹ค ๋†’์€ ๊ฒƒ์„ ํ™•์ธํ•˜๋ฏ€๋กœ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ทธ์˜ ์ฝ”๋“œ๊ฐ€ 1.9.1์„ ์ค€์ˆ˜ํ•˜๋Š” ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ด๋ฏธ 1.9.1์„ ์บ์‹œ์— ์ €์žฅํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ 1.9.1์„ ์‚ฌ์šฉํ•˜๋„๋ก ์‚ฌ์ดํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒŒ ๋ง์ด ๋ผ? ๋‚˜์—๊ฒŒ ๊ทธ๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. CDNJS์˜ ์š”์ ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ ์  ๋” ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ CDNJS์— ์ถ”๊ฐ€๋˜๊ณ  ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋” ๋งŽ์€ ๋ฒ„์ „์ด ์ถ”๊ฐ€๋จ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •๋ณด์— ์ž…๊ฐํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ด์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ๊ณต์œ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


์ด ๋ฌธ์ œ๋ฅผ ๋’ท๋ฐ›์นจํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํ˜„์ƒ๊ธˆ์„ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค! ์šฐ๋ฆฌ๋Š” Bountysource ๋ฅผ ํ†ตํ•ด ํ˜„์ƒ๊ธˆ์„

Help wanted โ›…๏ธ Waiting for Cloudflare ๐Ÿ“’ Documentation

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ˜„์žฌ Cloudflare์—์„œ cdnjs.cloudflare.com ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ํ†ต๊ณ„/๋กœ๊ทธ ์•ก์„ธ์Šค ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ป๋Š” ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  36 ๋Œ“๊ธ€

@Jakobud ํ›Œ๋ฅญํ•œ ์ œ์•ˆ Jake. ์ด๊ฒƒ์ด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ด๋ผ๋Š” ๋‹น์‹ ์˜ ์ƒ๊ฐ์ด ์ ˆ๋Œ€์ ์œผ๋กœ ์˜ณ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ธ๊ธฐ ์žˆ๋Š” ์š”์ฒญ์ž…๋‹ˆ๋‹ค: https://github.com/cdnjs/cdnjs/issues/405

์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ ์†”๋ฃจ์…˜์„ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋Œ€ํ™”์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์ข…๋ฃŒ๋œ ์ด์ „ ๋ฌธ์ œ #405 ์—ฌ๊ธฐ์„œ ๋Œ€ํ™”๋ฅผ ๊ณ„์†ํ•˜์„ธ์š”.

๋†’์€ ์šฐ์„  ์ˆœ์œ„๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ์‚ฌ๋žŒ์ด ์•„์ง ๋ช‡ ์‹ญ์–ต ์ค„์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ๋ฐœํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ผ๋ฐ˜์ ์ธ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋ช‡ ์ค„์ž…๋‹ˆ๊นŒ? ๋กœ๊ทธ ํŒŒ์ผ์„ ํ•˜๋ฃจ์— ํ•œ ๊ฐœ ์ดํ•˜๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๊นŒ? ๋กœ๊ทธ ํŒŒ์ผ์— ๋‹จ์ˆœํžˆ http://path/file ์ด ๋‹ค์šด๋กœ๋“œ๋œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ? ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ–‰ ID(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฐ ํŒŒ์ผ ์ด๋ฆ„์˜ ID)์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ ์—์ง€ ์œ„์น˜(ํ˜„์žฌ 23๊ฐœ)๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์€ ํ•˜๋ฃจ์— ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜๋‹น ํ•˜๋‚˜ ์ด์ƒ์˜ ๋กœ๊ทธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
์ƒ๋‹นํ•œ ์กฐํšŒ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2013๋…„ 6์›” 28์ผ ๊ธˆ์š”์ผ์— Jake Wilson์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ๋กœ๊ทธ ํŒŒ์ผ์€ ๋ช‡ ์ค„์ž…๋‹ˆ๊นŒ? ๋กœ๊ทธ ํŒŒ์ผ์„ ๋‹ค์Œ๊นŒ์ง€ ๋ถ„ํ• ํ•ฉ๋‹ˆ๊นŒ?
ํ•˜๋ฃจ์— ํ•˜๋‚˜ ๋˜๋Š” ๋” ์ž‘์Šต๋‹ˆ๊นŒ?

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ Gi tHubhttps://github.com/cdnjs/cdnjs/issues/1078#issuecomment -20125044์—์„œ ํ™•์ธํ•˜์„ธ์š”.
.

๋กœ๊ทธ ํŒŒ์ผ์˜ ๋ฐœ์ทŒ๋ฌธ์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ์‹œ์ž‘์ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋„์›€์ด ํ•„์š”ํ•˜์„ธ์š”? ๊ฑฐ๋Œ€ํ•œ ๋กœ๊ทธ ํŒŒ์ผ์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ๋กœ๊ทธ ํŒŒ์ผ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์— ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœํ•œ ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ์ œ์ผ ๋ฟ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์˜ค๋ž˜ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์ด ๋  ๊ฒƒ์ด์ง€๋งŒ ์•„๋งˆ๋„ ์‹ค์ œ๋กœ ๊ทธ๋ ‡๊ฒŒ ๋ณต์žกํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, cdnjs๊ฐ€ ๋ฐฑ์—”๋“œ์—์„œ AWS ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ด ๋ฌธ์ œ์™€ ์ž ์žฌ์ ์œผ๋กœ ๋งค์šฐ ๊ด€๋ จ์ด ์žˆ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค.

http://aws.amazon.com/blogs/aws/all-your-data-fluentd/

Fluentd๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ CDNJS์˜ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•ก์„ธ์Šค ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฐธ๊ณ ๋กœ ๋กœ๊น…์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์‚ฌ๋žŒ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ ๋ฐฉ์‹, ํŒŒ์ผ ์ €์žฅ ์œ„์น˜, ํ•˜๋ฃจ ๋˜๋Š” ๋ช‡ ์ฃผ ๋ถ„๋Ÿ‰์˜ ๋กœ๊ทธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋“ฑ... ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์†”๋ฃจ์…˜์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ์ œ์•ˆ์€ ๋กœ๊ทธ๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. AWS S3์— ์˜ฌ๋ ค๋†“๊ณ  ๋ˆ„๊ตฌ๋‚˜ ์žก์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹ญ์‹œ์˜ค. ๋ˆ„๊ตฐ๊ฐ€(๋˜๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ)์ด ๋ถ„์„ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ๊ฒƒ์ž„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋ฌธ์˜ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๋ฉด ์–ด๋”˜๊ฐ€์—์„œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ํ†ต๊ณ„๋ฅผ ๊ฐ€์ ธ์˜ฌ ํŒŒ์„œ๋ฅผ ํ•จ๊ป˜ ๊ตฌ์„ฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•‘ @thomasdavis

์•„, ์•„์ง ํ†ต๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

cdnjs์šฉ API ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ:

api.cdnjs.com/lib/jquery/stats

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ cdnjs ์›น์‚ฌ์ดํŠธ์—์„œ ํ†ต๊ณ„๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :๋„ค ์žŽ ํด๋กœ๋ฒ„:

์›น ์‚ฌ์ดํŠธ์˜ ํ†ต๊ณ„๋Š” ์‰ฝ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์€ cdn์˜ ํ†ต๊ณ„๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. Cloudflare๋Š” ํ•ด๋‹น ์ •๋ณด๋‚˜ ์•ก์„ธ์Šค ๋กœ๊ทธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

cc @thomasdavis @ryankirkman @terinjokes

๋กœ๊ทธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋กœ๊ทธ ๋ณผ๋ฅจ์ด ๋„ˆ๋ฌด ์ปค์„œ
์ง‘๊ณ„ ์ „๋žต์„ ์•Œ์•„๋‚ด๋‹ค
2015๋…„ 5์›” 24์ผ ์ผ์š”์ผ ์˜ค์ „ 12:28 Peter Dave ์•ˆ๋…•ํ•˜์„ธ์š” ์•Œ๋ฆผ @github.com
์ผ๋‹ค:

์›น ์‚ฌ์ดํŠธ์˜ ํ†ต๊ณ„๋Š” ์‰ฝ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์€ cdn์˜ ํ†ต๊ณ„๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
Cloudflare๋Š” ํ•ด๋‹น ์ •๋ณด๋‚˜ ์•ก์„ธ์Šค ๋กœ๊ทธ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

cc @thomasdavis https://github.com/thomasdavis @ryankirkman
https://github.com/ryankirkman @terinjokes
https://github.com/terinjokes

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -104988412.

๋Œ€๋žต์ ์ธ ํ†ต๊ณ„๋Š” ๊ฑฐ์˜ ๋น„์Šทํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ ๋ณผ๋ฅจ์ด ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ์ƒ˜ํ”Œ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฑด ์‚ฌ์‹ค์ด์•ผ! ํ•˜๋ฃจ ํŠธ๋ž˜ํ”ฝ * 30๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ๊ทธ๋Š” ์ง€๊ธˆ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ํ˜•ํƒœ๋กœ๋“  ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ผ๋ถ€ S3 ์Šคํ† ๋ฆฌ์ง€์— ์ผ์ผ ๋กœ๊ทธ๋ฅผ ๋คํ•‘ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋กœ๊ทธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค! ์–ด์จŒ๋“  ์ €๋Š” ์ผ๋ถ€ ํ†ต๊ณ„ ๋ฐ ์‹œ๊ฐํ™” ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค. :๋น›๋‚˜๋Š” ๊ฒƒ:

์ด์ „์— ๋งํ–ˆ๋“ฏ์ด CDNJS๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ ์–ด๋–ค ํ˜•์‹์œผ๋กœ๋“  ๋กœ๊ทธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๊ณ  ๋ˆ„๊ตฐ๊ฐ€๋Š” ์‚ฌ์šฉ ํ†ต๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ‹์ง„ ํŒŒ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์„ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ œ ๋กœ๊ทธ์˜ IP ์ฃผ์†Œ๊ฐ€ ๋ฏผ๊ฐํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํŒŒ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์œผ๋กœ์„œ ๋‚ด ๋ชจ์ž๋ฅผ ๋ง์— ๋˜์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์„ ์„ ๋‹คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

BTW, ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ํŒŒ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์œผ์‹œ๋‹ค๋ฉด bower auto-updater์™€ ๊ฐ™์€ cdnjs์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๊ณ„์† ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋” ์žˆ์Šต๋‹ˆ๊นŒ? 2๋…„ ๋ฐ˜์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํ˜•ํƒœ๋กœ๋“  ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์…จ์Šต๋‹ˆ๊นŒ?

๋„์™€์ฃผ์„ธ์š” ๋„์™€์ฃผ์„ธ์š”!

ํ•‘ @thomasdavis @ryankirkman @terinjokes @drewfreyling ...

์ด๋ด, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” #405์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ˆ์ด์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค. ๋กœ๊ทธ๋Š” ๊ณตํ†ต ํ˜•์‹์ด์ง€๋งŒ 500๋งŒ ์กฐํšŒ์ˆ˜์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ํ’€๋‹ค์šดํ•˜๋ฉด ํ•˜๋ฃจ์— 300๋‹ฌ๋Ÿฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. (2 1/2๋…„ ํ›„ ์—ฌ๋Ÿฌ๋ถ„์€ ์•„๋งˆ ํ•˜๋ฃจ์— 5๋ฐฑ๋งŒ ๊ฑด ์ด์ƒ์˜ ์กฐํšŒ์ˆ˜๋ฅผ ์–ป์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

๊ทธ๋ž˜์„œ ๊ฑฐ๊ธฐ์„œ ๋‚˜์˜จ ํ•ด๊ฒฐ์ฑ…์€ EC2 ์ธ์Šคํ„ด์Šค์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ S3 ์ปจํ…Œ์ด๋„ˆ์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ์žˆ๋Š” ํ•œ S3์—์„œ EC2 ์ธ์Šคํ„ด์Šค๋กœ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๋ฐ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ณธ์งˆ์ ์œผ๋กœ ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ƒ์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘
  2. ์Šคํฌ๋ฆฝํŠธ๋Š” S3 ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ง€๋‚œ 24์‹œ๊ฐ„ ๋™์•ˆ์˜ ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  3. ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ ๋ถ„์„ ๋กœ๊ทธ
  4. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋กœ์ปฌ ๋กœ๊ทธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  5. ์Šคํฌ๋ฆฝํŠธ๋Š” ์›ํ•˜๋Š” ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋”˜๊ฐ€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
  6. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ์ ˆ๋Œ€์ ์ธ ์ตœ์†Œ ๋น„์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ํ™œ์„ฑํ™”๋œ ์‹œ๊ฐ„์— ๋Œ€ํ•ด์„œ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 24์‹œ๊ฐ„๋งˆ๋‹ค ์ผœ๋„๋ก EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ž์ฒด ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ์ƒ๊ฐ. ์†”์งํžˆ ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต์ง€ ์•Š์„ํ…๋ฐ...

์‹ค์ œ๋กœ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์€ AWS Data Pipeline์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

http://aws.amazon.com/documentation/data-pipeline/

๊ทธ๋ฆฌ๊ณ  AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋น„์šฉ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ/๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ดํฌ

๋‹น์‹ ์ด ์ œ์•ˆํ•œ ์†”๋ฃจ์…˜์€ ๋งค์šฐ ์šฐ์•„ํ•˜์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋” ์ด์ƒ CDN์„ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ Cloudfront. Cloudflare๋Š” ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค.
๊ณต๊ธ‰์ž.

ํ†ต๊ณ„ ์†”๋ฃจ์…˜์— ๊ด€ํ•ด์„œ๋Š” ์•„์ง ์ข‹์€ ๋‹ต๋ณ€์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. Jake.
2015๋…„ 11์›” 19์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 9:35 Jake Wilson ์•Œ๋ฆผ @github.com
์ผ๋‹ค:

์‹ค์ œ๋กœ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์€ AWS Data Pipeline์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

http://aws.amazon.com/documentation/data-pipeline/

๊ทธ๋ฆฌ๊ณ  AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ถ„์„
๋ฐ์ดํ„ฐ/๋กœ๊ทธ๋ฅผ ๋น„์šฉ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -158129912.

@ryankirkman ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋ฃจ์— ํ•„์š”ํ•œ ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ณ  ์•„๋งˆ๋„ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Cloudflare ๋กœ๊ทธ๋Š” ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ API ๋“ฑ์„ ํ†ตํ•ด ์–ด๋–ค ํ˜•ํƒœ๋กœ๋“  ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ EC2 ์ด์ „ ์š”๊ธˆ:

์ธํ„ฐ๋„ท์—์„œ Amazon EC2๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก GB๋‹น $0.00

https://aws.amazon.com/ec2/pricing/

๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ Cloudflare ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ์™€ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ๋ฌด์—‡์ด๋“  ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ํ™œ์„ฑํ™”๋œ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์ƒ๋‹นํžˆ ์ •์ฒด๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ํ†ต๊ณ„ ๋˜๋Š” ๋ฐฑ๋ถ„์œจ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ/์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

jQuery๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด - ์‚ฌ์ดํŠธ ์†Œ์œ ์ž๋Š” ์ด๋ฏธ ์บ์‹œ๋œ ํ•„์ˆ˜ jquery ๋ฒ„์ „์œผ๋กœ ๋„์ฐฉํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ %์— ๋Œ€ํ•ด ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ cdnjs๊ฐ€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ†ต๊ณ„๋Š” ์ด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ Cloudflare์—์„œ cdnjs.cloudflare.com ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ํ†ต๊ณ„/๋กœ๊ทธ ์•ก์„ธ์Šค ๋ฐฉ๋ฒ•์„ ์„ค์ •ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ป๋Š” ๋Œ€๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

#6186์—์„œ ๊ตญ๊ฐ€ ๋ถ„๋ฅ˜์™€ ๊ฐ™์€ ๋ณด๋‹ค ์‹ฌ์ธต์ ์ธ ํ†ต๊ณ„๊ฐ€ ์œ ์šฉํ•  ๊ฒƒ์ด๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

@dknecht ์ด ๋ฌธ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ cdnjs.cloudflare.com ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ†ต๊ณ„/๋กœ๊ทธ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ? ๊ฐ์‚ฌ ํ•ด์š” :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰