JiYoung Dev πŸ–₯

기술 λ©΄μ ‘ μ€€λΉ„ 3. λ©€ν‹° μŠ€λ ˆλ“œ (+ ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ) λ³Έλ¬Έ

Study/Java

기술 λ©΄μ ‘ μ€€λΉ„ 3. λ©€ν‹° μŠ€λ ˆλ“œ (+ ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ)

Shinjio 2023. 11. 7. 21:36
μ˜ˆμƒ 질문 1. λ©€ν‹°μŠ€λ ˆλ“œλž€?
μ˜ˆμƒ 질문 2. λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 이유

 

ν”„λ‘œμ„ΈμŠ€(Process)와 μŠ€λ ˆλ“œ(Thread)


μŠ€λ ˆλ“œλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„  ν”„λ‘œμ„ΈμŠ€μ™€ ν•¨κ»˜ μ΄ν•΄ν•˜λŠ” 것이 μ’‹λ‹€. μ™œλƒν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬μ„±ν•˜λŠ” μš”μ†Œ 쀑 ν•˜λ‚˜κ°€ μŠ€λ ˆλ“œ 이기 λ•Œλ¬Έμ΄λ‹€. 

 

ν”„λ‘œμ„ΈμŠ€(Process)λž€? 


ν”„λ‘œμ„ΈμŠ€(Process)λž€ λ¬΄μ—‡μΌκΉŒ? ν”„λ‘œμ„ΈμŠ€λž€ λ‹¨μˆœν•˜κ²Œ λ§ν•˜λ©΄ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨(program)이라고 ν•  수 μžˆλ‹€. ν•˜λ‚˜μ˜ μžλ°” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 싀행쀑이라면 그것이 λ°”λ‘œ ν”„λ‘œμ„ΈμŠ€μ΄λ‹€. λ‹€μ‹œλ§ν•΄, μ‚¬μš©μžκ°€ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μ΄ μš΄μ˜μ²΄μ œμ— μ˜ν•΄ λ©”λͺ¨λ¦¬ 곡간을 ν• λ‹Ήλ°›μ•„ μ‹€ν–‰ 쀑인 것을 λ§ν•œλ‹€. μ΄λŸ¬ν•œ ν”„λ‘œμ„ΈμŠ€λŠ” ν”„λ‘œκ·Έλž¨μ— μ‚¬μš©λ˜λŠ” 데이터와 λ©”λͺ¨λ¦¬ λ“±μ˜ μžμ› 그리고 μŠ€λ ˆλ“œλ‘œ κ΅¬μ„±λœλ‹€. 

 

- ν”„λ‘œκ·Έλž¨ : μ»΄ν“¨ν„°μ—μ„œ μ‹€ν–‰ν•  수 μžˆλŠ” 파일, νŒŒμΌμ„ μ‹€ν–‰ν•˜μ§€ μ•Šμ€ μƒνƒœ = μ½”λ“œ 덩어리
- ν”„λ‘œμ„ΈμŠ€: μš΄μ˜μ²΄μ œλ‘œλΆ€ν„° λ©”λͺ¨λ¦¬ 곡간을 ν• λ‹Ήλ°›μ•„ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨
- ν”„λ‘œμ„ΈμŠ€ = μžμ› + μŠ€λ ˆλ“œ(thread)

 

ν”„λ‘œμ„ΈμŠ€μ˜ μžμ› ꡬ쑰

ν”„λ‘œμ„ΈμŠ€λŠ” μžμ›κ³Ό μŠ€λ ˆλ“œλ‘œ κ΅¬μ„±λœλ‹€κ³  ν•˜μ˜€λ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ˜ κ΅¬μ‘°λŠ” μ•„λž˜μ™€ κ°™λ‹€.

 

 

TEXT : μ½”λ“œ μ˜μ—­μœΌλ‘œ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μž‘μ„±ν•œ μ½”λ“œκ°€ CPUκ°€ 해석 κ°€λŠ₯ν•œ 기계어 ν˜•νƒœλ‘œ μ €μž₯λ˜μ–΄ μžˆλ‹€.

DATA : μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©΄μ„œ μ‚¬μš©ν•˜λŠ” μ „μ—­ λ³€μˆ˜λ‚˜ 각쒅 데이터가 λͺ¨μ—¬μžˆλ‹€. 

HEAP : μƒμ„±μž, μΈμŠ€ν„΄μŠ€μ™€ 같은 λ™μ μœΌλ‘œ ν• λ‹Ήλ˜λŠ” 데이터듀이 μ‘΄μž¬ν•˜λŠ” κ³΅κ°„μœΌλ‘œ μ‚¬μš©μžμ— μ˜ν•΄ λ©”λͺ¨λ¦¬ 곡간이 λ™μ μœΌλ‘œ ν• λ‹Ήλ˜κ³  ν•΄μ œλœλ‹€.

STACK : 지역 λ³€μˆ˜μ™€ ν˜ΈμΆœν•œ ν•¨μˆ˜κ°€ μ’…λ£Œλ˜λ©΄ λ˜λŒμ•„μ˜¬ μž„μ‹œμ μΈ 자료λ₯Ό μ €μž₯ν•˜λŠ” 독립적인 곡간이닀. Stack 은 ν•¨μˆ˜μ˜ 호좜과 ν•¨κ»˜ ν• λ‹Ήλ˜λ©°, ν•¨μˆ˜μ˜ 호좜이 μ™„λ£Œλ˜λ©΄ μ†Œλ©Έν•œλ‹€. λ§Œμ•½ stack μ˜μ—­μ„ μ΄ˆκ³Όν•˜λ©΄ stack overflowκ°€ λ°œμƒν•œλ‹€. 

 

 

Stack μ˜μ—­κ³Ό Heapμ˜μ—­μ€ ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ 크기가 λŠ˜μ–΄λ‚¬λ‹€ μ€„μ–΄λ“œλŠ” 동적 μ˜μ—­μ΄λ―€λ‘œ ν™”μ‚΄ν‘œλ₯Ό ν‘œκΈ°ν–ˆλ‹€. 

 

μŠ€λ ˆλ“œ(Thread)λž€?


ν”„λ‘œμ„ΈμŠ€μ˜ ν•œ μš”μ†ŒμΈ μŠ€λ ˆλ“œλž€ λ¬΄μ—‡μΌκΉŒ? μŠ€λ ˆλ“œλž€ ν”„λ‘œμ„ΈμŠ€(process) λ‚΄μ—μ„œ μ‹€μ œλ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 주체λ₯Ό λ§ν•œλ‹€.

크둬 λΈŒλΌμš°μ €λ₯Ό 예λ₯Ό λ“€μ–΄ μ„€λͺ…ν•˜μžλ©΄ λ‹€μŒκ³Ό κ°™λ‹€. 

  • 크둬 λΈŒλΌμš°μ €λ₯Ό μ‹€ν–‰ν•œλ‹€ => ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λœλ‹€. 
  • 크둬 λΈŒλΌμš°μ €μ—μ„œ κ·Έλ¦Ό νŒŒμΌμ„ λ‹€μš΄ λ°›λŠ”λ‹€ => ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œκ°€ μƒμ„±λœλ‹€. 
  • 크둬 λΈŒλΌμš°μ €μ—μ„œ λ™μ‹œμ— 쇼핑을 ν•œλ‹€ => 또 ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œκ°€ μƒμ„±λœλ‹€. 

λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” ν•œ 개 μ΄μƒμ˜ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•˜μ—¬ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€. μžλ°”μ—μ„œλŠ” JVM(Java Virtual Machine)에 μ˜ν•΄ κ΄€λ¦¬λœλ‹€.

 

ν”„λ‘œμ„ΈμŠ€(process) μŠ€λ ˆλ“œ(thread)
운영체제둜 μžμ›μ„ 할당받은 μž‘μ—…μ˜ λ‹¨μœ„ ν”„λ‘œμ„ΈμŠ€κ°€ 할당받은 μžμ›μ„ μ΄μš©ν•˜λŠ” μ‹€ν–‰ νλ¦„μ˜ λ‹¨μœ„

 

λ©€ν‹° μŠ€λ ˆλ“œ(Multi Thread)λž€?


두 개 μ΄μƒμ˜ μŠ€λ ˆλ“œλ₯Ό κ°€μ§€λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ©€ν‹°μŠ€λ ˆλ“œ ν”„λ‘œμ„ΈμŠ€λΌκ³  ν•˜λ©°, μžλ°”μ—μ„œλŠ” λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•œλ‹€.

μŠ€λ ˆλ“œλ₯Ό μ„€λͺ…ν•  λ•Œ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” ν•œ 개 μ΄μƒμ˜ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•œλ‹€κ³  ν–ˆλ‹€. 즉, ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜λ©΄ 기본적으둜 ν•˜λ‚˜μ˜ main μŠ€λ ˆλ“œκ°€ μƒμ„±λ˜λŠ” 것이닀. μŠ€λ ˆλ“œλ₯Ό κ°œλ°œμžκ°€ 2개, 3개... μΆ”κ°€ μƒμ„±ν•˜κ²Œ 되면 λ©€ν‹° μŠ€λ ˆλ“œ ν™˜κ²½μ΄ λ˜λŠ” 것이닀. μ΄λŸ¬ν•œ μŠ€λ ˆλ“œλ“€μ€ ν”„λ‘œμ„ΈμŠ€μ˜ λ¦¬μ†ŒμŠ€λ₯Ό κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— 효율적이긴 ν•˜μ§€λ§Œ 잠재적인 λ¬Έμ œμ μ— λ…ΈμΆœλ  μˆ˜λ„ μžˆλ‹€. 

 

μŠ€λ ˆλ“œμ˜ μžμ› 곡유

μŠ€λ ˆλ“œλŠ” μ–΄λ–»κ²Œ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ™μ‹œμ— μž‘μ—…μ„ ν•  수 있게 ν•΄μ£ΌλŠ” 걸까? κ·Έ μ΄μœ λŠ” λ°”λ‘œ μŠ€λ ˆλ“œλΌλ¦¬ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ κ³΅μœ ν•˜λ©΄μ„œ ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ νλ¦„μ˜ 일뢀가 되기 λ•Œλ¬Έμ΄λ‹€. 

 

 

ν”„λ‘œμ„ΈμŠ€μ˜ Heap, data, text은 ν”„λ‘œμ„ΈμŠ€ λ‚΄ λ‹€λ₯Έ μŠ€λ ˆλ“œλ“€κ³Ό 곡유되고 stack μ˜μ—­λ§Œ ν• λ‹Ήλ°›μ•„ λ³΅μ‚¬λœλ‹€. 그럼 μ™œ stack μ˜μ—­λ§Œ λ³„λ„λ‘œ κ°€μ§€λŠ” κ²ƒμΌκΉŒ? 

 

Stack은 ν•¨μˆ˜ 호좜 μ‹œ μ „λ‹¬λ˜λŠ” 인자, λ˜λŒμ•„κ°ˆ μ£Όμ†Œκ°’, ν•¨μˆ˜ λ‚΄μ—μ„œ μ„ μ–Έν•˜λŠ” λ³€μˆ˜ 등을 μ €μž₯ν•˜λŠ” λ©”λͺ¨λ¦¬ 곡간이기 λ•Œλ¬Έμ΄λ‹€. 즉, 독립적인 Stack을 κ°€μ‘Œλ‹€λŠ” 것은 독립적인 ν•¨μˆ˜ 호좜이 κ°€λŠ₯ν•˜λ‹€λŠ” μ˜λ―Έμ΄λ‹€. 그리고 독립적인 ν•¨μˆ˜ 호좜이 κ°€λŠ₯ν•˜λ‹€λŠ” 것은 독립적인 μ‹€ν–‰ 흐름을 κ°€μ§ˆ 수 μžˆλ‹€λŠ” μ˜λ―Έμ΄λ‹€. 

 

μžμ›μ„ κ³΅μœ ν•˜λŠ” λ©€ν‹° μŠ€λ ˆλ“œμ™€ 달리 ν”„λ‘œμ„ΈμŠ€λŠ” ν”„λ‘œμ„ΈμŠ€λΌλ¦¬ λ©”λͺ¨λ¦¬μ— 직접 접근이 λΆˆκ°€λŠ₯ν•˜λ‹€. 

 

ν”„λ‘œμ„ΈμŠ€μ˜ μžμ› 곡유 방법
- IPC(Inter-Process Communication)
- LPC(Local inter-Process Communication)
-λ³„λ„μ˜ 곡유 λ©”λͺ¨λ¦¬λ₯Ό λ§Œλ“€μ–΄ 정보λ₯Ό μ£Όκ³  받도둝 μ„€μ •

 

 

λ©€ν‹° μŠ€λ ˆλ“œ(Multi Thread)λ₯Ό μ‚¬μš©ν•˜λŠ” 이유?


μžλ°”μ—μ„œ λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” CPU μ‚¬μš©μœ¨μ„ ν–₯μƒμ‹œμΌœ μžμ›μ„ 보닀 효율적으둜 μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ΄λ‹€. μ •ν™•νžˆλŠ” CPU μ‚¬μš©μœ¨μ„ 높이기 μœ„ν•΄ λ©€ν‹°μŠ€λ ˆλ”©μ„ μ‚¬μš©ν•˜λŠ” 것이닀. 

 

μŠ€λ ˆλ“œμ˜ μžμ› κ³΅μœ μ—μ„œ λ³Ό 수 μžˆλ“―μ΄ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‹€μˆ˜μ˜ μ‹€ν–‰ λ‹¨μœ„μΈ μŠ€λ ˆλ“œλ‘œ κ΅¬λΆ„ν•˜μ—¬ μžμ›μ„ κ³΅μœ ν•˜κ³ , μžμ›μ˜ 생성과 κ΄€λ¦¬μ˜ 쀑볡을 μ΅œμ†Œν™”ν•˜μ—¬ μˆ˜ν–‰ λŠ₯λ ₯을 ν–₯μƒμ‹œν‚¨λ‹€.

 

λ©€ν‹° μŠ€λ ˆλ“œ μž₯점과 단점


μž₯점

  • μ‹œμŠ€ν…œ μžμ›μ„ 보닀 효율적으둜 μ‚¬μš©ν•  수 μžˆλ‹€. 
  • μ‚¬μš©μžμ— λŒ€ν•œ 응닡성이 ν–₯μƒλœλ‹€.
    • 예λ₯Ό λ“€μ–΄, μ±„νŒ… ν”„λ‘œκ·Έλž¨μ˜ 경우 μ‹±κΈ€ μŠ€λ ˆλ“œ ν”„λ‘œκ·Έλž¨μΌ 경우 파일 전솑을 마칠 λ•ŒκΉŒμ§€ μ±„νŒ… κΈ°λŠ₯을 μ‚¬μš©ν•  수 μ—†μ§€λ§Œ, λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό κ°€λŠ₯ν•˜λ‹€. 
  • μž‘μ—…μ΄ λΆ„λ¦¬λ˜μ–΄ μ½”λ“œκ°€ 간결해진닀. 
    • μž‘μ—…μ„ μ“°λ ˆλ“œλ³„λ‘œ λ‚˜λˆ μ„œ μž‘μ„±ν•˜κΈ° λ•Œλ¬Έμ— μ½”λ“œκ°€ κ°„κ²°ν•΄ 진닀.

단점

  • μ‹œμŠ€ν…œ μžμ›μ„ μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ κ³΅μœ ν•΄μ•Ό ν•œλ‹€. 
  • λ™κΈ°ν™”λ‘œ μΈν•œ μ„±λŠ₯ μ €ν•˜ 
    • λ©€ν‹° μŠ€λ ˆλ“œλŠ” μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ 곡유 μžμ›μ— λ™μ‹œμ— μ ‘κ·Όν•  수 있기 λ•Œλ¬Έμ— 동기화 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— ν•œ μžμ›μ„ λ³€κ²½ν•΄ 버린닀면 μ˜λ„λ˜μ§€ μ•Šμ€ μ—‰λš±ν•œ 값을 읽어 μ„œλΉ„μŠ€μ— 치λͺ…적인 버그가 λ°œμƒν•  수 μžˆλ‹€. λ”°λΌμ„œ μŠ€λ ˆλ“œ κ°„ λ™κΈ°ν™”λŠ” 데이터 접근을 μ œμ–΄ν•˜κΈ° μœ„ν•œ ν•„μˆ˜μ μΈ κΈ°μˆ μ΄λ‹€. 
    • 동기화 μž‘μ—…μ€ μ—¬λŸ¬ μŠ€λ ˆλ“œλ“€μ΄ μžμ›μ— λŒ€ν•œ 접근을 순차적으둜 ν†΅μ œν•˜λŠ” 것이닀. 그러면 λ™μ‹œ μ ‘κ·ΌμœΌλ‘œ μΈν•œ λ™μ‹œ μˆ˜μ •κ³Ό 같은 ν˜„μƒμ€ μΌμ–΄λ‚˜μ§€ μ•ŠλŠ”λ‹€. κ·ΈλŸ¬λ‚˜ 동기화 μž‘μ—…μ€ μ—¬λŸ¬ μŠ€λ ˆλ“œμ˜ 접근을 μ œν•œν•˜λŠ” 것이기 λ•Œλ¬Έμ— 병λͺ© ν˜„μƒμ΄ μΌμ–΄λ‚˜ μ„±λŠ₯이 μ €ν•˜λ  κ°€λŠ₯성이 λ†’λ‹€. 
  • κ΅μ°©μƒνƒœ(dead-lock)이 λ°œμƒν•˜μ§€ μ•Šλ„λ‘ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€. 
    • κ΅μ°©μƒνƒœλž€, λ‹€μˆ˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œκ°€ μ„œλ‘œ μžμ›μ„ μ μœ ν•˜κ³ , λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‚˜ μŠ€λ ˆλ“œκ°€ μ μœ ν•œ μžμ›μ„ κΈ°λ‹€λ¦¬λŠ” 상황이닀.μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ μ„œλ‘œ λŒ€κΈ°ν•˜λ©΄μ„œ λ¬΄ν•œμ • κΈ°λ‹€λ¦¬κ²Œλ˜λŠ” λ¬΄ν•œ 루프와 같은 증상이라고 λ³Ό 수 μžˆλ‹€.

μ˜ˆμƒμ§ˆλ¬Έ λ‹΅ν•˜κΈ°

Q. λ©€ν‹°μŠ€λ ˆλ“œλž€?
Q. λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 이유


λ©€ν‹° μŠ€λ ˆλ“œλž€ 2개 μ΄μƒμ˜ μŠ€λ ˆλ“œλ₯Ό κ°€μ§€λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ ν”„λ‘œμ„ΈμŠ€λž€ μš΄μ˜μ²΄μ œκ°€ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜μ—¬ 싀행쀑인 ν”„λ‘œκ·Έλž¨μ„ λ§ν•˜λ©°, μŠ€λ ˆλ“œλž€ 이 ν”„λ‘œμ„ΈμŠ€λ‚΄μ—μ„œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ£Όμ²΄μž…λ‹ˆλ‹€. ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œλ§Œ μ‘΄μž¬ν•˜λŠ” μ‹±κΈ€ μŠ€λ ˆλ“œμΌ 경우 ν•˜λ‚˜μ˜ μž‘μ—…μ΄ λͺ¨λ‘ λλ‚œ λ’€ λ‹€λ₯Έ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 반면, λ©€ν‹° μŠ€λ ˆλ“œμ˜ κ²½μš°μ—λŠ” ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œ νŒŒμΌμ„ λ‹€μš΄ λ°›λŠ” λ™μ‹œμ— 검색이 κ°€λŠ₯ν•œ 것과 같이 μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ λ©€ν‹° μŠ€λ ˆλ“œμ˜ 경우 ν”„λ‘œμ„ΈμŠ€μ˜ μŠ€νƒ μ˜μ—­μ„ μ œμ™Έν•œ νž™, 데이터, μ½”λ“œ(ν…μŠ€νŠΈ) μ˜μ—­μ˜ μžμ›μ„ κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— μžμ›μ˜ 생성과 κ΄€λ¦¬μ˜ 쀑볡을 μ΅œμ†Œν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 이유 λ•Œλ¬Έμ— λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 

μ°Έκ³ λ¬Έν—Œ


 

μ½”λ”©κ΅μœ‘ ν‹°μ”¨ν”ΌμŠ€μΏ¨

4μ°¨μ‚°μ—…ν˜λͺ…, μ½”λ”©κ΅μœ‘, μ†Œν”„νŠΈμ›¨μ–΄κ΅μœ‘, μ½”λ”©κΈ°μ΄ˆ, SWμ½”λ”©, κΈ°μ΄ˆμ½”λ”©λΆ€ν„° μžλ°” 파이썬 λ“±

tcpschool.com

 

 

πŸ‘©‍πŸ’» ‍μ™„μ „νžˆ μ •λ³΅ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ vs μŠ€λ ˆλ“œ κ°œλ…

ν•œλˆˆμ— μ΄ν•΄ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ & μŠ€λ ˆλ“œ κ°œλ… 전곡 지식 없이 μ»΄ν“¨ν„°μ˜ ν”„λ‘œκ·Έλž¨μ„ μ΄μš©ν•˜λŠ”λ°λŠ” 문제 μ—†μ–΄ μ™”μ§€λ§Œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” μ‚¬λžŒμœΌλ‘œμ„œ 컴퓨터 μ‹€ν–‰ λ‚΄λΆ€ μš”μ†Œλ₯Ό λ”°μ Έλ³΄κ²Œ λ λ•Œ, μ•„

inpa.tistory.com

 

 

[Java] μžλ°”μ˜ λ©€ν‹° μŠ€λ ˆλ“œ ν”„λ‘œκ·Έλž˜λ°

μžλ°”μ˜ μ“°λ ˆλ“œμ™€ λ©€ν‹°μ“°λ ˆλ“œ ν”„λ‘œκ·Έλž˜λ°μ„ μ•Œμ•„λ³΄μž 1. μŠ€λ ˆλ“œμ™€ ν”„λ‘œμ„ΈμŠ€μ˜ κ°œλ… μŠ€λ ˆλ“œλ₯Ό κ³΅λΆ€ν•˜κΈ° 전에 λͺ‡ 가지 기본지식을 μ•Œμ•„λ³΄μž. ν”„λ‘œμ„ΈμŠ€ : μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨ μžμ›(λ©”λͺ¨λ¦¬, CPU, 기타

ar-tec.tistory.com

 

 

πŸ‘©‍πŸ’» λ©€ν‹° ν”„λ‘œμ„ΈμŠ€ vs λ©€ν‹° μŠ€λ ˆλ“œ 비ꡐ πŸ’― μ™„μ „ 총정리

λ©€ν‹° ν”„λ‘œμ„ΈμŠ€μ™€ λ©€ν‹° μŠ€λ ˆλ“œλŠ” ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ— λŒ€ν•œ μ²˜λ¦¬λ°©μ‹ 이라고 보면 λœλ‹€. λ‹¨μˆœνžˆ ν”„λ‘œκ·Έλž¨μ„ μ—¬λŸ¬κ°œ λ„μ›Œλ†“λŠ” 것이 λ©€ν‹° ν”„λ‘œμ„ΈμŠ€κ°€ μ•„λ‹ˆλΌ 이 λ‘˜μ€ μ–Έμ œ μ–΄λŠλ•Œμ— μ–΄λ–€ λ°©μ‹μœΌλ‘œ

inpa.tistory.com