์๊ตฌ ์ ์ฅ์ API์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ก, ์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ, ์ฌ์ฉ๋ ์ถ์ , ์๊ตฌ ์ ์ฅ ์์ฒญ ๋ฐ ์ต์ ์น ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก์ ์ค์ ์ ๋ก๋๋ค.
์๊ตฌ ์ ์ฅ์ API: ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅ์ ํ ๋น๋ ์ดํด ๋ฐ ๊ด๋ฆฌ
์๊ตฌ ์ ์ฅ์ API๋ ์น ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ๋ด์์ ์ ์ฅ์ ํ ๋น๋์ ์์ฒญํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ํฌ๊ธฐ๊ฐ ์ ํ์ ์ด๊ณ ์๋ ์ ๊ฑฐ ๋์์ธ ์ฟ ํค๋ localStorage
์ ๊ฐ์ ๊ธฐ์กด ์ ์ฅ์ ๋ฉ์ปค๋์ฆ๊ณผ ๋ฌ๋ฆฌ, ์๊ตฌ ์ ์ฅ์ API๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ ๋ง์ ์ ์ฅ์ ์์ ์์ฒญํ๊ณ , ๊ฒฐ์ ์ ์ผ๋ก ์ ์ฅ์๊ฐ ์๊ตฌ์ ์ผ๋ก ์ ์ง๋๋๋ก ์์ฒญํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ ์ ์ฅ์ ์๋ ฅ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ์ง ์์์ ์๋ฏธํฉ๋๋ค.
์๊ตฌ ์ ์ฅ์๊ฐ ์ค์ํ ์ด์
์ค๋๋ ์ ์น์์ ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ(PWA)์ด ์ ์ ๋ณดํธํ๋๊ณ ์ฌ์ฉ์๊ฐ ํ๋ถํ ์คํ๋ผ์ธ ๊ฒฝํ์ ๊ธฐ๋ํจ์ ๋ฐ๋ผ, ์์ ์ ์ธ ์ ์ฅ์๋ ํ์์ ์ ๋๋ค. ๋ค์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํด ๋ณด์ธ์:
- ๋ฌธ์ ์คํ๋ผ์ธ ์ ๊ทผ: ๋ฌธ์ ํธ์ง ์ ํ๋ฆฌ์ผ์ด์ (์: Google Docs)์ ์ฌ์ฉ์๊ฐ ์ธํฐ๋ท ์ฐ๊ฒฐ ์์ด๋ ์์ ์ ๊ณ์ํ ์ ์๋๋ก ๋ฌธ์๋ฅผ ๋ก์ปฌ์ ์ ์ฅํด์ผ ํฉ๋๋ค.
- ๋ฏธ๋์ด ์ฌ์: Spotify๋ Netflix์ ๊ฐ์ ์คํธ๋ฆฌ๋ฐ ์๋น์ค๋ ์ฌ์ฉ์๊ฐ ์คํ๋ผ์ธ ์ฌ์์ ์ํด ์ฝํ ์ธ ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋๋ก ํ์ฉํ๋ฉฐ, ์๋นํ ์ ์ฅ ๊ณต๊ฐ์ ํ์๋ก ํฉ๋๋ค.
- ๊ฒ์ ๋ฐ์ดํฐ: ์จ๋ผ์ธ ๊ฒ์์ ๋ถ๋๋ฝ๊ณ ๋ฐ์์ฑ์ด ์ข์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ์ ์งํ ์ํฉ, ๋ ๋ฒจ ๋ฐ ์์ฐ์ ๋ก์ปฌ์ ์ ์ฅํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์บ์ฑ: ๋งคํ ์ ํ๋ฆฌ์ผ์ด์ (์: Google Maps, OpenStreetMap ๊ธฐ๋ฐ ์ฑ)๊ณผ ๊ฐ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์ ๋ค๋ฃจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋คํธ์ํฌ ์์ฒญ์ ์ค์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์บ์ฑํ๋ ์ด์ ์ ์ป์ต๋๋ค.
- ๋ก์ปฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ์ด๋ฏธ์ง ํธ์ง, ๋น๋์ค ํธ์ง๊ณผ ๊ฐ์ด ๋ง์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ณต์ ์ธ ๊ณ์ฐ์ ํผํ๊ธฐ ์ํด ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ ์ ์์ต๋๋ค.
์๊ตฌ ์ ์ฅ์๊ฐ ์์ผ๋ฉด ๊ธฐ๊ธฐ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ๋ ์ ์ฅ์๋ฅผ ์๋์ผ๋ก ์ง์ธ ์ ์์ผ๋ฉฐ, ์ด๋ ์ฌ์ฉ์์๊ฒ ๋ถ์พํ ๊ฒฝํ๊ณผ ์ ์ฌ์ ์ธ ๋ฐ์ดํฐ ์์ค์ ์ด๋ํ ์ ์์ต๋๋ค. ์๊ตฌ ์ ์ฅ์ API๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๊ตฌ ์ ์ฅ์๋ฅผ ์์ฒญํ๊ณ ์ ์ฅ์ ์ฌ์ฉ๋์ ์ถ์ ํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
์ ์ฅ์ ํ ๋น๋ ์ดํด
๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ ๊ฐ ์ค๋ฆฌ์ง(๋๋ฉ์ธ)์ ์ผ์ ๋์ ์ ์ฅ ๊ณต๊ฐ์ ํ ๋นํฉ๋๋ค. ์ด ์ ์ฅ์ ํ ๋น๋์ ๊ณ ์ ๋์ด ์์ง ์์ผ๋ฉฐ, ๊ธฐ๊ธฐ์ ์ด ์ ์ฅ ์ฉ๋, ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ๊ณต๊ฐ, ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ค์ ๊ณผ ๊ฐ์ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ์ ์ฅ์ API๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฅ์ ํ ๋น๋๊ณผ ์ด๋ฏธ ์ฌ์ฉ๋ ์ ์ฅ์ ์์ ์ฟผ๋ฆฌํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ ์ฅ์ ํ ๋น๋ ์ฟผ๋ฆฌ
navigator.storage
์ธํฐํ์ด์ค๋ ์ ์ฅ์ ๊ด๋ จ ์ ๋ณด์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํฉ๋๋ค. estimate()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฅ์ ํ ๋น๋๊ณผ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉํ ์ ์ฅ์ ์์ ์ถ์ ํ ์ ์์ต๋๋ค. ๋ฐํ๋๋ ๊ฐ์ฒด์๋ ๋ฐ์ดํธ ๋จ์๋ก ์ธก์ ๋ usage
๋ฐ quota
์์ฑ์ด ํฌํจ๋ฉ๋๋ค.
async function getStorageEstimate() {
if (navigator.storage && navigator.storage.estimate) {
const estimate = await navigator.storage.estimate();
console.log(`Usage: ${estimate.usage}`);
console.log(`Quota: ${estimate.quota}`);
console.log(`Percentage used: ${(estimate.usage / estimate.quota * 100).toFixed(2)}%`);
} else {
console.warn("Storage estimate API not supported.");
}
}
getStorageEstimate();
์์: estimate.usage
๊ฐ 10485760
(10MB)์ ๋ฐํํ๊ณ estimate.quota
๊ฐ 1073741824
(1GB)๋ฅผ ๋ฐํํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด 1GB ํ ๋น๋ ์ค 10MB๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ, ์ด๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฅ์์ ์ฝ 1%์ ํด๋นํจ์ ๋ํ๋
๋๋ค.
ํ ๋น๋ ๊ฐ ํด์
quota
๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉํ ์ ์๋ ์ต๋ ์ ์ฅ์ ์์ ๋ํ๋
๋๋ค. ๊ทธ๋ฌ๋ ์ด ํ ๋น๋์ด ๋ณด์ฅ๋๋ ๊ฒ์ ์๋์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธฐ๊ธฐ์ ์ ์ฅ ๊ณต๊ฐ์ด ๋ถ์กฑํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ ๋น๋์ ์ค์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฅ์๊ฐ ๋ณด๊ณ ๋ ํ ๋น๋๋ณด๋ค ์ ์ ์ํฉ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: ์ ์ฅ์ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ฅ์ ํ๊ณ์ ์ ๊ทผํ๋ฉด ์ฌ์ฉ์์๊ฒ ์ฌ์ ์ ์๋ฆฌ๋ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ์ธ์. ์ฌ์ฉ์๊ฐ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๊ฑฐ๋ ์ ์ฅ์ ํ๋์ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ ์ต์ (ํด๋นํ๋ ๊ฒฝ์ฐ)์ ์ ๊ณตํ์ธ์.
์๊ตฌ ์ ์ฅ์ ์์ฒญ
์ ํ๋ฆฌ์ผ์ด์
์ ์ถฉ๋ถํ ์ ์ฅ์ ํ ๋น๋์ด ์๋๋ผ๋, ๋ธ๋ผ์ฐ์ ๋ ์ ์ฅ์ ์๋ ฅ ํ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ง์ธ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด navigator.storage.persist()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๊ตฌ ์ ์ฅ์๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
async function requestPersistentStorage() {
if (navigator.storage && navigator.storage.persist) {
const isPersistent = await navigator.storage.persist();
console.log(`Persistent storage granted: ${isPersistent}`);
if (isPersistent) {
console.log("Storage will not be cleared automatically.");
} else {
console.warn("Persistent storage not granted.");
// Provide guidance to the user on how to enable persistent storage in their browser.
}
} else {
console.warn("Persistent storage API not supported.");
}
}
requestPersistentStorage();
persist()
๋ฉ์๋๋ ์๊ตฌ ์ ์ฅ์ ์์ฒญ์ด ์น์ธ๋์๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์๊ตฌ ์ ์ฅ์๋ฅผ ์น์ธํ๊ธฐ ์ ์ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์์ฒญํ ์ ์์ต๋๋ค. ์ ํํ ํ๋กฌํํธ๋ ๋ธ๋ผ์ฐ์ ๋ฐ ์ฌ์ฉ์ ์ค์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ฌ์ฉ์ ์ํธ์์ฉ ๋ฐ ๊ถํ
๋ธ๋ผ์ฐ์ ๊ฐ ์๊ตฌ ์ ์ฅ์๋ฅผ ์น์ธํ๋ ๊ฒฐ์ ์ ๋ค์์ ํฌํจํ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค:
- ์ฌ์ฉ์ ์ฐธ์ฌ: ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ์์ฃผ ์ํธ์์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ ์ ์ฅ์๋ฅผ ์น์ธํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ์ฌ์ฉ์ ์ค์ : ์ฌ์ฉ์๋ ์๊ตฌ ์ ์ฅ์ ์์ฒญ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ ์ดํ๋๋ก ๋ธ๋ผ์ฐ์ ์ค์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ชจ๋ ์์ฒญ์ ์๋์ผ๋ก ์น์ธํ๊ฑฐ๋, ๋ชจ๋ ์์ฒญ์ ๊ฑฐ๋ถํ๊ฑฐ๋, ๊ฐ ์์ฒญ์ ๋ํด ํ๋กฌํํธ๋ฅผ ํ์ํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ ๊ฐ๋ฅํ ์ ์ฅ์: ๊ธฐ๊ธฐ์ ์ ์ฅ ๊ณต๊ฐ์ด ์ฌ๊ฐํ๊ฒ ๋ถ์กฑํ ๊ฒฝ์ฐ, ์ฌ์ฉ์ ์ฐธ์ฌ๋ ์ค์ ๊ณผ ๊ด๊ณ์์ด ๋ธ๋ผ์ฐ์ ๊ฐ ์๊ตฌ ์ ์ฅ์ ์์ฒญ์ ๊ฑฐ๋ถํ ์ ์์ต๋๋ค.
- ์ค๋ฆฌ์ง ์ ๋ขฐ: ์ผ๋ฐ์ ์ผ๋ก ์๊ตฌ ์ ์ฅ์์๋ ๋ณด์ ์ปจํ ์คํธ(HTTPS)๊ฐ ํ์ํฉ๋๋ค.
์ค์: ์๊ตฌ ์ ์ฅ์ ์์ฒญ์ด ํญ์ ์น์ธ๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅ์๊ฐ ์๊ตฌ์ ์ด์ง ์์ ์ํฉ์ ๋๋นํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ๋ฐฑ์ ํ๊ฑฐ๋ ๋ฐ์ดํฐ ์์ค์ ์ํํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ ๋ต์ ๊ตฌํํ์ญ์์ค.
๊ธฐ์กด ์๊ตฌ ์ ์ฅ ์ฌ๋ถ ํ์ธ
navigator.storage.persisted()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์๊ตฌ ์ ์ฅ์๊ฐ ์ด๋ฏธ ์น์ธ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
async function checkPersistentStorage() {
if (navigator.storage && navigator.storage.persisted) {
const isPersistent = await navigator.storage.persisted();
console.log(`Persistent storage already granted: ${isPersistent}`);
} else {
console.warn("Persistent storage API not supported.");
}
}
checkPersistentStorage();
์ ์ฅ์ ๊ธฐ์ ๊ณผ ํ ๋น๋
์๊ตฌ ์ ์ฅ์ API๋ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ค์ํ ์ ์ฅ์ ๊ธฐ์ ๊ณผ ์ํธ์์ฉํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ด ํ ๋น๋์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฐ๋์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.- IndexedDB: ํด๋ผ์ด์ธํธ ์ธก์์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๊ฐ๋ ฅํ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. IndexedDB๋ ์ ์ฅ์ ํ ๋น๋ ์ ํ์ ์ํฅ์ ๋ฐ์ผ๋ฉฐ ์๊ตฌ ์ ์ฅ์๋ก๋ถํฐ ์๋นํ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
- Cache API: ์๋น์ค ์์ปค๊ฐ ๋คํธ์ํฌ ์์ฒญ์ ์บ์ฑํ์ฌ ์คํ๋ผ์ธ ์ ๊ทผ ๋ฐ ์ฑ๋ฅ ํฅ์์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Cache API๋ฅผ ํตํด ์์ฑ๋ ์บ์๋ ์ ์ฒด ์ ์ฅ์ ํ ๋น๋์ ๊ธฐ์ฌํฉ๋๋ค.
- localStorage & sessionStorage: ์๋์ ๋ฐ์ดํฐ๋ฅผ ์ํ ๊ฐ๋จํ ํค-๊ฐ ์ ์ฅ์์ ๋๋ค. While localStorage is persistent by default (unless the user clears browser data), it's limited in size and doesn't benefit from the persistence guarantees provided by the Persistent Storage API as much as IndexedDB or the Cache API. ๊ทธ๋ฌ๋ ์ด๋ค์ ์ฌ์ฉ๋๋ ์ ์ฒด ํ ๋น๋์ ํฌํจ๋ฉ๋๋ค.
- ์ฟ ํค: ๊ธฐ์ ์ ์ผ๋ก๋ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ด์ง๋ง, ์ฟ ํค๋ ์ผ๋ฐ์ ์ผ๋ก ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ๋ณด๋ค๋ ์ธ์ ๊ด๋ฆฌ ๋ฐ ์ถ์ ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฟ ํค๋ ์์ฒด ํฌ๊ธฐ ์ ํ์ด ์์ผ๋ฉฐ ์ ์ฅ์ API๊ฐ ๊ด๋ฆฌํ๋ ์ ์ฅ์ ํ ๋น๋๊ณผ๋ ๋ค๋ฆ ๋๋ค.
์์: PWA๋ IndexedDB๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ํ๋กํ ๋ฐ ์คํ๋ผ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , Cache API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋ฐ JavaScript ํ์ผ๊ณผ ๊ฐ์ ์ ์ ์์ฐ์ ์บ์ํฉ๋๋ค. ์๊ตฌ ์ ์ฅ์๋ฅผ ์์ฒญํ๋ฉด ์ด ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์ ๊ฑฐ๋ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ค์ด ์ผ๊ด๋ ์คํ๋ผ์ธ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํจ๊ณผ์ ์ธ ์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ๋ ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๋ค์์ ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
1. ์ ์ฅ์ ์ฌ์ฉ๋ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋ง
navigator.storage.estimate()
๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฅ์ ์ฌ์ฉ๋์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ์ธ์. ์ด๋ฅผ ํตํด ์ ์ฌ์ ์ธ ์ ์ฅ์ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ์๋ณํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ ์ ์์ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค.
2. ์ ์ฅ์ ๊ด๋ฆฌ UI ๊ตฌํ
์ฌ์ฉ์์๊ฒ ์ ์ฅ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ช ํํ๊ณ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ธ์. ์ด UI๋ ์ฌ์ฉ์๊ฐ ๋ค์์ ์ํํ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค:
- ํ์ฌ ์ ์ฅ์ ์ฌ์ฉ๋ ๋ณด๊ธฐ.
- ๊ฐ์ฅ ๋ง์ ์ ์ฅ์๋ฅผ ์๋นํ๋ ๋ฐ์ดํฐ ์๋ณ.
- ๋ถํ์ํ ๋ฐ์ดํฐ ์ญ์ (์: ์บ์๋ ํ์ผ, ๋ค์ด๋ก๋๋ ์ฝํ ์ธ ).
์์: ์ฌ์ง ํธ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ณ ์ฌ์ง ๋ฐ ์จ๋ฒ์ ์ฌ์ฉ๋ ์ ์ฅ์ ๋ถ์์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ UI๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ๋ ์ด์ ํ์ ์๋ ์ฌ์ง์ ์ฝ๊ฒ ์ญ์ ํ ์ ์๋๋ก ํ ์ ์์ต๋๋ค.
3. ๋ฐ์ดํฐ ์ ์ฅ์ ์ต์ ํ
์ ์ฅ์ ๊ณต๊ฐ์ ์ต์ํํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ต์ ํํ์ธ์. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ ์ฅํ๊ธฐ ์ ์ ๋ฐ์ดํฐ ์์ถ.
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ(์: Protocol Buffers, MessagePack).
- ๋ถํ์ํ ๋ฐ์ดํฐ ์ ์ฅ ํผํ๊ธฐ.
- ์ค๋๋๊ฑฐ๋ ์ฌ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ญ์ ํ๋ ๋ฐ์ดํฐ ๋ง๋ฃ ์ ์ฑ ๊ตฌํ.
4. ์ ์ง์ ๊ธฐ๋ฅ ์ ํ ์ ๋ต ๊ตฌํ
์ ์ฅ์๊ฐ ์ ํ๋๊ฑฐ๋ ์๊ตฌ ์ ์ฅ์๊ฐ ์น์ธ๋์ง ์๋ ์ํฉ์ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ์ธ์. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค:
- ์๋นํ ์ ์ฅ์๋ฅผ ์๊ตฌํ๋ ํน์ ๊ธฐ๋ฅ ๋นํ์ฑํ.
- ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ๋ฉ์์ง ํ์.
- ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ๋ฐฑ์ ํ ์ ์๋ ์ต์ ์ ๊ณต.
5. ์ฌ์ฉ์์๊ฒ ์๊ตฌ ์ ์ฅ์์ ๋ํด ๊ต์ก
์ ํ๋ฆฌ์ผ์ด์ ์ด ์๊ตฌ ์ ์ฅ์์ ํฌ๊ฒ ์์กดํ๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์์๊ฒ ์๊ตฌ ์ ์ฅ์ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ ์ด์ ์ ๋ํด ๊ต์กํ์ธ์. ์๊ตฌ ์ ์ฅ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ํฅ์์ํค๊ณ ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์ง์์ง์ง ์๋๋ก ํ๋์ง ์ค๋ช ํ์ธ์.
6. ์ ์ฅ์ ์ค๋ฅ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌ
์ ํ๋ฆฌ์ผ์ด์
์ด ์ ์ฅ์ ํ ๋น๋์ ์ด๊ณผํ ๋ ๋ฐ์ํ ์ ์๋ QuotaExceededError
์ ๊ฐ์ ์ ์ฅ์ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ ์ค๋น๋ฅผ ํ์ธ์. ์ฌ์ฉ์์๊ฒ ์ ์ตํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๊ณ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ
(์: ์ ์ฅ์ ์ง์ฐ๊ธฐ, ์ ์ฅ์ ํ๋ ์
๊ทธ๋ ์ด๋)์ ์ ์ํ์ธ์.
7. ์๋น์ค ์์ปค ์ฌ์ฉ ๊ณ ๋ ค
์๋น์ค ์์ปค๋ ์ ์ ์์ฐ ๋ฐ API ์๋ต์ ์บ์ฑํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ๋ผ์ธ ๊ธฐ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์๋น์ค ์์ปค๋ฅผ ์ฌ์ฉํ ๋๋ ์ ์ฅ์ ํ ๋น๋์ ์ผ๋์ ๋๊ณ ์บ์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ์ ๋ต์ ๊ตฌํํ์ธ์.
๊ตญ์ ํ ๊ณ ๋ ค์ฌํญ
์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅ์ ๊ด๋ฆฌ UI๋ฅผ ์ค๊ณํ ๋ ๋ค์ ๊ตญ์ ํ(i18n) ์ธก๋ฉด์ ๊ณ ๋ คํ์ธ์:
- ์ซ์ ํ์: ์ ์ฅ์ ์ฌ์ฉ๋ ๊ฐ์ ํ์ํ ๋ ๋ค๋ฅธ ๋ก์ผ์ผ์ ์ ํฉํ ์ซ์ ํ์์ ์ฌ์ฉํ์ธ์. ์๋ฅผ ๋ค์ด, ์ผ๋ถ ๋ก์ผ์ผ์์๋ ์ผํ๊ฐ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉ๋๋ ๋ฐ๋ฉด, ๋ค๋ฅธ ๋ก์ผ์ผ์์๋ ๋ง์นจํ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. JavaScript์
toLocaleString()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ก์ผ์ผ์ ๋ฐ๋ผ ์ซ์๋ฅผ ํ์ํํ์ธ์. - ๋ ์ง ๋ฐ ์๊ฐ ํ์: ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ ์ง์ ์๊ฐ์ ์ ์ฅํ๋ ๊ฒฝ์ฐ, ์ ์ฅ์ ๊ด๋ฆฌ UI์ ํ์ํ ๋ ์ฌ์ฉ์ ๋ก์ผ์ผ์ ๋ฐ๋ผ ํ์ํํ์ธ์. JavaScript์
toLocaleDateString()
๋ฐtoLocaleTimeString()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ผ์ผ ์ธ์ง ๋ ์ง ๋ฐ ์๊ฐ ํ์ํ๋ฅผ ์ํํ์ธ์. - ๋จ์ ํ์งํ: ์ ์ฅ์ ๋จ์(์: KB, MB, GB)๋ฅผ ๋ค๋ฅธ ์ง์ญ์์ ์ฌ์ฉ๋๋ ๊ท์น๊ณผ ์ผ์นํ๋๋ก ํ์งํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ํ์ค ๋จ์๋ ๋๋ฆฌ ์ดํด๋์ง๋ง, ํ์งํ๋ ๋์์ ์ ๊ณตํ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ํ
์คํธ ๋ฐฉํฅ: ์ ์ฅ์ ๊ด๋ฆฌ UI๊ฐ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ(LTR) ๋ฐ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ(RTL) ํ
์คํธ ๋ฐฉํฅ์ ๋ชจ๋ ์ง์ํ๋์ง ํ์ธํ์ธ์. CSS ์์ฑ์ธ
direction
๋ฐunicode-bidi
๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฐฉํฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ธ์.
๋ณด์ ๊ณ ๋ ค์ฌํญ
์๊ตฌ ์ ์ฅ์๋ฅผ ๋ค๋ฃฐ ๋ ๋ณด์์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ค์ ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ธ์:
- HTTPS ์ฌ์ฉ: ์ ์ก ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์ค๊ฐ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํญ์ HTTPS๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ์ธ์. HTTPS๋ ๋ํ ๋ง์ ๋ธ๋ผ์ฐ์ ์์ ์๊ตฌ ์ ์ฅ์์ ์๊ตฌ ์ฌํญ์ ๋๋ค.
- ์ฌ์ฉ์ ์ ๋ ฅ ์ ๋ฆฌ: ๊ต์ฐจ ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS) ์ทจ์ฝ์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ์ฅํ๊ธฐ ์ ์ ๋ชจ๋ ์ ๋ฆฌํ์ธ์.
- ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ํธํ: ๋ฌด๋จ ์ ๊ทผ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๊ธฐ ์ ์ ์ํธํํ์ธ์. ์ํธํ๋ฅผ ์ํด Web Crypto API ์ฌ์ฉ์ ๊ณ ๋ คํ์ธ์.
- ์์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ดํ ๊ตฌํ: ๋ฐ์ดํฐ ์ ์ถ์ ๋ฐฉ์งํ๊ณ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์์ ํ ์ฝ๋ฉ ๊ดํ์ ๋ฐ๋ฅด์ธ์.
- ์ฝ๋ ์ ๊ธฐ์ ์ผ๋ก ๊ฒํ ๋ฐ ์ ๋ฐ์ดํธ: ์ต์ ๋ณด์ ์ํ ๋ฐ ์ทจ์ฝ์ฑ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ ํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ฒํ ๋ฐ ์ ๋ฐ์ดํธํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ์ธ์.
๋ค์ํ ์ง์ญ๋ณ ์์
๋ค์ํ ์ง์ญ์์ ์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅผ ์ ์๋์ง ๊ณ ๋ คํด ๋ด ์๋ค:
- ๋์ญํญ์ด ์ ํ๋ ์ง์ญ: ์ธํฐ๋ท ๋์ญํญ์ด ์ ํ์ ์ด๊ฑฐ๋ ๋น์ผ ์ง์ญ์์๋ ์ฌ์ฉ์๊ฐ ์คํ๋ผ์ธ ์ ๊ทผ ๋ฐ ์บ์ฑ์ ๋ ์์กดํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ธ ์ ์ฅ์ ์ฌ์ฉ์ ์ฐ์ ์ํ๊ณ ์บ์๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ํ ๋ช ํํ ์ง์นจ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ๋ฆฌ์นด ๋๋ ๋๋จ์์์์ ์ผ๋ถ ์ง์ญ์์๋ ๋ฐ์ดํฐ ๋น์ฉ์ด ์ค์ํ ๋ฌธ์ ์ ๋๋ค.
- ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ท์ ์ด ์๋ ์ง์ญ: ์ ๋ฝ ์ฐํฉ(GDPR)๊ณผ ๊ฐ์ด ์๊ฒฉํ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ท์ ์ด ์๋ ์ง์ญ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ฅ์ ์ฌ์ฉ ๋ฐฉ์์ ๋ํด ํฌ๋ช ํด์ผ ํ๋ฉฐ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ ์ ์ฌ์ฉ์๋ก๋ถํฐ ๋ช ์์ ์ธ ๋์๋ฅผ ์ป์ด์ผ ํฉ๋๋ค. ๋ํ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ , ์์ ํ๊ณ , ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
- ๊ตฌํ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ง์ญ: ์ฌ์ฉ์๊ฐ ๊ตฌํ ๋๋ ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ง์ญ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ฅ์ ์ฌ์ฉ์ ํนํ ์ ์ํ๊ณ ๊ธฐ๊ธฐ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ต์ ํํด์ผ ํฉ๋๋ค.
- ํน์ ์ธ์ด ์๊ตฌ ์ฌํญ์ด ์๋ ์ง์ญ: ์ ์ฅ์ ๊ด๋ฆฌ UI๋ ์ซ์ ํ์(์: ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ผํ ๋๋ ๋ง์นจํ ์ฌ์ฉ), ๋ ์ง/์๊ฐ ํ์ ๋ฐ ์ฌ๋ฐ๋ฅธ ํ ์คํธ ๋ฐฉํฅ์ ๊ณ ๋ คํ์ฌ ์์ ํ ํ์งํ๋์ด์ผ ํฉ๋๋ค.
์์: ์ธ๋ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ๋ด์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐํ์ ์ธ ์ธํฐ๋ท ์ฐ๊ฒฐ ๊ฐ๋ฅ์ฑ์ ์ธ์ํ์ฌ ์ฌ์ฉ์๊ฐ ์คํ๋ผ์ธ ์ฝ๊ธฐ๋ฅผ ์ํด ๋ด์ค ๊ธฐ์ฌ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ฌ๋ฌ ์ธ๋ ์ธ์ด๋ก ๋ช ํํ ์ ์ฅ์ ๊ด๋ฆฌ UI๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ๋ค์ด๋ก๋ํ ๊ธฐ์ฌ๋ฅผ ์ฝ๊ฒ ์ญ์ ํ์ฌ ๊ณต๊ฐ์ ํ๋ณดํ ์ ์๋๋ก ํฉ๋๋ค.
์ ์ฅ์ API์ ๋ฏธ๋
์๊ตฌ ์ ์ฅ์ API๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ, ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฆ๊ฐํ๋ ์๊ตฌ๋ฅผ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ญ๋์ด ์ถ๊ฐ๋๊ณ ์์ต๋๋ค. ๋ช ๊ฐ์ง ์ ์ฌ์ ์ธ ๋ฏธ๋ ๊ฐ๋ฐ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํฅ์๋ ์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ: ์ ์ฅ์ ํ ๋น๋์ ๋ํ ๋ณด๋ค ์ธ๋ถํ๋ ์ ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ์ ํ์ ๋ฐ์ดํฐ์ ํน์ ์์ ์ ์ฅ์๋ฅผ ํ ๋นํ ์ ์๋๋ก ํฉ๋๋ค.
- ํด๋ผ์ฐ๋ ์ ์ฅ์ ํตํฉ: ํด๋ผ์ฐ๋ ์ ์ฅ์ ์๋น์ค์์ ์ํํ ํตํฉ์ ํตํด ๋ก์ปฌ ์ ์ฅ์๊ฐ ์ ํ๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ฐ๋์ ํฌ๋ช ํ๊ฒ ์ ์ฅํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ณ ๊ธ ๋ฐ์ดํฐ ๋๊ธฐํ: ๋ก์ปฌ ์ ์ฅ์์ ํด๋ผ์ฐ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋๊ธฐํํ ์ ์๋๋ก ํ๋ ๋ณด๋ค ์ ๊ตํ ๋ฐ์ดํฐ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ.
- ํ์คํ๋ ์ ์ฅ์ ์ํธํ: ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ธฐ ์ํ ํ์คํ๋ API๋ฅผ ํตํด ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค.
๊ฒฐ๋ก
์๊ตฌ ์ ์ฅ์ API๋ ํ๋ถํ ์คํ๋ผ์ธ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋ ๊ฒฌ๊ณ ํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์ ํ๋ ์น ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ์ ์ฅ์ ํ ๋น๋ ๊ด๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์๊ตฌ ์ ์ฅ์๋ฅผ ์์ฒญํ๋ฉฐ, ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ณด์์ ๋ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด, ์ ๋ขฐํ ์ ์๊ณ , ์ฑ๋ฅ์ด ์ข์ผ๋ฉฐ, ์ฌ์ฉ์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์กด์คํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์น์ด ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์๊ตฌ ์ ์ฅ์ API๋ ์ฐจ์ธ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ ์ ์ ๋ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค.