LOG Agent 의 목적 [Bottom] [Top]

LOG Agent 는 이름 그대로 LOG 를 저장하는 보조 서버라고 생각하면 된다. 하지만 여기서 LOG 가 어떤 것이냐에 따라서 다르다. LOG 는 다음과 같이 2가지로 나눠볼 수 있다.

그렇다면 여기서 말하는 LOG Agent 는 어떤 LOG 를 처리하는 서버일까? 답은 LOG 메세지를 처리하는 보조 서버다. 그런데 대부분의 프로그래머들은 콘솔창을 잘 활용(?)하고 있는데 이런 것이 필요할까? 아마도 대부분은 필요 없다고 할 것이다. 콘솔창이 훨씬 쉽고 간단하고 무엇보다도 실시간으로 LOG 메세지를 볼 수 있기 때문이다. 그러나 조금만 시간을 갖고 생각해보면 콘솔창도 불편한 점이 만만치 않다.

개인적으로 이런 불편한 것들을 반복하는 것이 짜증나서 생각해 본 것이 바로 LOG Agent 다. 이것은 표준 LOG 메세지 프로토콜을 만들어서 네트워크나 IPC 로 전송하고 그것을 LOG Agent 가 받아서 처리하는 일련의 과정을 말한다. 그리고 여기서 구상 중인 LOG Agent 는 DB I/O 처리를 생각 중인데 그렇다면 DB Agent 를 활용하면 되지않냐고 생각할지도 모르겠다. 하지만 나름대로 LOG Agent 를 독립된 서버로 만들어야겠다고 생각한 이유가 몇가지 있다.

이런 변명(?) 같은 LOG Agent 의 필요성을 말하고 있지만 DB Agent 처럼 커다란 필요성을 느끼지는 못한다. 그리고 궁색한 논리(?)로 프로그래머를 귀찮게 만드는 것들 때문에 고민하는 것들도 있다.

LOG Agent 에 대하여 왜 필요한지, 어떤 것이 문제인지, 어떻게 만들지에 대하여 고민(?)했던 것들을 정리해 봤다. 다음 그림은 LOG Agent 의 역활에 대하여 좀 더 쉽게 이해할 수 있도록 만들어본 것으로 여러 개의 서버가 있지만 실제로는 LOG Agent 만 구현되면 쉽게 구성할 수 있을 것이라고 생각한다.

여기까지 LOG Agent 의 목적이나 역활에 대하여 이해했다면 프로그래머를 귀찮게 하는 구현 문제에 대하여 좀 더 고민해보자. ;)



LOG Agent 의 기능 [Bottom] [Top]

프로그래머를 귀찮게 만들 LOG Agent 의 기능에 대하여 생각해 보자. 우선, LOG Agent 는 보조 서버이기 때문에 어떤 형태의 서버로 만들 것인지 생각해 봐야한다.

두번째로 LOG Agent 는 DB I/O 처리가 있지만 DB Agent 와는 달리 단순히 저장만할 생각이라서 넘어가고 DB 저장된 LOG 데이터를 어떤 식으로 볼 것인지 생각해 봐야한다.

LOG 메세지 프로토콜 [Bottom] [Top]

LOG Agent 로 어떤 프로그램이든 접속하여 LOG 메세지를 저장할 수 있도록 표준 프로토콜을 만들어야 한다. 이런 표준 프로토콜을 생각해보고 정의 해보자.

  1. 접속 정보 (연결 정보)
  2. 프로그램 실행 정보 (프로그램 이름, 버전, 실행 파일명, ... 등)
  3. 프로그램 시작 (시간 정보)
  4. LOG 메세지 정보

    시간

    파일명

    줄번호

    로그레벨

    에러코드

    메시지

  5. 프로그램 종료 (시간 정보)
  6. 연결 해제 (연결 정보)

고려사항 [Bottom] [Top]


CategoryCpp CategoryDatabase CategoryGame CategoryPrivate CategoryWin32

UnfinishedPage

VIPER Projects/LOG Agent (last edited 2010-04-25 10:10:11 by viper)