πŸŽ„ μ„±μž₯일지 4.0

μ±… ν–‰λ³΅ν•œ 이기주의자(웨인 닀이어)의 λ‚΄μš©μ— μžκ·Ήλ°›μ•„ μ‹œμž‘ν•˜λŠ” μ†Œλ°•ν•œ μ„±μž₯기둝

μ‚΄μ•„μžˆλŠ” 꽃과 죽은 꽃은 μ–΄λ–»κ²Œ κ΅¬λ³„ν•˜λŠ”κ°€?
μ„±μž₯ν•˜κ³  μžˆλŠ” 것이 μ‚΄μ•„ μžˆλŠ” 것이닀.
생λͺ…μ˜ μœ μΌν•œ μ¦κ±°λŠ” μ„±μž₯이닀!

🌳 (1.0)ν‚€μ›Œλ“œ
μ΅œλŒ€ν•œ κ°„λ‹¨ν•˜κ²Œ 정리, 좔후에 λ³΄λ©΄μ„œ 슀슀둜 μ„€λͺ…
πŸ‰ (2.0)κ²½ν—˜ μœ„μ£Όλ‘œ
λ‹¨μˆœ 정보λ₯Ό μ „λ‹¬ν•˜κΈ°λ³΄λ‹€ 무엇을 λ°°μ› κ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 짧고 κ°„λ‹¨ν•˜κ²Œ μž‘μ„±
❄️ (3.0)정해진 ν…œν”Œλ¦Ώμ— λ§žμΆ°μ„œ
ν‚€μ›Œλ“œ, κ²½ν—˜ λͺ¨λ‘ μ’‹λ‹€. λ‹€λ§Œ 맀일 μž‘μ„±ν•˜κΈ°λ‘œ 마음 λ¨Ήμ€λ§ŒνΌ ν•΅μ‹¬λ§Œ κ°„κ²°ν•˜κ²Œ 정리할 수 있게 ν…œν”Œλ¦Ώμ„ μž‘μ„±
(3.1)230102λΆ€ν„° μ‹œμž‘λ˜λŠ” ν•™μŠ΅μ— κ΄€ν•œ λ‚΄μš© μΆ”κ°€
(3.2)230313λΆ€ν„° 쒀더 κ²½ν—˜, 감정 μœ„μ£Όμ˜ λ‚΄μš©λ„ λ‹΄κΈ°!
🌾 (4.0)ν•™μŠ΅ ν‚€μ›Œλ“œμ—μ„œ μ΅œλŒ€ν•œ κ°„λ‹¨ν•œ 정보 제곡, κ³ λ―Όμ—μ„œ λ‚΄ κ²½ν—˜μ„ μžμ„Ένžˆ 적자!

🧐 κ³ λ―Ό 사항

πŸ”‘ 였늘의 ν•™μŠ΅ ν‚€μ›Œλ“œ

  • νŠΉλ³„ κ°•μ˜, λ¦¬μ•‘νŠΈ

πŸ₯³ ν•™μŠ΅ λ‚΄μš©

Q. 쒋은 κ°œλ°œμžλž€?

μ—΄λ¦° λ§ˆμŒμ„ κ°–κ³  ν•™μŠ΅ 속도가 λΉ λ₯Έ μ‚¬λžŒ 타 학문에 λΉ„ν•΄μ„œ 컴퓨터 곡학μͺ½μ€ μƒˆλ‘œμš΄ 게 λ„ˆλ¬΄ 빨리 λ‚˜μ˜¨λ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— 이λ₯Ό λΉ λ₯΄κ²Œ 배울 수 μžˆλŠ” μ‚¬λžŒμ΄ 쒋은 개발자라고 μƒκ°ν•œλ‹€. 돈이 많이 움직이고 μ‚¬νšŒμ  영ν–₯도 크기 λ•Œλ¬Έμ— λΉ λ₯΄κ²Œ 넓은 μ‹œμ•Όλ‘œ λ³Ό 수 μžˆλŠ” μ‚¬λžŒμ΄ 쒋은 κ°œλ°œμžκ°€ 될 수 μžˆμ§€ μ•Šμ„κΉŒ.

Q. μ£Όλ‹ˆμ–΄ κ°œλ°œμžκ°€ κ°–μΆ”λ©΄ 쒋은 μ—­λŸ‰?

  1. λͺ¨λ₯΄λ©΄ μ§ˆλ¬Έμ„ μ’€ 해라
  2. 검색은 λ¨Όμ € μ’€ 해보고
  3. μ°©ν–ˆμœΌλ©΄ μ’‹κ² λ‹€.
  4. 말을 잘 ν–ˆμœΌλ©΄ μ’‹κ² λ‹€. λ§ν•˜κΈ°, κΈ€μ“°κΈ°, λ“£κΈ°, 읽기
  5. κ±΄κ°•ν–ˆμœΌλ©΄ μ’‹κ² λ‹€.
  6. 코딩은 기본이닀.

단, μ§€κΈˆ λ‹Ήμž₯ 코딩을 μž˜ν•˜λŠ” 것은 생각보닀 μ€‘μš”ν•˜μ§€ μ•Šλ‹€. νšŒμ‚¬λ§ˆλ‹€, νŒ€λ§ˆλ‹€, μ§‘λ‹¨λ§ˆλ‹€ κ·Έ μž…μž₯에 따라 λ‹€λ₯΄μ§€λ§Œ 코딩을 λ„ˆλ¬΄ μž˜ν•˜λŠ” 것도 문제 λͺ»ν•˜λŠ” 것도 λ¬Έμ œλ‹€. μ§€κΈˆ λ‹Ήμž₯ 코딩을 μž˜ν•˜λŠ” 것보닀 μ„±μž₯ν•  수 μžˆλŠ” μ‚¬λžŒ!

λ©±λ“±μ„±

  • f(x) = f(f(x))
  • ex) 톡μž₯에 μž…κΈˆμ‹œν‚€λŠ” 둜직
  • μ—¬λŸ¬λ²ˆ μ‹€ν–‰λ˜μ–΄λ„ 1번만 μ‹€ν–‰λ˜κ²Œ!

결정둠적

function foo(a) {
	return Math.random();
}

let b = 5;

function foo(a) {
  b += 1;
	return b;
}

μœ„μ˜ ν•¨μˆ˜λ“€μ€ 비결정둠적이닀. 호좜 λ•Œλ§ˆλ‹€ λ‹€λ₯Έ 값이 λ‚˜μ˜¨λ‹€. 즉, 결정둠적인 μ½”λ“œλŠ” μ–΄μ œν•˜λ“ , μ˜€λŠ˜ν•˜λ“ , λ‚΄μΌν•˜λ“  같은 κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€. ν…ŒμŠ€νŠΈν•˜κΈ° 쒋아진닀. ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯해지고 ν…ŒμŠ€νŠΈκ°€ 완결해진닀. λ˜ν•œ μ½”λ“œλ₯Ό 보기도 ꡉμž₯히 μ‰¬μ›Œμ§„λ‹€.

flux νŒ¨ν„΄μ—μ„œλ„ 이와 같은 κ±Έ μ›ν•œ 것이닀. reducerλ₯Ό μˆœμˆ˜ν•¨μˆ˜λ‘œ λ§Œλ“€μž!! λ³΅μž‘ν•˜κ²Œ μ—°κ²°λœ 것이 μ•„λ‹ˆλΌ μ•„μ£Ό κ°„λ‹¨ν•œ in, μ•„μ£Ό κ°„λ‹¨ν•œ out을 λ§Œλ“€μž! λ©±λ“±μ„±κ³Ό 결정둠적인 ν•¨μˆ˜. λ¬Όλ‘  이걸 λ‹€ 지킬 수 μžˆλŠ” 건 μ•„λ‹ˆλ‹€. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ— λ”°λΌμ„œ 비결정둠적이긴 ν•˜λ‹€.

flux νŒ¨ν„΄

dispatch λŠ” reducer둜 μ•‘μ…˜μ— λŒ€ν•΄μ„œ μƒˆλ‘œμš΄ stateλ₯Ό λ§Œλ“€κ³  μƒˆλ‘œμš΄ μ• λ₯Ό λ§Œλ“€μ–΄μ„œ λ„£μ–΄μ€€λ‹€. 그리고 κΈ°μ‘΄ μ• λŠ” μ§€μ›Œμ€€λ‹€.

νšŒμ‚¬κ°€ 잘 λŒμ•„κ°€κ³  μžˆλ‹€. ceoκ°€ μƒˆλ‘œ μ™”λ‹€. κ·Έ ceoκ°€ μ›ν•˜λŠ” λͺ¨μŠ΅μœΌλ‘œ μ„ΈνŒ…μ„ 해달라고 ν•œλ‹€.

  1. μžˆλŠ” μ‚¬λžŒλ“€μ„ μ›ν•˜λŠ”λŒ€λ‘œ μž¬λ°°μΉ˜ν•˜κ³  λ°”κΎΌλ‹€.
  • Statefulν•œ 방식
  • μž¬ν™œμš©μ˜ 이점
  • λ³΅μž‘ν•˜λ‹€.
  1. μ•„μ˜ˆ μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ½‘λŠ”λ‹€.
  • Statelessν•œ 방식
  • μž¬ν™œμš©ν•  수 μ—†λ‹€.
  • κ·Έλƒ₯ λ‹€ 밀어버리고 μƒˆλ‘œ μ±„μš°λ‹ˆκΉŒ κΉ”λ”ν•˜λ‹€.

2번이 κΉ”λ”ν•˜μ§€λ§Œ, 2λ²ˆμ€ λΉ„μš©μ΄ 많이 λ“ λ‹€. 심지어 μ•„μ£Ό 쑰금만 λ°”κΎΈλŠ”κ±΄λ° 2번으둜 ν•˜λŠ” 건 λΉ„νš¨μœ¨μ μ΄λ‹€.

μœ„μ˜ μ˜ˆμ‹œμ—μ„œ λ¦¬μ•‘νŠΈμ˜ κ²½μš°λŠ” μ•„λž˜μ™€ κ°™λ‹€.

μ΄μ „μ˜ state에 λŒ€ν•œ 가상 dom tree와 μƒˆλ‘œμš΄ state에 λ”°λ₯Έ 가상 dom treeλ₯Ό λ§Œλ“  뒀에 λ³€κ²½ 사항을 λΉ„κ΅ν•΄μ„œ λ³€κ²½λœ 뢀뢄에 λŒ€ν•΄μ„œλ§Œ λ³€ν˜•μ„ μΌμœΌν‚¨λ‹€.

μœ„μ˜ ceo μ˜ˆμ‹œλ₯Ό λ“ λ‹€λ©΄, 기쑴의 νšŒμ‚¬ λͺ¨μŠ΅μ„ κ°€μƒμœΌλ‘œ 두고 μƒˆλ‘­κ²Œ μ›ν•˜λŠ” νšŒμ‚¬μ˜ λͺ¨μŠ΅μ„ κ°€μƒμœΌλ‘œ λ§Œλ“  λ’€ 이 2개의 자료λ₯Ό μ»¨μ„€νŒ… νšŒμ‚¬μ— κ°€μ Έκ°€μ„œ λ³€κ²½ν•΄μ•Όλ˜λŠ” λΆ€λΆ„λ§Œ λ°”κΎΈλŠ” 것이닀. κ·Έ 쀑간에 μ»¨μ„€νŒ…μ„ ν•΄μ£ΌλŠ” 게 Diff, PATCH의 역할이닀.