์ธ์ฆ ๋ฐ ์ ์ˆ˜์ฒด๊ณ„ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

DevTeam Test์—์„œ ์ œ์•ˆํ•˜๋Š” PSQC ์ธ์ฆ ์ฒด๊ณ„์™€ ๊ธ€๋กœ๋ฒŒ ์›น ํ’ˆ์งˆ ํ‘œ์ค€์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์›น ํ…Œ์ŠคํŠธ ์ธ์ฆ์„œ (Web Test Certificate)

DevTeam-Test์˜ ๊ฐ ํ…Œ์ŠคํŠธ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๋‹จ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ฆ๋ช…ํ•˜๋Š” ๊ณต์‹ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์˜์—ญ์˜ ์„ฑ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ž…์ฆํ•˜๊ฑฐ๋‚˜ ๋ถ€๋ถ„์  ๊ฐœ์„ ์„ ํ™•์ธํ•  ๋•Œ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง•
  • ๋‹จ์ผ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ฆ‰์‹œ ๋ฐœ๊ธ‰
  • PDF ๋‹ค์šด๋กœ๋“œ + QR ์ฝ”๋“œ ๊ฒ€์ฆ
  • ์ด๋ฉ”์ผ ์ž๋™ ๋ฐœ์†ก
  • ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ •๋ณด ์ƒ์„ธ ๊ธฐ๋ก
  • DevTeam ๊ณต์‹ ์„œ๋ช… ํฌํ•จ
ํ™œ์šฉ ์‚ฌ๋ก€
  • ํด๋ผ์ด์–ธํŠธ ๋‚ฉํ’ˆ ์ฆ๋น™ ์ž๋ฃŒ
  • ์ •๋ถ€๊ณผ์ œ/์ œ์•ˆ์„œ ๊ธฐ์ˆ ๋ ฅ ์ฆ๋ช…
  • ๊ฐœ๋ฐœํŒ€ ๋‚ด๋ถ€ ํ’ˆ์งˆ ๊ด€๋ฆฌ
  • ๊ฒฝ์Ÿ์‚ฌ ๋Œ€๋น„ ์šฐ์œ„ ์ž…์ฆ
  • ์›น์‚ฌ์ดํŠธ ๊ฐœ์„  ์ „ํ›„ ๋น„๊ต

PSQC ์ข…ํ•ฉ ์ธ์ฆ์„œ (PSQC Master Certificate)

Performance ยท Security ยท Quality ยท Content 4๊ฐœ ์˜์—ญ, ์ด 16๊ฐœ ์„ธ๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ์™„๋ฃŒํ•œ ํ›„ ๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ ์ ์ˆ˜ ํ•ฉ์‚ฐ์„ ํ†ตํ•ด ๋ฐœ๊ธ‰๋˜๋Š” ์ข…ํ•ฉ ์ธ์ฆ์„œ์ž…๋‹ˆ๋‹ค.

๋“ฑ๊ธ‰ ์ฒด๊ณ„ (๊ตฌ๊ธ€ 1ํŽ˜์ด์ง€ 500๊ฐœ ์ƒ˜ํ”Œ ๊ธฐ์ค€)
๋“ฑ๊ธ‰ ์ ์ˆ˜ ๋ถ„ํฌ(์ถ”์ •)
A+ 900 โ€“ 1000 ์ƒ์œ„ ~2%
A 800 โ€“ 899 ์ƒ์œ„ ~8%
B 700 โ€“ 799 ์ƒ์œ„ ~15%
C 600 โ€“ 699 ์ƒ์œ„ ~25%
D 500 โ€“ 599 ์ƒ์œ„ ~40%
F < 500 ๋‚˜๋จธ์ง€ (100%)
PSQC ์ธ์ฆ์„œ์˜ ๊ฐ€์น˜
  • ๊ฐ๊ด€์  ๋ฐ์ดํ„ฐ ์ œ๊ณต: ๊ฐ ํ…Œ์ŠคํŠธ๋ณ„ Raw ๋ฐ์ดํ„ฐ์™€ ์ธก์ • ํ™˜๊ฒฝ ์ •๋ณด ์ƒ์„ธ ๊ธฐ๋ก
  • QR ๊ฒ€์ฆ ์‹œ์Šคํ…œ: ์ธ์ฆ์„œ ์ง„์œ„ ์—ฌ๋ถ€์™€ ์›๋ณธ ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ํˆฌ๋ช…ํ•œ ํ‰๊ฐ€ ๊ธฐ์ค€: 16๊ฐœ ํ…Œ์ŠคํŠธ ๋ฐฉ์‹๊ณผ ์ ์ˆ˜ ์‚ฐ์ • ๊ณผ์ • ๊ณต๊ฐœ
  • ๋น„์ฆˆ๋‹ˆ์Šค ์‹ ๋ขฐ๋„ ํ–ฅ์ƒ: ์›น ํ’ˆ์งˆ์— ๋Œ€ํ•œ ์ œ3์ž ๊ฐ๊ด€์  ํ‰๊ฐ€ ์ฆ๋น™
  • ๋งˆ์ผ€ํŒ… ์ฐจ๋ณ„ํ™”: ๊ฒฝ์Ÿ์‚ฌ ๋Œ€๋น„ ์ •๋Ÿ‰์  ์šฐ์œ„ ์ž…์ฆ ์ž๋ฃŒ
  • ํ”„๋กœ์ ํŠธ ๋‚ฉํ’ˆ ์ง€์›: ํด๋ผ์ด์–ธํŠธ ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ ์ฆ๋ช…

16๊ฐœ ๊ฐœ๋ณ„ ํ…Œ์ŠคํŠธ ์ƒ์„ธ ์ ์ˆ˜ ์ฒด๊ณ„

Performance (300์ )

ํ…Œ์ŠคํŠธ ์‹œํ—˜ ๋ฐฉ๋ฒ• A+ A B C D F
๊ธ€๋กœ๋ฒŒ ์†๋„ 8์ง€์—ญ ์‹ ๊ทœ/์žฌ๋ฐฉ๋ฌธ
TTFB & Load
์„ฑ๋Šฅ ํ™•์ธ
โ€ข Origin: TTFB ≤ 200ms, Load ≤ 1.5s
โ€ข ๊ธ€๋กœ๋ฒŒ ํ‰๊ท : TTFB ≤ 800ms, Load ≤ 2.5s
โ€ข ๋ชจ๋“  ์ง€์—ญ: TTFB ≤ 1.5s, Load ≤ 3s
โ€ข ์žฌ๋ฐฉ๋ฌธ ์„ฑ๋Šฅํ–ฅ์ƒ: 80%+
โ€ข Origin: TTFB ≤ 400ms, Load ≤ 2.5s
โ€ข ๊ธ€๋กœ๋ฒŒ ํ‰๊ท : TTFB ≤ 1.2s, Load ≤ 3.5s
โ€ข ๋ชจ๋“  ์ง€์—ญ: TTFB ≤ 2s, Load ≤ 4s
โ€ข ์žฌ๋ฐฉ๋ฌธ ์„ฑ๋Šฅํ–ฅ์ƒ: 60%+
โ€ข Origin: TTFB ≤ 800ms, Load ≤ 3.5s
โ€ข ๊ธ€๋กœ๋ฒŒ ํ‰๊ท : TTFB ≤ 1.6s, Load ≤ 4.5s
โ€ข ๋ชจ๋“  ์ง€์—ญ: TTFB ≤ 2.5s, Load ≤ 5.5s
โ€ข ์žฌ๋ฐฉ๋ฌธ ์„ฑ๋Šฅํ–ฅ์ƒ: 50%+
โ€ข Origin: TTFB ≤ 1.2s, Load ≤ 4.5s
โ€ข ๊ธ€๋กœ๋ฒŒ ํ‰๊ท : TTFB ≤ 2.0s, Load ≤ 5.5s
โ€ข ๋ชจ๋“  ์ง€์—ญ: TTFB ≤ 3.0s, Load ≤ 6.5s
โ€ข ์žฌ๋ฐฉ๋ฌธ ์„ฑ๋Šฅํ–ฅ์ƒ: 37.5%+
โ€ข Origin: TTFB ≤ 1.6s, Load ≤ 6.0s
โ€ข ๊ธ€๋กœ๋ฒŒ ํ‰๊ท : TTFB ≤ 2.5s, Load ≤ 7.0s
โ€ข ๋ชจ๋“  ์ง€์—ญ: TTFB ≤ 3.5s, Load ≤ 8.5s
โ€ข ์žฌ๋ฐฉ๋ฌธ ์„ฑ๋Šฅํ–ฅ์ƒ: 25%+
โ€ข ์œ„ ๊ธฐ์ค€์— ๋ฏธ๋‹ฌ
๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์„œ์šธ ๋ฆฌ์ „
K6 ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ
P95 ์‘๋‹ต์‹œ๊ฐ„
์•ˆ์ •์„ฑ ํ™•์ธ
๊ธฐ๋ณธ ์กฐ๊ฑด:
โ€ข 100 VUs + 60์ดˆ
โ€ข Think Time: 3โ€“10์ดˆ

์„ฑ๋Šฅ ๊ธฐ์ค€:
โ€ข P95 ์‘๋‹ต์‹œ๊ฐ„: < 1000ms
โ€ข ์—๋Ÿฌ์œจ: < 0.1%
โ€ข ์•ˆ์ •์„ฑ: P90 โ‰ค ํ‰๊ท ๊ฐ’์˜ 200%
๊ธฐ๋ณธ ์กฐ๊ฑด:
โ€ข 100 VUs + 60์ดˆ
โ€ข Think Time: 3โ€“10์ดˆ

์„ฑ๋Šฅ ๊ธฐ์ค€:
โ€ข P95 ์‘๋‹ต์‹œ๊ฐ„: < 1200ms
โ€ข ์—๋Ÿฌ์œจ: < 0.5%
โ€ข ์•ˆ์ •์„ฑ: P90 โ‰ค ํ‰๊ท ๊ฐ’์˜ 240%
๊ธฐ๋ณธ ์กฐ๊ฑด:
โ€ข 50+ VUs + 45+ ์ดˆ
โ€ข Think Time: 3โ€“10์ดˆ

์„ฑ๋Šฅ ๊ธฐ์ค€:
โ€ข P95 ์‘๋‹ต์‹œ๊ฐ„: < 1500ms
โ€ข ์—๋Ÿฌ์œจ: < 1.0%
โ€ข ์•ˆ์ •์„ฑ: P90 โ‰ค ํ‰๊ท ๊ฐ’์˜ 280%
๊ธฐ๋ณธ ์กฐ๊ฑด:
โ€ข 30+ VUs + 30+ ์ดˆ
โ€ข Think Time: 3โ€“10์ดˆ

์„ฑ๋Šฅ ๊ธฐ์ค€:
โ€ข P95 ์‘๋‹ต์‹œ๊ฐ„: < 2000ms
โ€ข ์—๋Ÿฌ์œจ: < 2.0%
โ€ข ์•ˆ์ •์„ฑ: P90 โ‰ค ํ‰๊ท ๊ฐ’์˜ 320%
๊ธฐ๋ณธ ์กฐ๊ฑด:
โ€ข 10+ VUs + 15+ ์ดˆ
โ€ข Think Time: 3โ€“10์ดˆ

์„ฑ๋Šฅ ๊ธฐ์ค€:
โ€ข P95 ์‘๋‹ต์‹œ๊ฐ„: < 3000ms
โ€ข ์—๋Ÿฌ์œจ: < 5.0%
โ€ข ์•ˆ์ •์„ฑ: P90 โ‰ค ํ‰๊ท ๊ฐ’์˜ 400%
โ€ข ์œ„ ๊ธฐ์ค€์— ๋ฏธ๋‹ฌ
๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ iPhone/Galaxy
(Playwright)
Median ์‘๋‹ต์‹œ๊ฐ„(์žฌ๋ฐฉ๋ฌธ)
JS ์—๋Ÿฌ ยท ๋ Œ๋” ํญ ์ดˆ๊ณผ
โ€ข Median ์‘๋‹ต์‹œ๊ฐ„: โ‰ค 800ms
โ€ข JS ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ: 0
โ€ข ๋ Œ๋” ํญ ์ดˆ๊ณผ: ์—†์Œ
โ€ข Median ์‘๋‹ต์‹œ๊ฐ„: โ‰ค 1200ms
โ€ข JS ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ: โ‰ค 1
โ€ข ๋ Œ๋” ํญ ์ดˆ๊ณผ: ์—†์Œ
โ€ข Median ์‘๋‹ต์‹œ๊ฐ„: โ‰ค 2000ms
โ€ข JS ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ: โ‰ค 2
โ€ข ๋ Œ๋” ํญ ์ดˆ๊ณผ: ํ—ˆ์šฉ
โ€ข Median ์‘๋‹ต์‹œ๊ฐ„: โ‰ค 3000ms
โ€ข JS ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ: โ‰ค 3
โ€ข ๋ Œ๋” ํญ ์ดˆ๊ณผ: ๋นˆ๋ฒˆ
โ€ข Median ์‘๋‹ต์‹œ๊ฐ„: โ‰ค 4000ms
โ€ข JS ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ: โ‰ค 5
โ€ข ๋ Œ๋” ํญ ์ดˆ๊ณผ: ์‹ฌ๊ฐ
โ€ข ์œ„ ๊ธฐ์ค€์— ๋ฏธ๋‹ฌ

Security (300์ )

ํ…Œ์ŠคํŠธ ์‹œํ—˜ ๋ฐฉ๋ฒ• A+ A B C D F
SSL ๊ธฐ๋ณธ testssl.sh ๊ฒฐ๊ณผ
ํ”„๋กœํ† ์ฝœยท์•”ํ˜ธยท์ธ์ฆ์„œ
์ทจ์•ฝ์  ์ข…ํ•ฉ
โ€ข ์ตœ์‹  TLS๋งŒ ์‚ฌ์šฉ, ์ทจ์•ฝ์  ์—†์Œ
โ€ข ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ์ ์šฉ
โ€ข ์ธ์ฆ์„œ ๋ฐ ์ฒด์ธ ์™„์ „ ์ •์ƒ
โ€ข HSTS ๋“ฑ ๋ณด์•ˆ ์„ค์ • ์šฐ์ˆ˜
โ€ข TLS 1.2/1.3 ์ง€์›, ๊ตฌ๋ฒ„์ „ ์ฐจ๋‹จ
โ€ข ์ฃผ์š” ์ทจ์•ฝ์  ์—†์Œ
โ€ข ์ผ๋ถ€ ์•ฝํ•œ ์•”ํ˜ธ๋‚˜ ์„ค์ • ๋ฏธํก ๊ฐ€๋Šฅ
โ€ข ์ „๋ฐ˜์ ์œผ๋กœ ์•ˆ์ „ํ•œ ์ˆ˜์ค€
โ€ข ์•ˆ์ „ํ•œ ํ”„๋กœํ† ์ฝœ ์œ„์ฃผ
โ€ข ์•ฝํ•œ ์•”ํ˜ธ ์Šค์œ„ํŠธ ์ผ๋ถ€ ์กด์žฌ
โ€ข testssl.sh ๊ฒฝ๊ณ (WEAK) ๋‹ค์ˆ˜
โ€ข ๊ฐœ์„  ํ•„์š”
โ€ข ๊ตฌ๋ฒ„์ „ TLS ์ผ๋ถ€ ํ™œ์„ฑ
โ€ข ์ทจ์•ฝ ์•”ํ˜ธํ™” ์‚ฌ์šฉ๋ฅ  ๋†’์Œ
โ€ข ์ธ์ฆ์„œ ๋งŒ๋ฃŒ ์ž„๋ฐ•/๋‹จ์ˆœ DV
โ€ข ์ทจ์•ฝ์  ์†Œ์ˆ˜ ๋ฐœ๊ฒฌ
โ€ข SSLv3/TLS 1.0 ํ—ˆ์šฉ
โ€ข ์ทจ์•ฝ ์•”ํ˜ธ ๋‹ค์ˆ˜ ํ™œ์„ฑ
โ€ข ์ธ์ฆ์„œ ์ฒด์ธ ์˜ค๋ฅ˜/๋งŒ๋ฃŒ ์ž„๋ฐ•
โ€ข ๋‹ค์ˆ˜ ์ทจ์•ฝ์  ์กด์žฌ
โ€ข SSL/TLS ์„ค์ • ๊ทผ๋ณธ์  ๊ฒฐํ•จ
โ€ข ์ทจ์•ฝ ํ”„๋กœํ† ์ฝœ ์ „๋ฉด ํ—ˆ์šฉ
โ€ข ์ธ์ฆ์„œ ๋งŒ๋ฃŒ/์ž๊ฐ€์„œ๋ช…
โ€ข testssl.sh FAIL/VULNERABLE ๋‹ค์ˆ˜
SSL ์‹ฌํ™” SSLyze ์‹ฌ์ธต ์ง„๋‹จ
ํ”„๋กœํ† ์ฝœยท์•”ํ˜ธยท์ธ์ฆ์„œ
OCSPยทALPN
โ€ข TLS 1.3/1.2๋งŒ ํ—ˆ์šฉ, ์•ฝํ•œ ์•”ํ˜ธ๊ตฐ ์—†์Œ(์ „๋ถ€ PFS)
โ€ข ์ธ์ฆ์„œ ECDSA ๋˜๋Š” RSAโ‰ฅ3072, ์ฒด์ธ ์™„์ „ยท๋งŒ๋ฃŒ 60์ผโ†‘
โ€ข OCSP Stapling ์ •์ƒ(๊ฐ€๋Šฅ์‹œ Must-Staple)
โ€ข ALPN h2 ํ˜‘์ƒ, ์••์ถ•/์ทจ์•ฝ ์žฌํ˜‘์ƒ ๋น„ํ™œ์„ฑ
โ€ข TLS 1.3/1.2, ๊ฐ•ํ•œ ์•”ํ˜ธ ์šฐ์„ (PFS ๋Œ€๋ถ€๋ถ„)
โ€ข ์ธ์ฆ์„œ RSAโ‰ฅ2048, SHA-256+, ์ฒด์ธ ์ •์ƒยท๋งŒ๋ฃŒ 30์ผโ†‘
โ€ข OCSP Stapling ํ™œ์„ฑ(๊ฐ„ํ— ์‹คํŒจ ํ—ˆ์šฉ)
โ€ข h2 ์ง€์› ๋˜๋Š” ALPN ์ ์ •, ์œ„ํ—˜ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑ
โ€ข TLS 1.2 ํ•„์ˆ˜, 1.3 ์„ ํƒ/๋ฏธ์ง€์›, ์ผ๋ถ€ CBC ์กด์žฌ
โ€ข ์ธ์ฆ์„œ RSAโ‰ฅ2048, ์ฒด์ธ ์ •์ƒ(๋งŒ๋ฃŒ 14์ผโ†‘)
โ€ข OCSP Stapling ๋ฏธํ™œ์„ฑ(๋Œ€์‹  OCSP ์‘๋‹ต ๊ฐ€๋Šฅ)
โ€ข h2 ๋ฏธ์ง€์› ๊ฐ€๋Šฅ, ์œ„ํ—˜ ๊ธฐ๋Šฅ์€ ๋Œ€์ฒด๋กœ ๋น„ํ™œ์„ฑ
โ€ข TLS 1.0/1.1 ํ™œ์„ฑ ๋˜๋Š” ์•ฝํ•œ ์•”ํ˜ธ ๋‹ค์ˆ˜(PFS ๋‚ฎ์Œ)
โ€ข ์ฒด์ธ ๋ˆ„๋ฝ/์•ฝํ•œ ์„œ๋ช…(SHA-1) ๋˜๋Š” ๋งŒ๋ฃŒ ์ž„๋ฐ•(โ‰ค14์ผ)
โ€ข Stapling ์—†์Œยทํ๊ธฐ ํ™•์ธ ๋ถˆ๋ช…ํ™•
โ€ข h2 ๋ฏธ์ง€์›, ์ผ๋ถ€ ์œ„ํ—˜ ๊ธฐ๋Šฅ ํ™œ์„ฑ
โ€ข ๊ตฌ์‹ ํ”„๋กœํ† ์ฝœ/์•”ํ˜ธ(SSLv3/EXPORT/RC4 ๋“ฑ) ํ—ˆ์šฉ
โ€ข ์ธ์ฆ์„œ ๋ถˆ์ผ์น˜/์ฒด์ธ ์˜ค๋ฅ˜ ๋นˆ๋ฐœ
โ€ข Stapling ์‹คํŒจยทํ๊ธฐ ํ™•์ธ ๋ถˆ๋Šฅ
โ€ข ์••์ถ•/์ทจ์•ฝ ์žฌํ˜‘์ƒ ํ™œ์„ฑ
โ€ข ํ•ธ๋“œ์…ฐ์ดํฌ ์‹คํŒจ ์ˆ˜์ค€์˜ ๊ฒฐํ•จ
โ€ข ๋งŒ๋ฃŒ/์ž๊ฐ€์„œ๋ช…/ํ˜ธ์ŠคํŠธ ๋ถˆ์ผ์น˜
โ€ข ๊ด‘๋ฒ”์œ„ํ•œ ์•ฝํ•œ ํ”„๋กœํ† ์ฝœยท์•”ํ˜ธ ํ—ˆ์šฉ
โ€ข ์ „๋ฐ˜์  TLS ์„ค์ • ๋ถ•๊ดด
๋ณด์•ˆ ํ—ค๋” ํ—ค๋” ์™„์„ฑ๋„
โ€ข CSP ๊ฐ•ํ•จ(nonce/hash/strict-dynamic, unsafe-* ๋ฏธ์‚ฌ์šฉ)
โ€ข XFO: DENY/SAMEORIGIN ๋˜๋Š” frame-ancestors ์ œํ•œ
โ€ข X-Content-Type: nosniff
โ€ข Referrer-Policy: strict-origin-when-cross-origin ์ด์ƒ
โ€ข Permissions-Policy: ๋ถˆํ•„์š” ๊ธฐ๋Šฅ ์ฐจ๋‹จ
โ€ข HSTS: 6๊ฐœ์›”โ†‘ + ์„œ๋ธŒ๋„๋ฉ”์ธ
โ€ข CSP ์กด์žฌ(์•ฝํ•จ ํ—ˆ์šฉ) ๋˜๋Š” ๋น„-CSP 5ํ•ญ๋ชฉ ์šฐ์ˆ˜
โ€ข XFO ์ ์šฉ(๋˜๋Š” frame-ancestors ์ œํ•œ)
โ€ข X-Content-Type: nosniff
โ€ข Referrer-Policy: ๊ถŒ์žฅ ๊ฐ’ ์‚ฌ์šฉ
โ€ข Permissions-Policy: ๊ธฐ๋ณธ ์ œํ•œ ์ ์šฉ
โ€ข HSTS: 6๊ฐœ์›”โ†‘
โ€ข CSP ์—†์Œ/์•ฝํ•จ
โ€ข XFO ์ •์ƒ ์ ์šฉ
โ€ข X-Content-Type: ์žˆ์Œ
โ€ข Referrer-Policy: ์–‘ํ˜ธ/๋ณดํ†ต
โ€ข Permissions-Policy: ์ผ๋ถ€ ์ œํ•œ
โ€ข HSTS: ๋‹จ๊ธฐ ๋˜๋Š” ์„œ๋ธŒ๋„๋ฉ”์ธ ๋ฏธํฌํ•จ
โ€ข ํ—ค๋” ์ผ๋ถ€๋งŒ ์กด์žฌ
โ€ข CSP ์—†์Œ/์•ฝํ•จ
โ€ข Referrer-Policy ์•ฝํ•จ
โ€ข X-Content-Type ๋ˆ„๋ฝ
โ€ข HSTS ์—†์Œ ๋˜๋Š” ๋งค์šฐ ์งง์Œ
โ€ข ํ•ต์‹ฌ ํ—ค๋” 1~2๊ฐœ๋งŒ
โ€ข CSP ์—†์Œ
โ€ข Referrer ์•ฝํ•จ/์—†์Œ
โ€ข ๊ธฐํƒ€ ํ—ค๋” ๋‹ค์ˆ˜ ๋ˆ„๋ฝ
โ€ข ๋ณด์•ˆ ํ—ค๋” ์ „๋ฌด์— ๊ฐ€๊นŒ์›€
โ€ข CSP/XFO/X-Content ์—†์Œ
โ€ข Referrer-Policy ์—†์Œ
โ€ข HSTS ์—†์Œ
ํŒจ์‹œ๋ธŒ ๋ณด์•ˆ ์Šค์บ” ํŒจ์‹œ๋ธŒ ์‘๋‹ต ๋ถ„์„
HTTP ํ—ค๋”/๋ฐ”๋”” ๊ฒ€์‚ฌ
(CSP ๊ฒฝ๊ณ  ์ œ์™ธ)
OWASP ZAP Passive Scan
๋ฉ”์ธ ํŽ˜์ด์ง€ 1๊ฑด
ํ•˜์œ„ ํƒ์ƒ‰ ์—†์Œ
โ€ข High/Medium 0๊ฐœ
โ€ข ๋ณด์•ˆ ํ—ค๋” ์™„๋น„(HTTPS, HSTS, X-Frame-Options ๋“ฑ)
โ€ข ๋ฏผ๊ฐ์ •๋ณด ๋…ธ์ถœ ์—†์Œ(์ฟ ํ‚ค, ์ฃผ์„, ๋””๋ฒ„๊ทธ)
โ€ข ์„œ๋ฒ„/ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „ ์ •๋ณด ์ตœ์†Œํ™”
โ€ข CSP ๊ด€๋ จ ์ ๊ฒ€์€ ๋ณ„๋„ ํ•ญ๋ชฉ์—์„œ ์ˆ˜ํ–‰
โ€ข High 0, Medium โ‰ค1
โ€ข ๋ณด์•ˆ ํ—ค๋” ๋Œ€๋ถ€๋ถ„ ์ถฉ์กฑ, ์ผ๋ถ€ ๋ˆ„๋ฝ ์žˆ์Œ
โ€ข ๋ฏผ๊ฐ์ •๋ณด ๋…ธ์ถœ ์—†์Œ
โ€ข ๊ฒฝ๋ฏธํ•œ ์ •๋ณด ๋…ธ์ถœ(์˜ˆ: ์„œ๋ฒ„ ํƒ€์ž…) ์กด์žฌ
โ€ข High โ‰ค1, Medium โ‰ค2
โ€ข ์ผ๋ถ€ ๋ณด์•ˆ ํ—ค๋” ๋ฏธ๊ตฌํ˜„(HSTS, X-XSS-Protection ๋“ฑ)
โ€ข ์„ธ์…˜ ์ฟ ํ‚ค Secure/HttpOnly ๋ˆ„๋ฝ
โ€ข ์ฃผ์„/๋ฉ”ํƒ€ ์ •๋ณด์— ๊ฒฝ๋ฏธํ•œ ๋‚ด๋ถ€ ์‹๋ณ„์ž ๋…ธ์ถœ
โ€ข High โ‰ฅ2 ๋˜๋Š” Medium โ‰ฅ3
โ€ข ์ฃผ์š” ๋ณด์•ˆ ํ—ค๋” ๋ถ€์žฌ
โ€ข ๋ฏผ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ/ํ† ํฐ์ด ์‘๋‹ต ๋‚ด ์ง์ ‘ ๋…ธ์ถœ
โ€ข ์„ธ์…˜ ๊ด€๋ฆฌ ์ทจ์•ฝ(์ฟ ํ‚ค ์†์„ฑ ์ „๋ฐ˜ ๋ฏธํก)
โ€ข ๋‹ค์ˆ˜์˜ High ์กด์žฌ
โ€ข ์ธ์ฆ/์„ธ์…˜ ๊ด€๋ จ ์‹ฌ๊ฐํ•œ ์†์„ฑ ๋ˆ„๋ฝ
โ€ข ๋””๋ฒ„๊ทธ/๊ฐœ๋ฐœ์šฉ ์ •๋ณด ๋…ธ์ถœ(์Šคํƒ ํŠธ๋ ˆ์ด์Šค, ๋‚ด๋ถ€ IP)
โ€ข ๊ณต๊ฐœ ๊ด€๋ฆฌ ์ฝ˜์†”/์„ค์ • ํŒŒ์ผ ๋…ธ์ถœ
โ€ข ๊ด‘๋ฒ”์œ„ํ•œ High ์ทจ์•ฝ์ 
โ€ข HTTPS ๋ฏธ์ ์šฉ ๋˜๋Š” ์ „๋ฉด ๋ฌด๋ ฅํ™”
โ€ข ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ ํ‰๋ฌธ ์ „์†ก/๋…ธ์ถœ
โ€ข ์ „๋ฐ˜์  ๋ณด์•ˆ ํ—ค๋”ยท์„ธ์…˜ ํ†ต์ œ ๋ถ€์žฌ
์ตœ์‹  ์ทจ์•ฝ์  ์ตœ์‹ ์„ฑ ๊ธฐ๋ฐ˜
Nuclei ํ…œํ”Œ๋ฆฟ
2024โ€“2025
(๋น„์นจํˆฌ, ๋‹จ์ผ URL)
โ€ข Critical/High 0๊ฐœ, Medium 0๊ฐœ
โ€ข 2024โ€“2025 CVE ๋ฏธ๊ฒ€์ถœ
โ€ข ๊ณต๊ฐœ ๋””๋ ‰ํ„ฐ๋ฆฌ/๋””๋ฒ„๊ทธ/๋ฏผ๊ฐํŒŒ์ผ ๋…ธ์ถœ ็„ก
โ€ข ๋ณด์•ˆ ํ—ค๋”/๋ฐฐ๋„ˆ ๋…ธ์ถœ ์–‘ํ˜ธ(์ •๋ณด ์ตœ์†Œํ™”)
โ€ข High โ‰ค1, Medium โ‰ค1
โ€ข ์ตœ๊ทผ CVE ์ง์ ‘ ๋…ธ์ถœ ์—†์Œ(์šฐํšŒ/์กฐ๊ฑด ํ•„์š”)
โ€ข ๊ฒฝ๋ฏธํ•œ ์„ค์ • ๊ฒฝ๊ณ (์ •๋ณด์„ฑ) ์ˆ˜์ค€
โ€ข ํŒจ์น˜/๊ตฌ์„ฑ ๊ด€๋ฆฌ ์–‘ํ˜ธ
โ€ข High โ‰ค2 ๋˜๋Š” Medium โ‰ค3
โ€ข ์ผ๋ถ€ ๊ตฌ์„ฑ ๋…ธ์ถœ/๋ฐฐ๋„ˆ ๋…ธ์ถœ ์กด์žฌ
โ€ข ๋ณดํ˜ธ๋œ ๊ด€๋ฆฌ ์—”๋“œํฌ์ธํŠธ ์กด์žฌ(์šฐํšŒ ์–ด๋ ค์›€)
โ€ข ํŒจ์น˜ ์ง€์—ฐ ๊ฒฝํ–ฅ(์ตœ๊ทผ ๋ณด์•ˆ ๋ฆด๋ฆฌ์ฆˆ ๋ฐ˜์˜ ์ง€์—ฐ)
โ€ข High โ‰ฅ3 ๋˜๋Š” Medium ๋‹ค์ˆ˜
โ€ข ๋ฏผ๊ฐ ํŒŒ์ผ/๋ฐฑ์—…/์ธ๋ฑ์‹ฑ ๋…ธ์ถœ ๋ฐœ๊ฒฌ
โ€ข ๊ตฌ๋ฒ„์ „ ์ปดํฌ๋„ŒํŠธ ์ถ”์ • ๊ฐ€๋Šฅ(๋ฐฐ๋„ˆ/๋ฉ”ํƒ€ ์ •๋ณด)
โ€ข ํŒจ์น˜/๊ตฌ์„ฑ ๊ด€๋ฆฌ ์ฒด๊ณ„์  ๊ฐœ์„  ํ•„์š”
โ€ข Critical โ‰ฅ1 ๋˜๋Š” ์•…์šฉ ๋‚œ์ด๋„ ๋‚ฎ์€ High
โ€ข ์ตœ๊ทผ(2024โ€“2025) CVE ์ง์ ‘ ์˜ํ–ฅ ์ถ”์ •
โ€ข ์ธ์ฆ ์—†์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์œ„ํ—˜ ์—”๋“œํฌ์ธํŠธ/ํŒŒ์ผ
โ€ข ๋นŒ๋“œ/๋กœ๊ทธ/ํ™˜๊ฒฝ ๋“ฑ ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœ
โ€ข ๋‹ค์ˆ˜์˜ Critical/High ๋™์‹œ ์กด์žฌ
โ€ข ์ตœ์‹  CVE ๋Œ€๋Ÿ‰ ๋ฏธํŒจ์น˜/๊ด‘๋ฒ”์œ„ ๋…ธ์ถœ
โ€ข ๊ธฐ๋ณธ ๋ณด์•ˆ ๊ตฌ์„ฑ ๊ฒฐ์—ฌ(๋ฐฉ์–ด ํ—ค๋”/์ ‘๊ทผํ†ต์ œ ๋ถ€์กฑ)
โ€ข ์ „๋ฉด์  ๋ณด์•ˆ ๊ฐ€๋“œ๋ ˆ์ผ ๋ถ€์žฌ

Quality (250์ )

ํ…Œ์ŠคํŠธ ์‹œํ—˜ ๋ฐฉ๋ฒ• A+ A B C D F
์ข…ํ•ฉ ํ’ˆ์งˆ ์„ฑ๋Šฅ+SEO+์ ‘๊ทผ์„ฑ ํ†ตํ•ฉ ๋ถ„์„
(LightHouse)
โ€ข Performance: 90์ +
โ€ข Accessibility: 90์ +
โ€ข Best Practices: 90์ +
โ€ข SEO: 90์ +
โ€ข ์ „์ฒด ํ‰๊ท : 95์ +
โ€ข Performance: 85์ +
โ€ข Accessibility: 85์ +
โ€ข Best Practices: 85์ +
โ€ข SEO: 85์ +
โ€ข ์ „์ฒด ํ‰๊ท : 90์ +
โ€ข Performance: 75์ +
โ€ข Accessibility: 75์ +
โ€ข Best Practices: 75์ +
โ€ข SEO: 75์ +
โ€ข ์ „์ฒด ํ‰๊ท : 80์ +
โ€ข Performance: 65์ +
โ€ข Accessibility: 65์ +
โ€ข Best Practices: 65์ +
โ€ข SEO: 65์ +
โ€ข ์ „์ฒด ํ‰๊ท : 70์ +
โ€ข Performance: 55์ +
โ€ข Accessibility: 55์ +
โ€ข Best Practices: 55์ +
โ€ข SEO: 55์ +
โ€ข ์ „์ฒด ํ‰๊ท : 60์ +
โ€ข Performance: 54์  ์ดํ•˜
โ€ข Accessibility: 54์  ์ดํ•˜
โ€ข Best Practices: 54์  ์ดํ•˜
โ€ข SEO: 54์  ์ดํ•˜
โ€ข ์ „์ฒด ํ‰๊ท : 59์  ์ดํ•˜
์ ‘๊ทผ์„ฑ ์‹ฌํ™” WCAG 2.1 ๊ทœ์น™ ๊ธฐ๋ฐ˜
์ž๋™ ์ ‘๊ทผ์„ฑ ๊ฒ€์‚ฌ
๊ฒฐ๊ณผ(์˜ค๋ฅ˜ยท๊ฒฝ๊ณ  ๊ฐœ์ˆ˜)๋กœ ๊ฒ€์‚ฌ
(axe-core ๊ธฐ์ค€)
โ€ข critical=0, serious=0
โ€ข ์ „์ฒด ์œ„๋ฐ˜ โ‰ค 3๊ฑด
โ€ข ํ‚ค๋ณด๋“œ/ARIA/๋Œ€์ฒดํ…์ŠคํŠธ/๋Œ€๋น„ ๋ชจ๋‘ ์–‘ํ˜ธ
โ€ข critical=0, serious โ‰ค 3
โ€ข ์ „์ฒด ์œ„๋ฐ˜ โ‰ค 8๊ฑด
โ€ข ์ฃผ์š” Landmark/Label ๋Œ€์ฒด๋กœ ์–‘ํ˜ธ
โ€ข critical โ‰ค 1, serious โ‰ค 6
โ€ข ์ „์ฒด ์œ„๋ฐ˜ โ‰ค 15๊ฑด
โ€ข ์ผ๋ถ€ contrast/label ๊ฐœ์„  ํ•„์š”
โ€ข critical โ‰ค 3, serious โ‰ค 10
โ€ข ์ „์ฒด ์œ„๋ฐ˜ โ‰ค 25๊ฑด
โ€ข ํฌ์ปค์Šค/ARIA ๊ตฌ์กฐ ๋ณด์™„ ํ•„์š”
โ€ข critical โ‰ค 6 ๋˜๋Š” serious โ‰ค 18
โ€ข ์ „์ฒด ์œ„๋ฐ˜ โ‰ค 40๊ฑด
โ€ข ํ‚ค๋ณด๋“œ ํŠธ๋žฉ/๋ ˆ์ด๋ธ” ๋ˆ„๋ฝ ๋‹ค์ˆ˜
โ€ข ์œ„ ๊ธฐ์ค€ ์ดˆ๊ณผ(critical/serious ๋‹ค์ˆ˜)
โ€ข ์Šคํฌ๋ฆฐ๋ฆฌ๋”/ํ‚ค๋ณด๋“œ ์ด์šฉ ๊ณค๋ž€ ์ˆ˜์ค€
๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜ Chrome / Firefox / Safari
JSยทCSS ์˜ค๋ฅ˜ ๊ธฐ๋ฐ˜
(Playwright)
โ€ข Chrome / Firefox / Safari ๋ชจ๋‘ ์ •์ƒ
โ€ข JS ์˜ค๋ฅ˜: 0๊ฐœ
โ€ข CSS ๋ Œ๋”๋ง ์˜ค๋ฅ˜: 0๊ฐœ
โ€ข ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ์ง€์› ์–‘ํ˜ธ
โ€ข JS ์˜ค๋ฅ˜ โ‰ค 1
โ€ข CSS ์˜ค๋ฅ˜ โ‰ค 1
โ€ข ๋ธŒ๋ผ์šฐ์ €๋ณ„ ๊ฒฝ๋ฏธํ•œ ์ฐจ์ด ์กด์žฌ
โ€ข JS ์˜ค๋ฅ˜ โ‰ค 3
โ€ข CSS ์˜ค๋ฅ˜ โ‰ค 3
โ€ข ์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋Šฅ ์ €ํ•˜
โ€ข JS ์˜ค๋ฅ˜ โ‰ค 6
โ€ข CSS ์˜ค๋ฅ˜ โ‰ค 6
โ€ข ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ๋‹ค์ˆ˜
โ€ข JS ์˜ค๋ฅ˜ โ‰ค 10
โ€ข CSS ์˜ค๋ฅ˜ โ‰ค 10
โ€ข ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ์ •์ƒ ๋™์ž‘ ๋ถˆ๊ฐ€
โ€ข JS ์˜ค๋ฅ˜ 10๊ฐœ ์ดˆ๊ณผ
โ€ข CSS ์˜ค๋ฅ˜ 10๊ฐœ ์ดˆ๊ณผ
๋ฐ˜์‘ํ˜• UI ์ฃผ์š” ๋ทฐํฌํŠธ ๋ณ„
ํญ ์ดˆ๊ณผ ํ”ฝ์…€(px) ์ธก์ •
(๋ชจ๋ฐ”์ผยทํด๋”๋ธ”ยทํƒœ๋ธ”๋ฆฟยท๋ฐ์Šคํฌํ†ฑ)
โ€ข ์ „ ๋ทฐํฌํŠธ ์ดˆ๊ณผ 0๊ฑด
โ€ข body ๋ Œ๋” ํญ์ด ํ•ญ์ƒ viewport ์ด๋‚ด
โ€ข ์ดˆ๊ณผ โ‰ค 1๊ฑด์ด๋ฉฐ โ‰ค 8px
โ€ข ๋ชจ๋ฐ”์ผ ํ˜‘ํญ(โ‰ค390px) ๊ตฌ๊ฐ„์—์„œ๋Š” ์ดˆ๊ณผ 0๊ฑด
โ€ข ์ดˆ๊ณผ โ‰ค 2๊ฑด์ด๊ณ  ๊ฐ โ‰ค 16px
๋˜๋Š” ๋ชจ๋ฐ”์ผ ํ˜‘ํญ์—์„œ โ‰ค 8px 1๊ฑด
โ€ข ์ดˆ๊ณผ โ‰ค 4๊ฑด ๋˜๋Š” ๋‹จ์ผ ์ดˆ๊ณผ๊ฐ€ 17โ€“32px
โ€ข ์ดˆ๊ณผ > 4๊ฑด ๋˜๋Š” ๋‹จ์ผ ์ดˆ๊ณผ๊ฐ€ 33โ€“64px
โ€ข ์ธก์ • ์‹คํŒจ ๋˜๋Š” โ‰ฅ 65px ์ดˆ๊ณผ ๋ฐœ์ƒ

Content (150์ )

ํ…Œ์ŠคํŠธ ์‹œํ—˜ ๋ฐฉ๋ฒ• A+ A B C D F
๋งํฌ ๊ฒ€์ฆ ๋‚ด๋ถ€/์™ธ๋ถ€/์ด๋ฏธ์ง€
์•ต์ปค ๋งํฌ ์ƒํƒœ ๊ฒ€์‚ฌ
์˜ค๋ฅ˜์œจ๋กœ ๋“ฑ๊ธ‰ ์‚ฐ์ •
(Broken Link Checker)
โ€ข ๋‚ด๋ถ€/์™ธ๋ถ€/์ด๋ฏธ์ง€ ๋งํฌ ์˜ค๋ฅ˜์œจ: 0%
โ€ข ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฒด์ธ โ‰ค1๋‹จ๊ณ„
โ€ข ์•ต์ปค ๋งํฌ 100% ์ •์ƒ
โ€ข ์ „์ฒด ์˜ค๋ฅ˜์œจ โ‰ค1%
โ€ข ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฒด์ธ โ‰ค2๋‹จ๊ณ„
โ€ข ์•ต์ปค ๋งํฌ ๋Œ€๋ถ€๋ถ„ ์ •์ƒ
โ€ข ์ „์ฒด ์˜ค๋ฅ˜์œจ โ‰ค3%
โ€ข ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฒด์ธ โ‰ค3๋‹จ๊ณ„
โ€ข ์ผ๋ถ€ ์•ต์ปค ๋งํฌ ๋ถˆ๋Ÿ‰
โ€ข ์ „์ฒด ์˜ค๋ฅ˜์œจ โ‰ค5%
โ€ข ๋‹ค์ˆ˜ ๋งํฌ ๊ฒฝ๊ณ  (ํƒ€์ž„์•„์›ƒ/SSL ๋ฌธ์ œ)
โ€ข ์•ต์ปค ๋งํฌ ์˜ค๋ฅ˜ ๋นˆ๋ฒˆ
โ€ข ์ „์ฒด ์˜ค๋ฅ˜์œจ โ‰ค10%
โ€ข ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ฃจํ”„ ๋˜๋Š” ๊ธด ์ฒด์ธ
โ€ข ์ด๋ฏธ์ง€ ๋งํฌ ๋‹ค์ˆ˜ ๊นจ์ง
โ€ข ์ „์ฒด ์˜ค๋ฅ˜์œจ 10% ์ด์ƒ
โ€ข ์ฃผ์š” ๋‚ด๋ถ€ ๋งํฌ ๋‹ค์ˆ˜ ๊นจ์ง
โ€ข ์•ต์ปค/์ด๋ฏธ์ง€ ์ „๋ฐ˜ ๋ถˆ๋Ÿ‰
๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ JSON-LD/Schema.org ๊ธฐ๋ฐ˜
๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜ยท๊ฒฝ๊ณ  ์—ฌ๋ถ€
(Google Rich Results Test)
โ€ข Schema.org ์Šคํ‚ค๋งˆ ์™„๋ฒฝ ๊ตฌํ˜„
โ€ข JSON-LD ํ˜•์‹ ์‚ฌ์šฉ
โ€ข Rich Snippets 100% ์ธ์‹
โ€ข ์˜ค๋ฅ˜ 0๊ฐœ, ๊ฒฝ๊ณ  ์—†์Œ
โ€ข ์ ์ ˆํ•œ ์Šคํ‚ค๋งˆ ํƒ€์ž… ์ ์šฉ
โ€ข ์ฃผ์š” ์Šคํ‚ค๋งˆ ์ •์ƒ
โ€ข JSON-LD ๊ธฐ๋ฐ˜ ๊ตฌํ˜„
โ€ข Rich Snippets ๋Œ€๋ถ€๋ถ„ ์ธ์‹
โ€ข ์˜ค๋ฅ˜ ์—†์Œ, ๊ฒฝ๊ณ  โ‰ค2๊ฐœ
โ€ข ํ•ต์‹ฌ ์Šคํ‚ค๋งˆ ์ผ๋ถ€ ๋ˆ„๋ฝ
โ€ข Rich Snippets ์ œํ•œ์  ์ธ์‹
โ€ข ์˜ค๋ฅ˜ โ‰ค1๊ฐœ, ๊ฒฝ๊ณ  โ‰ค5๊ฐœ
โ€ข ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ๋ถˆ์™„์ „
โ€ข Rich Snippets ๋ถˆ์•ˆ์ •
โ€ข ์˜ค๋ฅ˜ โ‰ค3๊ฐœ, ๊ฒฝ๊ณ  ๋‹ค์ˆ˜
โ€ข ์ผ๋ถ€ ํƒ€์ž… ๋ถ€์ ์ ˆ
โ€ข ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜/์ค‘๋ณต
โ€ข Rich Snippets ๋ฏธ์ธ์‹
โ€ข ์˜ค๋ฅ˜ โ‰ฅ4๊ฐœ
โ€ข ๊ฒฝ๊ณ  ๋‹ค์ˆ˜ ๋ฐ ์ž˜๋ชป๋œ ํƒ€์ž… ์ ์šฉ
โ€ข ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ๋ฏธ๊ตฌํ˜„
โ€ข JSON-LD/๋งˆ์ดํฌ๋กœ๋ฐ์ดํ„ฐ ์ „๋ฌด
โ€ข ์˜ค๋ฅ˜ ์ „๋ฉด์  ๋ฐœ์ƒ
โ€ข ๊ฒ€์ƒ‰์—”์ง„ Rich Snippets ๋ถˆ๊ฐ€
์‚ฌ์ดํŠธ ํฌ๋กค๋ง robots/sitemap ๊ฒ€์ฆ
+ sitemap ๊ธฐ๋ฐ˜ ์ „์ฒด ํฌ๋กค๋ง
(๋‚ด๋ถ€ ํ’ˆ์งˆยท์ค‘๋ณต ๋ถ„์„)
โ€ข robots.txt ์ •์ƒ ์ ์šฉ
โ€ข sitemap.xml ์กด์žฌ ๋ฐ ๋ˆ„๋ฝ/404 ์—†์Œ
โ€ข ๊ฒ€์‚ฌ ๋Œ€์ƒ ํŽ˜์ด์ง€ ์ „๋ถ€ 2xx
โ€ข ์ „์ฒด ํŽ˜์ด์ง€ ํ’ˆ์งˆ ํ‰๊ท  โ‰ฅ 85์ 
โ€ข ์ค‘๋ณต ์ฝ˜ํ…์ธ  โ‰ค 30%
โ€ข robots.txt ์ •์ƒ ์ ์šฉ
โ€ข sitemap.xml ์กด์žฌ ๋ฐ ์ •ํ•ฉ์„ฑ ํ™•๋ณด
โ€ข ๊ฒ€์‚ฌ ๋Œ€์ƒ ํŽ˜์ด์ง€ ์ „๋ถ€ 2xx
โ€ข ์ „์ฒด ํŽ˜์ด์ง€ ํ’ˆ์งˆ ํ‰๊ท  โ‰ฅ 85์ 
โ€ข robots.txt ๋ฐ sitemap.xml ์กด์žฌ
โ€ข ๊ฒ€์‚ฌ ๋Œ€์ƒ ํŽ˜์ด์ง€ ์ „๋ถ€ 2xx
โ€ข ์ „์ฒด ํŽ˜์ด์ง€ ํ’ˆ์งˆ ํ‰๊ท  ๋ฌด๊ด€
โ€ข robots.txt ๋ฐ sitemap.xml ์กด์žฌ
โ€ข ๊ฒ€์‚ฌ ๋ฆฌ์ŠคํŠธ ์ผ๋ถ€ 4xx/5xx ์˜ค๋ฅ˜ ํฌํ•จ
โ€ข robots.txt ๋ฐ sitemap.xml ์กด์žฌ
โ€ข ๊ฒ€์‚ฌ ๋Œ€์ƒ URL ์ƒ์„ฑ ๊ฐ€๋Šฅ(robots ํ—ˆ์šฉ + sitemap ์ˆ˜์ง‘)
โ€ข ๋‹จ, ์ •์ƒ ์ ‘๊ทผ๋ฅ  ๋‚ฎ๊ฑฐ๋‚˜ ํ’ˆ์งˆ ์ ๊ฒ€ ๋ถˆ๊ฐ€
โ€ข robots.txt ๋ถ€์žฌ ๋˜๋Š” sitemap.xml ๋ถ€์žฌ
โ€ข ๊ฒ€์‚ฌ ๋ฆฌ์ŠคํŠธ ์ž์ฒด ์ƒ์„ฑ ๋ถˆ๊ฐ€
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์™„์„ฑ๋„ ๊ธฐ๋ฐ˜
(Meta Inspector CLI)
โ€ข Title: ์ตœ์  ๊ธธ์ด(50~60์ž)
โ€ข Description: ์ตœ์  ๊ธธ์ด(120~160์ž)
โ€ข Open Graph ์™„๋ฒฝ ๊ตฌํ˜„
โ€ข Canonical ์ •ํ™• + Twitter Cards ์™„๋ฒฝ
โ€ข Title/Description ํ—ˆ์šฉ ๋ฒ”์œ„
โ€ข Open Graph ์™„๋ฒฝ ๊ตฌํ˜„
โ€ข Canonical ์ •ํ™• ์„ค์ •
โ€ข Twitter Cards ์„ ํƒ์‚ฌํ•ญ
โ€ข Title/Description ๊ธฐ๋ณธ ์ž‘์„ฑ
โ€ข Open Graph ๊ธฐ๋ณธ ํƒœ๊ทธ
โ€ข Canonical ์„ค์ •๋จ
โ€ข ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ˆ„๋ฝ ํ—ˆ์šฉ
โ€ข Title/Description ๊ธธ์ด ๋ถ€์ ์ ˆ
โ€ข Open Graph ๋ถˆ์™„์ „(์ฃผ์š” ํƒœ๊ทธ ๋ˆ„๋ฝ)
โ€ข Canonical ๋ถ€์ •ํ™• ๋˜๋Š” ๋ˆ„๋ฝ
โ€ข ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ์ €ํ•˜
โ€ข Title/Description ์‹ฌ๊ฐํ•œ ๊ธธ์ด ๋ฌธ์ œ
โ€ข Open Graph ๊ธฐ๋ณธ ํƒœ๊ทธ ๋ถ€์กฑ
โ€ข Canonical ์ž˜๋ชป ์„ค์ •
โ€ข ๊ธฐ๋ณธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ€์กฑ
โ€ข Title/Description ๋ฏธ์ž‘์„ฑ
โ€ข Open Graph ๋ถ€์žฌ
โ€ข ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ „๋ฐ˜ ๋ฏธ๊ตฌํ˜„
โ€ข SEO ๊ธฐ์ดˆ ์„ค์ • ์—†์Œ

PSQC ์ข…ํ•ฉ ์ ์ˆ˜ ๋ฐ ๋“ฑ๊ธ‰ ๊ธฐ์ค€

PSQC ์ ์ˆ˜ ๊ณ„์‚ฐ ๋ฐฉ์‹
1๋‹จ๊ณ„: ๊ฐœ๋ณ„ ํ…Œ์ŠคํŠธ ์ ์ˆ˜ (๊ฐ 100์  ๋งŒ์ )

๋ชจ๋“  ๊ฐœ๋ณ„ ํ…Œ์ŠคํŠธ๋Š” ๋™์ผํ•œ 100์  ์ฒ™๋„๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

(์˜ˆ: SSL ๊ธฐ๋ณธ โ†’ 85์ , ๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ โ†’ 92์ , ๋งํฌ ๊ฒ€์ฆ โ†’ 78์ )
2๋‹จ๊ณ„: ์˜์—ญ๋ณ„ ๊ฐ€์ค‘์น˜ ์ ์šฉ
Performance = (์†๋„ร—1.0 + ๋ถ€ํ•˜ร—1.0 + ๋ชจ๋ฐ”์ผร—1.0) = 300์  ๋งŒ์ 
Security = (SSLร—0.8 + SSLyzeร—0.6 + ํ—ค๋”ร—0.6 + ์Šค์บ”ร—0.6 + Nucleiร—0.4) = 300์  ๋งŒ์ 
Quality = (Lighthouseร—1.2 + ์ ‘๊ทผ์„ฑร—0.7 + ํ˜ธํ™˜์„ฑร—0.3 + ๋ฐ˜์‘ํ˜•ร—0.3) = 250์  ๋งŒ์ 
Content = (๋งํฌร—0.5 + ๊ตฌ์กฐํ™”ร—0.4 + ํฌ๋กค๋งร—0.4 + ๋ฉ”ํƒ€ร—0.2) = 150์  ๋งŒ์ 
3๋‹จ๊ณ„: ์ตœ์ข… ์ข…ํ•ฉ ์ ์ˆ˜
์ด์  = Performance(300) + Security(300) + Quality(250) + Content(150) = 1000์  ๋งŒ์ 

๊ธ€๋กœ๋ฒŒ ์›น ํ‘œ์ค€ ์ฐธ์กฐ ๋ฐ ์—ฐ๊ณ„

DevTeam-Test๋Š” ๋…๋ฆฝ์ ์ธ ์›น์‚ฌ์ดํŠธ ํ’ˆ์งˆ ํ‰๊ฐ€ ์„œ๋น„์Šค๋กœ, ์—…๊ณ„์—์„œ ๋„๋ฆฌ ์ธ์ •๋ฐ›๋Š” ์›น ํ‘œ์ค€ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฐธ์กฐํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ISO/IEC 25010 ์ฐธ์กฐ

์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ๋ชจ๋ธ ๊ตญ์ œ ํ‘œ์ค€ ์ฐธ์กฐ

๊ธฐ๋Šฅ ์ ํ•ฉ์„ฑ
์„ฑ๋Šฅ ํšจ์œจ์„ฑ
๋ณด์•ˆ์„ฑ
ํ˜ธํ™˜์„ฑ

DevTeam ์ ์šฉ: ISO 25010์˜ ํ’ˆ์งˆ ํŠน์„ฑ ๊ด€์ ์„ ์ฐธ์กฐํ•˜์—ฌ Performance, Security, Quality, Content ์˜์—ญ์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. (โ€ป DevTeam-Test๋งŒ์˜ ๋…์ž์  ํ‰๊ฐ€ ๋ฐฉ์‹ ์ ์šฉ)

WCAG 2.1 ๊ฐ€์ด๋“œ๋ผ์ธ ์ฐธ์กฐ

W3C ์›น ์ ‘๊ทผ์„ฑ ๊ฐ€์ด๋“œ๋ผ์ธ ์ฐธ์กฐ

์ธ์‹๊ฐ€๋Šฅ์„ฑ
์šด์šฉ๊ฐ€๋Šฅ์„ฑ
์ดํ•ด๊ฐ€๋Šฅ์„ฑ
๊ฒฌ๊ณ ์„ฑ

DevTeam ์ ์šฉ: WCAG 2.1 AA ์ˆ˜์ค€์˜ ์ ‘๊ทผ์„ฑ ์›์น™์„ ์ฐธ์กฐํ•˜์—ฌ ์ ‘๊ทผ์„ฑ ์‹ฌํ™” ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Axe-core ์—”์ง„์„ ํ™œ์šฉํ•œ ์ž๋™ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Core Web Vitals ์ง€ํ‘œ ํ™œ์šฉ

๊ตฌ๊ธ€ ํŽ˜์ด์ง€ ๊ฒฝํ—˜ ์ง€ํ‘œ ํ™œ์šฉ

LCP <2.5์ดˆ
INP <200ms
CLS <0.1

DevTeam ์ ์šฉ: ๊ตฌ๊ธ€์˜ Core Web Vitals ์ง€ํ‘œ๋ฅผ ์„ฑ๋Šฅ ํ‰๊ฐ€์— ์ฐธ๊ณ ์ž๋ฃŒ๋กœ ํ™œ์šฉํ•˜๋ฉฐ, ๊ธ€๋กœ๋ฒŒ ๋ฆฌ์ „ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

OWASP ๋ณด์•ˆ ๊ธฐ์ค€ ์ฐธ์กฐ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ๊ธฐ์ค€ ์ฐธ์กฐ

OWASP Top 10
ZAP ๋™์  ์Šค์บ”
CVE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

DevTeam ์ ์šฉ: OWASP Top 10๊ณผ CVE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋ณด์•ˆ ์ทจ์•ฝ์  ์Šค์บ” ๊ธฐ์ค€์„ ์ˆ˜๋ฆฝํ–ˆ์Šต๋‹ˆ๋‹ค. OWASP ZAP๊ณผ Nuclei ์—”์ง„์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

DevTeam-Test๋Š” ๊ตญ์ œ ํ‘œ์ค€ ๊ธฐ๊ด€์—์„œ ์ œ์‹œํ•œ ์‹œํ—˜ ๋ฐฉ๋ฒ•๊ณผ ํ‰๊ฐ€ ๊ธฐ์ค€์„ ํ•œ๊ตญ ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํŠน์„ฑ์— ๋งž๊ฒŒ ์ตœ์ ํ™”ํ•œ ๋…๋ฆฝ์ ์ธ ํ‰๊ฐ€ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ๋ณ„๋กœ ์ƒ์„ธํ•œ ์‹œํ—˜ ๋ฐฉ๋ฒ•๋ก ๊ณผ ์ธก์ •๋œ Raw Data๋ฅผ ์™„์ „ ๊ณต๊ฐœํ•˜์—ฌ ๊ฒฐ๊ณผ์˜ ํˆฌ๋ช…์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ์‚ฌ๋Š” ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ์ฒด์ ์ด๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์›น์‚ฌ์ดํŠธ ๊ฐœ์„  ๋ฐฉ์•ˆ์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ ์›น์‚ฌ์ดํŠธ ํ’ˆ์งˆ ๋ฒค์น˜๋งˆํฌ ์ƒ์„ธ

์ธก์ • ์ง€ํ‘œ ์šฐ์ˆ˜ ๊ธฐ์ค€ ๊ธ€๋กœ๋ฒŒ ๋‹ฌ์„ฑ๋ฅ  ์ถœ์ฒ˜ DevTeam ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ
Lighthouse ๋ชจ๋“  ํ•ญ๋ชฉ 90+ Performance, Accessibility,
Best Practices, SEO ๋ชจ๋‘ 90+
< 2% HTTP Archive (Lighthouse ๋ถ„ํฌ ๋ถ„์„) Quality/lighthouse
Core Web Vitals ํ†ต๊ณผ LCP < 2.5์ดˆ, INP/TBT < 200ms, CLS < 0.1 โ‰ˆ 43-44% Chrome UX Report (CrUX ์‹ค์ธก) Performance/speed + Quality/lighthouse
SSL Labs A+ ๋“ฑ๊ธ‰ TLS 1.3, HSTS, ์™„๋ฒฝํ•œ ์„ค์ • โ‰ˆ 46% SSL Labs Security/ssl + Security/sslyze
WCAG 2.1 AA ์ค€์ˆ˜
(์ž๋™ ๊ฒ€์‚ฌ ๊ธฐ์ค€)
๊ฐ์ง€๋œ ์˜ค๋ฅ˜ 0๊ฐœ โ‰ˆ 5%
(์ ‘๊ทผ์„ฑ ๊ฒฐํ•จ ๊ฐ์ง€์œจ 94.8%)
WebAIM Million ํ”„๋กœ์ ํŠธ Quality/accessibility
OWASP Top 10 ์ทจ์•ฝ์  ์—†์Œ ์ฃผ์š” ์ทจ์•ฝ์  0๊ฐœ โ‰ˆ 30-40% OWASP Top 10 Security/scan + Security/nuclei
Schema.org ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ
์™„์ „ ๊ตฌํ˜„
๋ชจ๋“  ํŽ˜์ด์ง€์— ๊ตฌํ˜„ โ‰ˆ 25-35% W3C ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ํ†ต๊ณ„ Content/structure
๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ ์™„์ „ Chrome, Firefox, Safari ๋ชจ๋‘ ์ •์ƒ โ‰ˆ 60-70% MDN ํ˜ธํ™˜์„ฑ ๋ฐ์ดํ„ฐ Quality/compatibility