4월 132007
 

connect_less protocol


 비연결지향


3 tier


서버에 주로 쓰이는 데몬(daemon, demon)의 개념


나도 평가하기 good365


집필자 zeehoney (2004-01-11 00:27)집필한 지식 더보기


조회20464


신고신고|이의제기이의제기


썩 좋은 어감의 용어는 아닙니다. 종교적인 의미로 보면, 이 말은 인간이 숭배하는 “신”과 반대되는 개념의 “악마” 정도의 의미를 지닙니다. 그런데, 컴퓨터의 세계에서는 굉장히 다른 의미로 사용됩니다.

Daemon은 Disk And Execution MONitor 를 줄인 말이라고 합니다. 그렇지만, 프로그래머들이 “악마”를 컴퓨터 세상 속에 창조해 놓고, 나중에 위와 같이 점잖은 의미를 부여했다는 설이 더 설득력이 있어 보입니다.

Daemon은 외국에서는 “데이먼”, “디먼” 정도로 발음합니다. 우리나라에서는 “데몬”이라 표기해도 웬만하면 Daemon을 의미하는 것으로 통하기 때문에 크게 신경쓰지
않아도 좋겠지만, 혹시 외국인이랑 구두로 이야기할 일이 있다면 발음에 주의하시는 것이 좋을 듯 싶습니다.

데몬은 사용자가 필요할 때 불러와서 사용하는 일반 응용프로그램과는 달리, 특정한 동작을 보여주지 않은 채 잠복해 있는 프로그램을 의미합니다. 프린터 스풀러가 좋은 예가 될 수
있습니다. 프린터 스풀러는 윈도우즈가 실행되는 동안 어딘가에 잠복해 있다가, 어떤 프로그램에서 인쇄를 해야 할 일이 생기면 실행되어서 인쇄와 관련된 작업을 수행하거나 지시합니다.

웹서버, FTP서버 등 많은 종류의 서버들은 “데몬”이 대표적으로 이용되는 분야라 할 수 있습니다. PC에 웹서버 프로그램을 설치하여 구동시키면 웹서버 데몬이
실행됩니다. 그렇지만, 달라진 것은 아무것도 없습니다. 다만, 그 데몬의 역할을 엿보는 모니터링 도구 같은 것을 이용하면 웹서버 데몬이 어떤 역할을 수행하고 있다는 것을 알 수 있습니다. 그렇지만, 예를 들어 외부에서 아무도 웹 서버에 접속하지 않는 동안은 웹서버 데몬은
그저 잠복해 있을 뿐입니다.

위에서 윈도우즈의 프린터 스풀러를 예로 들었는데, 데몬의 개념이 도입된 것은 유닉스 시스템이고, 데몬을 가장 널리 활용하는 운영체제도 유닉스라 할 수 있습니다.

유닉스에서 대표적인 데몬 툴로는 웹서버, FTP 서버 이런 것들을 제외하고는 CRON 툴이 있습니다. 특정 시간에 지정한 명령을 실행시켜주는 이 툴은 데몬의 형태를 갖는 대표적인 유닉스의 기능이라 할 수
있습니다. 윈도우즈로 치자면 “예약 작업(Scheduled Task)”과 유사합니다.

다시 한번 반복하자면, 데몬은 특정한 동작을 하고 있지 않은 채, 어떤 동작에 대한 요청을 받아들이기 위해 잠복하고 있는 프로그램입니다. 이것은 위에서 예로 든 것처럼 운영체제 수준에서 제공되는 것들도 있지만, 특정 응용프로그램 내에서 사용되는 경우도 있습니다.

그 개념은 같지만, 운영체제 수준의 데몬을 Daemon, 응용프로그램 수준의 데몬을 Demon으로 구분하는 경우도 있으니, 참고하시기 바랍니다. 응용프로그램 수준의 데몬은 그 응용프로그램을 개발한 사람의 의사에 따라 Agent처럼 다른 명칭으로 불리기도 하구요.

끝으로 한 가지 사족을 달까 합니다. 최근에는 가상 CD-ROM/DVD-ROM 드라이브를 에뮬레이트하는 유틸리티들 중 하나의 이름이 “데몬툴(Daemon-Tools)”이라,
이것 때문에 입에 오르내리는 용어가 되기도 했습니다.


웹 서버의 타입을 standalone으로 지정하면 웹 서버의 httpd daemon process가 클라이언트의 요구를 처리하게 되며 동시에 여러 명의 사용자가 서비스를 요청해 올 때 httpd daemon process가 가지고 있는 정보를 복사하여 각각의 요구를 처리하므로 효율성이 높다. 웹 서버의 타입이 inetd인 경우는 각각의 서비스에 대하여 inet daemon이 새로운 프로세스들을 생성 시켜(fork) 처리를 하게 하므로 이 때마다 Configuration파일을 읽어 들이게 되어 비 효율적이다. 따라서 ‘standalone’으로 지정하는 것이 좋다.

httd.conf 설정



  1. 전역환경


  2. main server 설정


  3. 버추얼호스트 설정

directive 지시어 지시자


아파치 설정을 할때 필요한요소?
옵션을 주거나 값을 주거나 할때


예를들어 ServerRoot
MaxRequestsPerChild 등등의 예약어



지시어, 한칸띄우고 값 쓰기 , 스페이스가 없으면 그냥 써도 됨



container directive


container 안에 directive 를 담아서 하나의 섹션으로 관련된 지시자를 한번에 묶어주는 것


예를들어
<directory></directory>
<location></location>
<virtualhost>
<files>
4개가 있어


<ifdefine>
<ifmodule>



“/home/*/public_html” 정규표현식



<directory /home/*/public_html>
</directory>


KKK 라는 폴더에다가 여러가지 설정을 줄 때
read-only, cgi 실행 등등 이런 여러가지 옵션이 있을때 한 셋으로 묶기



^ 문자열의 시작


 $ 문자열의 끝


^$ 빈줄 의미


. 한문자만 올 수 있다


[]
{} 반복횟수



a[scan]k


– > ask
ack
aak
ank



ab{2}c


abc
abbc
ab


\$  실제 마ㅑ

* 0개이상반복시


+ 1개이상반복시


[0-9] 숫자하나를 의미
[0-9]+  반드시 한번 와야함


[ab]
[0-9]
[a-z]
[

*  0 이상
+  1 이상
?  딱 하나
 
정규표현식의  grouping  ()

([0-9]+)-([0-9]+)


[a|b]  a, b  둘중에 하


{n, m}
n 개부터  m 개까지?

모듈의 장점. 지시자 module Load 줄야주갰음

소켓에서 정보를 주고 받고 한다.
패킷. 스트링. 키보드 보안,  아이디 패스워드의 패킷 소프트웨어
|

중간에서 가로채는것을 막기 위해 암호화 복부호화 노력  ( SSL 등)

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>