SlideShare a Scribd company logo
1 of 6
Download to read offline
4
promise
thenable
๊ธฐ์กด์˜ ๋ชจ๋“  ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋Š” ์ฆ‰๋ฐœ์„ฑ์ด๋ฏ€๋กœ ๋น„๋™๊ธฐ๋ฅผ ํ†ต๋ณดํ•˜๋Š” ์ชฝ์ด ์ฃผ๋„๊ถŒ์„ ์ฅ๊ณ  ์žˆ์Œ.
์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์—์„œ ์›ํ•  ๋•Œ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋น„๋™๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์œ„ ์ž์ฒด๋ฅผ ๊ฐ์ฒดํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ.
์ด๋Ÿฌํ•œ ํฌ๊ด„์ ์ธ ๋น„๋™๊ธฐํ–‰์œ„์— ๋Œ€ํ•œ ๊ฐ์ฒด์ •์˜์— ์ ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด thenable์ž„
thenable์˜ ์˜๋ฏธ
//๊ธฐ์กด
ajax.load(url, listener);
//thenable
let thenable = ajax.load(url);
..
..
thenable.then(listener);
ajax listener
ajax ๋‚ด๋ถ€์™„๋ฃŒ
loaded
loaded
listener
then
thenable.then(v);
๋ฐ˜ํ™˜๊ฐ’ : Promise
์ธ์ž:
ํ˜ธ์ถœ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฐ์ฒด์ธ ๊ฒฝ์šฐ
function(v){return v;} ๋กœ ๋Œ€์ฒด
ํ˜ธ์ถœ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๊ฐ€ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
Promise.resolve(v); ๋กœ ๋ณ€ํ™˜๋˜์–ด ์ฒ˜๋ฆฌ๋จ.
then method
Promise.resolve(3).then(5).then(console.log); //3
Promise.resolve(3).then(v=>v+1).then(console.log);
Promise.resolve(3).then(v=>Promise.resolve(v+1)).then(console.log);
then์ด Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์—ฐ์†์ ์ธ then์ฒด์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.
1. ๊ธฐ์กด์˜ ๋™๊ธฐ์„ฑ ์ž‘์—…์„
2. ๋น„๋™๊ธฐ์ ์ธ ์ฒด์ด๋‹ํ˜•ํƒœ์˜ ์ปค๋งจ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ
3. ํก์‚ฌํ•œ ๊ตฌ์กฐ๋กœ ๊ธฐ์ˆ ํ•˜๋˜ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ.
then chain
//then ์ฒด์ธํ™”
const gene = function*(arr){
for(const v of arr) yield p=>v + p;
};
let p = Promise.resolve(0);
for(let v of gene([1,2,3,4])) p = p.then(v);
p.then(v=>console.log(v)); //10
//then ์ฒด์ธํ™”
const gene = function*(arr){
for(const v of arr) yield p=>new Promise(
rev=>setTimeout(_=>rev(v + p), 500
));
};
let p = Promise.resolve(0);
for(let v of gene([1,2,3,4])) p = p.then(v);
p.then(v=>console.log(v)); //2์ดˆ๋’ค 10
๋ณ‘๋ ฌ์ ์ฒ˜๋ฆฌ์™€ ์ง๋ ฌ์ ์ฒ˜๋ฆฌ
๋ณ‘๋ ฌ์ฒ˜๋ฆฌ - ๋™์‹œ์— ๋น„๋™๊ธฐ์ž‘์—… ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์‹คํ–‰๋จ
์ง๋ ฌ์ ์ฒ˜๋ฆฌ - ๋น„๋™๊ธฐ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋จ
์ค‘๋‹จ์  ์ง€์ • - ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ์ค‘ ์ผ์ • ์กฐ๊ฑด์„ ๋‹ฌ์„ฑํ•˜๋Š” ์ง€์ ์—์„œ ๋Œ€๊ธฐ
์—ฐ์†๋œ ๋น„๋™๊ธฐ์ž‘์—…์˜ ์ฒ˜๋ฆฌ
//์ „์—ญ์นด์šดํ„ฐ
const cnt = function*(start, end){
for(let i = start; i <= end; i++) yield i;
};
const g = function*(g, f, interval){
for(const i of g) yield _=>new Promise(rev=>(f(i), setTimeout(rev, interval)));
};
let p = Promise.resolve();
for(const v of g(cnt(0, 3), v=>console.log(v), 1000)) p = p.then(v);
const el = document.getElementById('target');
const f =v=>el.style.marginLeft = v + 'px';
p = Promise.resolve();
for(const v of g(cnt(0, 500), f, 10)) p = p.then(v);
Promise.all ์‚ฌ์šฉ
์ค‘๋‹จ์ ์ฒ˜๋ฆฌ
const img = function*(g, f){
const imgs = [];
for(const i of g){
yield _=>new Promise(res=>{
const img = document.createElement('img');
img.src = i + '.jpg';
imgs.push(img);
img.onload=_=>setTimeout(_=>(f(img), res(imgs)), 200);
});
}
};
const unwrapper = function*(g){for(const f of g) yield f(); };
Promise.all(unwrapper(img(cnt(1,5),console.log)))
.then(v=>v[0].reduce(
(p,el)=>(p.appendChild(el), p),
document.getElementById('stage')
));

More Related Content

Viewers also liked

[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซNAVER D2
ย 
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜NAVER D2
ย 
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜NAVER D2
ย 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generatorNAVER D2
ย 
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐ
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐPapago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐ
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐNAVER D2
ย 
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridappNAVER D2
ย 
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผNAVER D2
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...NAVER D2
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshiftNAVER D2
ย 
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซ
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซDocker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซ
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซSeunghwan Park
ย 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetesTed Jung
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker securityNAVER D2
ย 
blue-green deployment with docker containers
blue-green deployment with docker containersblue-green deployment with docker containers
blue-green deployment with docker containersAlfred UC
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetesNAVER D2
ย 
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced partNAVER D2
ย 
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced partNAVER D2
ย 
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œNAVER D2
ย 
[D2CAMPUS] Algorithm tips - ALGOS
[D2CAMPUS] Algorithm tips - ALGOS[D2CAMPUS] Algorithm tips - ALGOS
[D2CAMPUS] Algorithm tips - ALGOSNAVER D2
ย 
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ดNAVER D2
ย 
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ดNAVER D2
ย 

Viewers also liked (20)

[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]4.แ„‚แ…ฆแ„‹แ…ตแ„แ…ตแ„‡แ…ณแ„‹แ…ขแ†ธแ„Œแ…ฅแ„Œแ…กแ†ผแ„แ…ฉแ†ผแ„‰แ…ตแ†ซ
ย 
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜
แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅแ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จแ„€แ…ชแ„แ…ฉแ†ผแ„€แ…จ2 - ์ตœ์žฌ๊ฑธ๋‹˜
ย 
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
ํ…€ ํ”„๋กœ์ ํŠธ์—์„œ ์ œํ’ˆ ํ”„๋กœ์ ํŠธ๋กœ - ์„ฑ์ค€์˜๋‹˜
ย 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
ย 
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐ
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐPapago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐ
Papago/N2MT ๊ฐœ๋ฐœ์ด์•ผ๊ธฐ
ย 
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]3.web view hybridapp
ย 
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ
[D2 ์˜คํ”ˆ์„ธ๋ฏธ๋‚˜]5.robolectric แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„แ…ฆแ„‰แ…ณแ„แ…ตแ†ผ
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ตฌ์ถ•๊ณผ openshift
ย 
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซ
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซDocker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซ
Docker d2 แ„‡แ…กแ†จแ„‰แ…ณแ†ผแ„’แ…ชแ†ซ
ย 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
ย 
blue-green deployment with docker containers
blue-green deployment with docker containersblue-green deployment with docker containers
blue-green deployment with docker containers
ย 
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์™€ Docker kubernetes
ย 
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_advanced part
ย 
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part
[ํ•œ์–‘๋Œ€ aloha] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ_Advanced part
ย 
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ
ย 
[D2CAMPUS] Algorithm tips - ALGOS
[D2CAMPUS] Algorithm tips - ALGOS[D2CAMPUS] Algorithm tips - ALGOS
[D2CAMPUS] Algorithm tips - ALGOS
ย 
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[๊ณ ๋ ค๋Œ€ ALPS&ALKOR] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
ย 
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
[์—ฐ์„ธ๋Œ€ ๋ชจ๋ฅด๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ๋ฌธ์ œ ํ’€์ด
ย 

More from NAVER D2

[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค
[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค
[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹คNAVER D2
ย 
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
ย 
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐNAVER D2
ย 
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœNAVER D2
ย 
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆNAVER D2
ย 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
ย 
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐNAVER D2
ย 
[243] Deep Learning to help studentโ€™s Deep Learning
[243] Deep Learning to help studentโ€™s Deep Learning[243] Deep Learning to help studentโ€™s Deep Learning
[243] Deep Learning to help studentโ€™s Deep LearningNAVER D2
ย 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
ย 
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load BalancingOld version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load BalancingNAVER D2
ย 
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€NAVER D2
ย 
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐNAVER D2
ย 
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”NAVER D2
ย 
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)NAVER D2
ย 
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐNAVER D2
ย 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
ย 
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”NAVER D2
ย 
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€NAVER D2
ย 
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐNAVER D2
ย 
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?NAVER D2
ย 

More from NAVER D2 (20)

[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค
[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค
[211] ์ธ๊ณต์ง€๋Šฅ์ด ์ธ๊ณต์ง€๋Šฅ ์ฑ—๋ด‡์„ ๋งŒ๋“ ๋‹ค
ย 
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...
[233] ๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing: Maglev Hashing Scheduler i...
ย 
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
[215] Druid๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ํ•˜๊ธฐ
ย 
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ
[245]Papago Internals: ๋ชจ๋ธ๋ถ„์„๊ณผ ์‘์šฉ๊ธฐ์ˆ  ๊ฐœ๋ฐœ
ย 
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ
[236] ์ŠคํŠธ๋ฆผ ์ €์žฅ์†Œ ์ตœ์ ํ™” ์ด์•ผ๊ธฐ: ์•„ํŒŒ์น˜ ๋“œ๋ฃจ์ด๋“œ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ตํ›ˆ
ย 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
ย 
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
[244]๋กœ๋ด‡์ด ํ˜„์‹ค ์„ธ๊ณ„์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ
ย 
[243] Deep Learning to help studentโ€™s Deep Learning
[243] Deep Learning to help studentโ€™s Deep Learning[243] Deep Learning to help studentโ€™s Deep Learning
[243] Deep Learning to help studentโ€™s Deep Learning
ย 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
ย 
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load BalancingOld version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing
Old version: [233]๋Œ€ํ˜• ์ปจํ…Œ์ด๋„ˆ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ Network Load Balancing
ย 
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€
[226]NAVER ๊ด‘๊ณ  deep click prediction: ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€
ย 
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ
[225]NSML: ๋จธ์‹ ๋Ÿฌ๋‹ ํ”Œ๋žซํผ ์„œ๋น„์Šคํ•˜๊ธฐ & ๋ชจ๋ธ ํŠœ๋‹ ์ž๋™ํ™”ํ•˜๊ธฐ
ย 
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”
[224]๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰๊ณผ ๊ฐœ์ธํ™”
ย 
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)
[216]Search Reliability Engineering (๋ถ€์ œ: ์ง€์ง„์—๋„ ํ”๋“ค๋ฆฌ์ง€ ์•Š๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์‹œ์Šคํ…œ)
ย 
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ
[214] Ai Serving Platform: ํ•˜๋ฃจ ์ˆ˜ ์–ต ๊ฑด์˜ ์ธํผ๋Ÿฐ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๊ตฐ๋ถ„ํˆฌ๊ธฐ
ย 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
ย 
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”
[232] TensorRT๋ฅผ ํ™œ์šฉํ•œ ๋”ฅ๋Ÿฌ๋‹ Inference ์ตœ์ ํ™”
ย 
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€
[242]์ปดํ“จํ„ฐ ๋น„์ „์„ ์ด์šฉํ•œ ์‹ค๋‚ด ์ง€๋„ ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•: ๋”ฅ๋Ÿฌ๋‹์„ ํ†ตํ•œ POI ๋ณ€ํ™” ํƒ์ง€
ย 
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ
[212]C3, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์„œ๋น™๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ
ย 
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?
[223]๊ธฐ๊ณ„๋…ํ•ด QA: ๊ฒ€์ƒ‰์ธ๊ฐ€, NLP์ธ๊ฐ€?
ย 

[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 4. promise

  • 2. thenable ๊ธฐ์กด์˜ ๋ชจ๋“  ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ๋Š” ์ฆ‰๋ฐœ์„ฑ์ด๋ฏ€๋กœ ๋น„๋™๊ธฐ๋ฅผ ํ†ต๋ณดํ•˜๋Š” ์ชฝ์ด ์ฃผ๋„๊ถŒ์„ ์ฅ๊ณ  ์žˆ์Œ. ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์—์„œ ์›ํ•  ๋•Œ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋น„๋™๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์œ„ ์ž์ฒด๋ฅผ ๊ฐ์ฒดํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ. ์ด๋Ÿฌํ•œ ํฌ๊ด„์ ์ธ ๋น„๋™๊ธฐํ–‰์œ„์— ๋Œ€ํ•œ ๊ฐ์ฒด์ •์˜์— ์ ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด thenable์ž„ thenable์˜ ์˜๋ฏธ //๊ธฐ์กด ajax.load(url, listener); //thenable let thenable = ajax.load(url); .. .. thenable.then(listener); ajax listener ajax ๋‚ด๋ถ€์™„๋ฃŒ loaded loaded listener then
  • 3. thenable.then(v); ๋ฐ˜ํ™˜๊ฐ’ : Promise ์ธ์ž: ํ˜ธ์ถœ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฐ์ฒด์ธ ๊ฒฝ์šฐ function(v){return v;} ๋กœ ๋Œ€์ฒด ํ˜ธ์ถœ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๊ฐ€ Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Promise.resolve(v); ๋กœ ๋ณ€ํ™˜๋˜์–ด ์ฒ˜๋ฆฌ๋จ. then method Promise.resolve(3).then(5).then(console.log); //3 Promise.resolve(3).then(v=>v+1).then(console.log); Promise.resolve(3).then(v=>Promise.resolve(v+1)).then(console.log);
  • 4. then์ด Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ์—ฐ์†์ ์ธ then์ฒด์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. 1. ๊ธฐ์กด์˜ ๋™๊ธฐ์„ฑ ์ž‘์—…์„ 2. ๋น„๋™๊ธฐ์ ์ธ ์ฒด์ด๋‹ํ˜•ํƒœ์˜ ์ปค๋งจ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ 3. ํก์‚ฌํ•œ ๊ตฌ์กฐ๋กœ ๊ธฐ์ˆ ํ•˜๋˜ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ. then chain //then ์ฒด์ธํ™” const gene = function*(arr){ for(const v of arr) yield p=>v + p; }; let p = Promise.resolve(0); for(let v of gene([1,2,3,4])) p = p.then(v); p.then(v=>console.log(v)); //10 //then ์ฒด์ธํ™” const gene = function*(arr){ for(const v of arr) yield p=>new Promise( rev=>setTimeout(_=>rev(v + p), 500 )); }; let p = Promise.resolve(0); for(let v of gene([1,2,3,4])) p = p.then(v); p.then(v=>console.log(v)); //2์ดˆ๋’ค 10
  • 5. ๋ณ‘๋ ฌ์ ์ฒ˜๋ฆฌ์™€ ์ง๋ ฌ์ ์ฒ˜๋ฆฌ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ - ๋™์‹œ์— ๋น„๋™๊ธฐ์ž‘์—… ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์‹คํ–‰๋จ ์ง๋ ฌ์ ์ฒ˜๋ฆฌ - ๋น„๋™๊ธฐ์ž‘์—…์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋จ ์ค‘๋‹จ์  ์ง€์ • - ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ์ค‘ ์ผ์ • ์กฐ๊ฑด์„ ๋‹ฌ์„ฑํ•˜๋Š” ์ง€์ ์—์„œ ๋Œ€๊ธฐ ์—ฐ์†๋œ ๋น„๋™๊ธฐ์ž‘์—…์˜ ์ฒ˜๋ฆฌ //์ „์—ญ์นด์šดํ„ฐ const cnt = function*(start, end){ for(let i = start; i <= end; i++) yield i; }; const g = function*(g, f, interval){ for(const i of g) yield _=>new Promise(rev=>(f(i), setTimeout(rev, interval))); }; let p = Promise.resolve(); for(const v of g(cnt(0, 3), v=>console.log(v), 1000)) p = p.then(v); const el = document.getElementById('target'); const f =v=>el.style.marginLeft = v + 'px'; p = Promise.resolve(); for(const v of g(cnt(0, 500), f, 10)) p = p.then(v);
  • 6. Promise.all ์‚ฌ์šฉ ์ค‘๋‹จ์ ์ฒ˜๋ฆฌ const img = function*(g, f){ const imgs = []; for(const i of g){ yield _=>new Promise(res=>{ const img = document.createElement('img'); img.src = i + '.jpg'; imgs.push(img); img.onload=_=>setTimeout(_=>(f(img), res(imgs)), 200); }); } }; const unwrapper = function*(g){for(const f of g) yield f(); }; Promise.all(unwrapper(img(cnt(1,5),console.log))) .then(v=>v[0].reduce( (p,el)=>(p.appendChild(el), p), document.getElementById('stage') ));