๋ณดํธ์ ํธํ์ฑ ๋ฌ์ฑ์ ์ํ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ๊ฐ์ด๋. ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฒฝํ๊ฒ ์๋ํ๋๋ก ๋ณด์ฅํ๋ ๊ธฐ์ ๊ณผ ์ ๋ต์ ๋ค๋ฃน๋๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ: ๋ณดํธ์ ํธํ์ฑ ๋ฌ์ฑํ๊ธฐ
์ค๋๋ ์ ๋ค์ํ ๋์งํธ ํ๊ฒฝ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ์ฃผ์ ๋ธ๋ผ์ฐ์ ์์ ์ํํ๊ฒ ์๋ํ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ ๋ณดํธ์ ํธํ์ฑ์ ๊ตฌํํ๊ณ , ๋ถ์ผ์น๋ฅผ ์ต์ํํ๋ฉฐ, ์ฌ์ฉ ์ค์ธ ๋ธ๋ผ์ฐ์ ์ ๊ด๊ณ์์ด ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํ ์ ๋ต๊ณผ ๊ธฐ์ ์ ํ๊ตฌํฉ๋๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ๋ฌธ์ ์ดํดํ๊ธฐ
์น ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ ๋๋ง ์์ง๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌํ์ ๊ฐ์ง ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ (Chrome, Firefox, Safari, Edge ๋ฑ)์ ์กด์ฌ๋ก ์ธํด ๋ณต์กํฉ๋๋ค. ํ์ค์ด ์กด์ฌํ์ง๋ง, ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ด๋ฅผ ๋ค๋ฅด๊ฒ ํด์ํ ์ ์์ด ์น ํ์ด์ง๊ฐ ํ์๋๋ ๋ฐฉ์๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์คํ๋๋ ๋ฐฉ์์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ถ์ผ์น๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ํ๋ ์ ์์ต๋๋ค:
- ๋ ๋๋ง ์ฐจ์ด: ์์๊ฐ ๋ค๋ฅด๊ฒ ํ์๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ด์์๊ณผ ์๊ฐ์ ๋งค๋ ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค๋ฅ: ํ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค.
- ๊ธฐ๋ฅ ์ง์: ์ผ๋ถ ๋ธ๋ผ์ฐ์ ๋ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ด๋ CSS ์์ฑ์ ์ง์ํ์ง ์์ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ์ฐจ์ด: ๋์ผํ ์ฝ๋๋ผ๋ ๋ธ๋ผ์ฐ์ ์ ์ต์ ํ ๊ธฐ์ ์ ๋ฐ๋ผ ๋ ๋น ๋ฅด๊ฑฐ๋ ๋๋ฆฌ๊ฒ ์คํ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋ชจ๋ ํ๋ซํผ์์ ์ผ๊ด๋๊ณ ๊ธ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ์ ํํ๊ธฐ
์ ์๋ ค์ง ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ค์ํ ์ฒซ ๋จ๊ณ์ ๋๋ค. ์ธ๊ธฐ ์๋ ์ต์ ์ผ๋ก๋ React, Angular, Vue.js๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ๋ ์์ํฌ๋ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ํด ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ๋ธ๋ผ์ฐ์ ์ฐจ์ด ์ถ์ํ: ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์๋ฅผ ๊ธฐ๋ณธ์ ์ธ ๋ธ๋ผ์ฐ์ ๋ถ์ผ์น๋ก๋ถํฐ ๋ณดํธํ๋ ์ถ์ํ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค. ๋๋ถ๋ถ์ ์ผ๋ฐ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ: ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ชจ๋์ฑ์ ์ด์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฒ๊น ํ๋ ๋์ ํน์ ์ปดํฌ๋ํธ์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
- ํ๋ฐํ ์ปค๋ฎค๋ํฐ์ ์ง์: ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ๋ ํฌ๊ณ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด ๋๋ ํ๋ถํ ๋ฌธ์, ํํ ๋ฆฌ์ผ, ์ง์ ํฌ๋ผ์ ์ฐพ์ ์ ์์์ ์๋ฏธํฉ๋๋ค.
- ์ ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ ๋ฐ ๋ฒ๊ทธ ์์ : ํํ์ด ์ข์ ํ๋ ์์ํฌ๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ณ ์ต์ ๋ธ๋ผ์ฐ์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
ํ๋ ์์ํฌ๋ฅผ ์ ํํ ๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
- ์ปค๋ฎค๋ํฐ ์ง์: ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ๋ ๊ท์คํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๊ณ ๋ฌธ์ ํด๊ฒฐ์ ๋์์ ์ค๋๋ค.
- ๋ฌธ์: ํฌ๊ด์ ์ด๊ณ ์ ๊ด๋ฆฌ๋ ๋ฌธ์๋ ํ๋ ์์ํฌ์ ๊ทธ ๊ธฐ๋ฅ์ ์ดํดํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์ง์: ํ๋ ์์ํฌ๊ฐ ํ๊ฒ ๊ณ ๊ฐ์ด ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๋์ง ํ์ธํ์ญ์์ค. ํน์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ ์ธ๋ถ ์ ๋ณด๋ ํ๋ ์์ํฌ์ ๋ฌธ์๋ฅผ ํ์ธํ์ญ์์ค.
- ํ์ต ๊ณก์ : ํ์ ํ์ต ๊ณก์ ์ ๊ณ ๋ คํ์ญ์์ค. ์ผ๋ถ ํ๋ ์์ํฌ๋ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ณด๋ค ๋ฐฐ์ฐ๊ธฐ ์ฝ์ต๋๋ค.
์์: ์ง์ญ๋ณ ํ๋ ์์ํฌ ์ฑํ
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ์ ํ์ ์ง์ญ์ ์ ํธ๋์ ํธ๋ ๋์ ๋ฐ๋ผ ์ํฅ์ ๋ฐ์ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, React๋ ๋ถ๋ฏธ์ ์ ๋ฝ์์ ๋๋ฆฌ ์ธ๊ธฐ๊ฐ ์๋ ๋ฐ๋ฉด, Vue.js๋ ์์์์์ ์๋นํ ์ธ๊ธฐ๋ฅผ ์ป์์ต๋๋ค. ์ด๋ฌํ ์ง์ญ์ ํธ๋ ๋๋ฅผ ์ดํดํ๋ฉด ํ๊ฒ ์์ฅ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ์ ๊ณผ ์ ๋ฌธ ์ง์์ ๋ง์ถฐ ๊ธฐ์ ์คํ์ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ ๋ฌ์ฑ์ ์ํ ๊ธฐ์
๊ฐ๋ ฅํ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ํน์ ๊ธฐ์ ์ ๊ตฌํํด์ผ ํฉ๋๋ค:
1. ํด๋ฆฌํ ์ฌ์ฉํ๊ธฐ
ํด๋ฆฌํ(Polyfill)์ ์ค๋๋ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ฝ๋ ์กฐ๊ฐ์
๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ง์์ 'ํ์'๋ฅผ ๋ฉ์์ค๋๋ค. ์๋ฅผ ๋ค์ด, fetch
API(๋คํธ์ํฌ ์์ฒญ ์์ฑ์ฉ)๋ฅผ ์ง์ํ์ง ์๋ ์ค๋๋ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, fetch
ํด๋ฆฌํ์ ํฌํจํ ์ ์์ต๋๋ค.
์ธ๊ธฐ ์๋ ํด๋ฆฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Core-js: ๊ด๋ฒ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ๋ค๋ฃจ๋ ํฌ๊ด์ ์ธ ํด๋ฆฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
- polyfill.io: ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ํ์ํ ํด๋ฆฌํ๋ง ์ ๊ณตํ์ฌ ๋ค์ด๋ก๋๋๋ ์ฝ๋์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ฃผ๋ ์๋น์ค์ ๋๋ค.
์์: Array.prototype.includes์ Core-js ์ฌ์ฉํ๊ธฐ
์ค๋๋ ๋ธ๋ผ์ฐ์ ์์ Array.prototype.includes
๋ฉ์๋(ES2016์์ ๋์
)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค์ ํด๋ฆฌํ์ ํฌํจํ ์ ์์ต๋๋ค:
import 'core-js/features/array/includes';
const myArray = [1, 2, 3];
console.log(myArray.includes(2)); // true
2. Babel๋ก ํธ๋์คํ์ผ๋งํ๊ธฐ
Babel์ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋(ES6+, ESNext)๋ฅผ ์ค๋๋ ๋ธ๋ผ์ฐ์ (ES5)๊ฐ ์ดํดํ ์ ์๋ ์ฝ๋๋ก ๋ณํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํธ๋์คํ์ผ๋ฌ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ๋ํ ๊ฑฑ์ ์์ด ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Babel์ ์ฝ๋๋ฅผ ๋ ๋์ ๋ฒ์์ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๋ ์ด์ ๋ฒ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํํ์ฌ ์๋ํฉ๋๋ค.
์์: ํ์ดํ ํจ์ ํธ๋์คํ์ผ๋ง
ํ์ดํ ํจ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค(ES6์์ ๋์ ). ๊ทธ๋ฌ๋ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ์ง์ํ์ง ์์ ์ ์์ต๋๋ค. Babel์ ํ์ดํ ํจ์๋ฅผ ์ ํต์ ์ธ ํจ์ ํํ์์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค:
์๋ณธ ์ฝ๋ (ES6)
const add = (a, b) => a + b;
ํธ๋์คํ์ผ๋ ์ฝ๋ (ES5)
var add = function add(a, b) {
return a + b;
};
3. CSS ๋ฒค๋ ํ๋ฆฌํฝ์ค
CSS ๋ฒค๋ ํ๋ฆฌํฝ์ค๋ ํน์ ๋ธ๋ผ์ฐ์ ์์ ์คํ์ ์ด๊ฑฐ๋ ๋นํ์ค CSS ์์ฑ์ ์ ์ฉํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํ๋ฆฌํฝ์ค๋ ํด๋น ์์ฑ์ด ํน์ ๋ธ๋ผ์ฐ์ ๋ฒค๋์ ๊ณ ์ ํจ์ ๋ํ๋
๋๋ค (์: Chrome ๋ฐ Safari์ฉ -webkit-
, Firefox์ฉ -moz-
, Internet Explorer ๋ฐ Edge์ฉ -ms-
).
๋ง์ CSS ์์ฑ์ด ํ์คํ๋์ด ๋ ์ด์ ํ๋ฆฌํฝ์ค๊ฐ ํ์ํ์ง ์์ง๋ง, ํนํ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ค๋ฃฐ ๋๋ ์ฌ์ ํ ์ด๋ฅผ ์ธ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์์: `transform` ์์ฑ์ -webkit- ์ฌ์ฉํ๊ธฐ
.element {
-webkit-transform: rotate(45deg); /* Safari ๋ฐ Chrome์ฉ */
-moz-transform: rotate(45deg); /* Firefox์ฉ */
-ms-transform: rotate(45deg); /* Internet Explorer์ฉ */
-o-transform: rotate(45deg); /* Opera์ฉ */
transform: rotate(45deg); /* ํ์ค ๊ตฌ๋ฌธ */
}
Autoprefixer์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด CSS ์ฝ๋์ ๋ฒค๋ ํ๋ฆฌํฝ์ค๋ฅผ ์ถ๊ฐํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค.
4. ๊ธฐ๋ฅ ๊ฐ์ง
๊ธฐ๋ฅ ๊ฐ์ง๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํน์ ๊ธฐ๋ฅ์ ์ง์ํ๋์ง ์ฌ์ฉํ๊ธฐ ์ ์ ํ์ธํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ฅผ ํตํด ํด๋น ๊ธฐ๋ฅ์ด ์๋ ๋ธ๋ผ์ฐ์ ์ ๋ํด ๋์ฒด ๊ตฌํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ฅ ์ง์์ ๊ฐ์งํ ์ ์์ต๋๋ค:
์์: ํฐ์น ์ง์ ๊ฐ์ง
if ('ontouchstart' in window || navigator.maxTouchPoints) {
// ํฐ์น ์ด๋ฒคํธ ์ง์๋จ
console.log('ํฐ์น ์ง์ ๊ฐ์ง๋จ.');
} else {
// ํฐ์น ์ด๋ฒคํธ ์ง์ ์๋จ
console.log('ํฐ์น ์ง์ ์๋จ.');
}
5. ๋ฐ์ํ ๋์์ธ
๋ฐ์ํ ๋์์ธ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ์ ์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๋ฐ์คํฌํฑ, ๋ ธํธ๋ถ, ํ๋ธ๋ฆฟ, ์ค๋งํธํฐ์ ํฌํจํ ๋ค์ํ ๊ธฐ๊ธฐ์์ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ฐ์ํ ๋์์ธ์ ์ํ ์ฃผ์ ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ์ฐํ ๊ทธ๋ฆฌ๋: ๊ณ ์ ๋ ํฝ์ ๋๋น ๋์ ๋ฐฑ๋ถ์จ ๊ธฐ๋ฐ ๋๋น ์ฌ์ฉ.
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ: ํ๋ฉด ํฌ๊ธฐ, ํด์๋, ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ค๋ฅธ CSS ์คํ์ผ ์ ์ฉ.
- ์ ์ฐํ ์ด๋ฏธ์ง: ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๋ง๊ฒ ๋น๋ก์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋๋ก ๋ณด์ฅ.
6. ์ ์ง์ ํฅ์
์ ์ง์ ํฅ์์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๊ธฐ๋ณธ์ ์ธ ์์ค์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋์์ ์ต์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ๋ ํฅ์๋ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ ์ ๋ ์ ๋ต์ ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ฐ๋ฅํ ๊ฐ์ฅ ๋์ ๊ณ ๊ฐ์ธต์๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์: CSS ๊ทธ๋ฆฌ๋์ ๋ํ ํด๋ฐฑ ์ ๊ณต
๋ ์ด์์์ CSS ๊ทธ๋ฆฌ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, CSS ๊ทธ๋ฆฌ๋๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด float๋ inline-block๊ณผ ๊ฐ์ ์ค๋๋ CSS ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํด๋ฐฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
7. ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์ ๊ฑธ์น ์ฒ ์ ํ ํ ์คํธ
๋ค์ํ ๋ธ๋ผ์ฐ์ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๋ ๊ฒ์ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ์์ ํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์ํ ์ด์ ์ฒด์ (Windows, macOS, Linux, Android, iOS)์ ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฒ์ ์์์ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํ ์คํธ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- BrowserStack: ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๊ธฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ ์คํธ ํ๋ซํผ์ ๋๋ค.
- Sauce Labs: BrowserStack๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ ์คํธ ํ๋ซํผ์ ๋๋ค.
- ๊ฐ์ ๋จธ์ : ๋ค์ํ ์ด์ ์ฒด์ ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ฐ์ถ ๊ฐ์ ๋จธ์ ์ ์ค์ ํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ: ๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ DOM, CSS, ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
8. ์ฝ๋ ๋ฆฐํ ๋ฐ ์คํ์ผ ๊ฐ์ด๋
์ฝ๋ ๋ฆฐํ ๋๊ตฌ(์: ์๋ฐ์คํฌ๋ฆฝํธ์ฉ ESLint, CSS์ฉ Stylelint)๋ฅผ ์ฌ์ฉํ๊ณ ์ผ๊ด๋ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ค์ํ๋ฉด ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ๋ฌธ์ ๋ก ์ด์ด์ง ์ ์๋ ์ผ๋ฐ์ ์ธ ์ค๋ฅ์ ๋ถ์ผ์น๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ฝ๋์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ํ๋๊ทธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
9. WAI-ARIA ์ ๊ทผ์ฑ
WAI-ARIA(Web Accessibility Initiative - Accessible Rich Internet Applications) ์ญํ , ์ํ, ์์ฑ์ ๊ตฌํํ๋ฉด ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ฃผ๋ก ์ ๊ทผ์ฑ์ ์ค์ ์ ๋์ง๋ง, ARIA ์์ฑ์ ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ๋ณด์กฐ ๊ธฐ์ ์ด ์ผ๊ด๋๊ฒ ํด์ํ ์ ์๋ ์๋ฏธ๋ก ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ํฅ์์ํค๋ ๋ฐ๋ ๋์์ด ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ปค์คํ ๋ฒํผ ์์์ `role="button"` ์์ฑ์ ์ฌ์ฉํ๋ฉด ํ์ค HTML ๋ฒํผ ์์๊ฐ ์๋๋๋ผ๋ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฐ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ด ์ด๋ฅผ ๋ฒํผ์ผ๋ก ์ธ์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๋ค์ํ ๋ธ๋ผ์ฐ์ ์ ํ๋ซํผ์์ ๋ ์ผ๊ด๋๊ณ ์ ๊ทผ์ฑ ๋์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค์ฌํญ
๊ธ๋ก๋ฒ ๊ณ ๊ฐ์ ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋๋ ๋ธ๋ผ์ฐ์ ์ฌ์ฉ, ์ธํฐ๋ท ์๋, ๊ธฐ๊ธฐ ์ ํ์ ์ง์ญ์ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
- ๋ธ๋ผ์ฐ์ ์ฌ์ฉ๋: Chrome์ด ์ ์ธ๊ณ์ ์ผ๋ก ์ง๋ฐฐ์ ์ธ ๋ธ๋ผ์ฐ์ ์ด์ง๋ง, Safari, Firefox, UC Browser์ ๊ฐ์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ ํน์ ์ง์ญ์์ ์๋นํ ์์ฅ ์ ์ ์จ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ธํฐ๋ท ์๋: ์ธํฐ๋ท ์๋๋ ์ ์ธ๊ณ์ ์ผ๋ก ํฌ๊ฒ ๋ค๋ฆ ๋๋ค. ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ง์ญ์์ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ ๋์ญํญ ํ๊ฒฝ์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ์ญ์์ค.
- ๊ธฐ๊ธฐ ์ ํ: ์ผ๋ถ ์ง์ญ์์๋ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๊ฐ ์ธํฐ๋ท์ ์ ์ํ๋ ์ฃผ์ ์๋จ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ ์ต์ ํ๋์ด ์๊ณ ์ ์ฌ์ ์ค๋งํธํฐ์์๋ ์ ์๋ํ๋์ง ํ์ธํ์ญ์์ค.
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ ์ ์ง๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ ์งํ๋ ๊ฒ์ ์ง์์ ์ธ ๊ณผ์ ์ ๋๋ค. ๋ค์์ ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
- ์ต์ ์ํ ์ ์ง: ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ฌ ๋ฒ๊ทธ ์์ ๋ฐ ํธํ์ฑ ๊ฐ์ ์ ์ด์ ์ ๋๋ฆฌ์ญ์์ค.
- ๋ธ๋ผ์ฐ์ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง: ํ๊ฒ ๊ณ ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ฌ์ฉ ํจํด์ ์ถ์ ํ์ฌ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค.
- ํ ์คํธ ์๋ํ: ์๋ํ๋ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํ ์คํธ๋ฅผ ๊ตฌํํ์ฌ ๊ฐ๋ฐ ๊ณผ์ ์ด๊ธฐ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ญ์์ค.
- ์ ๊ธฐ์ ์ธ ์ฝ๋ ๊ฒํ : ์ ๊ธฐ์ ์ธ ์ฝ๋ ๊ฒํ ๋ฅผ ํตํด ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์๋ณํ์ญ์์ค.
- ์ฑ์ฅ ๋ง์ธ๋์ ์์ฉ: ์น์ ๋์์์ด ์งํํฉ๋๋ค. ์๋ก์ด ๊ธฐ์ ๊ณผ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ์ ์ง์์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ ์ ์ํ์ญ์์ค.
๊ฒฐ๋ก
ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์์ ๋ณดํธ์ ํธํ์ฑ์ ๋ฌ์ฑํ๋ ค๋ฉด ์ ์คํ ๊ณํ, ์ฌ๋ฐ๋ฅธ ๋๊ตฌ, ๊ทธ๋ฆฌ๊ณ ํ ์คํธ์ ์ง์์ ์ธ ๊ฐ์ ์ ๋ํ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ์ด ๊ธ์์ ์ค๋ช ํ ๊ธฐ์ ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์๋ฒฝํ๊ฒ ์๋ํ๊ณ ์ ์ธ๊ณ ๊ณ ๊ฐ์๊ฒ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ์น ํ๊ฒฝ์ ๋์์์ด ์งํํ๋ฏ๋ก, ์ฅ๊ธฐ์ ์ผ๋ก ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด์๋ ์ต์ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ์ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ํ์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.