개발 지식/CS 지식

πŸ‘©‍πŸ’» ν”„λ‘œμ„ΈμŠ€ / 데λͺ¬ / μ„œλΉ„μŠ€ 차이 ν•œλ°© 정리

인파_ 2023. 3. 30. 17:03

ν”„λ‘œμ„ΈμŠ€-데λͺ¬-μ„œλΉ„μŠ€

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

ν”„λ‘œμ„ΈμŠ€λŠ” λ©”λͺ¨λ¦¬μ— μ μž¬λ˜μ–΄ CPU에 μ˜ν•΄ μ‹€ν–‰λ˜λŠ” 컴퓨터 ν”„λ‘œκ·Έλž¨μ„ μ§€μΉ­ν•œλ‹€. 각 ν”„λ‘œμ„ΈμŠ€λŠ” κ³ μœ ν•œ ν”„λ‘œμ„ΈμŠ€ ID(PID)λ₯Ό 가지며, μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μžμ› 곡유λ₯Ό κ΄€λ¦¬ν•œλ‹€. 예λ₯Ό λ“€μ–΄, μ›Ή λΈŒλΌμš°μ €λ₯Ό μ‹€ν–‰ν•˜λŠ” 경우 λΈŒλΌμš°μ €λΌλŠ” ν”„λ‘œκ·Έλž¨μ€ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ μ‹€ν–‰λ˜λŠ” 것이닀. 그리고 ν”„λ‘œμ„ΈμŠ€λŠ” λˆˆμ— λ³΄μ΄λŠ” ν”„λ‘œμ„ΈμŠ€(foreground process) 와 λˆˆμ— 보이지 μ•Šμ€ ν”„λ‘œμ„ΈμŠ€(background process) 둜 κ΅¬λΆ„λœλ‹€.

ν”„λ‘œμ„ΈμŠ€-데λͺ¬-μ„œλΉ„μŠ€-차이정리
μž‘μ—…κ΄€λ¦¬μž 창을 보면 λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ μΉ΄ν…Œκ³ λ¦¬κ°€ μžˆλ‹€

ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€
μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ ν”„λ‘œμ„ΈμŠ€λŠ” μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•˜μ§€ μ•Šκ³  μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œμ„ΈμŠ€
μ΅œμ†Œν™”λ₯Ό ν•˜λ”λΌλ„ λˆˆμ— λ³΄μ΄λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ λˆˆμ— 보이지 μ•Šμ§€λ§Œ λ’€μ—μ„œ 일을 ν•˜κ³  μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€
인터넷, μΉ΄μΉ΄μ˜€ν†‘, λ©”λͺ¨μž₯, 그림판 λ“± λˆˆμ— λ³΄μ΄λŠ” ν”„λ‘œκ·Έλž¨  λ°±μ‹  ν”„λ‘œκ·Έλž¨, κ·Έλž˜ν”½ λ“œλΌμ΄λ²„, 마이크 λ“œλΌμ΄λ²„ λ“± λˆˆμ— 보이지 μ•ŠλŠ” ν”„λ‘œκ·Έλž¨

데λͺ¬ (Daemon)

데λͺ¬μ€ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž¨μœΌλ‘œ, μ‚¬μš©μžκ°€ μ§μ ‘μ μœΌλ‘œ μ œμ–΄ν•˜μ§€ μ•Šκ³  λ°±κ·ΈλΌμš΄λ“œμ—μ„œ λŒλ©΄μ„œ μ—¬λŸ¬ μž‘μ—…μ„ ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ λ§ν•œλ‹€. μ‚¬μš©μžμ˜ μš”μ²­μ„ 기닀리고 μžˆλ‹€κ°€ μš”μ²­μ΄ λ°œμƒν•˜λ©΄ 이에 적절히 λŒ€μ‘ν•˜λŠ” λ¦¬μŠ€λ„ˆμ™€ 같은 역할을 ν•œλ‹€. 즉, λ©”λͺ¨λ¦¬μ— μƒμ£Όν•˜λ©΄μ„œ νŠΉμ • μš”μ²­μ΄ 였면 μ¦‰μ‹œ λŒ€μ‘ ν•  수 μžˆλ„λ‘ λŒ€κΈ°μ€‘μΈ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ§ν•œλ‹€. 

Daemon

Daemon λ‹¨μ–΄μ˜ 어원

데λͺ¬μ΄λž€ μš©μ–΄λŠ” λ§₯μŠ€μ›°μ˜ 도깨비 사고 μ‹€ν—˜μ—μ„œ μ˜κ°μ„ μ–»μ–΄ νƒ„μƒν•˜μ˜€λ‹€. λ§₯μŠ€μ›°μ˜ λ„κΉ¨λΉ„λŠ” 보이지 μ•ŠλŠ” κ³³μ—μ„œ λΆ„μžλ“€μ„ κ³¨λΌμ£ΌλŠ” 일을 ν•˜λŠ”λ°, 보이지 μ•ŠλŠ” κ³³μ—μ„œ 쑰용히 μΌν•œλ‹€λŠ” μ μ—μ„œ λ§₯μŠ€μ›°μ˜ 도깨비와 데λͺ¬ ν”„λ‘œκ·Έλž¨μ€ λΉ„μŠ·ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. λ˜ν•œ 데λͺ¬λŠ” μ•…λ§ˆλ‚˜ μœ λ Ήμ„ λœ»ν•˜λŠ”λ°, μœ λ Ήμ€ 걷지 μ•Šκ³  항상 λ–  μžˆλ‹€λŠ” μ μ—μ„œ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‘°μš©ν•˜κ²Œ 항상 μˆ˜ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž¨μ„ 데λͺ¬ ν”„λ‘œκ·Έλž¨μ΄λΌ λΆ€λ₯΄κ²Œ 된 것이닀.

데λͺ¬μ€ 항상 λŒμ•„κ°€κ³  μžˆμ–΄μ•Όν•˜λŠ” μ›Ήμ„œλ²„μ— μ ν•©ν•˜μ—¬ 일반적으둜 μ„œλ²„μ—μ„œ 주둜 μ‚¬μš©λœλ‹€. λŒ€ν‘œμ μΈ 예둜 Apache μ›Ήμ„œλ²„μ˜ httpdκ°€ λ°”λ‘œ 데λͺ¬ ν”„λ‘œκ·Έλž¨μ΄λ‹€. httpdλŠ” μ›Ήμ„œλ²„μ— λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λ©΄μ„œ μ„œλ²„λ‘œ λ“€μ–΄μ˜€λŠ” μš”μ²­μ— μžλ™μœΌλ‘œ 응닡해 μ€€λ‹€.

Daemon

이밖에도 μœ λ‹‰μŠ€(λ¦¬λˆ…μŠ€) μš΄μ˜μ²΄μ œμ—μ„œ μš΄μ˜μ²΄μ œμ—μ„œ ν”„λ‘œμ„ΈμŠ€ 이름 끝이 d둜 λλ‚˜λŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ΄ λŒ€ν‘œμ μΈλ° inetd, httpd, nfsd, sshd, named, lpd 등이 μžˆλ‹€.

μ„œλΉ„μŠ€ λͺ… 데λͺ¬ λͺ… μ •μ˜
Linux 슈퍼데λͺ¬ xinetd Linux λ‚΄ μ—¬λŸ¬ μ„œλΉ„μŠ€λ₯Ό ν•œλ²ˆμ— 관리
File Transfer Protocol vsftpd File을 μ „μ†‘ν•˜λŠ” μ„œλΉ„μŠ€
Secure Shell Service sshd μ•”ν˜Έν™” 원격 μž‘μ—…μ΄ κ°€λŠ₯ν•œ μ„œλΉ„μŠ€
Network File System nfs Network λ₯Ό μ΄μš©ν•˜μ—¬ FileSystem 을 κ³΅μœ ν•˜λŠ” μ„œλΉ„μŠ€
Domain Name Service named IP와 Domain 을 mapping μ‹œμΌœμ£ΌλŠ” μ„œλΉ„μŠ€
Web Service httpd Browser λ₯Ό μ΄μš©ν•˜μ—¬ μ›Ή λ¬Έμ„œ νŽ˜μ΄μ§€λ₯Ό 좜λ ₯μ‹œν‚¬ 수 μžˆλŠ” μ„œλΉ„μŠ€
Database Management mysqld DBλ₯Ό κ΄€λ¦¬ν•˜λŠ” μ„œλΉ„μŠ€
Mail Service(send) sendmail mail을 전솑할 수 μžˆλŠ” μ„œλΉ„μŠ€

μ„œλΉ„μŠ€ (Service)

μ„œλΉ„μŠ€λŠ” λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ΄λ‹€. μœˆλ„μš° μ„œλΉ„μŠ€λŠ” 일반적으둜 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν•„μš”λ‘œ ν•˜μ§€ μ•ŠλŠ” μž‘μ—…(λ„€νŠΈμ›Œν¬ μ„œλΉ„μŠ€, λ°μ΄ν„°λ² μ΄μŠ€ μ„œλ²„, λ°±μ—… μ„œλΉ„μŠ€) 등을 μˆ˜ν–‰ν•œλ‹€. μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ“€μ€ μ‹œμŠ€ν…œμ΄ λΆ€νŒ…λ  λ•Œ μžλ™μœΌλ‘œ μ‹œμž‘λ˜λ©°, μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œλ„ κ³„μ†ν•΄μ„œ μ‹€ν–‰λœλ‹€.

μ΄λ ‡κ²Œλ§Œ 보면 데λͺ¬κ³Ό μ„œλΉ„μŠ€μ˜ 차이가 잘 와닿지 μ•Šμ„ 것인데, μœˆλ„μš° OSμ—μ„œλŠ” λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ‘μš© ν”„λ‘œκ·Έλž¨μ„ service 라 λΆ€λ₯΄κ³  μœ λ‹‰μŠ€(λ¦¬λˆ…μŠ€) OSμ—μ„œλŠ” daemon 이라고 λΆˆλ¦¬μš΄λ‹€κ³  보면 λœλ‹€. 즉, λ‘˜μ΄ 거의 λΉ„μŠ·ν•˜λ‹€.

Service


ν”„λ‘œμ„ΈμŠ€, 데λͺ¬, μ„œλΉ„μŠ€ 차이

 

데λͺ¬ vs λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€

일반적으둜 ν”„λ‘œμ„ΈμŠ€μ™€ 데λͺ¬μ˜ μ°¨μ΄λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” ν•„μš”μ‹œ μ‹€ν–‰μ‹œν‚€λŠ” 것이고 데λͺ¬μ€ μžλ™ μ‹€ν–‰μ΄λΌλŠ” 것이닀. 예λ₯Όλ“€μ–΄ λ…ΈνŠΈνŒ¨λ“œλ₯Ό μ‹€ν–‰μ‹œν‚€λ €λ©΄ μ‚¬μš©μžκ°€ 직접 μ‘°μž‘ν•΄μ•Όλ˜μ§€λ§Œ, λ°±μ‹  ν”„λ‘œκ·Έλž¨μ€ 컴퓨터λ₯Ό μž¬λΆ€νŒ…ν•΄λ„ μžλ™μœΌλ‘œ μ‹€ν–‰λœλ‹€.

그럼 ν¬κ·ΈλΌμš΄λ“œκ°€ μ•„λ‹Œ λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€μ™€ 데λͺ¬μ€ 무슨 차이일까?

데λͺ¬κ³Ό λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€μ˜ κ°€μž₯ 큰 차이점은 μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©λ˜λŠ” 점이닀. 데λͺ¬μ€ 주둜 μœ λ‹‰μŠ€λ‚˜ λ¦¬λˆ…μŠ€μ™€ 같은 μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©λ˜λ©° μ‹œμŠ€ν…œ λ ˆλ²¨μ—μ„œ μ‹€ν–‰λ˜λŠ” 반면, λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€λŠ” μœˆλ„μš° μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©λ˜λ©° 데λͺ¬κ³Ό λΉ„μŠ·ν•œ 역할을 μˆ˜ν–‰ν•˜μ§€λ§Œ λŒ€μ‹  μ„œλΉ„μŠ€(Service)λΌλŠ” μš©μ–΄λ₯Ό μ‚¬μš©ν•œλ‹€λŠ” μ μ—μ„œ λ―Έμ„Έν•œ 차이가 μžˆλ‹€κ³  보면 λœλ‹€. λ˜ν•œ 데λͺ¬μ€ μœ λ‹‰μŠ€μ™€ 같은 μš΄μ˜μ²΄μ œμ—μ„œλŠ” 일반적으둜 init ν”„λ‘œμ„ΈμŠ€λ₯Ό 톡해 μ‹€ν–‰λ˜λŠ” 반면, μœˆλ„μš° μš΄μ˜μ²΄μ œμ—μ„œλŠ” μ„œλΉ„μŠ€ λ§€λ‹ˆμ €λ₯Ό 톡해 μ‹€ν–‰λœλ‹€.

init ν”„λ‘œμ„ΈμŠ€λŠ” μ‹œμŠ€ν…œμ΄ μ’…λ£Œλ  λ•ŒκΉŒμ§€ 계속 μ‹€ν–‰λ˜λŠ” 데λͺ¬ ν”„λ‘œμ„ΈμŠ€μ΄λ©° λ‹€λ₯Έ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ˜ 직간접 λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ΄λ‹€.

ν”„λ‘œμ„ΈμŠ€-데λͺ¬-μ„œλΉ„μŠ€ν”„λ‘œμ„ΈμŠ€-데λͺ¬-μ„œλΉ„μŠ€
μœˆλ„μš° μ„œλΉ„μŠ€ λ§€λ‹ˆμ € / init ν”„λ‘œμ„ΈμŠ€ 리슀트

 

데λͺ¬ vs μ„œλΉ„μŠ€

Daemon κ³Ό ServiceλŠ” λΉ„μŠ·ν•œ κ°œλ…μ΄μ§€λ§Œ, 운영 체제 차이점 μžˆλ‹€κ³  ν–ˆλ‹€. 그외에도 μ‚¬μš©μ²˜μ—λ„ 차이가 μžˆλŠ”λ°, 데λͺ¬μ€ 일반적으둜 μ„œλ²„μ—μ„œ 주둜 μ‚¬μš©λ˜κ³ , μ„œλΉ„μŠ€λŠ” λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μ„œλΉ„μŠ€λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄ μ‹€ν–‰λœλ‹€. 데λͺ¬μ€ μ‹œμŠ€ν…œμ—μ„œ λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λ˜κ³ , μ„œλΉ„μŠ€λŠ” μ‹œμŠ€ν…œμ˜ μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜κ³ , λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ œμ–΄ν•˜κ³ , μž‘업을 μˆ˜ν–‰ν•˜λŠ” λ“±μ˜ μ—­ν•  μ§€μ›ν•˜λŠ”λ° 초점이 맞좰져 μžˆλ‹€λŠ” λœ»μ΄λ‹€.

ν•˜μ§€λ§Œ 이듀 μš©μ–΄λŠ” μ’…μ’… μƒν˜Έκ΅ν™˜μ μœΌλ‘œ μ‚¬μš©λ˜κΈ°λ„ ν•˜λ©°, 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ λ‹€μ–‘ν•œ 역할을 μˆ˜ν–‰ν•˜λ―€λ‘œ, ꡬ체적인 μš©μ–΄ 해석은 μ‚¬μš©λ˜λŠ” μ»¨ν…μŠ€νŠΈμ— 따라 λ‹¬λΌμ§ˆ 수 μžˆλ‹€. 예λ₯Όλ“€μ–΄ λ¦¬λˆ…μŠ€μ—μ„œ 포트/ν”„λ‘œν† μ½œ 정보λ₯Ό μ •μ˜ν•΄λ†“μ€ /etc/services 디렉토리가 있기 λ•Œλ¬Έμ— 두 OSμ—μ„œ 'μ„œλΉ„μŠ€'와 '데λͺ¬'은 ν˜Όμš©λ˜μ–΄ 쓰인닀고 보면 λœλ‹€.

κ·Έλ ‡μ§€λ§Œ μœˆλ„μš° 일반 μ†”λ£¨μ…˜μ—μ„œλ„ 데λͺ¬μ΄λΌλŠ” μš©μ–΄λ₯Ό 쓰기도 ν•œλ‹€. κ·Έ μ†”λ£¨μ…˜μ˜ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν•„μˆ˜μ μœΌλ‘œ 항상 싀행이 λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜κΈ°μ—, ν”„λ‘œμ„ΈμŠ€λΌ λΆ€λ₯΄λ©΄ 쑰금 어색해져 데λͺ¬μ΄λΌ λΆ€λ₯΄λŠ” 것이닀.

 


# 참고자료

https://hec-ker.tistory.com/323

https://jins-dev.tistory.com/entry/Daemon-%EA%B3%BC-Background-Process-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

https://blogger.pe.kr/770