Sendgrid-nodejs: ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์„œ๋ช…์ด ๋…ธ๋“œ ๊ทœ์น™์„ ๋”ฐ๋ฅด์ง€ ์•Š์Œ

์— ๋งŒ๋“  2016๋…„ 06์›” 15์ผ  ยท  25์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sendgrid/sendgrid-nodejs

์ด๊ฒƒ์€ ์•„๋งˆ๋„ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ 3.0.4 ๋ฒ„์ „์—์„œ๋Š” sg.API ์ „๋‹ฌ ๋œ ์ฝœ๋ฐฑ์ด function (error, data) ๋Œ€์‹  API ์‘๋‹ต์€ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ๊ฐœ์ฒด๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ์›์‹œ API ์‘๋‹ต์„ ํ•ด๋…ํ•˜๊ณ  ์‘๋‹ต ํ—ค๋”์™€ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ์‚ฌ์šฉ์ž ํ† ์ง€์˜ ์ฑ…์ž„์ด ์•„๋‹ˆ๋ผ ๋„์„œ๊ด€ ์ž์ฒด์˜ ์ฑ…์ž„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ? ์‘๋‹ต ํ˜•์‹์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ? ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋ฐ˜ํ™˜ ๋œ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ๋‹ฌ๋ผ ์ง€๊ฑฐ๋‚˜ null ๋˜๋Š” ์ •์˜๋˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ?

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

help wanted community enhancement

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

๋‚ด ํ˜„์žฌ ์†”๋ฃจ์…˜์€ ์ƒํƒœ ์ฝ”๋“œ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ :

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, response => {
      if (response && response.statusCode &&
        response.statusCode >= 200 && response.statusCode <= 299) {
        resolve(response);
      }
      reject(new SendMailError(
        'Sendgrid response error ' + response.statusCode
      ));
    });
  });
}

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ด๊ฒƒ์€ ๋งค์šฐ ์žฅํ™ฉํ•˜๋ฉฐ ๋‹จ์ˆœํžˆ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๊ณ  ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ƒ์šฉ๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ ๋œ API๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, (error, response) => {
      if (error {
        reject(new SendMailError(error);
      }
      resolve(response);
    });
  });
}

๋˜๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์•ฝ์†์ด ๋ฐ˜ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

function sendMail(mail) {

  //Build request
  let request = sg.emptyRequest();
  request.method = 'POST';
  request.path = '/v3/mail/send';
  request.body = mail.toJSON();

  //Send request
  return sg.API(request);
}

์ด์ƒ์ ์œผ๋กœ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ ์ ˆํ•œ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋Š” ์ „์šฉ ๋ฉ”์ผ ์ „์†ก ๋„์šฐ๋ฏธ๊ฐ€ ๋ฐ˜ํ™˜๋˜์–ด sendMail ๋„์šฐ๋ฏธ์™€ ์ƒ์šฉ๊ตฌ๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

sg.sendMail(mail);

์ด๊ฒƒ์ด ๋‹น์‹ ์ด ์ถ”๊ตฌํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด PR์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์กฐ์‚ฌ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋‚ด ํ˜„์žฌ ์†”๋ฃจ์…˜์€ ์ƒํƒœ ์ฝ”๋“œ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ :

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, response => {
      if (response && response.statusCode &&
        response.statusCode >= 200 && response.statusCode <= 299) {
        resolve(response);
      }
      reject(new SendMailError(
        'Sendgrid response error ' + response.statusCode
      ));
    });
  });
}

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ด๊ฒƒ์€ ๋งค์šฐ ์žฅํ™ฉํ•˜๋ฉฐ ๋‹จ์ˆœํžˆ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๊ณ  ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ƒ์šฉ๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ ๋œ API๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, (error, response) => {
      if (error {
        reject(new SendMailError(error);
      }
      resolve(response);
    });
  });
}

๋˜๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์•ฝ์†์ด ๋ฐ˜ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

function sendMail(mail) {

  //Build request
  let request = sg.emptyRequest();
  request.method = 'POST';
  request.path = '/v3/mail/send';
  request.body = mail.toJSON();

  //Send request
  return sg.API(request);
}

์ด์ƒ์ ์œผ๋กœ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ ์ ˆํ•œ ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋Š” ์ „์šฉ ๋ฉ”์ผ ์ „์†ก ๋„์šฐ๋ฏธ๊ฐ€ ๋ฐ˜ํ™˜๋˜์–ด sendMail ๋„์šฐ๋ฏธ์™€ ์ƒ์šฉ๊ตฌ๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

sg.sendMail(mail);

์ด๊ฒƒ์ด ๋‹น์‹ ์ด ์ถ”๊ตฌํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด PR์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์กฐ์‚ฌ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @adambuczynski ,

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

ํ’€ ์š”์ฒญ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ์„œ๋ช… ๋œ CLA๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. https://github.com/sendgrid/sendgrid-nodejs/blob/master/CONTRIBUTING.md#cla

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด ์ œ์•ˆํ•˜๋Š” ํ–ฅ์ƒ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ํ—ฌํผ ๊ตฌ์กฐ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/sendgrid/sendgrid-nodejs/tree/master/lib/helpers/mail. ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ฑฐ๋‚˜ helpers ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์˜ˆ, ๋ฉ”์ผ ๋„์šฐ๋ฏธ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐœ์ฒด์— ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ ๋„์šฐ๋ฏธ๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ข‹์€ ์†Œ๋ฆฌ :)

@adambuczynski ๊ฐ€ ์ œ์•ˆํ•œ ์ œ์•ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ v3 API๋กœ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ๋” ์ด์ƒ ๊ฐ„๋‹จํ•œ ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์—†๊ณ  ๋Œ€์‹  ์ผ๋ จ์˜ ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค๋Š” ์ ์— ๋งค์šฐ ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”์•…ํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋Š” ๋” ์ด์ƒ Bluebird promise๋กœ ๋ž˜ํ•‘ ํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค.

@beldenge ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ง„ํ–‰์„ ์œ„ํ•ด์ด ๋ฌธ์ œ๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค. @adambuczynski ๊ฐ€ pull ์š”์ฒญ์„ ์ƒ์„ฑํ•˜๋ฉด ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๋ฐ์ดํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์œ„ํ•ด ๋กœ๋“œ๋งต์— ์ถ”๊ฐ€ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@thinkingserious ๋ฐฉ๊ธˆ ์„œ๋ช… ๋œ CA๋ฅผ ์šฐํŽธ์œผ๋กœ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์—์ด ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌ ํ•  ์‹œ๊ฐ„์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@adambuczynski ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ฐ›์•˜์œผ๋ฉฐ ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ด๊ฒƒ์— ๋Œ€ํ•ด ์žŠ์€ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ €๋Š” ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋กœ ์กฐ๊ธˆ ๋ฐ”๋นด์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์–ด๋–ค ๋‹จ๊ณ„์—์„œ ์ด๊ฒƒ์„ ์กฐ์‚ฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. :)

@thinkingserious ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ดํŽด ๋ดค์ง€๋งŒ ์กฐ๊ธˆ ์ง€์ €๋ถ„ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ํŽธ์ง‘ํ•˜๋ฉด ์ฝ”๋“œ ๋ฆฐํ„ฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋งŽ์€ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : ๋ˆ„๋ฝ ๋œ ์„ธ๋ฏธ์ฝœ๋ก  ์ถ”๊ฐ€, ๋ฌธ์ž์—ด์— ์ผ๊ด€๋œ ๋”ฐ์˜ดํ‘œ ์Šคํƒ€์ผ ์‚ฌ์šฉ, ์–ธ์–ด ์š”์†Œ ์‚ฌ์ด์— ์ผ๊ด€๋œ ๊ฐ„๊ฒฉ ์‚ฌ์šฉ ๋“ฑ).

๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ณด๋Š” ๊ฒƒ์ด ๋‚ด ๋‘๋‡Œ๋ฅผ ์•„ํ”„๊ฒŒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋กœ ์ž‘์—… ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. :)

์ถ”์‹  : ๋ฆฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ  :)

@adambuczynski ,

ํ‘œ์ค€ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์™€ ํ•จ๊ป˜ http://eslint.org ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–ด๋Š ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๋™๊ธฐํ™”ํ•˜๊ณ  ๋™์ผํ•œ ๋ฆฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ESLiint๋„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ฝ”๋“œ์— ์—ฌ์ „ํžˆ ๋งŽ์€ ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค : https://gist.github.com/adambuczynski/1fa24bcfc5d17b8d26e4c39ffca7560e#file -eslintrc-node-yaml

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ผ๊ด€์„ฑ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์‚ฌ์ด์— ์ข‹์€ ๊ท ํ˜•์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ์งœ์ฆ๋‚˜ ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์— .eslintrc.yaml ๊ตฌ์„ฑ ํŒŒ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ์„ ํ˜ธํ•˜๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€ / ๋งŒ๋“ค๋ฉด ๋‚˜๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@adambuczynski ,

๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹จ๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. :)

์ปค๋ฐ‹์˜ ์ผ๋ถ€๋กœ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

์‚ฌ์šฉํ•  ๋•Œ @thinkingserious ๊ทธ๊ฒƒ์€ ES6์— ๋Œ€ํ•œ ์„ค์ •์ด ์žˆ์ง€๋งŒ ๊ธฐ๋Šฅ ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค var ๋Œ€์‹  let ํ•˜๊ณ  ES6 ํŒŒ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ.

๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด์„œ๋งŒ ES5๋ฅผ ์‚ฌ์šฉ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

Node.js ๋ฒ„์ „์„ ์ง€์›ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค : "0.10", "0.12", "iojs", "4"

ํ•ด๋‹น ๋ฒ„์ „์— ๋Œ€ํ•œ ์ง€์›์„ ์ค‘๋‹จํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ํ˜„๋Œ€์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚˜๋Š” var๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋ฐœ์ƒํ•œ ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํ˜ธ์™€๋Š” ๋ณ„๋„๋กœ PR์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@thinkingserious Promise API๋„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ ์•ฝ์†์€ Node 0.11.13์—์„œ๋งŒ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์†”๋ฃจ์…˜, ์„ ํ˜ธํ•˜๋Š” ์กฐํ•ฉ (๋˜๋Š” ์กฐํ•ฉ)์„ ์•Œ๋ ค์ฃผ์„ธ์š”.

  • bluebird promise๋ฅผ ์ข…์†์„ฑ์œผ๋กœ ์‚ฌ์šฉ
  • ์•ฝ์†์ด ์ง€์›๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๋ฅผ ๋˜์ง€์ง€ ๋งŒ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•˜๋ฉด
  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ sendgrid.Promise ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ ค๋Š” promise ๊ตฌํ˜„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ 2์™€ 3์˜ ์กฐํ•ฉ์ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ€์žฅ ์œ ์—ฐ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š”์ด ์˜ต์…˜์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. "Promise๊ฐ€ ์ง€์›๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค."ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ตฌํ˜„์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@thinkingserious ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€ํ†  ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ PR๋กœ ํ‘ธ์‹œํ• ๊นŒ์š”, ์•„๋‹ˆ๋ฉด ๋ณ„๋„์˜ PR์„ ๋งŒ๋“ค๊นŒ์š”?

@adambuczynski ๋‹น์‹ ์€ ๋™์ผํ•œ PR์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

# 261 ์ฐธ์กฐ

@beldenge PR https://github.com/sendgrid/sendgrid-nodejs/pull/261์— +1์„ ์ถ”๊ฐ€ํ•˜์—ฌ Sendgrid ํŒ€์ด์ด๋ฅผ ์ด๋™ํ•˜๊ณ  ๋ณ‘ํ•ฉ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ฐ์‚ฌ!

@adambuczynski ์ด์ œ +1์„ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

https://github.com/sendgrid/sendgrid-nodejs/releases/tag/v4.0.0์œผ๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

Chrischuck picture Chrischuck  ยท  3์ฝ”๋ฉ˜ํŠธ

thinkingserious picture thinkingserious  ยท  4์ฝ”๋ฉ˜ํŠธ

danielflippance picture danielflippance  ยท  4์ฝ”๋ฉ˜ํŠธ

wooyah picture wooyah  ยท  4์ฝ”๋ฉ˜ํŠธ

thinkingserious picture thinkingserious  ยท  4์ฝ”๋ฉ˜ํŠธ