https://github.com/kesuskim/Front-End-Checklist
๐ ์ต์ ์น์ฌ์ดํธ์ ๊ผผ๊ผผํ ๊ฐ๋ฐ์๋ค์ ์ํ ์๋ฒฝ ํ๋ก ํธ์๋ ์ฒดํฌ๋ฆฌ์คํธ
https://github.com/kesuskim/Front-End-Checklist
Last synced: 24 days ago
JSON representation
๐ ์ต์ ์น์ฌ์ดํธ์ ๊ผผ๊ผผํ ๊ฐ๋ฐ์๋ค์ ์ํ ์๋ฒฝ ํ๋ก ํธ์๋ ์ฒดํฌ๋ฆฌ์คํธ
- Host: GitHub
- URL: https://github.com/kesuskim/Front-End-Checklist
- Owner: kesuskim
- License: cc0-1.0
- Fork: true (thedaviddias/Front-End-Checklist)
- Created: 2017-10-24T04:53:20.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-05-13T03:28:25.000Z (almost 4 years ago)
- Last Synced: 2024-11-07T14:41:39.326Z (6 months ago)
- Homepage: http://frontendchecklist.com
- Size: 1.93 MB
- Stars: 1,682
- Watchers: 46
- Forks: 272
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-list - Front-End-Checklist
- Interview_Question_for_Beginner - Front-end Checklist
README
![]()
ย Front-End Checklist
ย
ํ๋ก ํธ์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ ๋น์ ์ HTML ์ฌ์ดํธ ๋๋ ํ์ด์ง๋ฅผ ํ๋ก๋์ ์ผ๋ก ๋ฐ์นญํ๊ธฐ ์ด์ ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ , ๋ํ ํ ์คํธ ๋์ด์ผ ํ ์ ๋ฐ์ ์ธ ์์๋ค์ ์งํฉ์ ๋๋ค.
How To Use โข Contributing โข Website โข Product Hunt
Other Checklists:
๐ฎ Front-End Performance Checklist โข ๐ Front-End Design Checklist์ด ๋ฆฌ์คํธ๋ ๋ค๋ ๊ฐ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ ๊ฒฝํ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ช๋ช ํญ๋ชฉ๋ค์ ํ ์คํ์์ค ์ฒดํฌ๋ฆฌ์คํธ๋ค์ ์ฐธ๊ณ ๋ฅผ ํตํด ์ถ๊ฐ๋์์ต๋๋ค.
## ๋ชฉ์ฐจ
1. **[Head](#head)**
2. **[HTML](#html)**
3. **[์นํฐํธ](#์นํฐํธ)**
4. **[CSS](#css)**
5. **[์ด๋ฏธ์ง](#์ด๋ฏธ์ง)**
6. **[์๋ฐ์คํฌ๋ฆฝํธ](#์๋ฐ์คํฌ๋ฆฝํธ)**
7. **[๋ณด์](#๋ณด์)**
8. **[์ฑ๋ฅ](#์ฑ๋ฅ-1)**
9. **[์ ๊ทผ์ฑ](#์ ๊ทผ์ฑ)**
10. **[SEO](#seo)**## ์ด ๋ฆฌ์คํธ๋ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์?
**ํ๋ก ํธ์๋ ์ฒดํฌ๋ฆฌ์คํธ**์ ์ํด์๋ ๋ชจ๋ ํญ๋ชฉ๋ค์ ๋๋ค์์ ํ๋ก์ ํธ์์ ํ์๋ก ํ๋ ์ฌํญ๋ค์ด์ง๋ง, ๋ช๋ช ์์๋ค์ ์๋ต๋๊ฑฐ๋ ํ์์ ์ด ์๋ ์๋ ์์ต๋๋ค(์๋ฅผ ๋ค๋ฉด ๊ด๋ฆฌํ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ RSS ํผ๋๋ ํ์ ์์ ๊ฒ์ ๋๋ค). ์ฐ๋ฆฌ๋ ๋ฐ๋ผ์ ๊ฐ๊ฐ์ ํญ๋ชฉ๋ค์ 3๊ฐ์ง์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํ์์ต๋๋ค:
* ![Low][low_img] ์ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์ด **๊ถ์ ** ๋์ง๋ง, ๋ช๋ช ํน์ ํ ์ํฉ์์๋ ์๋ต๋ ์๋ ์์ต๋๋ค.
* ![Medium][medium_img] ์ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์ด **๊ถ๊ณ ** ๋์ง๋ง, ๊ต์ฅํ ํน์ ํ ์ํฉ์์๋ ๊ฒฐ๊ตญ ์๋ต์ด ๋ ์๋ ์์ต๋๋ค. ๋ช๋ช ์์์ ๊ฒฝ์ฐ, ์๋ต ์ ์ฑ๋ฅ์ด๋ SEO ์ธก๋ฉด์์ ์ ์ข์ ์ํฅ์ ๋ผ์น ์๋ ์์ต๋๋ค.
* ![High][high_img] ์ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์ ์ด๋ ํ ์ํฉ์์๋ผ๋ **์๋ต๋ ์ ์์ต๋๋ค**. ์ด๋ฅผ ์๋ตํ๊ฒ ๋๋ฉด ๋น์ ์ ํ์ด์ง๋ ์ค๋์ํ๊ฑฐ๋ ์ ๊ทผ, ๋๋ SEO์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์์๋ค์ ๋ํด์ ์ฐ์ ์ ์ผ๋ก ํ ์คํธ ํ์๊ธฐ ๋ฐ๋๋๋ค.๋ช๋ช ์ถ๊ฐ ๋ด์ฉ๋ค์ ๊ทธ๊ฒ๋ค์ด ์ด๋ ํ ์ข ๋ฅ์ ๋ด์ฉ์ธ์ง ์ดํดํ๋๋ฐ์ ๋์์ ์ฃผ๊ธฐ ์ํ์ฌ ์ด๋ชจํฐ์ฝ์ ์ถ๊ฐํ์์ต๋๋ค. ์ด๋ก ์ธํด ์ฒดํฌ๋ฆฌ์คํธ์์ ํด๋น ํญ๋ชฉ๋ค์ ์ดํดํ๋ ๋ฐ์ ๋์์ด ๋ ๊ฒ์ ๋๋ค:
* ๐: ๋ฌธ์ ๋๋ ๊ธฐ์ฌ
* ๐ : ์จ๋ผ์ธ ๋๊ตฌ / ํ ์คํธ ๋๊ตฌ
* ๐น: ๋ฏธ๋์ด ๋๋ ๋น๋์ค ์ปจํ ์ธ---
## Head
> **๋ ธํธ:** [a list of everything](https://github.com/joshbuchea/HEAD) ์์ HTML ๋ฌธ์ ๋ด์ `` ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ์ฐพ์๋ณด์ค ์ ์์ต๋๋ค.
### ๋ฉํ ํ๊ทธ
* [ ] **Doctype:** ![High][high_img] HTML5 ์ ์ฌ์ฉํ๋ฉฐ, Doctype์ด ๋ชจ๋ HTML ํ์ด์ง์ ์ต์๋จ์ ์์นํจ
```html
```
> ๐ [๋ฌธ์ ์ธ์ฝ๋ฉ ๊ฒฐ์ ํ๊ธฐ - HTML5 W3C](https://www.w3.org/TR/html5/syntax.html#determining-the-character-encoding)
*๋ค์ 2๊ฐ์ ๋ฉํ ํ๊ทธ(Charset and Viewport)๋ค์ ๋ค๋ฅธ ์์๋ค์ ๋นํด head ์์์๋ ์๋จ์ ์์นํด์ผ๋ง ํฉ๋๋ค.*
* [ ] **Charset:** ![High][high_img] ๋ฌธ์์งํฉ(UTF-8)์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ธ๋จ
```html
```
* [ ] **Viewport:** ![High][high_img] Viewport๊ฐ ์ ๋๋ก ์ ์ธ๋จ
```html
```
* [ ] **Title:** ![High][high_img] ๋ชจ๋ ํ์ด์ง์ title์ด ์ฌ์ฉ๋จ (SEO ๊ฐ์ด๋: Google์ ์ ๋ชฉ์ ์ฌ์ฉ๋ ๊ธ์๋ค์ ๋๋น์ ํฝ์ ๊ฐ์ ๊ณ์ฐํ ๋ค, 472~482px ์ฌ์ด์ ๊ฐ์ผ๋ก ์๋ผ๋ ๋๋ค. ํ๊ท ์ ์ธ ๊ธ์ ๊ธธ์ด์ ์ ํ์ ์ฝ 55๊ฐ์ ๊ธ์์ ๋๋ค.)
```html
55๊ฐ ์ดํ์ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ํ์ด์ง ์ ๋ชฉ
```> * ๐ [Title - HTML - MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title)
> * ๐ [SERP Snippet Generator](https://www.sistrix.com/serp-snippet-generator/)* [ ] **Description:** ![High][high_img] description์ด ์ ๋๋ก ๊ธฐ์ฌ๋จ (์ค๋ช ๊ฐ์ ๊ณ ์ ํด์ผ ํ๋ฉฐ, 150๊ฐ ์ดํ์ ๋ฌธ์๋ก ๊ตฌ์ฑ๋์ด์ผ ํจ)
```html
```
> * ๐ [Meta Description - HTML - MDN](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML#Adding_an_author_and_description)
* [ ] **ํ๋น์ฝ:** ![Medium][medium_img] ๊ฐ๊ฐ์ ํ๋น์ฝ์ด ์ ๋๋ก ์์ฑ๋์๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณด์ฌ์ง๋๊ฐ? ๋ง์ฝ `favicon.ico` ํ์ผ๋ง ๊ฐ์ง๊ณ ์๋ค๋ฉด, ํด๋น ๋ด์ฉ์ ํ์ด์ง์ ์๋จ๋ถ์ ์ถ๊ฐํ๋ผ. ์ผ๋ฐ์ ์ผ๋ก๋ ํด๋น ํ๊ทธ๋ฅผ ์ฌ์ฉํ ํ์๋ ์์ง๋ง, ์๋์ ์์๋ฅผ ํฌํจํ๋ ๊ฒ์ด ์ข์ ์ต๊ด์. ์ค๋๋ ์๋ `.ico` ํฌ๋งท๋ณด๋ค **PNG ํฌ๋งท์ ์์ด์ฝ ์ฌ์ฉ์ ์ถ์ฒ**ํจ(ํฌ๊ธฐ: 32x32px).
```html
```
> * ๐ [ํ๋น์ฝ ์์ฑ๊ธฐ](https://www.favicon-generator.org/)
> * ๐ [์ง์งํ๋น์ฝ์์ฑ๊ธฐ](https://realfavicongenerator.net/)
> * ๐ [ํ๋น์ฝ ์๋ด์](https://github.com/audreyr/favicon-cheat-sheet)
> * ๐ [ํ๋น์ฝ, ํฐ์น ์์ด์ฝ, ํ์ผ ์์ด์ฝ. ๋ํํ ํ์ํ ๊ฒ์? - CSS Tricks](https://css-tricks.com/favicon-quiz/)
> * ๐ [PNG ํ๋น์ฝ - caniuse](https://caniuse.com/#feat=link-icon-png)* [ ] **Apple ์น ์ฑ ๋ฉํ ํ๊ทธ ์ค์ :** [](https://github.com/thedaviddias/Front-End-Checklist/blob/master/data/images/priority/low.svg) Apple ์ ๋ฉํ ํ๊ทธ๊ฐ ์ ๋๋ก ์ค์ ๋์์
```html
```
> * ๐ [์น ์ดํ๋ฆฌ์ผ์ด์ ๋ชจ๋ ์ค์ ํ๊ธฐ](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html)
> * ๐ [์ง์ํ๋ ๋ฉํ ํ๊ทธ ๋ชฉ๋ก](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html)- [ ] **์๋์ฐ ํ์ผ:** ![Low][low_img] ์๋์ฐ์ ํ์ผ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ค์ ํ์๊ณ ์ ๋๋ก ์ฐ๊ฒฐํ์์
```html
```
browserconfig.xml ํ์ผ์์ ์ฌ์ฉ๋๋ ์ต์ํ์ XML ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
```xml
```
> * ๐ [๋ธ๋ผ์ฐ์ ์ค์ ์คํค๋ง ๋ ํผ๋ฐ์ค](https://msdn.microsoft.com/en-us/library/dn320426(v=vs.85).aspx)
* [ ] **Canonical:** ![Medium][medium_img] ์ปจํ ์ธ ์ ์ค๋ณต์ ํผํ๊ธฐ ์ํ์ฌ `rel="canonical"` ์ ์ฌ์ฉํจ
```html
```
> * ๐ [ํ์ค URL์ ์ฌ์ฉํ๊ธฐ - Search Console Help - Google Support](https://support.google.com/webmasters/answer/139066?hl=en)
> * ๐ [rel=canonical์ ์ฌ์ฉํ ๋ ํํ ๊ฒช๋ 5๊ฐ์ง ์ค์ - Google Webmaster Blog](https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcanonical.html)### HTML ํ๊ทธ
* [ ] **์ธ์ด ์์ฑ:** ![High][high_img] ํ์ฌ ํ์ด์ง ๋ด์ ์ธ์ด์ ์๋ง๊ฒ ์์ฑ ๊ฐ์ด ๋ถ์ฌ๋จ
```html```
* [ ] **๊ธ์ ๋ฐฉํฅ ์์ฑ:** ![Medium][medium_img] ๊ธ์๋ค์ ๋ฐฉํฅ์ด ์ ๋๋ก ์ค์ ๋จ (์ฐ๋ฆฌ๋๋ผ์์๋ ์ข์์ ์ฐ๋ก ๊ธ์จ๋ฅผ ์ฝ๊ณ ์ฐ์ง๋ง ๋ช๋ช ๋๋ผ์์๋ ์ฐ์์ ์ข๋ก ์ฝ๊ณ ์ฐ๋ ๊ฒฝ์ฐ๋ ์์)
```html
```
> * ๐ [dir - HTML - MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
* [ ] **๋์ฒด ์ธ์ด:** ![Low][low_img] ํ์ฌ ํ์ด์ง๋ฅผ ์ธ์ด์ ๋ง๊ฒ ๋์ฒดํ ์ ์๋ ํ๊ทธ ์์ฑ ๊ฐ์ ์ฌ์ฉํจ
```html
```
* [ ] **x-default:** ![Low][low_img] ์ด์ํ์ง ์๋ ์ธ์ด์ ์ฌ์ฉ์๊ฐ ๋ค์ด์ฌ ๊ฒฝ์ฐ๋ฅผ ์ํด ๋ํดํธ ํ์ด์ง๋ฅผ ์ ํด์ฃผ๋ ์์ฑ
```html
```
> - ๐ [x-default - Google](https://webmasters.googleblog.com/2013/04/x-default-hreflang-for-international-pages.html)
* [ ] **์กฐ๊ฑด๋ถ ์ฃผ์:** ![Low][low_img] Internet Explorer ๋ฅผ ์ํ ์กฐ๊ฑด๋ถ ์ฃผ์์ ์ฌ์ฉํจ
> * ๐ [์กฐ๊ฑด๋ถ ์ฃผ์์ ๊ดํ์ฌ (Internet Explorer) - MSDN - Microsoft](https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx)
* [ ] **RSS ํผ๋:** ![Low][low_img] ๋ง์ผ ํ์ด์ง๊ฐ ๋ธ๋ก๊ทธ์ด๊ฑฐ๋ ๊ธฐ์ฌ๊ฐ ์๋ค๋ฉด, RSS ๋งํฌ์ ๋ํด ํ์ธํ์์ค
* [ ] **CSS Critical:** ![Medium][medium_img] ํ์ด์ง๊ฐ ๋ก๋ฉ๋๋ ์ฆ์(ํผ์ณ์ง๋ ๊ทธ ์๊ฐ) ์ปจํ ์ธ ์ ์ํฅ์ ๋ผ์น๋ CSS๋ฅผ "critical CSS" ๋ผ๊ณ ํจ. ์ด๋ ๋น์ ์ ์ค์ง์ ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ CSS ๊ฐ ๋ก๋ฉ๋๊ธฐ ์ด์ ์ `` ํ๊ทธ ์ฌ์ด์ ์ต์ํ ๋ ์ํ๋ก ํ ์ค๋ก ์ถ๊ฐ๋์ด ์๋ฒ ๋ฉ ๋จ
> * ๐ [Critical by Addy Osmani on Github](https://github.com/addyosmani/critical) ์ด ๋ ํฌ๋ CSS Critical์ ์๋ํ ํ๋๋ฐ์ ๋์์ ์ค๋๋ค.
* [ ] **CSS์ ์์:** ![High][high_img] ๋ชจ๋ CSS ํ์ผ์ด `` ๋ด์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ณด๋ค ์ด์ ์ ๋ก๋ฉ์ด ์๋ฃ๋จ (์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ฉ๋๋ ํน์ ํ ๊ฒฝ์ฐ๋ ์ ์ธํจ).
### ์์ ๋ฏธ๋์ด ๊ด๋ จ ๋ฉํ ํ๊ทธ
[Meta Tags](https://metatags.io/) ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉํ ํ๊ทธ๋ฅผ ์๊ฐํํ๊ณ ์์ฑํ์ธ์.
๊ธฐ๋ณธ์ ์ผ๋ก ***Facebook ์ Open Graph*** ์ ***Twitter ์ Card*** ๋ ๋ฐ๋์ ์ค์ ํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ๋ค๋ฅธ ์์ ๋ฏธ๋์ด ํ๊ทธ๋ค์ ํน์ ํ ์๋๋ฅผ ๋์์ผ๋ก ํ ๊ฒฝ์ฐ์ ๊ณ ๋ คํด๋ณด์ธ์.
* [ ] **Facebook Open Graph:** ![Low][low_img] ๋ชจ๋ Facebook์ Open Graph (OG) ๊ฐ ํ ์คํธ ๋์์ผ๋ฉฐ, ๊ทธ๊ฒ๋ค ์ค์ ๋๋ฝ๋ ์ ๋ณด๋ ์๋ชป๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ ์๋? (์ด๋ฏธ์ง์ ๊ฒฝ์ฐ ์ต์ํ 600 x 315 ํฝ์ ์ ๋์ด์ผ ํ๋ฉฐ, 1200 x 630 ํฝ์ ํฌ๊ธฐ๋ฅผ ๊ถ์ฅํจ)
> **๋ ธํธ:** `og:image:width`์ `og:image:height` ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์น ํฌ๋กค๋ฌ์๊ฒ ์๋ ค์ฃผ์ด์, ์ด๋ฏธ์ง๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ ์ฒ๋ฆฌํ ํ์ ์์ด ์ฆ์ ๋ณด์ฌ์ค ์ ์๋๋ก ํฉ๋๋ค.
```html
```
> * ๐ [์น๋ง์คํฐ๋ฅผ ์ํ ์์ด๋ง ๊ฐ์ด๋](https://developers.facebook.com/docs/sharing/webmasters/)
> * ๐ [์์ด๋ง - ๋ชจ๋ฒ ์ฌ๋ก](https://developers.facebook.com/docs/sharing/best-practices/)
> * ๐ [Facebook OG testing](https://developers.facebook.com/tools/debug/) ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ ๋น์ ์ ํ์ด์ง ํ ์คํธํ๊ธฐ* [ ] **Twitter Card:** ![Low][low_img]
```html
```
> * ๐ [Twitter cards ์์ํ๊ธฐ โ Twitter Developers](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started)
> * ๐ [Twitter card ๊ฒ์ฌ๊ธฐ](https://cards-dev.twitter.com/validator) ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ ๋น์ ์ ํ์ด์ง ํ ์คํธํ๊ธฐ**[โฌ ๋ชฉ์ฐจ๋ก](#๋ชฉ์ฐจ)**
---
## HTML
### ๋ชจ๋ฒ ์ฌ๋ก
* [ ] **HTML5 ์๋งจํฑ ์๋ฆฌ๋จผํธ:** ![High][high_img] HTML5์ ์๋งจํฑ ์๋ฆฌ๋จผํธ๋ค์ด ์ ์ ํ ์ฌ์ฉ๋จ (header, section, footer, main... ๋ฑ).
> * ๐ [HTML ๋ ํผ๋ฐ์ค](http://htmlreference.io/)
* [ ] **์๋ฌ ํ์ด์ง:** ![High][high_img] ์๋ฌ๋ฅผ ์ํ 404 ํ์ด์ง์ 5xx ํ์ด์ง๊ฐ ์กด์ฌํ๋๊ฐ? 5xx ํ์ด์ง๋ ์๋ฒ ์๋ฌ์ด๊ธฐ ๋๋ฌธ์, ์๋ฒ๋ก๋ถํฐ์ ๋ณ๋์ ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ก๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ธ ์์ฒด CSS๋ฅผ ํฌํจํ๊ณ ์์ด์ผ ํจ์ ๊ธฐ์ตํจ
* [ ] **Noopener:** ![Medium][medium_img] ์ธ๋ถ ๋งํฌ๋ฅผ `target="_blank"`๋ฅผ ์ด์ฉํ์ฌ ์ฐ ๊ฒฝ์ฐ, [tab nabbing ํผ์ฑ ๊ณต๊ฒฉ](https://blog.coderifleman.com/2017/05/30/tabnabbing_attack_and_noopener/)์ ๋ฐฉ์งํ๊ธฐ ์ํ์ฌ `rel="noopener"` ์์ฑ์ ์ฌ์ฉํด์ผ๋ง ํจ. ๋ง์ฝ Firefox ์ ๋ฒ์ ์ ์ง์ํด์ผ๋ง ํ๋ค๋ฉด, `rel="noopener noreferrer"` ์ ์ฌ์ฉํจ
> * ๐ [rel=noopener์ ๋ํ์ฌ](https://mathiasbynens.github.io/rel-noopener/)
* [ ] **์ฃผ์ ์ง์ฐ๊ธฐ:** ![Low][low_img] ์น์ฌ์ดํธ๋ฅผ ํ๋ก๋์ ํ๊ธฐ ์ด์ ์ ๋ถํ์ํ ์ฝ๋๋ ์ ๊ฑฐํ์๋์ง, ์ฃผ์์ ์ ๊ฑฐํ์๋์ง ์ ๊ฒํจ
### HTML testing
* [ ] **W3C ๊ท๊ฒฉ:** ![High][high_img] ํ์ด์ง ๋ด์ ๋ชจ๋ HTML ์ด ํ์ค์ ๋ง๊ฒ ์ ์์ ์ผ๋ก ์์ฑ๋์๋์ง W3C ์ validator๋ฅผ ์ด์ฉํ์ฌ ํ ์คํธ ํจ
> * ๐ [W3C ๊ฒ์ฌ๊ธฐ](https://validator.w3.org/)
* [ ] **HTML Lint:** ![High][high_img] Lint ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ HTML ์ฝ๋ ๋ด์ ๋ฐ์ํ ์ ์๋ ์ฝ๋ ์์ ๋ฌธ์ ๋ค์ ๋ถ์ํจ
> * ๐ [Dirty markup](https://dirtymarkup.com/): HTML ์ฝ๋๋ฅผ ์ ๋ํด์ฃผ๋ ์จ๋ผ์ธ ๋๊ตฌ
> * ๐ [Sonar a linting tool for the web](https://sonarwhal.com/)
* [ ] **Link checker:** ![High][high_img] ํ์ด์ง ๋ด์ ๊นจ์ง ๋งํฌ๋ ์๋์ง, 404 ์๋ฌ๊ฐ ์กด์ฌํ์ง ์๋์ง ๋ค์ ํ๋ฒ ํ์ธํ๋๋ก ํจ> * ๐ [W3C Link Checker](https://validator.w3.org/checklink)
* [ ] **๊ด๊ณ ์ฐจ๋จ๊ธฐ ํ ์คํธ:** ![Medium][medium_img] ๊ด๊ณ ์ฐจ๋จ๊ธฐ๊ฐ ํ์ฑํ ๋ ์ํ์์๋ ์ปจํ ์ธ ๊ฐ ์ ๋๋ก ๋ณด์ฌ์ง (์ฌ๋๋ค์๊ฒ ๊ด๊ณ ์ฐจ๋จ๊ธฐ๋ฅผ ๋นํ์ฑํ ํด๋ฌ๋ผ๊ณ ๋ฉ์ธ์ง๋ฅผ ์๋ฆด์๋ ์์)
> - ๐ [๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ด๊ณ ์ฐจ๋จ๊ธฐ ์ฌ์ฉํ๊ธฐ](https://andreicioara.com/use-adblocking-in-your-dev-environment-48db500d9b86)
**[โฌ ๋ชฉ์ฐจ๋ก](#๋ชฉ์ฐจ)**
---
## ์นํฐํธ
> **๋ ธํธ:** ์นํฐํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ์ผ๋ง ๋์ง ์์ ๊ธ์๋ ๋ณด์ด์ง ์๋ ๊ธ์๋ค์ด ๊น๋นก์ผ ์ ์์ต๋๋ค. ์คํจํ์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ ๋์ฒด์ฉ ํฐํธ๋ฅผ ํฌํจํ๊ฑฐ๋, ์นํฐํธ ๋ก๋๋ฅผ ํ์ฉํ์ฌ ์ด๋ฌํ ๋์๋ค์ ์ ์ดํ์ธ์.
>
> * ๐ [๊ตฌ๊ธ์ ์นํฐํธ์ ๋ํ ๊ธฐ์ ์ ๊ณ ๋ ค์ฌํญ](https://developers.google.com/fonts/docs/technical_considerations)* [ ] **์นํฐํธ ํฌ๋งท:** ![High][high_img] WOFF, WOFF2 ์ TTF๋ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋จ
> * ๐ [WOFF - ์น ์คํ ํฐํธ ํฌ๋งท- Caniuse](https://caniuse.com/#feat=woff).
> * ๐ [WOFF 2.0 - ์น ์คํ ํฐํธ ํฌ๋งท - Caniuse](https://caniuse.com/#feat=woff2).
> * ๐ [TTF/OTF - ํธ๋ฃจํ์ ํฐํธ์ ์คํํ์ ํฐํธ ์ง์ ์ฌ๋ถ - Caniuse](https://caniuse.com/#feat=ttf)
> * ๐ [@font-face ์ฌ์ฉํ๊ธฐ - CSS-Tricks](https://css-tricks.com/snippets/css/using-font-face/)* [ ] **์นํฐํธ ํฌ๊ธฐ:** ![High][high_img] ๋ชจ๋ ์ข ๋ฅ(์ดํค๋ฆญ, ๋ณผ๋์ฒด ๋ฑ๋ฑ์ ํฌํจ)์ ์นํฐํธ ํฌ๊ธฐ์ ์ด ํฉ๊ณ๋ 2 MB๋ฅผ ๋์ง ์๋๋ก ํจ
* [ ] **์นํฐํธ ๋ก๋:** ![Low][low_img] ์นํฐํธ ๋ก๋๋ฅผ ์ด์ฉํ์ฌ ํฐํธ๊ฐ ๋ก๋ฉ๋๋ ๋์์ ์ ์ดํจ
> * ๐ [Typekit ์นํฐํธ ๋ก๋](https://github.com/typekit/webfontloader)
**[โฌ ๋ชฉ์ฐจ๋ก](#๋ชฉ์ฐจ)**
## CSS
> **๋ ธํธ:** ๋๋ค์์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ด ๋ฐ๋ฅด๋ [CSS ๊ฐ์ด๋๋ผ์ธ](https://cssguidelin.es/)๊ณผ [Sass ๊ฐ์ด๋๋ผ์ธ](https://sass-guidelin.es/) ์ ์ดํด๋ณด์ธ์. ๋ง์ฝ ๋ชจ๋ฅด๋ CSS ์์ฑ ๊ฐ์ด ์๋ค๋ฉด, [CSS ๋ ํผ๋ฐ์ค](http://cssreference.io/)๋ฅผ ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋๋ค. ๋ํ CSS์ ์ผ๊ด์ฑ์ ์ํ [์ฝ๋ ๊ฐ์ด๋](http://codeguide.co/)๋ ์ฝ์ด๋ณด๊ธฐ ๋ฐ๋๋๋ค.
* [ ] **๋ฐ์ํ ์น ๋์์ธ:** ![High][high_img] ์น์ฌ์ดํธ๊ฐ ๋ฐ์ํ์ผ๋ก ๋์์ธ ๋จ
* [ ] **CSS Print:** ![Medium][medium_img] ํ๋ฆฐํฐ๊ฐ ์ฌ์ฉํ print ์คํ์ผ์ํธ ๊ฐ์ด ์ค์ ๋์๊ณ , ๊ฐ๊ฐ์ ํ์ด์ง๋ง๋ค ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋จ
* [ ] **CSS ์ ์ฒ๋ฆฌ๊ธฐ:** [](https://github.com/thedaviddias/Front-End-Checklist/blob/master/data/images/priority/low.svg) ๋์์ธ์ CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ด์ฉํจ (์ถ์ฒ: [Sass](http://sass-lang.com/), [Less](http://lesscss.org/), [Stylus](http://stylus-lang.com/)).
* [ ] **๊ณ ์ ID๊ฐ:** ![High][high_img] ์ฌ๋ฌ ๊ฐ์ ID ๊ฐ์ด ์ฌ์ฉ๋ ๊ฒฝ์ฐ, ๊ฐ๊ฐ์ ID ๊ฐ์ ํ์ด์ง ๋ด์์ ๊ณ ์ ํด์ผํจ
* [ ] **Reset CSS:** ![High][high_img] ์ต์ ์ Reset CSS (reset, normalize ํน์ reboot) ์ด ์ฌ์ฉ๋จ *(Bootstrap์ด๋ Foundation ๊ฐ์ CSS ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์๋ง๋ Normalize๊ฐ ์ด๋ฏธ ํฌํจ๋์ด ์์ ๊ฒ์)*> * ๐ [Reset.css](https://meyerweb.com/eric/tools/css/reset/)
> * ๐ [Normalize.css](https://necolas.github.io/normalize.css/)
> * ๐ [Reboot](https://getbootstrap.com/docs/4.0/content/reboot/)* [ ] **JS ์ ๋์ฌ:** ![Low][low_img] **js**-๋ก ์์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ด์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ํด๋์ค๋ ID๋ CSS ํ์ผ์์ ์คํ์ผ๋ง ๋์ง ์๋๋ก ํจ
```html