DEV Community

CHOBH1024
CHOBH1024

Posted on

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

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

🌐 Dual-Language Article: This post contains full sections in both English and Korean (3,000+ chars) for global developers and readers.


πŸ‡ΊπŸ‡Έ [ENGLISH VERSION]

1. Introduction & Project Motivation

In today's fast-paced digital world, developers, knowledge workers, and freelancers face burnout, information overload, and workplace friction. Heavy monolithic SaaS platforms demand complex logins and harvest sensitive data.

To solve this, we created MZ Radar β€” a lightweight, zero-dependency micro web app built on the KISS principle, delivering 0.3s instant in-browser diagnostic evaluations.

2. Architectural Framework & Diagnostic Metrics

MZ Radar evaluates 5 core dimensions:

  1. Proactivity & Engagement: Measures intrinsic drive vs. reactive friction.
  2. Stress Resilience: Evaluates emotional recovery elasticity.
  3. Decision-Making Bias: Highlights cognitive biases (loss aversion, overconfidence).
  4. Interpersonal Dynamics: Maps communication patterns across work and personal relationships.
  5. Growth Roadmap: Delivers tailored, actionable behavioral guidance.

3. Pure Web Standards & Client-Side Execution

Instead of shipping a 50MB framework bundle, this app uses pure Vanilla HTML5, CSS3, and ES6+ JS. 100% of calculations execute locally inside the user's browser, guaranteeing total data privacy and zero latency.


πŸ‡°πŸ‡· [ν•œκ΅­μ–΄ 심측 ν•΄μ„€ (Korean Version β€” 3,000자 이상)]

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

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

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

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


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

MZ 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)