ํ์ผ ์์คํ ์ ๊ทผ API๋ฅผ ํ์ํ๊ณ , ๋ก์ปฌ ํ์ผ ์์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ์ ๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด ํ์ํด์ผ ํ ์ค์ํ ๋ณด์ ๊ฒฝ๊ณ๋ฅผ ์์ธํ ์ค๋ช ํฉ๋๋ค.
ํ์ผ ์์คํ ์ ๊ทผ API: ๋ก์ปฌ ํ์ผ ์์ ๊ณผ ๋ณด์ ๊ฒฝ๊ณ ํ์
๋์งํธ ํ๊ฒฝ์ ์ ์ ๋ ์ญ๋์ ์ผ๋ก ๋ณํ๊ณ ์์ผ๋ฉฐ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จ์ํ ์ฝํ ์ธ ์ ๋ฌ์ ๋์ด ์ฌ์ฉ์ ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ณธ ์ด์ ์ฒด์ ์ ์ํธ ์์ฉํ๋ ์ ๊ตํ ๋๊ตฌ๋ก ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์งํ์ ํต์ฌ ์์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ก์ปฌ ํ์ผ ์์ ์ ์ํํ ์ ์๋ ๋ฅ๋ ฅ์ ๋๋ค. ์ญ์ฌ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์ ํ์ผ ์์คํ ์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ ์ค๋ํ ๋ณด์ ๋ฌธ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ์๊ฒฉํ ์ ํ์ด ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋์ ์ธ ์น API, ํนํ ํ์ผ ์์คํ ์ ๊ทผ API(File System Access API)์ ๋ฑ์ฅ์ ๊ฐ๋ ฅํ ๋ณด์ ์กฐ์น๋ฅผ ๋์์ ์ํํ๋ฉด์ ๋ ์ธ๋ถํ๋ ์ ์ด๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ด๋ฌํ ํจ๋ฌ๋ค์์ ๋ฐ๊พธ๊ณ ์์ต๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ ํ์ผ ์์คํ ์ ๊ทผ API์ ๊ธฐ๋ฅ์ ์์ธํ ์ดํด๋ณด๊ณ , ์ด API๊ฐ ์ด๋ป๊ฒ ๋ก์ปฌ ํ์ผ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋์ง์ ์ฌ์ฉ์ ๊ฐ์ธ ์ ๋ณด ๋ฐ ์์คํ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ๊ธฐ ์ํด ํ์ํด์ผ ํ๋ ์ค์ํ ๋ณด์ ๊ฒฝ๊ณ์ ๋ํด ์์๋ด ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์์์ ํ์ผ ์ ๊ทผ ์งํ
์๋ ๋์ ์น ๋ธ๋ผ์ฐ์ ๋ ์๊ฒฉํ ์๋๋ฐ์ฑ ๋ชจ๋ธ ํ์์ ์๋ํ์ต๋๋ค. ์ด ๋ชจ๋ธ์ ์น ์ฝํ ์ธ ๋ฅผ ์์ ํ ํ๊ฒฝ ๋ด์ ๊ฒฉ๋ฆฌํ์ฌ ๋ฏผ๊ฐํ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฑฐ๋ ๋ก์ปฌ ์ปดํจํฐ์์ ์์์ ์์ ์ ์ํํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ํ์ผ ์ํธ ์์ฉ์ ์ํ ์ฃผ์ ๋ฉ์ปค๋์ฆ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค:
- ํ์ผ ์ ๋ก๋ (`<input type="file">`): ์ฌ์ฉ์๋ ๋ก์ปฌ ์์คํ ์์ ํ์ผ์ ์ ํํ์ฌ ์น ์๋ฒ์ ์ ๋ก๋ํ ์ ์์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์์ํ๋ ๋จ๋ฐฉํฅ ์์ ์ด์์ผ๋ฉฐ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ช ์์ ์ผ๋ก ์ ๊ณต๋ ๊ฒ ์ธ์ ํ์ผ ์์น๋ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์๋ ํ์ผ ๋ด์ฉ๋ง ์์ ํ์ต๋๋ค.
- ํ์ผ ๋ค์ด๋ก๋: ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ผ ๋ค์ด๋ก๋๋ฅผ ์์ํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ค์ด๋ก๋ ์์น๋ฅผ ์ ํํ๋๋ก ์์ฒญํ๊ฑฐ๋ ๊ธฐ๋ณธ ๋ค์ด๋ก๋ ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ ์ฅํ์ผ๋ฉฐ, ์ด ๋ํ ์ฌ์ฉ์์ ๊ฐ๋ ํ์ ์ด๋ฃจ์ด์ก์ต๋๋ค.
- ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๋ฐ ์ธ์ ์คํ ๋ฆฌ์ง: ์ด ๋ฉ์ปค๋์ฆ์ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ธ๋ผ์ฐ์ ์ ํ ๋น๋ ์ ์ฅ์ ๋ด์ ์๋์ ๋ฐ์ดํฐ(ํค-๊ฐ ์)๋ฅผ ์ ์ฅํ ์ ์์์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ์ฒ(๋๋ฉ์ธ)์ ๊ฒฉ๋ฆฌ๋์์ผ๋ฉฐ ์ฌ์ฉ์์ ์์คํ ์์ ๊ธฐ์กด ํ์ผ์ฒ๋ผ ์ ๊ทผํ ์ ์์์ต๋๋ค.
- IndexedDB: ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์๋นํ ์์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ ๊ฐ๋ ฅํ ํด๋ผ์ด์ธํธ ์ธก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ ์ ์์์ง๋ง, ์ฌ์ ํ ๋ธ๋ผ์ฐ์ ์ ์๋๋ฐ์ค ๋ด์ ์์๊ณ ํ์ผ๋ก ์ง์ ์ ๊ทผํ ์๋ ์์์ต๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ๋ค์ ๋์ ์์ค์ ๋ณด์์ ๋ณด์ฅํ์ง๋ง, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ฐ๋ ฅํ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ์๋ํ ์ ์๋ ์ ์ฌ๋ ฅ์ ์ ํํ์ต๋๋ค. ๋ก์ปฌ ํ์ผ ๋๊ธฐํ๋ฅผ ํตํ ์ค์๊ฐ ๊ณต๋ ๋ฌธ์ ํธ์ง, ์ ๊ตํ ์ด๋ฏธ์ง ๋๋ ๋น๋์ค ํธ์ง ๋๊ตฌ, ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)๊ณผ ๊ฐ์ ๋ง์ ๊ณ ๊ธ ๊ธฐ๋ฅ๋ค์ ์ด๋ฌํ ์ ์ฝ์ผ๋ก ์ธํด ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ์ฌ๊ฐํ๊ฒ ๋ฐฉํด๋ฐ์์ต๋๋ค.
ํ์ผ ์์คํ ์ ๊ทผ API ์๊ฐ
ํ์ผ ์์คํ ์ ๊ทผ API๋ ์๋นํ ๋ฐ์ ์ ์๋ฏธํฉ๋๋ค. ์ด API๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ํ์ผ ์์คํ ์ ๋ํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ ๊ทผ์ ์ ๊ณตํ์ฌ ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ์ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์กฐ์๊ณผ ๊ฐ์ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด API๋ ๋ณด์์ ์ต์ฐ์ ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ด๋ ๋ถ์ฌ๋ ๋ชจ๋ ์ ๊ทผ์ด ๋ช ์์ ์ด๊ณ ์ฌ์ฉ์๊ฐ ์ฃผ๋ํ๋ฉฐ ์ ์๋ ๊ฒฝ๊ณ ๋ด์ ๊ตญํ๋จ์ ์๋ฏธํฉ๋๋ค.
ํ์ผ ์์คํ ์ ๊ทผ API์ ์ฃผ์ ๊ธฐ๋ฅ
์ด API๋ ๊ฐ๋ฐ์๊ฐ ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ์ ์ํธ ์์ฉํ ์ ์๋๋ก ํ๋ ์ผ๋ จ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ํต์ฌ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
window.showOpenFilePicker()
: ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฝ๊ฑฐ๋ ์ธ ํ๋ ์ด์์ ํ์ผ์ ์ ํํ ์ ์๊ฒ ํฉ๋๋ค. ์ด ๋ฉ์๋๋FileSystemFileHandle
๊ฐ์ฒด์ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.window.showSaveFilePicker()
: ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ผ ์์น์ ์ด๋ฆ์ ์ ํํ๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค. ์ด๋ ๋จ์ผFileSystemFileHandle
๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.window.showDirectoryPicker()
: ์ฌ์ฉ์๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋น ์ฝํ ์ธ ๋ฐ ํ์ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋FileSystemDirectoryHandle
๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.FileSystemFileHandle
: ๋จ์ผ ํ์ผ์ ๋ํ๋ ๋๋ค. ํ์ผ ์ธ๋ถ ์ ๋ณด(์ด๋ฆ, ํฌ๊ธฐ, ๋ง์ง๋ง ์์ ๋ ์ง)๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ ์ํFileSystemWritableFileStream
์ ์ป๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.FileSystemDirectoryHandle
: ๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ ๋๋ค.values()
,keys()
,entries()
๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ฝํ ์ธ (ํ์ผ ๋ฐ ํ์ ๋๋ ํ ๋ฆฌ)๋ฅผ ๋ฐ๋ณตํ ์ ์์ต๋๋ค. ๋ํgetFileHandle()
๋ฐgetDirectoryHandle()
๊ณผ ๊ฐ์ด ๊ทธ ์์ ํน์ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ํธ๋ค์ ๊ฐ์ ธ์ค๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.FileSystemWritableFileStream
: ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ ์คํธ, ๋ธ๋กญ ๋๋ ๋ฐ์ดํธ ๋ฐฐ์ด ์ฐ๊ธฐ์ ๊ฐ์ ์์ ์ ์ง์ํ๋ฉฐ, ๊ฒฐ์ ์ ์ผ๋ก ํ์ผ์ ์๋ฅด๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
์ค์ฉ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
ํ์ผ ์์คํ ์ ๊ทผ API๋ ์ฐจ์ธ๋ ๊ฐ๋ ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ฝ๋๋ค. ๋ค์ ์์๋ฅผ ๊ณ ๋ คํด ๋ณด์ญ์์ค:
- ๊ณ ๊ธ ๋ฌธ์ ํธ์ง๊ธฐ: ์น ๊ธฐ๋ฐ ์๋ ํ๋ก์ธ์, ์คํ๋ ๋์ํธ ํ๋ก๊ทธ๋จ ๋๋ ํ๋ ์ ํ ์ด์ ๋๊ตฌ๋ ์ด์ ์ฌ์ฉ์์ ๋ก์ปฌ ๋๋ผ์ด๋ธ์์ ์ง์ ํ์ผ์ ์ํํ๊ฒ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ด ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ตฌ๋ณํ ์ ์๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ฌ์ฉ์๊ฐ ์ ํํ ํน์ ์์น์ ์๋ ์ ์ฅ ๊ธฐ๋ฅ์ ๊ตฌํํ ์๋ ์์ต๋๋ค.
- ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ํธ์ง ์ํํธ์จ์ด: ๋ฏธ๋์ด ํ์ผ์ ์กฐ์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ํ์ผ์ ์ ๊ทผํ๊ณ ์์ ํ ์ ์์ด ์ฌ์ฉ์๊ฐ ์์ ํ ํ์ผ์ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ ๋ค์ ์ ๋ก๋ํ ํ์ ์์ด ๋ ๋ณต์กํ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๊ฐ๋ฐ ๋๊ตฌ: ์จ๋ผ์ธ ์ฝ๋ ํธ์ง๊ธฐ๋ IDE๋ ์ฌ์ฉ์๊ฐ ๋ก์ปฌ ๋จธ์ ์์ ์ ์ฒด ํ๋ก์ ํธ ํด๋๋ฅผ ์ด๊ณ ์ ์ฅํ ์ ์๊ฒ ํ์ฌ ๋ณด๋ค ํตํฉ๋ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋๊ตฌ: ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋ด๋ณด๋ด๋ ์ ํ๋ฆฌ์ผ์ด์ (์: CSV ๋๋ JSON ํ์ผ์์)์ ์ง์ ๋ ๋๋ ํ ๋ฆฌ์ ํ์ผ๊ณผ ์ง์ ์ํธ ์์ฉํ์ฌ ๋ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ (PWAs): PWA๋ ์ด API๋ฅผ ํ์ฉํ์ฌ ๋ ๋ฐ์ด๋ ๋ฐ์คํฌํฑ๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ๋ฌ์ฑํ์ฌ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ ๋งค๋ ฅ์ ์ธ ๋์์ด ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ธ ์ฌ์ ์ ๊ด๋ฆฌํ๋ PWA๋ ์ฌ์ฉ์๊ฐ ์ ํํ CSV ํ์ผ์์ ์ง์ ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค.
๋ณด์ ๊ฒฝ๊ณ: ์ ๋ขฐ์ ์ด์
๋ก์ปฌ ํ์ผ์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ์ ์คํ๊ฒ ๊ด๋ฆฌ๋์ง ์์ผ๋ฉด ์ฌ๊ฐํ ๋ณด์ ์ํ์ ์ด๋ํฉ๋๋ค. ํ์ผ ์์คํ ์ ๊ทผ API๋ ์ด๋ฌํ ์ํ์ ์ํํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ณ์ธต์ ๋ณด์์ผ๋ก ์ค๊ณ๋์์ต๋๋ค:
1. ์ฌ์ฉ์ ๋์๋ ํ์์ ๋๋ค
์๋ฌต์ ์ธ ๊ถํ์ผ๋ก ์๋ํ ์ ์๋ ๊ธฐ์กด ์น API์ ๋ฌ๋ฆฌ, ํ์ผ ์์คํ ์ ๊ทผ API๋ ๋ชจ๋ ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ ์ ๊ทผ์ ๋ํด ๋ช ์์ ์ธ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์๋ฌดํํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ ๋ณด์ ๊ธฐ๋ฅ์ ๋๋ค:
- ์ ํ๊ธฐ ๊ธฐ๋ฐ ์ ๊ทผ:
showOpenFilePicker()
,showSaveFilePicker()
,showDirectoryPicker()
์ ๊ฐ์ ์์ ์ ๋ค์ดํฐ๋ธ ๋ธ๋ผ์ฐ์ ๋ํ ์์๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ทผํ ์ ์๋ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฅ๋์ ์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค ํ์ผ์๋ ์ ๊ทผํ ์ ์๋ ํฌ๊ด์ ์ธ ๊ถํ์ ๊ฐ์ง ์์ต๋๋ค. - ๋ฒ์๊ฐ ์ง์ ๋ ๊ถํ: ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๊ฐ ์ ํ๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋น ํน์ ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ์ ๊ทธ ์ง๊ณ ์์(๋๋ ํ ๋ฆฌ์ ๊ฒฝ์ฐ)์๋ง ์ ๊ทผ ๊ถํ์ด ๋ถ์ฌ๋ฉ๋๋ค. ํ์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ํตํด ๋ช ์์ ์ผ๋ก ๋ถ์ฌ๋์ง ์๋ ํ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๊ฑฐ๋ ํ์ ํ์ผ/๋๋ ํ ๋ฆฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ถ์ฒ๋ณ ์ ๊ทผ: ๋ถ์ฌ๋ ๊ถํ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ์ฒ(ํ๋กํ ์ฝ, ๋๋ฉ์ธ, ํฌํธ)์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์์ ๋ฒ์ด๋๊ฑฐ๋ ํญ์ ๋ซ์ผ๋ฉด ์ด๋ฌํ ๊ถํ์ ์ผ๋ฐ์ ์ผ๋ก ์์ค๋๋ฉฐ, ํฅํ ์ ๊ทผ์ ์ํด ์ฌํ์ธ์ด ํ์ํฉ๋๋ค.
2. ์๋๋ฐ์ฑ์ ๊ณ์ ์ ํจํฉ๋๋ค
๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ ์ธ ์๋๋ฐ์ฑ ๋ชจ๋ธ์ ํ์ผ ์์คํ ์ ๊ทผ API์ ์ํด ํด์ฒด๋์ง ์์ต๋๋ค. ์ด API๋ ํ์ผ ์์คํ ๊ณผ ์ํธ ์์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ง๋ง, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด์ ์คํ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌ๋ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. ์ด๋ ๋ค์์ ์๋ฏธํฉ๋๋ค:
- ์์ ์คํ ์์: ์ด API๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์ ๊ธฐ๊ธฐ์์ ์์์ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. ํ์ผ ์์ ์ ์ฝ๊ธฐ, ์ฐ๊ธฐ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์กฐ์์ผ๋ก ์ ํ๋ฉ๋๋ค.
- ์ ์ด๋ ์คํ ์ปจํ ์คํธ: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ ์ปจํ ์คํธ ๋ด์์ ์คํ๋๋ฉฐ, ๋์ผ ์ถ์ฒ ์ ์ฑ ๋ฐ ๊ธฐํ ํ๋ฆฝ๋ ์น ๋ณด์ ์์น์ ์ค์ํฉ๋๋ค.
3. ๊ถํ ๊ด๋ฆฌ
๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ๋ถ์ฌ๋ ๊ถํ์ ๊ด๋ฆฌํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ํ์ผ ์์คํ ์ ๊ทผ API์ ๊ฒฝ์ฐ, ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์์ ํฌํจํฉ๋๋ค:
- ์๊ตฌ ๊ถํ (์ฌ์ฉ์ ์ ํ ๋์): ์ง์ ์ ๊ทผ์ ํญ์ ์ ํ๊ธฐ๋ฅผ ํ์๋ก ํ์ง๋ง, API๋ ํน์ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ๋ํ ์๊ตฌ์ ์ธ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ ์์ฒญ๋ ์ง์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ํ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์ถ์ฒ์ ํ์ผ/๋๋ ํ ๋ฆฌ์ ๋ํ ๊ถํ์ ๊ธฐ์ตํ์ฌ ๋ฐ๋ณต์ ์ธ ์ ํ๊ธฐ์ ํ์์ฑ์ ์ค์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๋ช ํํ ๊ฒฝ๊ณ ์ ํจ๊ป ์ ์๋๋ ์ ์คํ ์ฌ์ฉ์ ์ ํ์ ๋๋ค.
- ๊ถํ ์ทจ์: ์ฌ์ฉ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ค์ ์ ํตํด ์น์ฌ์ดํธ์ ๋ถ์ฌ๋ ๊ถํ์ ๊ฒํ ํ๊ณ ์ทจ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์ ๋๋ฌด ๋ง์ ์ ๊ทผ ๊ถํ์ด ๋ถ์ฌ๋์๋ค๊ณ ๋๋ ๊ฒฝ์ฐ ์ ์ด๊ถ์ ๋์ฐพ์ ์ ์๋ ์์ ๋ง์ ์ ๊ณตํฉ๋๋ค.
4. ํ์ผ ์์คํ ํธ๋ค๊ณผ ๋ณด์ ํ ํฐ
์ฌ์ฉ์๊ฐ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ฉด API๋ FileSystemFileHandle
๋๋ FileSystemDirectoryHandle
์ ๋ฐํํฉ๋๋ค. ์ด ํธ๋ค์ ๋จ์ํ ํ์ผ ๊ฒฝ๋ก๊ฐ ์๋๋๋ค. ๋์ , ๋ธ๋ผ์ฐ์ ๊ฐ ์น์ธ๋ ์ ๊ทผ์ ๋ด๋ถ์ ์ผ๋ก ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋ถํฌ๋ช
ํ ๊ฐ์ฒด์
๋๋ค. ์ด ์ถ์ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ์์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ์กฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ฉฐ, ์ด๋ ๋ค์ํ ๊ณต๊ฒฉ์ ์
์ฉ๋ ์ ์์ต๋๋ค.
ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ๋ ธ์ถํ๋ ๊ฒ์ ๋ณด์์ ์ํฅ์ ๊ณ ๋ คํด ๋ณด์ญ์์ค. ๊ณต๊ฒฉ์๋ ๋ฐฉ๋ฌธ ์ ๋ฏผ๊ฐํ ์์คํ ํ์ผ(์: Windows์ `C:\Windows\System32\config\SAM`)์ ์ ๊ทผ์ ์๋ํ๋ ์ ์ฑ URL์ ๋ง๋ค ์ ์์ต๋๋ค. ์์ ํ์ผ ๊ฒฝ๋ก ์ ๊ทผ ๊ถํ์ด ์๋ค๋ฉด ์ด๋ ์น๋ช ์ ์ธ ์ทจ์ฝ์ ์ด ๋ ๊ฒ์ ๋๋ค. ํ์ผ ์์คํ ์ ๊ทผ API๋ ํธ๋ค์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ๋ช ์์ ์ผ๋ก ์ ํํ ํ์ผ๋ง ๋ ธ์ถํ๋ ์ ํ๊ธฐ๋ฅผ ํตํ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์๊ตฌํจ์ผ๋ก์จ ์ด๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
5. ์ค์ฉ์ ์ํ๊ณผ ์ ์ฌ์ ์ทจ์ฝ์
๊ฒฌ๊ณ ํ ๋ณด์ ์กฐ์น์๋ ๋ถ๊ตฌํ๊ณ , ๊ฐ๋ฐ์๋ ์ ์ฌ์ ์ธ ํจ์ ์ ์ ์ํด์ผ ํฉ๋๋ค:
- ์๋น์ค ๊ฑฐ๋ถ(DoS): ์ ์์ ์ผ๋ก ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์๊ฒ ๋ฐ๋ณต์ ์ผ๋ก ํ์ผ ์ ๊ทผ์ ์์ฒญํ์ฌ ์ฌ์ฉ์๋ฅผ ์๋ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ํ์ํฌ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ๋ฎ์ด์ฐ๊ธฐ: ์๋ชป ์ค๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ผ ์ฐ๊ธฐ๋ฅผ ์ ์คํ๊ฒ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ค์ํ ์ฌ์ฉ์ ํ์ผ์ ์๋์น ์๊ฒ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ํ๊ดด์ ์ธ ์์ ์ ๋ํด ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ํ์ธ ๋ํ ์์๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค.
- ์ ๋ณด ์ ์ถ: ์์์ ํ์ผ์ ๋ํ ์ง์ ์ ์ธ ์ ๊ทผ์ ๋ฐฉ์ง๋์ง๋ง, ๋๋ ํ ๋ฆฌ์ ๋ํ ์ ๊ทผ ๊ถํ์ด ๋ถ์ฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ผ ๋ด์ฉ์ ์ฝ์ ์ ์๋๋ผ๋ ํ์ผ ์ด๋ฆ, ํฌ๊ธฐ ๋ฐ ์์ ๋ ์ง๋ฅผ ๊ด์ฐฐํ์ฌ ์ ๋ณด๋ฅผ ์ถ๋ก ํ ์ ์์ต๋๋ค.
- ์ ๊ตํ ํผ์ฑ ๊ณต๊ฒฉ: ์ ์ฑ ์น์ฌ์ดํธ๋ ํฉ๋ฒ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ผ ์ ํ๊ธฐ ๋ํ ์์๋ฅผ ์ฌ์นญํ์ฌ ์ฌ์ฉ์๋ฅผ ์์ฌ ๋ฏผ๊ฐํ ํ์ผ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋๋ก ์ ๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ ๋ธ๋ผ์ฐ์ UI๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ์ฌ์นญ์ ์ด๋ ต๊ฒ ์ค๊ณ๋์์ต๋๋ค.
๊ฐ๊ทน ๋ฉ์ฐ๊ธฐ: ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ๊ณผ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ
ํ์ผ ์์คํ ์ ๊ทผ API๋ ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ(PWA)์ด ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ๊ธฐ๋ฅ์ ๋ฌ์ฑํ๋ ๋ฐ ํต์ฌ์ ์ธ ์ญํ ์ ํฉ๋๋ค. PWA๋ ์น์์ ์ฑ๊ณผ ๊ฐ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ฉฐ, ๋ก์ปฌ ํ์ผ ์์คํ ์ํธ ์์ฉ์ ๋ง์ ๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ตญ์ ์ ์ฌ๋ก
๋ค์ํ ์ง์ญ์์ ์ด API๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ๊ณ ๋ คํด ๋ณด์ญ์์ค:
- ๋ชจ๋ฐ์ผ ๋ณด๊ธ๋ฅ ์ด ๋๊ณ ์ ํต์ ์ธ ๋ฐ์คํฌํฑ ์ฌ์ฉ์ด ์ ํ์ ์ธ ์ง์ญ(์: ์ํ๋ฆฌ์นด ๋๋ ๋๋จ์์์ ์ผ๋ถ ์ง์ญ)์์๋ ํ์ผ ์์คํ ์ ๊ทผ API๋ก ๊ฐํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์์ ์ง์ ๊ฐ๋ ฅํ ์์ฐ์ฑ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ์ฑ ์คํ ์ด ๋ฐ ๋ค์ดํฐ๋ธ ์ฑ ๊ฐ๋ฐ์ ๋ํ ์์กด๋๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ์ผ๋์ ํ์ง ์ฅ์ธ์ ์น ๊ธฐ๋ฐ ์ฌ๊ณ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ํฐ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฅ๋ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ง์ ์ ๊ทผํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ์์ฐ์ฑ ์ํํธ์จ์ด์ ์ค์ ์ ๋ ์ ์ง ์์ฅ(์: ๋ถ๋ฏธ ๋๋ ์ ๋ฝ)์์๋ ๊ธฐ์ ์ด ๋ ๋ณต์กํ ์ํฌํ๋ก์ฐ๋ฅผ ์น์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ์ผ์ ํ ๋ฒ๋ฅ ํ์ฌ๋ ๋ณํธ์ฌ๊ฐ ๋ก์ปฌ์ ์ ์ฅ๋ ํด๋ผ์ด์ธํธ ์ฌ๊ฑด ํ์ผ์ ์ง์ ์ ๊ทผํ๊ณ ํธ์งํ ์ ์๋ ์น ๊ธฐ๋ฐ ๋ฌธ์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ด๋ฆฌํ๋ ๊ฐํ๋ ๋ณด์ ๋ฐ ๊ฐ์ฌ ์ถ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ ์์ต๋๋ค.
- ์ฌ๋ฌ ๊ตญ๊ฐ์ ๊ฑธ์น ํ์ ํ๊ฒฝ(์: ๋ค๊ตญ์ ์ฐ๊ตฌ ํ๋ก์ ํธ)์์๋ ์น ๊ธฐ๋ฐ ํ์ ํ๋ซํผ์ด API๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ตฌ์์ ๊ธฐ๊ธฐ์ ๋ก์ปฌ๋ก ์ ์ฅ๋ ์ฐ๊ตฌ ๋ฐ์ดํฐ, ์คํ ๊ฒฐ๊ณผ ๋๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋๊ธฐํํ์ฌ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ํ ๊ฐ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์น ๋ , ์ผ๋ณธ, ๋ฏธ๊ตญ์ ์ฒ์ฒด ๋ฌผ๋ฆฌํ์ ํ์ ๊ณต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ์ง์ ๊ด์ธก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๋ ๋ฐ ํ๋ ฅํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํ์ผ ์์คํ ์ ๊ทผ API๋ฅผ ํจ๊ณผ์ ์ด๊ณ ์์ ํ๊ฒ ๊ตฌํํ๋ ค๋ฉด ๊ฐ๋ฐ์๋ ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํด์ผ ํฉ๋๋ค:
-
ํญ์ ๋ช ์์ ์ธ ์ฌ์ฉ์ ๋์ ๊ตฌํ๊ธฐ
๊ถํ์ด ์๋ค๊ณ ๊ฐ์ ํ์ง ๋ง์ญ์์ค. ์ฌ์ฉ์๊ฐ ํ์ผ ์ ๊ทผ์ด ํ์ํ ์์ ์ ๋ช ์์ ์ผ๋ก ์์ฒญํ ๋๋ง(์: "๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅ" ๋ฒํผ ํด๋ฆญ, ํ์ผ ๊ฐ์ ธ์ค๊ธฐ) ํ์ผ ์ ํ๊ธฐ(`showOpenFilePicker`, `showSaveFilePicker`, `showDirectoryPicker`)๋ฅผ ์คํํ์ญ์์ค.
-
๋ช ํํ ์ฌ์ฉ์ ํผ๋๋ฐฑ ์ ๊ณต
์ฌ์ฉ์์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ค ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ์ ๊ทผํด์ผ ํ๋์ง ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด์ ๋ฅผ ์๋ ค์ฃผ์ญ์์ค. ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ๋์ ์ด์ ์ ์ค๋ช ํ์ญ์์ค.
-
๊ถํ์ ์ ์คํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ
์ฌ์ฉ์๊ฐ ๊ถํ์ ๊ฑฐ๋ถํ๋ฉด ๋ฐ๋ณต์ ์ผ๋ก ์์ฒญํ์ง ๋ง์ญ์์ค. ๋์ , ์ฌ์ฉ์๊ฐ ๋ง์์ ๋ฐ๊ฟ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์ค์ ๋งํฌ ๋ฑ์ ํตํด ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ ์๋ดํ์ญ์์ค.
-
๊ฒฌ๊ณ ํ ์ค๋ฅ ์ฒ๋ฆฌ ๊ตฌํ
ํ์ผ ์์ ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ (๊ถํ ๋ฌธ์ , ํ์ผ ์ฌ์ฉ ์ค, ๋์คํฌ ๊ณต๊ฐ ๋ถ์กฑ ๋ฑ)๋ก ์คํจํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฌํ ์คํจ๋ฅผ ์์ํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ์ฉํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
-
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์ํ๊ธฐ
์ฐ๊ธฐ ์์ , ํนํ ๊ธฐ์กด ํ์ผ์ ๋ฎ์ด์ฐ๋ ์์ ์ ๊ฒฝ์ฐ, ์ฐ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ธ ๋ํ ์์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. `showSaveFilePicker`์ `mode` ์ต์ (์: `readwrite`, `read`๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๋ฐ์ ์ธ ๋ฎ์ด์ฐ๊ธฐ ๋ฐฉ์ง)์ ์ ์คํ๊ฒ ์ฌ์ฉํ์ญ์์ค.
-
์ฌ์ฉ์๊ฐ ์ ํํ ์์น ์กด์คํ๊ธฐ
ํ์ผ์ ์ ์ฅํ ๋ ๊ธฐ๋ณธ ์์น๋ฅผ ์ถ๋ก ํ๊ฑฐ๋ ๊ฐ์ ํ๋ ค๊ณ ํ์ง ๋ง๊ณ `showSaveFilePicker`๊ฐ ์ ๊ณตํ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ์ฌ์ฉ์์ ํ์ผ ๊ด๋ฆฌ ํ๊ฒฝ ์ค์ ์ ์กด์คํ๋ ๊ฒ์ ๋๋ค.
-
ํธ๋ค์ ๋ฒ์ ์ดํดํ๊ธฐ
ํธ๋ค์ ์ถ์ฒ์ ๋ฒ์๊ฐ ์ง์ ๋๋ค๋ ์ ์ ๊ธฐ์ตํ์ญ์์ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ๋ณด์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ํ์ ๋๋ฉ์ธ์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ํธ๋ค์ ๋ค์ ์ป์ด์ผ ํ ์ ์์ต๋๋ค.
-
๋ฏผ๊ฐํ ์์คํ ๊ฒฝ๋ก ํผํ๊ธฐ
API๊ฐ ์์์ ๊ฒฝ๋ก์ ๋ํ ์ง์ ์ ์ธ ์ ๊ทผ์ ๋ฐฉ์งํ๋๋ผ๋, ๊ฐ๋ฐ์๋ ํน์ ์์คํ ๋๋ ํ ๋ฆฌ๋ฅผ ํ๋์ฝ๋ฉํ๊ฑฐ๋ ์ ๊ทผํ ๊ฒ์ผ๋ก ์์ํด์๋ ์ ๋ฉ๋๋ค. ์ฌ์ฉ์์ ์ ํ์ด ์ ๊ทผ ๊ฐ๋ฅํ ํ์ผ์ ๊ฒฐ์ ํ๊ฒ ํ์ญ์์ค.
-
๋ธ๋ผ์ฐ์ ๋ฐ ํ๋ซํผ ๊ฐ ํ ์คํธ
ํ์ผ ์์คํ ์ ๊ทผ API๋ ์์ง ๋ฐ์ ์ค์ด๋ฉฐ ๋ธ๋ผ์ฐ์ ์ง์์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ผ๊ด๋ ๋์์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ํ ๋ธ๋ผ์ฐ์ (Chrome, Edge, Opera ๋ฑ) ๋ฐ ์ด์ ์ฒด์ ์์ ๊ตฌํ์ ์ฒ ์ ํ ํ ์คํธํ์ญ์์ค.
-
์ ๊ทผ์ฑ ๊ณ ๋ คํ๊ธฐ
ํ์ผ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ ๊ณผ์ ์ด ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์์๊ฒ๋ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ํ์ญ์์ค. ์ฌ๊ธฐ์๋ ํ์ผ ์ ํ๊ธฐ ์ํธ ์์ฉ์ผ๋ก ์ด์ด์ง๋ ๋ชจ๋ ์ฌ์ฉ์ ์ ์ UI ์์์ ๋ํ ์ ์ ํ ARIA ์์ฑ ๋ฐ ํค๋ณด๋ ํ์์ด ํฌํจ๋ฉ๋๋ค.
์น์์์ ๋ก์ปฌ ํ์ผ ์ํธ์์ฉ์ ๋ฏธ๋
ํ์ผ ์์คํ ์ ๊ทผ API๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ค์ดํฐ๋ธ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ํ๋ฌด๋ ์ค์ํ ๋จ๊ณ์ ๋๋ค. ๋ก์ปฌ ํ์ผ์ ๋ํ ์ ์ด๋ ์ ๊ทผ์ ์ ๊ณตํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ ๊ฐ๋ ฅํ๊ณ ๋ค์ฌ๋ค๋ฅํ๋ฉฐ ์ฌ์ฉ์ ์นํ์ ์ธ ๊ฒฝํ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ๋์์ ๊ฒฌ๊ณ ํ ์๋๋ฐ์ฑ์ ๋ํ ๊ฐ์กฐ๋ ์ด๋ฌํ ๊ธฐ๋ฅ ์ฆ๊ฐ๊ฐ ๋ณด์์ ํฌ์์ํค์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์น ๊ธฐ์ ์ด ๊ณ์ ์ฑ์ํจ์ ๋ฐ๋ผ ์ด API๋ฅผ ํ์ฉํ๋ ๋์ฑ ํ์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉ์์ ํ์ผ ์์คํ ๊ณผ ์ํธ ์์ฉํ ์ ์๋ ๋ฅ๋ ฅ์ ๋ค๋ฅธ ๊ฐ๋ ฅํ ์น API์ ๊ฒฐํฉ๋์ด ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ํตํฉ๋๊ณ ์์ฐ์ ์ธ ์จ๋ผ์ธ ๊ฒฝํ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค. ๊ฐ๋ฐ์์๊ฒ ํ์ผ ์์คํ ์ ๊ทผ API๋ฅผ ์ดํดํ๊ณ ์ฑ ์๊ฐ ์๊ฒ ๊ตฌํํ๋ ๊ฒ์ ์ ์ ๋ ์ํธ ์ฐ๊ฒฐ๋๋ ๋์งํธ ์ธ๊ณ์ ์๊ตฌ๋ฅผ ์ถฉ์กฑ์ํค๋ ์ฐจ์ธ๋ ์ ๊ตํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์์ ํ์ผ ์ ๊ทผ์ ์ฌ์ ์ ๊ธฐ๋ฅ๊ณผ ๋ณด์์ ๊ท ํ์ ๋ง์ถ๋ ๊ฒ์ด์์ต๋๋ค. ํ์ผ ์์คํ ์ ๊ทผ API๋ ์ฑ์ํ๊ณ ์์ ํ ์ ๊ทผ ๋ฐฉ์์ ๋ํํ๋ฉฐ, ์ฌ์ฉ์์ ๊ทธ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ ์ค์ํ ๋ณด์ ๊ฒฝ๊ณ๋ฅผ ์ ์งํ๋ฉด์ ๊ฐ๋ ฅํ ๋ก์ปฌ ํ์ผ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.