출처 : 지식인 오픈백과
Daemon은 Disk And Execution Monitor 를 줄인 말이라고 합니다. 그렇지만, 프로그래머들이 "악마"를 컴퓨터 세상 속에 창조해 놓고, 나중에 위와 같이 점잖은 의미를 부여했다는 설이 더 설득력이 있어 보입니다.
데몬은 사용자가 필요할
때 불러와서 사용하는 일반 응용프로그램과는 달리, 특정한 동작을 보여주지 않은 채 잠복해 있는 프로그램을
의미합니다. 프린터 스풀러가 좋은 예가 될 수 있습니다. 프린터
스풀러는 윈도우즈가 실행되는 동안 어딘가에 잠복해 있다가, 어떤 프로그램에서 인쇄를 해야 할 일이 생기면
실행되어서 인쇄와 관련된 작업을 수행하거나 지시합니다.
웹서버, FTP서버 등 많은 종류의 서버들은 "데몬"이 대표적으로 이용되는 분야라 할 수 있습니다. PC에 웹서버
프로그램을 설치하여 구동시키면 웹서버 데몬이 실행됩니다. 그렇지만, 달라진
것은 아무것도 없습니다. 다만, 그 데몬의 역할을 엿보는
모니터링 도구 같은 것을 이용하면 웹서버 데몬이 어떤 역할을 수행하고 있다는 것을 알 수 있습니다. 그렇지만, 예를 들어 외부에서 아무도 웹 서버에 접속하지 않는 동안은 웹서버 데몬은 그저 잠복해 있을 뿐입니다.
위에서 윈도우즈의 프린터 스풀러를 예로 들었는데, 데몬의 개념이 도입된 것은 유닉스 시스템이고, 데몬을 가장 널리 활용하는 운영체제도 유닉스라 할 수 있습니다.
유닉스에서 대표적인 데몬 툴로는 웹서버, FTP 서버 이런 것들을 제외하고는 CRON 툴이 있습니다. 특정 시간에 지정한 명령을 실행시켜주는 이
툴은 데몬의 형태를 갖는 대표적인 유닉스의 기능이라 할 수 있습니다. 윈도우즈로 치자면 "예약 작업(Scheduled Task)"과 유사합니다.
다시
한번 반복하자면, 데몬은 특정한 동작을 하고 있지 않은 채, 어떤
동작에 대한 요청을 받아들이기 위해 잠복하고 있는 프로그램입니다. 이것은 위에서 예로 든 것처럼 운영체제 수준에서 제공되는 것들도 있지만, 특정
응용프로그램 내에서 사용되는 경우도 있습니다.
그 개념은 같지만, 운영체제 수준의 데몬을
Daemon, 응용프로그램 수준의 데몬을
Demon으로 구분하는 경우도 있으니, 참고하시기 바랍니다. 응용프로그램 수준의 데몬은 그 응용프로그램을 개발한 사람의 의사에 따라
Agent처럼 다른 명칭으로 불리기도 하구요.
끝으로 한 가지 사족을 달까 합니다. 최근에는 가상
CD-ROM/DVD-ROM 드라이브를 에뮬레이트하는 유틸리티들 중 하나의 이름이 "데몬툴(Daemon-Tools)"이라, 이것 때문에 입에 오르내리는
용어가 되기도 했습니다.
'Any Notion > What is that?' 카테고리의 다른 글
연산속도 단위 (0) | 2014.02.11 |
---|---|
AD-HOC network (0) | 2013.04.29 |
D-BUS (0) | 2013.04.29 |
Namespace in C++ (0) | 2013.04.29 |
모수란? (0) | 2013.04.27 |