DEV Community

CHOBH1024
CHOBH1024

Posted on • Originally published at burnout-radar.pomyjo.com

[Part 2/50] Building Burnout Radar: 3,000+ Char Tech & Behavioral Architecture Breakdown

[Part 2/50] Building Burnout Radar: 3,000+ Char Tech & Behavioral Architecture Breakdown

1. 🎯 ν”„λ‘œμ νŠΈ 개발 λ°°κ²½ 및 문제 μ˜μ‹ (Introduction & Background)

ν˜„λŒ€ λ””μ§€ν„Έ μ‚¬νšŒμ—μ„œ 지식 λ…Έλ™μž, 직μž₯인, ν”„λ¦¬λžœμ„œ, κ°œλ°œμžλ“€μ€ 맀일같이 μˆ˜λ§Žμ€ 정보와 업무 슀트레슀, μ •μ„œμ  고갈 μ†μ—μ„œ μ‚΄μ•„κ°€κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹¨μˆœν•œ κΈ°λŠ₯μ„± μ›Ή μ„œλΉ„μŠ€λ‚˜ κ±°λŒ€ν•œ 단일(Monolithic) SaaS μ‹œμŠ€ν…œμ€ μœ μ €μ—κ²Œ λ³΅μž‘ν•œ νšŒμ›κ°€μž…κ³Ό κ³Όλ„ν•œ κ°œμΈμ •λ³΄ μž…λ ₯, 무거운 슀크립트 λ‘œλ”© μ‹œκ°„μ„ μš”κ΅¬ν•˜κ³€ ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ¬Έμ œμ˜μ‹ μ†μ—μ„œ Burnout Radar ν”„λ‘œμ νŠΈκ°€ νƒ„μƒν–ˆμŠ΅λ‹ˆλ‹€. 이 ν”„λ‘œμ νŠΈλŠ” "λ‹¨μˆœν•¨(KISS 원칙)κ³Ό κ°œμΈμ •λ³΄ 보호, 0.3초 μ΄ˆκ³ μ† λΈŒλΌμš°μ € μ—°μ‚°"을 μ§€ν–₯ν•˜λ©°, μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈμ΄λ‚˜ μ„€μΉ˜ 없이 μ¦‰μ‹œ μžμ‹ μ˜ μ„±ν–₯κ³Ό μƒνƒœλ₯Ό λ‹€κ°λ„λ‘œ 진단할 수 μžˆλ„λ‘ μ„€κ³„λœ 마이크둜 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

라이브 μ„œλΉ„μŠ€ λ°”λ‘œκ°€κΈ°: https://burnout-radar.pomyjo.com


2. 🧠 핡심 심리학 / ν–‰λ™μž¬λ¬΄ν•™ / 기술 이둠 ν”„λ ˆμž„μ›Œν¬ (Core Theoretical Framework)

Burnout Radar은 λ‹¨μˆœν•œ μΌνšŒμ„± ν€΄μ¦ˆλ‚˜ κ°€λ²Όμš΄ 심리 ν…ŒμŠ€νŠΈμ— 머무λ₯΄μ§€ μ•Šκ³ , κ²€μ¦λœ ν•™μˆ  λͺ¨λΈκ³Ό ν˜„λŒ€ 행동과학 및 μž„μƒ 심리학 데이터λ₯Ό 유기적으둜 μ‘°ν•©ν•˜μ—¬ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

πŸ“Š μ£Όμš” 진단 5λŒ€ μΆ• 및 μ •λ°€ μŠ€μ½”μ–΄λ§ λͺ¨λΈ

  1. μ •μ„œμ  주도성 및 λͺ°μž…도 μ§€μˆ˜ (Proactivity & Engagement): μ—…λ¬΄λ‚˜ 일상 κ³Όμ œμ— μž„ν•  λ•Œ μžμ‹ μ΄ 슀슀둜 μ£Όλ„κΆŒμ„ μ₯λŠ”μ§€, μ™ΈλΆ€ μžκ·Ήμ— λ°˜μ‘ν•˜λŠ”μ§€ μΈ‘μ •ν•©λ‹ˆλ‹€.
  2. 슀트레슀 λŒ€μ²˜ 및 회볡 탄λ ₯μ„± (Stress Resilience): κ³Όλ„ν•œ 업무 및 λŒ€μΈκ΄€κ³„ κ°ˆλ“± μƒν™©μ—μ„œ μ •μ„œμ  κ³ κ°ˆμ„ μ΅œμ†Œν™”ν•˜κ³  본래 μƒνƒœλ‘œ λ³΅μ›λ˜λŠ” λŠ₯λ ₯을 ν‰κ°€ν•©λ‹ˆλ‹€.
  3. μ˜μ‚¬κ²°μ • 및 감정 편ν–₯ 쑰율 (Decision-Making Bias): κ³Όλ„ν•œ ν™•μ‹ , 손싀 νšŒν”Ό, 좩동적 νŒλ‹¨ λ“± λ¬΄μ˜μ‹μ  행동 였λ₯˜λ₯Ό μ‹œκ°ν™”ν•©λ‹ˆλ‹€.
  4. λŒ€μΈκ΄€κ³„ μ†Œν†΅ 및 감정 μƒν˜Έμž‘μš© (Interpersonal Dynamics): 상사, λ™λ£Œ, 연인, μžλ…€ λ“± νƒ€μΈκ³Όμ˜ λŒ€ν™” νŒ¨ν„΄ 및 μ• μ°© μœ ν˜•μ„ λ‹€μ°¨μ›μœΌλ‘œ νˆ¬μ˜ν•©λ‹ˆλ‹€.
  5. μž₯기적 μ„±μž₯ 및 라이프 루틴 μ΅œμ ν™” (Long-Term Growth Roadmap): 강점을 κ·ΉλŒ€ν™”ν•˜κ³  약점을 보완할 수 μžˆλŠ” μ‹€μš©μ  행동 지침을 μ œμ‹œν•©λ‹ˆλ‹€.

3. πŸ’» ν”„λ‘ νŠΈμ—”λ“œ μ•Œκ³ λ¦¬μ¦˜ & μ½”λ“œ μ•„ν‚€ν…μ²˜ 심측 ν•΄μ„€ (Technical Implementation)

λ³Έ ν”„λ‘œμ νŠΈλŠ” 무거운 3rd-party ν”„λ ˆμž„μ›Œν¬(React/Vue/Angular λ“±)의 50MB λ²ˆλ“€ 파일 λŒ€μ‹ , 순수 μ›Ή ν‘œμ€€(Vanilla HTML5, CSS3, ES6+ JavaScript)λ§Œμ„ μ‚¬μš©ν•˜μ—¬ κ΅¬μΆ•λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

⚑ 순수 μžλ°”μŠ€ν¬λ¦½νŠΈ 닀차원 μŠ€μ½”μ–΄λ§ 및 λ…Έλ©€λΌμ΄μ œμ΄μ…˜ μ•Œκ³ λ¦¬μ¦˜

function calculateNormalizedScores(userAnswers, weightMatrix) {
  const dimensions = { dimensionA: 0, dimensionB: 0, dimensionC: 0, dimensionD: 0, dimensionE: 0 };
  userAnswers.forEach((answerValue, index) => {
    const weights = weightMatrix[index];
    if (weights) {
      Object.keys(weights).forEach(dimKey => {
        dimensions[dimKey] += answerValue * weights[dimKey];
      });
    }
  });
  const normalizedResults = {};
  Object.keys(dimensions).forEach(key => {
    const rawVal = dimensions[key];
    normalizedResults[key] = Math.min(100, Math.max(0, Math.round(rawVal)));
  });
  return normalizedResults;
}
Enter fullscreen mode Exit fullscreen mode

이 μ•Œκ³ λ¦¬μ¦˜μ€ μ„œλ²„λ‘œ μ‚¬μš©μžμ˜ 응닡 데이터λ₯Ό 단 1λ°”μ΄νŠΈλ„ μ†‘μ‹ ν•˜μ§€ μ•Šκ³ , 100% μ‚¬μš©μžμ˜ μ›Ή λΈŒλΌμš°μ € λ©”λͺ¨λ¦¬μƒμ—μ„œ μ‹€μ‹œκ°„ κ³„μ‚°λ©λ‹ˆλ‹€. λ”°λΌμ„œ κ°œμΈμ •λ³΄ 유좜 μœ„ν—˜μ΄ μ›μ²œ μ°¨λ‹¨λ˜λ©°, λ„€νŠΈμ›Œν¬ μ§€μ—°(Latency)이 μ „ν˜€ μ—†λŠ” μ΄ˆκ³ μ† λ°˜μ‘μ„±μ„ 보μž₯ν•©λ‹ˆλ‹€.


4. 🎨 κΈ€λž˜μŠ€λͺ¨ν”Όμ¦˜(Glassmorphism) UI μ‹œμŠ€ν…œ & HTML5 Canvas μ‹œκ°ν™” (Design & UX)

μ‚¬μš©μžμ˜ μ‹œκ°μ  λͺ°μž…감을 κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•΄ modern μ›Ή λ””μžμΈ ν”„λ ˆμž„μ›Œν¬μΈ Glassmorphism λ””μžμΈ μ‹œμŠ€ν…œμ„ CSS λ³€μˆ˜ 기반으둜 직접 κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

🌈 μ£Όμš” UI/UX 섀계 기술 μ§€ν‘œ

  • Ambient Mesh Glow Orbs: CSS radial-gradient와 filter: blur(140px)λ₯Ό κ²°ν•©ν•˜μ—¬ μ€μ€ν•˜κ²Œ μΌλ μ΄λŠ” 가상 λ°°κ²½ 광원 κ΅¬ν˜„
  • Backdrop Filter & Frosted Glass: backdrop-filter: blur(24px) 및 반투λͺ… ν…Œλ‘λ¦¬λ₯Ό κ²°ν•©ν•˜μ—¬ λͺ½ν™˜μ μ΄κ³  μ„Έλ ¨λœ 유리 질감 μ—°μΆœ
  • HTML5 Canvas Pure Geometry Radar: Chart.js 같은 μ™Έμ‚° 라이브러리 없이 μ‚Όκ°ν•¨μˆ˜(Math.sin, Math.cos)λ₯Ό ν™œμš©ν•˜μ—¬ λ‹€κ°ν˜• λ ˆμ΄λ” 차트λ₯Ό 순수 μΊ”λ²„μŠ€ μ’Œν‘œκ³„μ— 닀이내믹 λ Œλ”λ§

5. πŸ“ˆ 1인 개발 라이프사이클 회고 및 배포 운영 μ„±κ³Ό (Lessons & Conclusion)

13개 μ΄μƒμ˜ 마이크둜 진단 앱을 Vercel Edge Network 상에 λ©€ν‹° μ„œλΈŒλ„λ©”μΈ(.pomyjo.com) ꡬ쑰둜 κ΅¬μΆ•ν•˜κ³  μš΄μ˜ν•˜λ©΄μ„œ 얻은 κ°€μž₯ 큰 μ„±κ³ΌλŠ” *"κ³Όλ„ν•œ 툴의 배제(YAGNI μ •μ‹ )κ°€ μ½”λ“œμ˜ 수λͺ…을 κ·ΉλŒ€ν™”ν•œλ‹€"**λŠ” μ‚¬μ‹€μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

  • μ΄ˆκ³ μ† μ›Ή μ„±λŠ₯: Lighthouse μ„±λŠ₯ 점수 99~100점 달성
  • μœ μ§€λ³΄μˆ˜ 제둜(Zero Debt): ν”„λ ˆμž„μ›Œν¬ 버전 μ—…κ·Έλ ˆμ΄λ“œλ‘œ μΈν•œ μ½”λ“œ νŒŒμ† μœ„ν—˜ 제둜
  • 톡합 κ΄€μ œνƒ‘ μ‹œλ„ˆμ§€: 메인 ν—ˆλΈŒμΈ pomyjo.com과의 유기적 μ—°κ²°λ‘œ μƒν˜Έ 도메인 νŒŒμ›Œ 증가

라이브 κ΄€μ œνƒ‘μ— μ ‘μ†ν•˜μ…”μ„œ 17개 μ „ 가동 μ„œλΉ„μŠ€λ₯Ό 직접 κ²½ν—˜ν•΄ λ³΄μ„Έμš”:

πŸ‘‰ POMYJO 톡합 κ΄€μ œνƒ‘ λ°”λ‘œκ°€κΈ° (https://pomyjo.com)

Top comments (0)