230801(ν)
π€ μ±μ₯μΌμ§ 6.0
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
πΎ (4.0)νμ΅ ν€μλμμ μ΅λν κ°λ¨ν μ 보 μ 곡, κ³ λ―Όμμ λ΄ κ²½νμ μμΈν μ μ!
π₯ (5.0)νμ΅ ν€μλλ νμ€μ ν΅μ¬μΌλ‘λ§ μ 리, μ±κ³΅/μ€ν¨ μΌμ§ μμ±νκΈ°! μ΄ λ, μ€ν¨μ κ²½νμ μμΈν μ κΈ°!
π (6.0)<μμ κ°νΈ!!!> λ§€μΌ μ΅κ΄μ μΌλ‘ ν΅μ¬λ§ μ μ μ μκ² νλ μ λ³κ²½. μ±κ³΅λ³΄λ¨ μ€ν¨μ μ΄μ μ λ§μΆκΈ°.
- π (6.1)<μμ > λ§€λ² μ±κ³΅, μ€ν¨λ₯Ό λ°λ‘ μ λ κ²λ³΄λ¨ κ²½νμΌλ‘ νννμ!
- π (6.2)<μμ > μΌμ§ μΉ΄ν κ³ λ¦¬ μμ λ³κ²½!(κ²½ν -> κ³ λ―Ό -> νκ³ -> κ΅ν)
βοΈ μ€λμ κ²½ν
μΉμμΌ νλ‘ν μ½
- HTML5 νμ€ κΈ°μ
- HTTP νκ²½μμ ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ νλμ TCP μ°κ²°μ κΈ°λ°μΌλ‘
μ€μκ° μ μ΄μ€ ν΅μ
μ κ°λ₯νκ² νλ€.- μ μ΄μ€ ν΅μ : μΌλ°μ μΈ HTTP ν΅μ κ³Ό λ€λ₯΄κ² μλ°©ν₯μΌλ‘ μ§νλλ ν΅μ
- μΉμμΌ κΈ°μ μ΄ μμ λλ
Polling
μ΄λLong Poliing
μ λ°©μμΌλ‘ ꡬν- Polling: ν΄λΌμ΄μΈνΈκ° μ£ΌκΈ°μ μΌλ‘ μμ²μ 보λΈλ€.
- Long Poling: μλ²κ° μλμ μΌλ‘ μμ²μ λν μλ΅μ μ§μ°μν¨λ€. ν΄λΌμ΄μΈνΈκ° μμ²μ 보λ΄κ³ μλ²λ λ°μ΄ν°κ° μ€λΉλλ©΄ μλ΅μ νλ©° κ·Έ μλ΅μ λ°λ μ¦μ ν΄λΌλ λ€μ μμ²μ κ±Έμ΄λλλ€.
μ΄κΈ° μΉμ νμ λͺ©μ μ λ¬Έμ μ λ¬
κ·Έλ¦¬κ³ νμ΄νΌλ§ν¬
λ₯Ό ν΅ν λ¬Έμ μ°κ²°μ΄μλ€.
κ·Έλ° μλ―Έμμ HTTP νλ‘ν μ½μ λͺ©μ μ λ§€μ° λΆν©νλ λͺ¨λΈμ΄μλ€.
κ·Έλ¬λ μλκ° λ³νλ©΄μ μΉμκ² μ’λ λμ μΈ λμμ΄ μꡬλμκ³ μ΄λ‘ μΈν΄ μ¬λ¬ μλ‘μ΄ κΈ°μ μ΄ νμνμλ€.
κ·Έ μ€ μ€μκ° μλ°©ν₯ ν΅μ μ μν μ€νμ΄ λ°λ‘ μΉ μμΌ
νλ‘ν μ½μ΄λ€.
left, right indexλ₯Ό ν΅ν΄ λ°°μ΄μ μννλ λ°©λ²
물건 κ°κ²©μ΄ λ°°μ΄λ‘ μ£Όμ΄μ§κ³ κ° μΈλ±μ€λ λ μ§λ₯Ό μλ―Ένλ€. μ΄ λ, μ΅λ μ΄μ΅μ ꡬνλ λ¬Έμ λ₯Ό νΈλ λ°©λ²μ΄λ€.
const maxProfit = (prices) => {
let left = 0;
let right = 1;
let maxProfit = 0;
while (right < prices.length) {
const first = prices[left];
const second = prices[right];
if (first < second) {
const profit = second - first;
if (profit > maxProfit) maxProfit = profit;
} else {
left = right;
}
right++;
}
return maxProfit;
};
𫧠μ€λμ κ³ λ―Ό
λ°°μ΄ μν μκ° μ΄κ³Ό
μμ κ²½νμμ μ μ λ¬Έμ λ₯Ό νΈλλ°, μ²μ λμ ꡬνμ μλμ κ°μλ€.
let maxProfit = function (prices) {
let initialValue = 0;
const callbackFn = (result, item, index, arr) => {
const afterArr = arr.slice(index);
const maxPrice = Math.max(...afterArr);
const maxProfit = maxPrice - item;
if (maxProfit > result) return maxProfit;
return result;
};
const totalMaxProfit = prices.reduce(callbackFn, initialValue);
return totalMaxProfit;
};
μ²μμ reduceλ₯Ό νμ©ν΄μ νμ΄μ λ무 μ λ¬λλ°, λͺλͺ ν μ€νΈ μΌμ΄μ€μμ μκ° μ΄κ³Όκ° λ°μνλ€. μμ보λ reduceμμ loopλ₯Ό λκ³ , κ·Έ μμ slice()μ Math.max()λ loopλ₯Ό λκΈ° λλ¬Έμ O(N^2)μ μκ° λ³΅μ‘λλ₯Ό κ°μ§κ² λμ΄ μκ° μ΄κ³Όκ° λ°μνλ€.
κ²°κ΅ νμ΄λ₯Ό λ³΄κ² λμλλ°, left, right indexλ₯Ό νμ©ν΄μ loopλ₯Ό νλ²λ§ λλ©΄μ ν μ μμλ€. κ·Έκ² κ²½νλμ μ μ νμ΄μ΄λ€.
π μ€λμ νκ³
νβ¦ μ¬μ΄ μκ³ λ¦¬μ¦ λ¬Έμ λΌκ³ μκ°νλλ° μμ κ΄μ μ λ°κΎΈμ§ λͺ»νλ μ½κ² νμ§ λͺ»νλ κ² κ°λ€. μ΄λμ λ§μ΄ νμ΄λ³΄κ³ 곡λΆν΄μ μ΄λμ λ κ²½νμ νλ κ² μ€μν κ² κ°λ€.
πΎ μ€λμ κ΅ν
κ³ λ―Όνμ§λ§κ³ νμ΄λ³΄κ³ ꡬννλ©΄μ κ²½νμ μκ³ λ°°μ°μ. ν λ² κ²½ννλ€κ³ ν΄μ λ€ λλ건 μλμ§λ§ ν λ²μ΄λΌλ κ²½ννλ κ² μ€μνλ€.