0Pricing
JavaScript Academy · 강의

E2 — 로그 분석기(간단한 필터와 카운터)

메모리 내 로그 줄 배열을 파싱하고, 수준·키워드로 필터링하며, Map으로 이벤트를 셉니다. 작고 읽기 쉽게 유지합니다.

E2 — 로그 분석기(간단한 필터와 카운터)은(는) CoddyKit의 무료 JavaScript Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 JavaScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. JavaScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

만들 내용

목표: 메모리에서 로그를 분석합니다.

  • 줄을 간단한 문자열로 표현하기
  • level 또는 keyword로 필터링하기
  • Map으로 개수 세기
  • 함수를 짧고 명확하게 유지하기
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 1

데이터 + 파서

각 줄에 시간, level, 텍스트가 있는 간단한 형태를 만드십시오. 필터와 개수 세기에 충분합니다.

// Simulated log lines (time level message)
const LINES = [
  "10:00 INFO  Start app",
  "10:01 WARN  Low memory",
  "10:02 INFO  User login /home",
  "10:03 ERROR DB timeout",
  "10:04 INFO  User login /products",
  "10:05 ERROR Network fail",
  "10:06 WARN  Retry request"
];

// Tiny parser: returns { time, level, text }
function parseLine(line) {
  // split on spaces, compact, then rebuild pieces
  const parts = line.trim().split(/\\s+/);
  if (parts.length < 3) return null;
  const time = parts[0];
  const level = parts[1];
  const text = parts.slice(2).join(" ");
  return { time: time, level: level, text: text };
}

console.log("parsed:", parseLine(LINES[2]));
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 2

필터링 기초

자주 묻는 질문마다 작은 필터 함수를 작성하십시오. 영리한 코드보다 짧고 읽기 쉬운 코드가 낫습니다.

// Filter by level or by keyword (case-sensitive for simplicity)
function filterByLevel(lines, want) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.level === want) out.push(p);
  }
  return out;
}

function filterByKeyword(lines, word) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.text.indexOf(word) !== -1) out.push(p);
  }
  return out;
}

console.log("ERRORs:", filterByLevel(LINES, "ERROR").length);
console.log("login :", filterByKeyword(LINES, "login").length);
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 3

Map으로 개수 세기

개수를 세는 데 Map을 사용하십시오. 키별로 빠르게 업데이트하고 쉽게 읽을 수 있습니다.

// Count how many lines per level
function countByLevel(lines) {
  const counts = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const old = counts.get(p.level) || 0;
    counts.set(p.level, old + 1);
  }
  return counts;
}

const c = countByLevel(LINES);
console.log("INFO :", c.get("INFO"));
console.log("WARN :", c.get("WARN"));
console.log("ERROR:", c.get("ERROR"));
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 4

상위 N개 예제

작은 문자열 추출을 수행하고 개수 Map으로 순위를 정하십시오. 파싱 규칙은 단순하게 유지하십시오.

// Extract a path after "User login " and rank by frequency
function topLoginPaths(lines, k) {
  const freq = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const mark = "User login ";
    const idx = p.text.indexOf(mark);
    if (idx !== -1) {
      const path = p.text.slice(idx + mark.length).trim();
      const old = freq.get(path) || 0;
      freq.set(path, old + 1);
    }
  }
  // turn into array and sort descending by count
  const arr = Array.from(freq.entries());
  arr.sort(function (a, b) { return b[1] - a[1]; });
  return arr.slice(0, k);
}

console.log("top paths:", topLoginPaths(LINES, 3));
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 5

초보자 안내

팁:

  • 먼저 작은 파서를 만드십시오.
  • 질문마다 작은 필터 도우미를 작성하십시오.
  • Map으로 개수를 세십시오.
  • 초보자를 위해 단순한 문자열과 명확한 반복문을 우선 사용하십시오.
E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 6

Map으로 개수 세기 퀴즈

빠른 확인: 개수를 세는 자료 구조입니다.

E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 7

복습

복습: 간단한 형태로 파싱하고, level/keyword로 필터링하며, Map으로 개수를 세십시오. 각 도우미는 짧고 분명하게 유지하십시오.

E2 — 로그 분석기(간단한 필터와 카운터) — 일러스트레이션 8

자주 묻는 질문

“E2 — 로그 분석기(간단한 필터와 카운터)” 강의는 무료인가요?

네 — “E2 — 로그 분석기(간단한 필터와 카운터)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 JavaScript Academy 강의 전체를 잠금 해제할 수 있습니다. JavaScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“E2 — 로그 분석기(간단한 필터와 카운터)”에서 뭘 배우나요?

메모리 내 로그 줄 배열을 파싱하고, 수준·키워드로 필터링하며, Map으로 이벤트를 셉니다. 작고 읽기 쉽게 유지합니다. 브라우저에서 직접 실행하는 실습 코드로 JavaScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

JavaScript Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 JavaScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.

“E2 — 로그 분석기(간단한 필터와 카운터)” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 JavaScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 JavaScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. E1 — 수식 계산기(1부: +와 - LTR)
  2. E2 — 로그 분석기(간단한 필터와 카운터)
  3. E3 — Promise 풀·대기열(비동기 동시성)
← JavaScript Academy(으)로 돌아가기