Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ์†Œ์œ„๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–€๋ฑ์Šค ๊ธฐ๋Šฅ (๊ณต์‹ ๋ช…์นญ Yandex ํด๋ผ์šฐ๋“œ ๊ธฐ๋Šฅ), ๋ฉ”์ผ๋ง ์„œ๋น„์Šค์™€ ๊ณต๋ชจ SendGrid ํ‰ํ™”๋กญ๊ฒŒ ์ž๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ "๋น„๋ˆ„"๋ฅผ ๋ณด๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋†๋‹ด์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘ ์ŠคํŒธ์— ๋ฐ˜๋Œ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค).

๋‚˜๋Š” ๋˜ํ•œ ์ „ํ†ต์ ์ธ ์„œ๋ฒ„์˜ ๋ฐ˜๋Œ€์ž(๊ด‘์‹ ์ฃผ์˜๋Š” ์•„๋‹˜)์ด์ž ์†Œ์œ„ ๋งํ•˜๋Š” ์ง€์ง€์ž์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค (์„œ๋ฒ„๋ฆฌ์Šค) ์†”๋ฃจ์…˜์€ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ(์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€๋„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—) ๋กœ๋“œ๋˜์ง€ ์•Š์€ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‚˜ ์—†์ด ๋ˆ„๊ตฐ๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ๋‚˜๋Š” ํ†ตํ™” ์š”๊ธˆ๋งŒ ์ง€๋ถˆํ•œ๋‹ค. 2019๋…„ XNUMX์›” ์ดˆ Yandex๋Š” Yandex ํด๋ผ์šฐ๋“œ ๊ธฐ๋Šฅ - ๋Ÿฌ์‹œ์•„ ์—ฐ๋ฐฉ ์ตœ์ดˆ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค. ๊ทธ๋ฆฌ๊ณ  ํŠนํžˆ ์ข‹์€ ์ ์€ ์•จ๋ฆฌ์Šค์˜ ์Šคํ‚ฌ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌด๋ฃŒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ดํ›„๋กœ ๋‚ด ์ฃผ๋ณ€ ์‹œ์•ผ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฏธ ์‹œ์ž‘ํ•ด๋ณด์ž.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ๊ท€ํ•˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์˜ˆ: Alice์˜ ์Šคํ‚ฌ ๊ธฐ์–ตํ•˜๊ณ  ์žŠ์–ด๋ฒ„๋ฆฌ์„ธ์š” ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋˜ํ•œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค Yandex ๊ธฐ๋Šฅ)๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ ์˜ต์…˜๊ณผ ๊ฐ™์€ ๋””์ง€ํ„ธ ์ œํ’ˆ์„ ๊ตฌ๋งคํ•˜๋„๋ก ์ดˆ๋Œ€ํ•˜๊ณ  ์‚ฌ์šฉ์ž๋Š” ๊ฒฐ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ผ์ข…์˜ ๊ฒฐ์ œ ์‹œ์Šคํ…œ(ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ •๋„๋กœ ์œ ์‚ฌํ•จ) Yandex ์ฃผ์ฐจ) ๊ฒฐ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ๊ท€ํ•˜๊ฐ€ ์ œ๊ณตํ•œ ์ฃผ์†Œ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ „ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์–€๋ฑ์Šค ๊ธฐ๋Šฅ) HTTP-๊ฒฐ์ œ ๊ธˆ์•ก, ์ด๋ฆ„, ์ „ํ™”๋ฒˆํ˜ธ, ์ด๋ฉ”์ผ ๋“ฑ ๊ฒฐ์ œ ์„ธ๋ถ€์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธˆ์•ก ํ™•์ธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์ ˆํ•œ ํ•ญ๋ชฉ ์ž‘์„ฑ, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‚ด๊ธฐ SMS ะธ ์ด๋ฉ”์ผ ์ง€๋ถˆ ์ˆ˜๋ น ํ™•์ธ ๋ฐ ์ถ”๊ฐ€ ์ง€์นจ๊ณผ ํ•จ๊ป˜. ๊ทธ๋ž˜์„œ ๋‹น์‹  ์ž์‹  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค.

๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด Yandex ๊ธฐ๋Šฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ญ๋ชฉ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค ํด๋ผ์šฐ๋“œ ์†Œ๋ฐฉ์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์‚ดํŽด๋ดค์ฃ  ์•จ๋ฆฌ์Šค๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ธฐ์–ตํ•œ๋‹ค (๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์˜ˆ๋ฅผ ๊ณ ๋ คํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Yandex ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค). ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด SMS ์šฐ๋ฆฌ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์Œ๊ณผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. Yandex.Money โ€” ๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํŽธ์ง€ ๋ณด๋‚ด๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. SendGrid์—์„œ ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

์ฃผ์˜SendGrid๋Š” ์ œ๊ฐ€ ์„ ํƒํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” Node.js์šฉ SDK๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์šฐํŽธ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์†ํ•˜๋‹ค ๊ณ„์ • ๋“ฑ๋ก ํŽ˜์ด์ง€๋กœ ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์—์„œ ๋“ฑ๋ก ์–‘์‹์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๊ทธ๋Ÿผ ์šฐ๋ฆฌ๋Š” ๋Œ€์‹œ๋ณด๋“œ, ํƒ์ƒ‰ ํŒจ๋„์—์„œ ์„ ํƒ ์ด๋ฉ”์ผ API -> ํ†ตํ•ฉ ์•ˆ๋‚ด, ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์ธ ํŒจ๋„์—์„œ - ์›น API ๊ทธ๋ฆฌ๊ณ  ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ. ๋ชจ๋“  ๊ฒƒ์€ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์šฐ๋ฆฌ๋Š” ์„ ํƒํ•ฉ๋‹ˆ๋‹ค Node.js๋ฅผ:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

๋‹ค์Œ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ƒ๊ฐํ•ด API-ํ‚ค ์ด๋ฆ„(์ฝ˜์†”์˜ ํ‚ค ๋ชฉ๋ก์—๋งŒ ํ‘œ์‹œ๋˜๋ฉฐ ํ–ฅํ›„ ์ฝ”๋“œ์™€๋Š” ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ๋ถˆ๋ฉธ์˜ ์ด๋ฆ„์„ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชจ API ํ‚ค) ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ํ‚ค ์ƒ์„ฑ:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

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

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

2. ์ฝ”๋“œ ์ž‘์„ฑ

๊ทธ๋Ÿฌ๋‚˜ ๋ณด์‹œ๋‹ค์‹œํ”ผ ์ฝ”๋“œ ์ž์ฒด๋Š” 22์ค„๋กœ ์—„์ฒญ๋‚˜๊ฒŒ ์ž‘์Šต๋‹ˆ๋‹ค!

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ธ๋ผ์ธ #8 ๋‚ด ์ด๋ฉ”์ผ์€ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜์ค๊ฒŒ ์ˆจ๊ฒจ์ง‘๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ด๋ฉ”์ผ์„ ๋ช…์‹œํ•ด ์ฃผ์„ธ์š”. ์‹ค์ƒํ™œ์—์„œ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ(ํฌํ•จ)๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ) ๊ฐ์ฒด์—์„œ event. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ POST ๊ฐ์ฒด๊ฐ€ ์šฐ๋ฆฌ ํ•จ์ˆ˜๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค ์‚ฌ์šฉ์ž ํ•„๋“œ(์†์„ฑ) ํฌํ•จ ์ด๋ฉ”์ผ, ์ด ํ•„๋“œ์˜ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const { user } = event;
const email = user.email;

๊ทธ๋ฆฌ๊ณ  ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋ฉด ๋ฐ”๋กœ์˜ˆ : https://functions.yandexcloud.net/123abc?[email protected]
๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’ ์ด๋ฉ”์ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

const email = event.queryStringParameters.email;

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

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

์ด์— ๋Œ€ํ•ด์„œ๋Š” ๊ณต์‹ ๋ฌธ์„œ์—์„œ ๋” ์ž์„ธํžˆ(๊ทธ๋Ÿฌ๋‚˜ ๋œ ๋ช…ํ™•ํ•˜๊ฒŒ) ๋…ผ์˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค(์˜ˆ: ์šฐํŽธ ๋ฐœ์‹ ์ธ), ํ•ด๋‹น ํ•ญ๋ชฉ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

์—ฌ๊ธฐ์„œ๋Š” ํŒจํ‚ค์ง€๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. @sendgrid/๋ฉ”์ผ. ๋น„๋‹ ๋ด‰ํˆฌ ์ด๋ฉ”์ผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ ์ด๋ฉ”์ผ ์ฃผ์†Œ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜์ง€๋งŒ(๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐ”๋กœ ์ถ”์ธกํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๊นŒ?) ํ™•์‹คํ•˜๋‹ค๋ฉด(์šฐ๋ฆฌ ์—†์ด ์˜ค๋žซ๋™์•ˆ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค), ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ฝ”๋“œ์—์„œ ํ™•์ธํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค). ๋น„๋‹ ๋ด‰ํˆฌ ๋„ ํ…ํ”„ ํŒŒ์ผ์—์„œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. .env ๋Ÿฐํƒ€์ž„ ๋ณ€์ˆ˜๋กœ. ํ•˜์ง€๋งŒ Yandex ๊ธฐ๋Šฅ ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์— ์ง์ ‘ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ? - ์•„๋ž˜์—์„œ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒจํ‚ค์ง€ ๋„ ํ…ํ”„ ์„ค์น˜ํ•  ์ˆ˜๋„ ์—†๊ณ  ํŒŒ์ผ๋„ .env - ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ๋™์‹œ์— ์ฝ”๋“œ๊ฐ€ ํŒŒ์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค. index.js ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฏ€๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. index.js ะธ .env:

touch index.js
touch .env

ํŒŒ์ผ์—์„œ index.js ์œ„ ์Šคํฌ๋ฆฐ์ƒท์— ํ‘œ์‹œ๋œ 22์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค(ํ•ด๋‹น ์ค„์—๋งŒ #8 ์ด๋ฉ”์ผ ๋ณ€๊ฒฝ) ๋ฐ ํŒŒ์ผ์—์„œ .env - (๋”ฐ์˜ดํ‘œ๋‚˜ ๊ตฌ๋‘์  ์—†์ด) ํ‚ค ์ด๋ฆ„/๊ฐ’ ์Œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. API์ตœ๊ทผ์— ์ฝ˜์†”์—์„œ ๋ฐ›์€ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. SendGrid:
SENDGRID_API_KEY=๋‹น์‹ ์˜ ๋น„๋ฐ€-sendgrid-api-key

์ž‘์—…๋Ÿ‰์„ ์ค„์ด๊ณ  ์‹ถ๋‹ค๋ฉด ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์„ธ์š”.

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

ํŒŒ์ผ์—์„œ index.js, ์ผ๋ ฌ๋กœ #8 ์ด๋ฉ”์ผ์„ ๋ฐ”๊พธ๋‹ค; ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒŒ์ผ ์ƒ์„ฑ .env, ์—ฌ๊ธฐ์—๋Š” ํ‚ค์˜ ์ด๋ฆ„/๊ฐ’์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. API, ๋ฐ”๋กœ ์œ„์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ.

3. ๋ฐฐํฌ

์— ๋Œ€ํ•ด ๋‹ค์†Œ ๋ช…ํ™•ํ•˜๊ณ  ์ž์„ธํ•˜๊ฒŒ ์–€๋ฑ์Šค.ํด๋ผ์šฐ๋“œ ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์— ์–ด๋–ป๊ฒŒ ๋†“๋Š”์ง€ ์–€๋ฑ์Šค ๊ธฐ๋Šฅ ๋‚ด ๊ธฐ์‚ฌ์— ์„ค๋ช…๋œ Bitrix ๋•…์˜ ์•จ๋ฆฌ์Šค - ๋‚˜๋Š” ๋ฌด์ง€ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์ด ๋‚˜๋ผ๋กœ ๋ณด๋‚ด๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค(๋ฐ ๋Œ์•„์˜จ ์‚ฌ๋žŒ๋“ค)์„ ์œ„ํ•ด ์ž‘์€ ๋งŒํ™”์ฑ…(์˜ˆ: ์ผ๋ จ์˜ ๊ทธ๋ฆผ๊ณผ ํ…์ŠคํŠธ)์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋งŒ๋“ค๋‹ค ์ง€ํผ-archive(์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์ผ๋Ÿฌ.zip), ์—ฌ๊ธฐ์—๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. node_modules ๋ฐ ํŒŒ์ผ .env, index.js - ํ”„๋กœ์ ํŠธ ์นดํƒˆ๋กœ๊ทธ์˜ ๋ชจ๋“  ๊ฒƒ:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์šฐ๋ฆฌ๋Š” ์ด๋ฆ„์ด... ์˜ฌ๋ฐ”๋ฅด๊ฒŒ -์ธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์šฐํŽธ ๋ฐœ์‹ ์ธ, ์™ผ์ชฝ ํƒ์ƒ‰ ๋ฉ”๋‰ด์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘๊ธฐ, ํ•„์ˆ˜ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ•˜๊ณ  ํƒญ์œผ๋กœ ์ „ํ™˜ํ•˜์„ธ์š”. ZIP ์•„์นด์ด๋ธŒ ์šฐ๋ฆฌ ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š” ๋ฉ”์ผ๋Ÿฌ.zip:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ด์ „์— ์–ธ๊ธ‰ํ•œ ๋‹ค์šด๋กœ๋“œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. API ํ‚ค ํ”„๋กœ์ ํŠธ์—์„œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  ์—ฌ๊ธฐ์—์„œ ์ง์ ‘ .env, ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค ๋„ ํ…ํ”„. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฏ€๋กœ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ๋ณด์—ฌ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ณต์ œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

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

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

๋น„๋ฌธ ๋ฐ˜๋Œ€ํŽธ์— ํŒŒ๋ž€์ƒ‰ ๋งํฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ†ตํ™” ๋งํฌ? ํด๋ฆญํ•˜์„ธ์š”. ๋นˆ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค... ๊ทธ๋Ÿฐ๋ฐ ์ž ๊น๋งŒ์š”. ์ด๋ฉ”์ผ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค:

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ด์ œ ์ฝ˜์†”๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค SendGrid, ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํ†ตํ•ฉ ํ™•์ธ. ์‹œ์Šคํ…œ์€ ์ฑ„๋„์„ ํ†ตํ•ด ๋ชจ๋“  ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

๊ทธ๊ฒŒ ๋‹ค์ž…๋‹ˆ๋‹ค, ๋‚จ์ž๋“ค (๊ทธ๋ฆฌ๊ณ  ์—ฌ์ž๋“ค๋„ ๋ฌผ๋ก ) - ๋ชจ๋“  ๊ฒƒ์ด ์ •๋ง ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์šฐ์•„ํ•ฉ๋‹ˆ๋‹ค! ๋” ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์žˆ์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋‚ด์šฉ์„ ์ฝ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ๋†“์น˜์ง€ ์•Š๋„๋ก ๊ตฌ๋…ํ•˜์„ธ์š”.

4. ๊ธฐ๋ถ€

Yandex ๊ธฐ๋Šฅ์€ ๋ฉ”์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€