Skip to content

allcll/browser-monitoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

올클 메인 이미지

πŸŒ€ 올클 λΈŒλΌμš°μ € λͺ¨λ‹ˆν„°λ§ (Allcll Browser Monitoring)

올클 λΈŒλΌμš°μ € λͺ¨λ‹ˆν„°λ§μ€ μ„Έμ’…λŒ€ μˆ˜κ°•μ‹ μ²­ λ„μš°λ―Έ 올클(ALLCLL) μ„œλΉ„μŠ€μ˜ 데이터 μ΅œμ‹ μ„±κ³Ό UI 무결성을 κ²€μ¦ν•˜κΈ° μœ„ν•œ Playwright 기반의 E2E ν…ŒμŠ€νŠΈ 및 λͺ¨λ‹ˆν„°λ§ λ„κ΅¬μž…λ‹ˆλ‹€.

ν•™μƒλ“€μ—κ²Œ μ •ν™•ν•œ μˆ˜κ°•μ‹ μ²­ 정보λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄, μ‹€μ œ μ„œλΉ„μŠ€ ν™˜κ²½μ—μ„œ 데이터가 μ •μƒμ μœΌλ‘œ κ°±μ‹ λ˜κ³  μžˆλŠ”μ§€ 24μ‹œκ°„ κ°μ‹œν•©λ‹ˆλ‹€.

🎯 λͺ©μ 

이 ν”„λ‘œμ νŠΈλŠ” 올클 μ„œλΉ„μŠ€μ˜ 신뒰성을 보μž₯ν•˜κΈ° μœ„ν•΄ 두 κ°€μ§€ 핡심 λͺ©μ μ„ κ°€μ§‘λ‹ˆλ‹€.

  • CI ν…ŒμŠ€νŠΈ (정적 검증): 개발 λ‹¨κ³„μ—μ„œ μƒλŒ€ μ‹œκ°„ UI 둜직(예: "5λΆ„ μ „")이 κΉ¨μ§€μ§€ μ•Šμ•˜λŠ”μ§€ κ²€μ¦ν•©λ‹ˆλ‹€.
  • 운영 λͺ¨λ‹ˆν„°λ§ (동적 검증): μ‹€μ œ 운영 ν™˜κ²½μ—μ„œ 크둀링 데이터가 ν—ˆμš©λœ μ§€μ—° μ‹œκ°„ 내에 κ°±μ‹ λ˜κ³  μžˆλŠ”μ§€ 주기적으둜 ν™•μΈν•©λ‹ˆλ‹€.

πŸ” μ£Όμš” κΈ°λŠ₯

1. 데이터 μ΅œμ‹ μ„± λͺ¨λ‹ˆν„°λ§

  • μˆ˜κ°•μ‹ μ²­ κΈ°κ°„ λ™μ•ˆ κ°€μž₯ μ€‘μš”ν•œ 것은 **"μ‹€μ‹œκ°„ 여석 정보"**μž…λ‹ˆλ‹€.
  • 이 λ„κ΅¬λŠ” data-crawled-at νƒ€μž„μŠ€νƒ¬ν”„λ₯Ό ν™•μΈν•˜μ—¬, 데이터가 ν˜„μž¬ μ‹œκ° κΈ°μ€€μœΌλ‘œ 1μ‹œκ°„(κΈ°λ³Έκ°’) 이내에 κ°±μ‹ λ˜μ—ˆλŠ”μ§€ κ²€μ¦ν•©λ‹ˆλ‹€.
  • λ§Œμ•½ 데이터 갱신이 λ©ˆμΆ”κ±°λ‚˜ μ§€μ—°λ˜λ©΄, μ¦‰μ‹œ κ΄€λ¦¬μžμ—κ²Œ μ•Œλ¦Όμ„ λ³΄λƒ…λ‹ˆλ‹€.

2. μƒλŒ€ μ‹œκ°„ UI 검증

  • μ‚¬μš©μžμ—κ²Œ "방금 μ „", "5λΆ„ μ „"κ³Ό 같이 직관적인 μ‹œκ°„ 정보λ₯Ό μ œκ³΅ν•˜λŠ” UIκ°€ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€.
  • CI ν™˜κ²½μ—μ„œλŠ” μ‹œκ°„μ„ κ³ μ •(Mocking)ν•˜μ—¬ 둜직의 정확성을 보μž₯ν•©λ‹ˆλ‹€.

3. μœ μ—°ν•œ μŠ€μΌ€μ€„λ§ 및 μ•Œλ¦Ό

  • GitHub Actionsλ₯Ό 톡해 μˆ˜κ°•μ‹ μ²­ κΈ°κ°„(λ‚ μ§œ, μ‹œκ°„)에 맞좰 μžλ™μœΌλ‘œ λͺ¨λ‹ˆν„°λ§μ΄ μ‹€ν–‰λ©λ‹ˆλ‹€.
  • μž₯μ•  λ°œμƒ μ‹œ Discord Webhook을 톡해 문제의 심각도(INFO, WARNING, CRITICAL)에 따라 μ•Œλ¦Όμ„ μ „μ†‘ν•©λ‹ˆλ‹€.

πŸ› οΈ 기술 μŠ€νƒ

  • Framework: Playwright
  • Language: TypeScript
  • CI/CD: GitHub Actions
  • Notification: Discord Webhook

πŸš€ μ‹œμž‘ν•˜κΈ°

ν•„μˆ˜ 쑰건

  • Node.js (v18 이상)
  • pnpm (λ˜λŠ” npm/yarn)

μ„€μΉ˜

git clone https://github.com/allcll/allcll-browser-monitoring.git
cd allcll-browser-monitoring
pnpm install

ν…ŒμŠ€νŠΈ μ‹€ν–‰

1. CI ν…ŒμŠ€νŠΈ (둜직 검증)

UI 둜직이 μ˜¬λ°”λ₯Έμ§€ ν™•μΈν•˜λŠ” 정적 ν…ŒμŠ€νŠΈμž…λ‹ˆλ‹€.

pnpm test:ci
# λ˜λŠ”
npx playwright test --grep-invert @monitoring

2. λͺ¨λ‹ˆν„°λ§ ν…ŒμŠ€νŠΈ (운영 ν™˜κ²½ 검증)

μ‹€μ œ 라이브 μ„œλ²„λ₯Ό λŒ€μƒμœΌλ‘œ 데이터 κ°±μ‹  μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

pnpm test:monitor
# λ˜λŠ”
npx playwright test --grep @monitoring

βš™οΈ ν™˜κ²½ μ„€μ •

λͺ¨λ‹ˆν„°λ§ λ™μž‘μ€ ν™˜κ²½ λ³€μˆ˜λ₯Ό 톡해 μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μˆ˜κ°•μ‹ μ²­ 기간에 맞좰 μœ μ—°ν•˜κ²Œ λ³€κ²½ κ°€λŠ₯ν•©λ‹ˆλ‹€.

Local ν™˜κ²½ λ³€μˆ˜ μ„€μ •

λ³€μˆ˜λͺ… μ„€λͺ… μ˜ˆμ‹œ
MONITOR_START_DATE λͺ¨λ‹ˆν„°λ§ μ‹œμž‘μΌ (YYYY-MM-DD) 2024-03-01
MONITOR_END_DATE λͺ¨λ‹ˆν„°λ§ μ’…λ£ŒμΌ (YYYY-MM-DD) 2024-03-05
MONITOR_START_HOUR 일일 μ‹œμž‘ μ‹œκ°„ (0-23) 10
MONITOR_END_HOUR 일일 μ’…λ£Œ μ‹œκ°„ (0-23) 17
DISCORD_WEBHOOK_URL μ•Œλ¦Όμ„ 받을 Discord Webhook URL https://discord.com/...

🐈 Github Actions ν™˜κ²½ λ³€μˆ˜ μ„€μ •

πŸ” Secrets

λ³€μˆ˜λͺ… ν•„μˆ˜ μ—¬λΆ€ μ„€λͺ… κΈ°λ³Έκ°’/μ˜ˆμ‚¬
DISCORD_WEBHOOK_URL βœ… μ•Œλ¦Όμ„ 받을 Discord Webhook URL https://discord.com/...

πŸ”° Variables

λ³€μˆ˜λͺ… ν•„μˆ˜ μ—¬λΆ€ μ„€λͺ… κΈ°λ³Έκ°’/μ˜ˆμ‚¬
BASE_URL λͺ¨λ‹ˆν„°λ§ λŒ€μƒ (URL) https://allcll.kr
MONITOR_START_DATE βœ… λͺ¨λ‹ˆν„°λ§ μ‹œμž‘μΌ (YYYY-MM-DD) 2024-03-01
MONITOR_END_DATE βœ… λͺ¨λ‹ˆν„°λ§ μ’…λ£ŒμΌ (YYYY-MM-DD) 2024-03-05
MONITOR_START_HOUR 일일 μ‹œμž‘ μ‹œκ°„ (0-23) 10
MONITOR_END_HOUR 일일 μ’…λ£Œ μ‹œκ°„ (0-23) 17
MAX_DELAY_MS κ³Όλͺ© 크둀링 μ§€μ—° μ‹œκ°„ Limit (ms) 3600000 (1 hour)

πŸ“Š λͺ¨λ‹ˆν„°λ§ 둜직

μƒνƒœ νŒλ‹¨ κΈ°μ€€

λͺ¨λ‹ˆν„°λ§ ν…ŒμŠ€νŠΈλŠ” ν˜„μž¬ μ‹œκ°(now)κ³Ό 데이터 κ°±μ‹  μ‹œκ°(data-crawled-at)의 차이λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.

μ§€μ—° μ‹œκ°„ = ν˜„μž¬ μ‹œκ° - 데이터 κ°±μ‹  μ‹œκ°
  • 정상: μ§€μ—° μ‹œκ°„ <= ν—ˆμš© μž„κ³„κ°’ (κΈ°λ³Έ 1μ‹œκ°„)
  • μž₯μ• : μ§€μ—° μ‹œκ°„ > ν—ˆμš© μž„κ³„κ°’ (데이터 κ°±μ‹  쀑단 μ˜μ‹¬)

SSE μ—°κ²° μƒνƒœ κ°„μ ‘ 검증

직접적인 SSE μ—°κ²° μ΄λ²€νŠΈλ³΄λ‹€λŠ”, **"결과적으둜 데이터가 κ°±μ‹ λ˜μ—ˆλŠ”κ°€"**λ₯Ό ν™•μΈν•˜μ—¬ μ‹€μ œ μ‚¬μš©μž κ²½ν—˜μ— κΈ°λ°˜ν•œ μž₯μ•  μ—¬λΆ€λ₯Ό νŒλ‹¨ν•©λ‹ˆλ‹€.


ν˜Ήμ‹œ, 올클 μ„œλΉ„μŠ€μ— 관심이 생기셨닀면 Starλ₯Ό λˆŒλŸ¬μ£Όμ„Έμš”. ⭐️

μž‘μ€ 관심이 μ„œλΉ„μŠ€ μš΄μ˜μ— 큰 도움이 λ©λ‹ˆλ‹€! κ°μ‚¬ν•©λ‹ˆλ‹€. :)

About

πŸŒ€ ALLCLL Live μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ λΈŒλΌμš°μ € λͺ¨λ‹ˆν„°λ§ λ ˆν¬μ§€ν† λ¦¬

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors