๊ฒ์ ์ ๋ ฅ์ฐฝ ์น์ฌ์ดํธ ๊ฒ์ ํ์ง ๊ฐ์ : HTML5 type="search" ์์ฑ์ผ๋ก
-๋ธ๋ก๊ทธ ๊ฒ์์ฐฝ, HTML5, ์ ๊ทผ์ฑ, SEO: ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ๋์ ๊ฒ์์ฐฝ์ type="search"๋ก ์ต์ ํํ์ฌ ๋ชจ๋ฐ์ผ UX ๊ฐ์ , ๊ฒ์ ์๋ ์์ฑ ํ์ฑํ, ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ๊ธฐ๋ฐ SEO ๊ฐํ ๋ฐฉ๋ฒ ์๋ด
๊ฒ์ ์ ๋ ฅ์ฐฝ ์ต์ ํ์ ์ค์์ฑ: type="search"๋ ๋จ์ํ ํ ์คํธ ์์๊ฐ ์๋๋ค
์น์ฌ์ดํธ์ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ฌ์ฉ์(User)๊ฐ ์ํ๋ ์ ๋ณด๋ฅผ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฐพ๊ฒ ํด์ฃผ๋ ํต์ฌ์ ์ธ ๊ฒ์ดํธ์จ์ด์ ๋๋ค. ๋ง์ ์น ๊ฐ๋ฐ์๋ค์ด ๋จ์ํ input type="text"๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํ์ง๋ง, ์ด๋ HTML5 ํ์ค์ด ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ์ต์ ํ ๊ธฐ๋ฅ์ ๋์น๋ ์ค์์ ๋๋ค.
HTML5 ํ์ค์ ๊ฒ์ ๊ธฐ๋ฅ์ ํนํ๋ input type="search" ์์ฑ์ ๋ช ์์ ์ผ๋ก ์ ๊ณตํ๋ฉฐ, ์ด ์์ฑ์ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ ์ฉํ๋ ๊ฒ์ ์ฌ์ฉ์ ๊ฒฝํ(UX), ์น ์ ๊ทผ์ฑ(Accessibility), ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก SEO(๊ฒ์ ์์ง ์ต์ ํ)์ ์ง์ ์ ์ธ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
input type="search"๋ฅผ ์ ์ฉํ๋ ๊ฒ์ HTML5 ํ์ค์ ๋ฐ๋ฅธ ๊ถ์ฅ ์ฌํญ์ด๋ฉฐ, ์ฌ์ฉ์ ๊ฒฝํ(UX)๊ณผ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ ํ์ฉ ์ธก๋ฉด์์ ๋ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ์คํจ ๋ฐ ์ผ๋ถ ๊ฐ๋ฐ์๋ค์ด ๋ฌด์ฌ์ฝ ์ฌ์ฉํ๋ ํ๊ทธ์ ๋ฌธ์ ์ , ๊ทธ๋ฆฌ๊ณ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ input type="search"๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ์ ํ์์ ์ด๋ฉฐ ์น์ฌ์ดํธ ํ์ง์ ์ด๋ป๊ฒ ํฅ์์ํค๋์ง ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
type="search" ์ ์ฉ์ด ์ ๊ณตํ๋ ๊ฒฐ์ ์ ์ธ ์ด์ ๋ค
์ผ๋ฐ์ ์ธ input type="text"๋ฅผ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, type="search"๋ ๊ฒ์ ๊ธฐ๋ฅ์ ํนํ๋ ๋ค์๊ณผ ๊ฐ์ ์ฐจ๋ณํ๋ ๊ธฐ๋ฅ์ ๋ธ๋ผ์ฐ์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉ์๊ฐ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ฌ์ฉํ๋ ๊ณผ์ ์ ๊ฐ์ํํ๊ณ ํจ์จ์ฑ์ ๊ทน๋ํํฉ๋๋ค.

์ฌ์ฉ์ ๊ฒฝํ(UX) ์ธก๋ฉด์ ์ด์
| ์ด์ | ์ค๋ช | UX ํฅ์ ํจ๊ณผ |
| UX ๊ฐ์ (๋ชจ๋ฐ์ผ ํค๋ณด๋) | ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ํค๋ณด๋ ๋ ์ด์์์ด ์๋์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ Enter ๋๋ Return ํค ๋์ ๋๋ณด๊ธฐ ์์ด์ฝ์ด ์๋ 'Search' ํค๋ฅผ ํ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๊ฒ์ ํ์๋ฅผ ๋ช ํํ๊ฒ ์๋ดํฉ๋๋ค. ์ด๋ ๋ชจ๋ฐ์ผ ์ฌ์ฉ์๊ฐ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ๋ ์ง๊ด์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. | ๋ชจ๋ฐ์ผ ์ฌ์ฉ์์ ์ดํ๋ฅ ๊ฐ์ ๋ฐ ๊ฒ์ ์ฑ๊ณต๋ฅ ์ฆ๊ฐ |
| ์ ๋ ฅ ์ง์ฐ๊ธฐ ๋ฒํผ (Clear Button) | ์ผ๋ถ ์ต์ ๋ธ๋ผ์ฐ์ (ํนํ Safari, Chrome)๋ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ํ ์คํธ๊ฐ ์ ๋ ฅ๋ ๋ ์์ 'X' ๋ฒํผ์ ์๋์ผ๋ก ํ์ํฉ๋๋ค. ์ฌ์ฉ์๋ ์ด ๋ฒํผ์ ๋ง์ฐ์ค ํด๋ฆญ ํ ๋ฒ, ๋๋ ํฐ์น ํ ๋ฒ์ผ๋ก ๋ด์ฉ์ ์ง์ฐ๊ณ ์๋ก์ด ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค. | ๋ถํ์ํ Backspace ๋๋ Delete ํค ์ฌ์ฉ ๊ฐ์, ์ ๋ ฅ ํธ์์ฑ ์ฆ๋ |
| ์๋ ์์ฑ(Auto-complete) ๋ฐ ๊ธฐ๋ก ํ์ฉ | ์ฌ์ฉ์๊ฐ ์ด์ ์ ํด๋น ์ฌ์ดํธ๋ ๋ค๋ฅธ ์ฌ์ดํธ์์ ๊ฒ์ํ๋ ๊ธฐ๋ก์ ๋ฐํ์ผ๋ก ์ ๋ ฅ ๋ด์ฉ์ ์๋์ผ๋ก ์ ์ํ์ฌ ์ ๋ ฅ ์๋๋ฅผ ํ๊ธฐ์ ์ผ๋ก ๋์ ๋๋ค. ์ด๋ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ํตํ ์ฌ๋ฐฉ๋ฌธ ์ฌ์ฉ์์๊ฒ ํนํ ์ ์ฉํฉ๋๋ค. | ๊ฒ์์ด ์ ๋ ฅ ์๊ฐ ๋จ์ถ, ๋น ๋ฅธ ์ ๋ณด ์ ๊ทผ ๊ฐ๋ฅ |
| ๋งฅ๋ฝ์ ์คํ์ผ๋ง (Contextual Styling) | ๋ธ๋ผ์ฐ์ ์ ์ด์์ฒด์ (OS)๋ type="search" ํ๋๋ฅผ ํด๋น ํ๊ฒฝ์ ๊ฒ์ ์ ๋ ฅ์ฐฝ ๋์์ธ ๊ฐ์ด๋๋ผ์ธ์ ๋ง๊ฒ ์๋์ผ๋ก ์คํ์ผ๋งํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด๋ ์น์ฌ์ดํธ๊ฐ OS์ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ฒ ๋์ต๋๋ค. | ๋์์ธ ์ผ๊ด์ฑ ์ ์ง ๋ฐ ๋ค์ดํฐ๋ธ ์ฑ ๊ฐ์ ์ฌ์ฉ๊ฐ ์ ๊ณต |
์น ์ ๊ทผ์ฑ(Accessibility) ๋ฐ SEO ์ธก๋ฉด์ ์ด์
type="search"๋ ๋จ์ํ ์๊ฐ์ ๊ธฐ๋ฅ๋ฟ๋ง ์๋๋ผ, ๋ณด์กฐ ๊ธฐ์ ์ฌ์ฉ์์ ๊ฒ์ ์์ง ํฌ๋กค๋ฌ์๊ฒ๋ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ๊ธฐ๋ฅ์ ์ ์๋ฅผ ๋ช ํํ ํ์ฌ ์น ์ ๊ทผ์ฑ๊ณผ SEO์ ์ง์ ๊ธฐ์ฌํฉ๋๋ค.
| ์ด์ | ์ค๋ช | ์ ๊ทผ์ฑ/SEO ํจ๊ณผ |
| ์คํฌ๋ฆฐ ๋ฆฌ๋์ ๋ช ํํ ์ธ์ง | ์คํฌ๋ฆฐ ๋ฆฌ๋์ ๊ฐ์ ๋ณด์กฐ ๊ธฐ์ ์ ํด๋น ์ ๋ ฅ ํ๋๊ฐ ์ผ๋ฐ ํ ์คํธ๊ฐ ์๋ ๊ฒ์ ๊ธฐ๋ฅ์ ์ํ ๊ฒ์์ ๋ช ํํ๊ฒ ์ ๋ฌํฉ๋๋ค. ์คํฌ๋ฆฐ ๋ฆฌ๋๋ ์ด ํ๋๋ฅผ "Search box" ๋๋ "๊ฒ์ ์ ๋ ฅ ํ๋"๋ก ์ธ์ํ๊ณ ์ฌ์ฉ์์๊ฒ ์๋ฆฝ๋๋ค. | ์น ์ ๊ทผ์ฑ ํฅ์, ์๊ฐ ์ฅ์ ์ฌ์ฉ์์๊ฒ ํ์์ |
| ARIA Role ์๋ ๋ถ์ฌ | type="search"๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋์ผ๋ก ARIA role="searchbox"๋ฅผ ๋ถ์ฌํ๊ฑฐ๋ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค (๋ช ์์ ์ผ๋ก role="search"๋ฅผ ๋ถ๋ชจ ์์์ ์ถ๊ฐํ๋ฉด ๋์ฑ ์ข์ต๋๋ค). ์ด ์ญํ (Role)์ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์๋งจํฑ(์๋ฏธ๋ก ์ ) ์ค์์ฑ์ ๋์ ๋๋ค. | ์๋งจํฑ HTML5 ์ค์, ๋ณด์กฐ ๊ธฐ์ ๊ณผ์ ํธํ์ฑ ๊ทน๋ํ |
| SEO ๋ฐ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ์ค๋น | ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ HTML5 ํ์ค์ ์ ๊ทน์ ์ผ๋ก ํด์ํฉ๋๋ค. type="search"์ ์ฌ์ฉ์ ํด๋น ํ๋๊ฐ ์ฌ์ดํธ ๋ด ๊ฒ์ ๊ธฐ๋ฅ์ ํต์ฌ ์์์์ ์๋ ค์ฃผ์ด, ํฅํ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ๋งํฌ์ (์: WebSite ์คํค๋ง์ potentialAction ์์ฑ์ ํตํ ์ฌ์ดํธ๋งํฌ ๊ฒ์์ฐฝ) ๊ตฌํ ์์๋ ๊ธฐ๋ฐ์ด ๋ฉ๋๋ค. | ๊ฒ์ ์์ง์ ์ฌ์ดํธ ๊ธฐ๋ฅ ์ดํด๋ ํฅ์, SEO ๊ธฐ๋ฐ ๊ฐํ |
HTML ์ฝ๋ ์ ์ฉ ๋ฐฉ๋ฒ ๋ฐ autocomplete ์ต์ ํ
type="search"๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ผ์ธ ์ ๋๋ก ๊ฐ๋จํฉ๋๋ค. ๊ธฐ์กด์ input type="text"๋ฅผ ์ฐพ์ type="search"๋ก๋ง ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค. ํ์ง๋ง ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ๊ธฐ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด์๋ autocomplete ์์ฑ์ ์ถ๊ฐํ๋ ๊ฒ์ด ํ์์ ๋๋ค.

๊ธฐ๋ณธ ์ฝ๋ ์ ์ฉ (๋ณ๊ฒฝ ์ /ํ ๋น๊ต)
1. ๋ณ๊ฒฝ ์ : ์ผ๋ฐ ํ ์คํธ ์ ๋ ฅ (type="text")
form action="/search" method="get"
label for="search-input"์ฌ์ดํธ ๊ฒ์/label
input type="text" id="search-input" name="q" placeholder="์ํ๋ ํค์๋๋ฅผ ์
๋ ฅํ์ธ์"
button type="submit"๊ฒ์/button
/form
2. ๋ณ๊ฒฝ ํ: ๊ฒ์ ํ์ ์ ์ฉ (type="search")
form action="/search" method="get"
label for="search-input"์ฌ์ดํธ ๊ฒ์/label
input type="search" id="search-input" name="q" placeholder="์ํ๋ ํค์๋๋ฅผ ์
๋ ฅํ์ธ์"
button type="submit"๊ฒ์/button
/form
3. ํ์ ์ถ๊ฐ ์ต์ ํ: autocomplete ์์ฑ ํ์ฉ
๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ฌ์ฉ์ฑ์ ์๋ฒฝํ๊ฒ ๋ง๋ค๋ ค๋ฉด ๋ธ๋ผ์ฐ์ ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ๋ช ์์ ์ผ๋ก ํ์ฑํํด์ผ ํฉ๋๋ค.
form action="/search" method="get"
label for="search-input"์ฌ์ดํธ ๊ฒ์/label
input
type="search"
id="search-input"
name="q"
placeholder="๊ฒ์์ด๋ฅผ ์
๋ ฅํ์ธ์"
autocomplete="on"
button type="submit"๊ฒ์/button
/form
- autocomplete="on": ๋ธ๋ผ์ฐ์ ์๊ฒ ์ฌ์ฉ์ ๊ฒ์ ๊ธฐ๋ก์ ๋ฐํ์ผ๋ก ์๋ ์์ฑ ๊ธฐ๋ฅ์ ํ์ฑํํ๋๋ก ๋ช ์์ ์ผ๋ก ์ง์ํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํค๋ ์ค์ํ ์์ฑ์ ๋๋ค.
3. ์ ๊ทผ์ฑ์ ์ํ ์ถ๊ฐ ๊ถ์ฅ ์ฌํญ: role="search"
ํผ ์ ์ฒด(๊ฒ์ ์์ญ)๊ฐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ํํจ์ ๋ณด์กฐ ๊ธฐ์ ์ ๋์ฑ ๋ช ํํ๊ฒ ์๋ฆฌ๊ธฐ ์ํด, form ๋๋ ์ด๋ฅผ ๊ฐ์ธ๋ ์์์ role="search" ์์ฑ์ ์ถ๊ฐํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
form action="/search" method="get" role="search"
/form
- role="search": ์ด ๋๋๋งํฌ ์ญํ (Landmark Role)์ ํด๋น ์์ญ์ด ์น์ฌ์ดํธ ๋ด์์ ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ฃผ์ ์น์ ์์ ๋ช ์ํ์ฌ, ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ํด๋น ์์ญ์ผ๋ก ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ์น ์ ๊ทผ์ฑ์ ํต์ฌ ์์์ ๋๋ค.
type="search"์ ์ ์ฌ ํค์๋ ์์ฑ ํ์ฅ: placeholder, aria-label ๋ฑ
๊ฒ์ ์ ๋ ฅ์ฐฝ์ ๋จ์ํ type="search"๋ก ๋ฐ๊พธ๋ ๊ฒ ์ธ์๋, ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ์น ์ ๊ทผ์ฑ์ ๋ณด๊ฐํ๋ ๋ค์ํ HTML ์์ฑ๋ค์ด ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฌ ํค์๋ ์์ฑ๋ค์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ํ์ง์ด ์๋ฒฝํด์ง๋๋ค.
1. placeholder ์์ฑ: ๊ฒ์ ์๋์ ๋ช ํํ
placeholder๋ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ด ๋น์ด์์ ๋ ์ฌ์ฉ์์๊ฒ ๋ฌด์์ ์ ๋ ฅํด์ผ ํ๋์ง ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด๋ ๊ฒ์ ์ ๋ ฅ์ฐฝ ์ฌ์ฉ์ ์ฒซ ๋จ๊ณ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฒฐ์ ์ง๋ ์ค์ํ ์์์ ๋๋ค.
- ์ ์ฉ ์: placeholder="ํค์๋, ํ๊ทธ, ์ํ๋ช ์ ์ ๋ ฅํ์ธ์"
- SEO UX ์ฐ๊ด์ฑ: ๊ตฌ์ฒด์ ์ธ ๊ฒ์์ด ์์๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฌ์ฉ์๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ๋๋ก ์ ๋ํ๊ณ , ์ด๋ ์ฌ์ดํธ ๋ด ๊ฒ์ ๊ฒฐ๊ณผ์ ์ง์ ๋์ฌ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ์ ๊ธฐ์ฌํฉ๋๋ค.
2. name ์์ฑ: ์๋ฒ ์ฒ๋ฆฌ์ SEO ์ฐ๊ด์ฑ
name ์์ฑ์ ํผ ๋ฐ์ดํฐ๊ฐ ์๋ฒ๋ก ์ ์ก๋ ๋ ์ฌ์ฉ๋๋ ๋ณ์ ์ด๋ฆ์ ๋๋ค (์: name="q"). ๊ตฌ๊ธ ๊ฒ์ ์์ง ์ญ์ URL ํ๋ผ๋ฏธํฐ(์: ?q=๊ฒ์์ด)๋ฅผ ํตํด ์ฌ์ดํธ ๋ด ๊ฒ์ ๊ธฐ๋ฅ์ ํ์ฉ๋๋ฅผ ํ์ ํ ์ ์์ต๋๋ค.
- ์ ์ฉ ์: name="q" ๋๋ name="query"
- SEO ์ฐ๊ด์ฑ: ํ์ค์ ์ธ q (query) ์ฌ์ฉ์ ์๋ฒ ๋ถ์ ๋ฐ ๊ฒ์ ์์ง์ ์ดํด๋๋ฅผ ๋์ด๋ ๋ฐ ๊ฐ์ ์ ์ธ ๋์์ ์ค๋๋ค.
3. aria-label ๋๋ label ํ๊ทธ: ์น ์ ๊ทผ์ฑ์ ๊ทผ๊ฐ
์์ ์ธ๊ธํ๋ฏ์ด label ํ๊ทธ๋ฅผ for ์์ฑ์ ์ด์ฉํด input๊ณผ ์ฐ๊ฒฐํ๋ ๊ฒ์ ์น ์ ๊ทผ์ฑ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ๋๋ค. ๋ง์ฝ ๋์์ธ์์ ์ด์ ๋ก label์ ์จ๊ฒจ์ผ ํ๋ค๋ฉด, aria-label ์์ฑ์ ์ฌ์ฉํ์ฌ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ๋ชฉ์ ์ ์คํฌ๋ฆฐ ๋ฆฌ๋์ ๋ช ์ํด์ผ ํฉ๋๋ค.
- ์ ์ฉ ์: input type="search" aria-label="์ฌ์ดํธ ํตํฉ ๊ฒ์ ์ ๋ ฅ์ฐฝ"
- ์น ์ ๊ทผ์ฑ ํต์ฌ: ์๊ฐ์ ์ผ๋ก๋ ๋ณด์ด์ง ์๋๋ผ๋, ์คํฌ๋ฆฐ ๋ฆฌ๋์๊ฒ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ด ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง ๋ช ํํ๊ฒ ์ ๋ฌํจ์ผ๋ก์จ ์น ์ ๊ทผ์ฑ ํ์ค์ ์ค์ํฉ๋๋ค.
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ์ ์ฉ ๋ฐฉ๋ฒ
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์์๋ ๊ฒ์ ์์ญ์ด ๋์ ์ผ๋ก ์์ฑ๋๋ฏ๋ก, HTML์ ์ง์ ์์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ DOM ์์ฑ ์ดํ ์คํ๋๋๋ก ์ฝ์
ํ๋ฉด, SEO์ ์ ํฉํ ๊ตฌ์กฐ์ ๊ฒ์ ์
๋ ฅ์ฐฝ์ ์๋์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
ํด๋น ์ฝ๋๋ head ๋๋ /html ๋ฐ๋ก ์ ์์ญ์ ๋ฃ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.
script
document.addEventListener("DOMContentLoaded", () = {
const optimizeSearchInput = (element) = {
if (!element || element.getAttribute('data-optimized') === 'true') {
return false;
}
element.type = 'search';
element.setAttribute('inputmode', 'search');
element.setAttribute('aria-label', '๋ธ๋ก๊ทธ ํตํฉ ๊ฒ์ ์
๋ ฅ์ฐฝ');
element.setAttribute('autocomplete', 'on');
const form = element.closest('form');
if (form && !form.hasAttribute('role')) {
form.setAttribute('role', 'search');
}
element.setAttribute('data-optimized', 'true');
return true;
};
const observer = new MutationObserver((mutationsList) = {
mutationsList.forEach(mutation = {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(node = {
if (node.nodeType === 1) {
let searchInput = node.querySelector('.search input[type="text"]');
if (searchInput && optimizeSearchInput(searchInput)) {
return;
}
if (node.matches('.search input[type="text"]')) {
optimizeSearchInput(node);
return;
}
}
});
}
});
});
const initialInput = document.querySelector('.search input[type="text"]');
if (initialInput) {
optimizeSearchInput(initialInput);
}
observer.observe(document.body, { childList: true, subtree: true });
});
/script
type="search"์ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ์๋์ง ํจ๊ณผ
HTML5 ํ์ค์ ์ค์๋ ๊ฐ์ ์ ์ผ๋ก SEO ์ ์์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ตฌ๊ธ์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ์น ์ ๊ทผ์ฑ์ ํต์ฌ ๋ญํน ์์๋ก ์ผ๊ณ ์๊ธฐ ๋๋ฌธ์, type="search"๋ฅผ ํตํด ์ด ๋ ๊ฐ์ง ์์๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ๊ณง SEO๋ฅผ ๊ฐํํ๋ ํ์์ ๋๋ค.
1. ์ฌ์ฉ์ฑ ์ฆ์ง์ ํตํ ๊ฐ์ SEO ํจ๊ณผ
- ์ฒด๋ฅ ์๊ฐ ์ฆ๊ฐ:๊ฒ์ ์ ๋ ฅ์ฐฝ์ ํธ์์ฑ์ด ๋์์ง๋ฉด ์ฌ์ฉ์๋ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ ๋ณด๋ฅผ ์ฐพ๊ฒ ๋์ด ์ฌ์ดํธ์ ๋จธ๋ฌด๋ ์๊ฐ์ด ๊ธธ์ด์ง๋๋ค. ์ฒด๋ฅ ์๊ฐ ์ฆ๊ฐ๋ ๊ตฌ๊ธ์๊ฒ "์ด ์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์๊ฒ ์ ์ฉํ๋ค"๋ ๊ธ์ ์ ์ธ ์ ํธ๋ก ์์ฉํฉ๋๋ค.
- ์ดํ๋ฅ ๊ฐ์: ๋ชจ๋ฐ์ผ ํค๋ณด๋ ์ต์ ํ์ ์ ๋ ฅ ์ง์ฐ๊ธฐ ๋ฒํผ ๋๋ถ์ ์ฌ์ฉ์๊ฐ ๊ฒ์ ๊ณผ์ ์์ ๋ถํธํจ์ ๋๊ปด ์ดํํ๋ ๋น์จ์ด ์ค์ด๋ญ๋๋ค. ๋ฎ์ ์ดํ๋ฅ ์ SEO ๋ญํน์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
2. Schema Markup์ ํตํ ์ง์ SEO ๊ธฐ์ฌ
type="search"๋ฅผ ์ ์ฉํ ํ, ํ ๋จ๊ณ ๋ ๋์๊ฐ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ(Schema Markup)๋ฅผ ํ์ฉํ๋ฉด SEO์ ์ง์ ์ ์ธ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๊ตฌ๊ธ์ ์ฌ์ดํธ๋งํฌ ๊ฒ์์ฐฝ(Sitelinks Searchbox) ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์๋ WebSite ์คํค๋ง๋ฅผ ์ ์ํ๊ณ , potentialAction ์์ฑ์ ์ฌ์ดํธ ๋ด ๊ฒ์ ๊ธฐ๋ฅ์ URL ํจํด์ ๋ช ์ํด์ผ ํฉ๋๋ค. type="search"์ ์ฌ์ฉ์ ์ด๋ฌํ ์คํค๋ง ๋งํฌ์ ์ ์๋งจํฑ(์๋ฏธ)์ ๋์ฑ ํ๊ณ ํ ํด์ค๋๋ค.
์ฌ์ดํธ๋งํฌ ๊ฒ์์ฐฝ ์์:
๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง์์ ๋ด ์ฌ์ดํธ ์ฃผ์ ์๋์ ๋ฐ๋ก ๊ฒ์ ์ ๋ ฅ์ฐฝ์ด ๋ํ๋๊ฒ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๊ตฌ๊ธ ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง์์ ๋ฐ๋ก ๋ด ์ฌ์ดํธ ๋ด์ ์ฝํ ์ธ ๋ฅผ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ ๋ ฅํ์ฌ ์ฐพ์ ์ ์๊ฒ ๋ฉ๋๋ค.
์์ type="search" ๋ณ๊ฒฝ์ด ๊ฐ์ ธ์ค๋ ๊ฑฐ๋ํ ํจ๊ณผ
input type="search"๋ก์ ์ ํ์ ์ฝ๋ ํ ์ค๋ง ๋ฐ๊พธ๋ ์ฌ์ํ ์์ ์ผ๋ก ๋ณด์ผ ์ ์์ง๋ง, ์ด๋ HTML5 ํ์ค์ ์ค์ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํญ ํฅ์์ํค๋ฉฐ ์น ์ ๊ทผ์ฑ๊น์ง ํ๋ณดํ๋ ๋ค๊ฐ์ ์ธ ์ต์ ํ ์ ๋ต์ ํต์ฌ์ ๋๋ค.
๋ชจ๋ฐ์ผ ์ฌ์ฉ์์ ๊ฒ์ ์ ๋ ฅ์ฐฝ ํธ์์ฑ, ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๋ช ํํ ๊ธฐ๋ฅ ์ ์, ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก SEO ๋ญํน์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ์ด ๊ฒ์ ์ ๋ ฅ์ฐฝ์ ์ฌ์ํ ๋ณ๊ฒฝ์ ํตํด ์น์ฌ์ดํธ์ ํ์ง์ ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค.
๋น์ ์ ์น์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ์ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ด ์์ง๋ type="text"๋ผ๋ฉด, ์ง๊ธ ๋ฐ๋ก type="search"๋ก ์ ํํ๊ณ autocomplete="on", role="search" ๋ฑ์ ์์ฑ์ ์ถ๊ฐํ์ฌ ์ต์ ์ ์น ํ๊ฒฝ์ ๊ตฌ์ถํ์๊ธธ ๊ฐ๋ ฅํ๊ฒ ๊ถ์ฅํฉ๋๋ค.
Q1. input type="search"๋ type="text"์ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?
A1. type="search"๋ ๋จ์ํ ํ ์คํธ ์ ๋ ฅ ์์๊ฐ ์๋๋ผ, ๊ฒ์ ๊ธฐ๋ฅ์ ํนํ๋ HTML5 ํ์ค ์์ฑ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฒ์์ฐฝ์์ ์ธ์ํด ๋ชจ๋ฐ์ผ ํค๋ณด๋์ ๊ฒ์ ์ ์ฉ ๋ฒํผ์ ํ์ํ๊ณ , ์๋ ์์ฑ ๋ฐ ์ ๋ ฅ ์ง์ฐ๊ธฐ ๋ฒํผ(X)์ ์ง์ํฉ๋๋ค. ๋ํ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฑ ๋ณด์กฐ ๊ธฐ์ ์ด ์ด๋ฅผ ๊ฒ์ ์ ๋ ฅ์ฐฝ์ผ๋ก ์ ํํ ์ธ์ํ๋ฏ๋ก ์ ๊ทผ์ฑ๊ณผ SEO์ ๋ชจ๋ ์ ๋ฆฌํฉ๋๋ค.
Q2. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์์๋ HTML์ ์ง์ ์์ ํ ์ ์๋๋ฐ, type="search"๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ๋์?
A2. ํฐ์คํ ๋ฆฌ์ ๊ฒ์ ์
๋ ฅ์ฐฝ์ ๋์ ์ผ๋ก ์์ฑ๋๋ฏ๋ก HTML ํธ์ง๊ธฐ์์ ์ง์ ์์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ DOMContentLoaded ์ด๋ฒคํธ ์ดํ ์คํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ, ๊ธฐ์กด type="text"๋ฅผ ์๋์ผ๋ก type="search"๋ก ๋ณํํ๋ฉด ๋ฉ๋๋ค. ์ด ์ฝ๋๋ /html ๋ฐ๋ก ์ ๋๋ head ์์ ์ฝ์
ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ์ ์
๋๋ค.
Q3. type="search"๋ฅผ ์ ์ฉํ๋ฉด SEO์๋ ๋์์ด ๋๋์?
A3. ๋ค. HTML5 ํ์ค์ ์ค์ํ๋ฉด ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ด ์ฌ์ดํธ ๊ตฌ์กฐ๋ฅผ ๋ ์ ํํ ์ดํดํ ์ ์์ต๋๋ค. ํนํ type="search"๋ WebSite ์คํค๋ง์ potentialAction ์์ฑ๊ณผ ์ฐ๋๋์ด ์ฌ์ดํธ๋งํฌ ๊ฒ์์ฐฝ(Sitelinks Searchbox) ๊ธฐ๋ฅ์ ํ์ฑํํ ์ ์๋ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ๊ฒ์ ์
๋ ฅ์ฐฝ์ ์ฌ์ฉ์ฑ ํฅ์์ ์ฒด๋ฅ ์๊ฐ ์ฆ๊ฐ์ ์ดํ๋ฅ ๊ฐ์๋ก ์ด์ด์ ธ ๊ฐ์ ์ ์ธ SEO ๊ฐํ ํจ๊ณผ๋ ์์ต๋๋ค.
Q4. ์ถ๊ฐ๋ก ์ ์ฉํ๋ฉด ์ข์ ์์ฑ์ด ์์๊น์?
A4. ๊ฒ์ ์
๋ ฅ์ฐฝ์๋ autocomplete="on" ์์ฑ์ ์ถ๊ฐํด ์๋ ์์ฑ์ ํ์ฑํํ๊ณ , aria-label์ ํตํด ์คํฌ๋ฆฐ ๋ฆฌ๋๊ฐ ๊ฒ์ ํ๋๋ฅผ ์ ํํ ์ธ์ํ๋๋ก ํด์ผ ํฉ๋๋ค. ๋ํ form ๋๋ ์์ ์์์ role="search"๋ฅผ ์ง์ ํ๋ฉด ์ ๊ทผ์ฑ์ด ํ์ธต ๊ฐํ๋ฉ๋๋ค. ์ด๋ฌํ ์์ฑ์ ๋ชจ๋ UX์ SEO ์์ธก์ ๊ธ์ ์ ์ธ ์ํฅ์ ์ค๋๋ค.
Q5. ๋จ์ํ type="search"๋ก ๋ฐ๊พธ๋ ๊ฒ๋ง์ผ๋ก ์ถฉ๋ถํ๊ฐ์?
A5. ๊ธฐ๋ณธ์ ์ธ UX ํฅ์์ ๊ฐ๋ฅํ์ง๋ง, ์๋ฒฝํ ๊ฒ์์ฐฝ ์ต์ ํ๋ฅผ ์ํด์๋ autocomplete, placeholder, aria-label ๋ฑ์ ๋ณด์กฐ ์์ฑ์ ํจ๊ป ์ ์ฉํด์ผ ํฉ๋๋ค. ๋ํ form ์ ์ฒด์ role="search"๋ฅผ ๋ช
์ํ๋ฉด ์น ์ ๊ทผ์ฑ๊ณผ ์๋งจํฑ ๊ตฌ์กฐ ๋ชจ๋ ๊ฐํ๋ฉ๋๋ค.