🟢 로그 분석을 위한 함수형 데이터 처리 시스템

Clojure 예제

중급 난이도
예제 타입
10/14 등록일

로그 분석을 위한 함수형 데이터 처리 시스템

중급
태그
함수형 데이터처리 로깅 에러처리 확장성
## 프로젝트 개요
실시간 로그 파싱 및 필터링 기능을 제공하는 함수형 데이터 처리 시스템입니다. 잘못된 입력을 감지하고, 다양한 필터 조합으로 빠른 분석이 가능한 구조를 설계했습니다.

## 주요 기능
- 실시간 로그 입력 처리
- 타임스탬프 기반 필터링
- 오류 허용 시 스킵 모드 활성화
- 확장 가능한 필터 규칙 시스템
- 예외 안전한 데이터 파싱

## 사용 방법
콘솔에서 다음과 같이 실행:
$ clj -M log_processing.clj

입력: 로그 라인(예: "2024-03-05 14:30:00 INFO User login"). 잘못된 형식은 자동으로 스킵됩니다.

## 확장 가능성
추가 필터 규칙을 구현하기 위해 `filter-rules`를 확장하거나, 파서 함수를 재정의하여 새로운 로그 포맷 지원 가능
코드 예제
(ns log-processing)

(defn parse-log [line]
  (try
    (let [[timestamp severity content] (re-find #"^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\w+) (.+)$" line)]
      (when (and timestamp severity content)
        {:timestamp timestamp
         :severity severity
         :content content}))
    (catch Exception e
      (println "잘못된 로그 형식: " line)
      nil)))

(defn filter-log [rule-fn logs]
  (filter rule-fn logs))

(defn main []
  (let [logs (lazy-seq
              (when-let [line (read-line)]
                (cons (parse-log line) (main))))]
    (doseq [log logs]
      (when log
        (println "로그: " log)))))

(main)
등록일: 2025년 10월 14일 02:41
언어 정보
언어
Clojure
카테고리
Functional
인기도
#26
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요