๋ฐ์ํ UI ํ ์คํธ
๋ทฐํฌํธ๋ณ ๋ ๋๋ง ํญ ์ด๊ณผ ์ธก์
๋นํ์ ์ด๋ฒ ๋ฌ 5ํ ๋จ์
๋ฌด๋ฃ ๊ฐ์
ํ๋ฉด ์ 20ํ
Playwright ๊ธฐ๋ฐ ๋ฐ์ํ UI ์ ํฉ์ฑ ๊ฒ์ฌ
์ธก์ ๋๊ตฌ: Playwright (Chromium ์์ง)
ํ ์คํธ ๋ชฉ์ : ๋ค์ํ ๋๋ฐ์ด์ค ํ๊ฒฝ์์ ์นํ์ด์ง๊ฐ viewport ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋ง๋๋์ง ๊ฒ์ฆ
๊ฒ์ฌ ๋์: 9๊ฐ ์ฃผ์ ๋ทฐํฌํธ (๋ชจ๋ฐ์ผ 3๊ฐ, ํด๋๋ธ 1๊ฐ, ํ๋ธ๋ฆฟ 3๊ฐ, ๋ฐ์คํฌํฑ 2๊ฐ)
์ธก์ ํญ๋ชฉ:
โข body ์์์ ์ค์ ๋ ๋๋ง ํญ
โข viewport ํญ ๋๋น ์ด๊ณผ ํฝ์ ์
โข ๊ฐ ๋ทฐํฌํธ๋ณ ์ด๊ณผ ๋ฐ์ ์ฌ๋ถ
ํ ์คํธ ๋ฐฉ์:
1. ๊ฐ ๋ทฐํฌํธ ํฌ๊ธฐ๋ก ๋ธ๋ผ์ฐ์ ์ค์
2. ํ์ด์ง ๋ก๋ ํ ๋คํธ์ํฌ ์์ ํ ๋๊ธฐ (6์ด)
3. document.body.getBoundingClientRect() ์ธก์
4. viewport ํญ๊ณผ ๋น๊ตํ์ฌ ์ด๊ณผ ํฝ์ ๊ณ์ฐ
๊ฒ์ฌ ๋ทฐํฌํธ ๋ชฉ๋ก:
โข ๋ชจ๋ฐ์ผ: 360ร800, 390ร844, 414ร896
โข ํด๋๋ธ: 672ร960
โข ํ๋ธ๋ฆฟ: 768ร1024, 834ร1112, 1024ร1366
โข ๋ฐ์คํฌํฑ: 1280ร800, 1440ร900
์ด ํ ์คํธ๋ ์ฝ 30์ด~1๋ถ ์ ๋ ์์๋๋ฉฐ, ์ํ ์คํฌ๋กค๋ฐ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ฌ์ ์ ๋ฐ๊ฒฌํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
ํ ์คํธ ๋ชฉ์ : ๋ค์ํ ๋๋ฐ์ด์ค ํ๊ฒฝ์์ ์นํ์ด์ง๊ฐ viewport ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋์ง ์๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋ง๋๋์ง ๊ฒ์ฆ
๊ฒ์ฌ ๋์: 9๊ฐ ์ฃผ์ ๋ทฐํฌํธ (๋ชจ๋ฐ์ผ 3๊ฐ, ํด๋๋ธ 1๊ฐ, ํ๋ธ๋ฆฟ 3๊ฐ, ๋ฐ์คํฌํฑ 2๊ฐ)
์ธก์ ํญ๋ชฉ:
โข body ์์์ ์ค์ ๋ ๋๋ง ํญ
โข viewport ํญ ๋๋น ์ด๊ณผ ํฝ์ ์
โข ๊ฐ ๋ทฐํฌํธ๋ณ ์ด๊ณผ ๋ฐ์ ์ฌ๋ถ
ํ ์คํธ ๋ฐฉ์:
1. ๊ฐ ๋ทฐํฌํธ ํฌ๊ธฐ๋ก ๋ธ๋ผ์ฐ์ ์ค์
2. ํ์ด์ง ๋ก๋ ํ ๋คํธ์ํฌ ์์ ํ ๋๊ธฐ (6์ด)
3. document.body.getBoundingClientRect() ์ธก์
4. viewport ํญ๊ณผ ๋น๊ตํ์ฌ ์ด๊ณผ ํฝ์ ๊ณ์ฐ
๊ฒ์ฌ ๋ทฐํฌํธ ๋ชฉ๋ก:
โข ๋ชจ๋ฐ์ผ: 360ร800, 390ร844, 414ร896
โข ํด๋๋ธ: 672ร960
โข ํ๋ธ๋ฆฟ: 768ร1024, 834ร1112, 1024ร1366
โข ๋ฐ์คํฌํฑ: 1280ร800, 1440ร900
์ด ํ ์คํธ๋ ์ฝ 30์ด~1๋ถ ์ ๋ ์์๋๋ฉฐ, ์ํ ์คํฌ๋กค๋ฐ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ฌ์ ์ ๋ฐ๊ฒฌํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
| ๋ฑ๊ธ | ์ ์ | ๊ธฐ์ค |
|---|---|---|
| A+ | 100 | ์ ๋ทฐํฌํธ ์ด๊ณผ 0๊ฑด body ๋ ๋ ํญ์ด ํญ์ viewport ์ด๋ด |
| A | 90~95 | ์ด๊ณผ โค1๊ฑด์ด๋ฉฐ โค8px ๋ชจ๋ฐ์ผ ํํญ(โค390px) ๊ตฌ๊ฐ์์๋ ์ด๊ณผ 0๊ฑด |
| B | 80~89 | ์ด๊ณผ โค2๊ฑด์ด๊ณ ๊ฐ โค16px ๋๋ ๋ชจ๋ฐ์ผ ํํญ์์ โค8px 1๊ฑด |
| C | 70~79 | ์ด๊ณผ โค4๊ฑด ๋๋ ๋จ์ผ ์ด๊ณผ๊ฐ 17~32px |
| D | 50~69 | ์ด๊ณผ >4๊ฑด ๋๋ ๋จ์ผ ์ด๊ณผ๊ฐ 33~64px |
| F | 0~49 | ์ธก์ ์คํจ ๋๋ โฅ65px ์ด๊ณผ ๋ฐ์ |
์์ง ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค
ํ ์คํธ๋ฅผ ์คํํ๋ฉด ๋ทฐํฌํธ๋ณ ๋ฐ์ํ UI ์ ํฉ์ฑ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์์ง ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค
ํ ์คํธ๋ฅผ ์คํํ๋ฉด Raw JSON ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๊ฒ์ฌ ๋ด์ญ์ ๋ณด๋ ค๋ฉด ๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.
๋๋ฉ์ธ ๊ด๋ฆฌ๋ ๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.
ํ์ง ์์ญ์ ๋ค๋ฅธ ๊ฒ์ฌ
- ์ข ํฉ ํ์ง โ Lighthouse ์ ๊ทผ์ฑยท๊ถ์ฅ์ฌํญยทSEO
- ์ ๊ทผ์ฑ ์ฌํ โ WCAG 2.1 A/AA ๊ท์น
- ๋ธ๋ผ์ฐ์ ํธํ โ ChromeยทFirefoxยทSafari ๋ ๋๋ง