πŸͺ΄ μ„±μž₯일지

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

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

🌳 ν‚€μ›Œλ“œ μ΅œλŒ€ν•œ κ°„λ‹¨ν•˜κ²Œ 정리, 좔후에 λ³΄λ©΄μ„œ 슀슀둜 μ„€λͺ…

JavaScript ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„ 쀑 ν•˜λ‚˜λ‘œ μˆ˜ν•™μ  ν•¨μˆ˜μ˜ 계산을 톡해 자료λ₯Ό μ²˜λ¦¬ν•˜κ³  μƒνƒœμ™€ κ°€λ³€ 데이터λ₯Ό λ©€λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„μ΄λ‹€.

function addMaker(a) {
  return function (b) {
    return a + b;
  };
}

μˆœμˆ˜ν•¨μˆ˜

  • 동일 ν•œμž…λ ₯에 λŒ€ν•΄ 항상 같은 값을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜
  • ν•¨μˆ˜μ˜ 싀행이 ν”„λ‘œκ·Έλž¨μ˜ 싀행에 영ν–₯을 λΌμΉ˜μ§€ μ•ŠλŠ” ν•¨μˆ˜
  • ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 인자의 κ°’μ΄λ‚˜ ν”„λ‘œκ·Έλž¨ μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” λΆ€μˆ˜ 효과(side effect)κ°€ μ—†λŠ” ν•¨μˆ˜
  • ν”νžˆ μš°λ¦¬κ°€ μƒκ°ν•˜λŠ” 외뢀값을 μ°Έμ‘°ν•˜κ³  λ°”κΎΈκ³ , 인자의 값을 λ³€κ²½ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° ν•¨μˆ˜κ°€ μ•„λ‹Œ μˆ˜ν•™μ—μ„œμ˜ ν•¨μˆ˜λ₯Ό λ– μ˜¬λ¦¬λ©΄ μ΄ν•΄ν•˜κΈ° μ’‹λ‹€.

μˆ˜ν•™μ—μ„œμ˜ ν•¨μˆ˜ ex) f(x, y) = 2x + 3y처럼 인자 x, y에 λŒ€ν•΄ μ–΄λ–€ 변경없이 λ™μΌν•œ μΈμžμ— λŒ€ν•΄ λ™μΌν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λ©° μ• μ΄ˆμ— μˆ˜ν•™μ  ν•¨μˆ˜μ—μ„œ μ™ΈλΆ€μ˜ 값을 μ°Έμ‘°ν•œλ‹€.λŠ” κ°œλ… μžμ²΄κ°€ μ—†λ‹€. 즉, 이것이 μˆœμˆ˜ν•¨μˆ˜

λΉ„μƒνƒœ, λΆˆλ³€μ„±

  • ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ λ°μ΄ν„°λŠ” λ³€ν•˜μ§€ μ•ŠλŠ” λΆˆλ³€μ„±μ„ μœ μ§€ν•΄μ•Όν•œλ‹€.
  • ⭐ λ°μ΄ν„°μ˜ 변경이 ν•„μš”ν•œ 경우, 원본 데이터 ꡬ쑰λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ©° κ·Έ λ°μ΄ν„°μ˜ 볡사본을 λ§Œλ“€μ–΄μ„œ κ·Έ 일뢀λ₯Ό λ³€κ²½ν•˜κ³  λ³€κ²½ν•œ 볡사본을 ν™œμš© ν˜Ήμ€ λ°˜ν™˜ν•œλ‹€.

일급 객체(일급 ν•¨μˆ˜)

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν•¨μˆ˜λŠ” 일급 κ°μ²΄λ‘œμ„œ 일급 ν•¨μˆ˜λ‘œ 닀뀄진닀. ν•¨μˆ˜κ°€ κ°’μœΌλ‘œ λ‹€λ€„μ§ˆ 수 μžˆλ‹€λŠ” μ˜λ―Έμ΄λ‹€.

  • μ–΄λ–€ ν•¨μˆ˜μ˜ 인자둜 전달될 수 μžˆλ‹€.
  • μ–΄λ–€ ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ 될 수 μžˆλ‹€.
  • μ–΄λ–€ μžλ£Œκ΅¬μ‘°μ— μ €μž₯될 수 μžˆλ‹€.
  • κ·Έ 자체의 λ¦¬ν„°λŸ΄λ‘œ 생성 κ°€λŠ₯ν•˜λ‹€.

λ„€νŠΈμ›Œν¬ 기초

  • λ„€νŠΈμ›Œν¬λž€ 두 λŒ€ μ΄μƒμ˜ 컴퓨터λ₯Ό μ—°κ²°ν•˜μ—¬ μ„œλ‘œ 데이터λ₯Ό 전솑할 수 μžˆλŠ” 톡신망이닀.
  • 인터넷은 TCP/IP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜λŠ” 세계 μ΅œλŒ€ 규λͺ¨μ˜ λ„€νŠΈμ›Œν¬μ΄λ‹€. μ „ μ„Έκ³„μ˜ 컴퓨터가 μ„œλ‘œ 데이터λ₯Ό 전솑할 수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ§„ κ±°λŒ€ 톡신망이닀.
  • νŒ¨ν‚·: λ„€νŠΈμ›Œν¬ 톡신 μ‹œ μ‚¬μš©λ˜λŠ” μž‘κ²Œ λΆ„ν• λœ 데이터 쑰각, λ„€νŠΈμ›Œν¬μ—μ„œ μ „μ†‘ν•˜λŠ” λ°μ΄ν„°μ˜ κΈ°λ³Έ λ‹¨μœ„κ°€ λœλ‹€.

    λŒ€μ—­ν­(μ΅œλŒ€ 전솑 μ†λ„λ‘œ 전솔할 수 μžˆλŠ” λ‹¨μœ„ μ‹œκ°„ λ‹Ή λ°μ΄ν„°μ˜ μ–‘)이 μ‘΄μž¬ν•˜κΈ°μ— ν•œ λ²ˆμ— 큰 데이터λ₯Ό 보낼 수 μ—†λ‹€. 그렇기에 λ°μ΄ν„°μ˜ 쑰각인 νŒ¨ν‚·μœΌλ‘œ μͺΌκ°œμ–΄ 솑신 ν›„ μˆ˜μ‹ ν•˜μ—¬ λ‹€μ‹œ 퍼즐을 λ§žμΆ”λ“― κ·Έ νŒ¨ν‚·μ„ μ‘°ν•©ν•˜μ—¬ μ›λž˜μ˜ ν˜•νƒœλ₯Ό 갖좔도둝 ν•œλ‹€. 이 λ•Œ, μ›λž˜μ˜ ν˜•νƒœλ₯Ό κ°–μΆ”κΈ° μœ„ν•΄ 각 νŒ¨ν‚·μ—λŠ” κ·Έ μˆœμ„œκ°€ λ‹΄κΈ΄ 정보가 λ“€μ–΄μžˆλ‹€.

  • μ˜¨ν”„λ ˆλ―ΈμŠ€μ™€ ν΄λΌμš°λ“œ
    • μ˜¨ν”„λ ˆλ―ΈμŠ€: νšŒμ‚¬μ˜ μ„œλ²„λ₯Ό μš΄μ˜ν•˜κΈ° μœ„ν•΄ 사내에 μ„œλ²„λ₯Ό λ‘κ±°λ‚˜ 데이터 센터에 λ‘λŠ” 방식
    • ν΄λΌμš°λ“œ: 인터넷을 톡해 μ œκ³΅λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄, ν•˜λ“œμ›¨μ–΄ λ“±μ˜ μ»΄ν“¨νŒ… μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜μ—¬ μ„œλ²„λ₯Ό λΉŒλ¦¬λŠ” 방식
  • DMZ: λ„€νŠΈμ›Œν¬ κ΅¬μ„±μ—μ„œ μ™ΈλΆ€ λ„€νŠΈμ›Œν¬(인터넷)κ³Ό λ‚΄λΆ€ λ„€νŠΈμ›Œν¬(κΈ°μ—…) 사이에 μœ„μΉ˜ν•œ 쀑간 μ§€λŒ€λ‘œ, κ³΅κ°œν•  μ„œλ²„λ§Œ κ³΅κ°œν•˜κ³  κ³΅κ°œν•˜λ©΄ μ•ˆλ˜λŠ” 뢀뢄은 λ³΄μ•ˆμ„ μ§€ν‚€λŠ” 역할을 ν•œλ‹€.