λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» 개발자 이야기/✏️ μ •λ¦¬λ…ΈνŠΈ

[TIL] 6μž₯ λ™μ‹œμ„±

by μ •μ„ ν•œ 2022. 5. 26.
728x90
λ°˜μ‘ν˜•

6μž₯ λ™μ‹œμ„±

였늘의 TIL 3쀄 μš”μ•½

  • κ³΅μœ μƒνƒœλŠ” ν‹€λ¦° μƒνƒœλ‹€.

1. μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©

λ™μ‹œμ„±(병행성) : λ™μ‹œμ— μ‹€ν–‰ 쀑인 κ²ƒμ²˜λŸΌ ν–‰λ™ν•˜λŠ” 것. (fiber, thread, processλ₯Ό ν†΅ν•œ κ΅¬ν˜„)
병렬성 : μ‹€μ œλ‘œ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” 것. (ν•˜λ“œμ›¨μ–΄μ  μž₯치의 ν•„μš”)
세상은 λΉ„λ™κΈ°μ μ΄λ―€λ‘œ μ½”λ“œ μƒμ—μ„œλŠ” λ™μ‹œμ„±μ΄ ν•„μš”ν•˜λ‹€.

<33. μ‹œκ°„μ  κ²°ν•© 깨뜨리기>
μ‹œκ°„μ  κ²°ν•©(temporal coupling)
μ†Œν”„νŠΈμ›¨μ–΄μ˜ μ„€κ³„μš”μ†Œλ‘œμ„œ μ‹œκ°„μ˜ μ—­ν•  - λ™μ‹œμ„±κ³Ό μˆœμ„œ
μ‚¬λžŒλ“€μ€ 보톡 직선적인 사고λ₯Ό ν•œλ‹€. ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ μƒκ°ν•˜λ‹€ 보면 μ‹œκ°„μ  결합을 ν•„μ—°μ μœΌλ‘œ λ§Œλ“€μ–΄ λ‚Έλ‹€.
λ”°λΌμ„œ μš°λ¦¬λŠ” μ΄λŸ¬ν•œ μ‹œκ°„μ  결합듀을 λŠμ–΄λ‚΄μ–΄ ν˜„μ‹€μ„Έκ³„μ™€ 같은 λ™μ‹œμ„±μ„ 확보해야 ν•œλ‹€.

μž‘μ—…νλ¦„μ„ λͺ¨λΈ ν™”ν•˜κ³  λΆ„μ„ν•˜μ—¬ λ™μ‹œμ„±μ„ κ°œμ„ ν•  수 μžˆλ‹€. 이런 κ³Όμ •μ—μ„œ μ“°μ΄λŠ” 도ꡬ가 ν™œλ™ λ‹€μ΄μ–΄κ·Έλž¨κ³Ό 같은 도ꡬ이닀.
λ™μ‹œ μž‘μ—…μ˜ κΈ°νšŒμ™€ 병렬 μž‘μ—…μ˜ 기회

<34. 곡유 μƒνƒœλŠ” ν‹€λ¦° μƒνƒœ>
곡유 μƒνƒœλŠ” ν‹€λ¦° μƒνƒœλ‹€. λ¬Έμ œλŠ” μƒνƒœλ“€μ΄ κ³΅μœ λ˜μ—ˆλ‹€λŠ” 점이닀.
λΉ„ μ›μžμ  κ°±μ‹ 
 - 두 ν”„λ‘œμ„ΈμŠ€κ°€ 같은 λ©”λͺ¨λ¦¬ μ˜μ—­μ— μ“°κΈ°κ°€ κ°€λŠ₯ν•˜λ‹€λ©΄ 이 μƒνƒœμ—μ„œμ˜ κ°€μž₯ 큰 λ¬Έμ œλŠ” κ·Έ μ–΄λŠ ν”„λ‘œμ„ΈμŠ€λ„ μžμ‹ μ΄ 바라보고 μžˆλŠ” λ©”λͺ¨λ¦¬κ°€ μΌκ΄€λ˜μ–΄μžˆμŒμ„ 보μž₯ν•  수 μ—†λ‹€λŠ” 점이닀.
 - 데이터λ₯Ό 가져와 κ°±μ‹ ν•˜λŠ” λ™μž‘μ΄ μ›μžμ μ΄μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°œμƒ. μ‹€μ œκ°’μ΄ λ‚˜μ˜ μ˜λ„μ™€ λ‹€λ₯Έ μ‹œμ μ— 변경될 수 μžˆλ‹€.
μ„Έλ§ˆν¬μ–΄ : λ‹¨μˆœνžˆ ν•œ μ‚¬λžŒλ§Œ κ°€μ§ˆ 수 μžˆλŠ” 무언가.
 - 데이터λ₯Ό κ°±μ‹ ν•˜κ³  싢을 땐, μ„Έλ§ˆν¬μ–΄λ₯Ό μ†Œμœ ν•˜κ³  μžˆμ–΄μ•Όλ§Œ κ°€λŠ₯ν•˜λ‹€λŠ” κ·œμΉ™μ„ λ„μž….
 - κ·ΈλŸ¬λ‚˜ μ„Έλ§ˆν¬μ–΄λ₯Ό μ†Œμœ ν•˜κ³  μžˆμ§€ μ•ŠμœΌλ©΄ ν•΄λ‹Ή μ½”λ“œλŠ” λ™μž‘ν•  수 μ—†μŒ.

곡유 λ©”λͺ¨λ¦¬λŠ” λ™μ‹œμ„± 문제의 μ›μΈμœΌλ‘œ 많이 μ§€λͺ©λœλ‹€. ν•˜μ§€λ§Œ μˆ˜μ • κ°€λŠ₯ν•œ λ¦¬μ†ŒμŠ€λ₯Ό κ°€μ§€κ³  μžˆλŠ” μ•±μ—μ„œλŠ” λ‚΄λΆ€μ˜ μ½”λ“œ μ–΄λ””μ—μ„œλ‚˜ λ™μ‹œμ„± λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€.
λ¦¬μ†ŒμŠ€λŠ” λͺ…λ°±ν•˜μ§€ μ•Šμ„ 수 있기 λ•Œλ¬Έμ΄λ‹€.

<35. 엑터와 ν”„λ‘œμ„ΈμŠ€>
"μž‘κ°€κ°€ μ—†λ‹€λ©΄ μ΄μ•ΌκΈ°λŠ” 쓰이지 μ•Šμ„ 것이닀. 배우(actor)κ°€ μ—†λ‹€λ©΄ μ΄μ•ΌκΈ°λŠ” 생λͺ…을 μ–»μ§€ λͺ»ν•  것이닀."
엑터와 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ΄μš©ν•˜μ—¬ λ™μ‹œμ„±μ„ κ΅¬ν˜„ν•  수 μžˆλ‹€.
 - μ—‘ν„° : μžμ‹ λ§Œμ˜ λΉ„κ³΅κ°œ μ§€μ—­ μƒνƒœλ₯Ό κ°€μ§„ 독립적인 가상 처리μž₯치.
 - ν”„λ‘œμ„ΈμŠ€ : 일반적인 가상 처리기. μš΄μ˜μ²΄μ œκ°€ λ™μ‹œμ„±μ„ μ§€μ›ν•˜κΈ° μœ„ν•˜μ—¬ κ΅¬ν˜„.

μ—‘ν„°λŠ” μ–Έμ œλ‚˜ λ™μ‹œμ„±μ„ κ°€μ§„λ‹€.
 - μ‹œμŠ€ν…œμ΄ μ €μž₯ν•˜λŠ” μƒνƒœλŠ” 였직 λ©”μ‹œμ§€μ™€ μ—‘ν„°μ˜ μ§€μ—­ μƒνƒœλΏμ΄λ‹€.
 - λͺ¨λ“  λ©”μ‹œμ§€λŠ” 일방ν–₯이며 λ‹΅μž₯μ΄λΌλŠ” κ°œλ…μ€ μ—†λ‹€.
 - μ—‘ν„°λŠ” ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ λ©”μ‹œμ§€λ§Œ μ²˜λ¦¬ν•  수 μžˆλ‹€.
λ”°λΌμ„œ 엑터듀은 아무것도 κ³΅μœ ν•˜μ§€ μ•Šμ„ μƒνƒœλ₯Ό κ°€μ§€λ©΄μ„œ λΉ„λ™κΈ°μ μœΌλ‘œ μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.

<36. 칠판>
μΉ νŒμ— μžλ£Œκ°€ μŒ“μ΄λ©΄ κ·Έ μ†μ—μ„œ 무엇인가 연결고리λ₯Ό μ°Ύμ•„λ‚΄μ„œ μžμ‹ μ˜ κ΄€μ°°μ΄λ‚˜ 좔츑을 뢙인닀.
"μžμœ λ°©μž„μ£Όμ˜"적 λ™μ‹œμ„±μ΄λ‹€. 
λ…λ¦½λœ ν”„λ‘œμ„ΈμŠ€, μ—μ΄μ „νŠΈ, μ—‘ν„° 쀑 λˆ„κ΅°κ°€λŠ” μΉ νŒμ— μˆ˜μ§‘ν•œ 사싀을 뢙이고, λˆ„κ΅°κ°€λŠ” λ–Όμ–΄λ‚Έλ‹€. 사싀을 μ‘°ν•©ν•˜κ±°λ‚˜ μ²˜λ¦¬ν•  μˆ˜λ„ 있고 더 λ§Žμ€ 정보λ₯Ό 덧뢙일 μˆ˜λ„ μžˆλ‹€. μΉ νŒμ€ μ‚¬λžŒλ“€μ΄ μ„œμ„œνžˆ 결둠에 λ„λ‹¬ν•˜λ„λ‘ λ•λŠ”λ‹€.

728x90
λ°˜μ‘ν˜•