[Cloudflare] Worker

[์›๋ณธ ๋งํฌ]

Worker๋Š” ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด์˜ ์„œ๋ฒ„๋ฆฌ์Šค ํŽ‘์…˜ ์„œ๋น„์Šค๋‹ค. ๋ณธ์ธ๋“ค์€ ์—ฃ์ง€ ์„œ๋ฒ„๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
์กฐ๊ธˆ ๋‹ค๋ฅด๊ธด ํ•˜์ง€๋งŒ AWS์˜ Lambda ๋“ฑ๊ณผ ๋Œ€์น˜๋œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์–ธ์–ด๋Š” Javascript ๋ฟ์ด๊ณ , ๋ชจ๋“ˆ import๋Š” ์ œํ•œ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ทธ๋ž˜์„œ ์ •๋ง ๊ฐ€๋ณ๊ณ  ๋‹จ์ˆœํ•œ ์ž‘์—…์„ ํ•˜๋Š”๋ฐ ์ ์ ˆํ•˜๋‹ค.

๋ณดํ†ต ๊ถŒ์žฅํ•˜๋Š” ์‚ฌ์šฉ๋ฒ•์€, ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑ„์„œ ๋ณ€์กฐ๋ฅผ ๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ A/B ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ• ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. A/B ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๋กœ์ง์„ ์›Œ์ปค์— ์บก์Аํ™”ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌ, ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ด๊ฒŒ ๋ฐฐํฌ๊ฐ€ ์ •๋ง ๋น ๋ฅด๋‹ค.

๋‚ด ๊ฒฝ์šฐ์—๋Š” ํฌ๋กค๋ง์šฉ์œผ๋กœ ๋งŽ์ด ์“ฐ๊ณ ์žˆ์—ˆ๋‹ค.
ํด๋ผ์šฐ๋“œํ”Œ๋ ˆ์–ด ๋Œ€์—ญ์„ ๋ง‰์•„๋†“์€๋ฐ๊ฐ€ ๊ฑฐ์˜ ์—†์–ด์„œ.. ์ž˜ ํ†ตํ•œ๋‹ค.

์ฒ˜์Œ ์ง„์ž…ํ•˜๋ฉด ์š”๊ธˆ์ œ๋ฅผ ์„ ํƒํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

์†Œ๊ทœ๋ชจ๋กœ๋งŒ ์‚ฌ์šฉํ• ๊ฑฐ๋ผ๋ฉด ๋ฌด๋ฃŒ๋กœ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์œ ๋กœ๋กœ ์“ฐ๋”๋ผ๋„ ์š”๊ธˆ์€ ํƒ€์‚ฌ ๋Œ€๋น„ ๋งค์šฐ ์ €๋ ดํ•œ ํŽธ์ด๋‹ค.





์›Œ์ปค ์ƒ์„ฑ

์›Œ์ปค๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด๋ณด์ž.
์„œ๋น„์Šค ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

์›Œ์ปค์˜ ์ด๋ฆ„๊ณผ ์•„์ด๋””๊ฐ€ ์›Œ์ปค URL์˜ ์„œ๋ธŒ๋„๋ฉ”์ธ์ด ๋œ๋‹ค.

๊ทธ๋ƒฅ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์„ฑํ•ด๋„ ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ด๋Ÿฐ์‹์œผ๋กœ ์ƒ์„ฑ๋  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ €๊ธฐ ์ƒ์„ฑ๋œ ๊ฒฝ๋กœ๋กœ ์ ‘์†ํ•˜๋ฉด ๊ธฐ๋ณธ ํ…์ŠคํŠธ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค.




์†Œ์Šค์ฝ”๋“œ ํŽธ์ง‘

๋ฆฌ์†Œ์Šค์—์„œ "๋น ๋ฅธ ํŽธ์ง‘" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์—๋””ํ„ฐ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์†Œ ํŠน์ดํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
fetch ์ด๋ฒคํŠธ์—๋‹ค ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ๊ฑธ์–ด๋†“๊ณ , ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
์š”์ฒญ, ์‘๋‹ต๊ฐ’์— ๋Œ€ํ•œ ๋ช…์„ธ๋Š” ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.
https://developers.cloudflare.com/workers/runtime-apis/request/
https://developers.cloudflare.com/workers/runtime-apis/response/

์ฝ˜์†”๋กœ๊ทธ๋‚˜ ์˜ˆ์™ธ๋Š” ์ €๊ธฐ ๊ฐœ๋ฐœ์ž๋„๊ตฌ์ฒ˜๋Ÿผ ์ƒ๊ธด๋ฐ์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์†Œ์Šค์ฝ”๋“œ์˜ ๋ฐฐํฌ๋Š” ์ €๊ธฐ ์•„๋ž˜ ๋ฐฐํฌ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.
๊ฐ„๋‹จํ•˜๋‹ค.




์‘๋‹ต, ์š”์ฒญ ์ฒ˜๋ฆฌํ•ด๋ณด๊ธฐ

Response ๊ฐ์ฒด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ…์ŠคํŠธ๋งŒ ๋ฐ›๋Š”๋‹ค.
๋งŒ์•ฝ json์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

URL ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ™์€๊ฑธ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ์ง์ ‘ ํŒŒ์‹ฑ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
๋ง์…ˆ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” api๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค.




ํŠธ๋ฆฌ๊ฑฐ

์›Œ์ปค๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฑธ์–ด์„œ ์‹œ๊ฐ„ ์ฃผ๊ธฐ๋กœ ์ž๋™์œผ๋กœ ๋Œ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ์ˆœ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ๋„ ๋˜๊ณ 

ํฌ๋ก ์‹๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทผ๋ฐ ์„œ๋น„์Šค ํŠน์„ฑ์ƒ ์ด๊ฑธ ์“ธ์ผ์ด ์žˆ์„์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.