Why Chrome extension?
์๋ฌด๋๋ ์๊ทผ๋ ์ปดํจํฐ๋ก ๊ณต๋ถ๋ฅผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๋ชจ๋ ๊ฒ์ ์ปดํจํฐ๋ก ํด๊ฒฐํ๊ณ ์ถ์ ๋ง์์ด ์ปธ์ต๋๋ค. ํธ๋ํฐ์ผ๋ก๋, ์์ดํจ๋๋ก๋ ํน์ ์๋ ๋ก๊ทธํ๊ฒ ์์ฒฉ์ผ๋ก๋ ํ์ํ ๋๋ง๋ค ํ๊ธฐ๋ฅผ ํ ์ ์์ง๋ง ์กฐ๊ธ ๋ ์ ๊ทผ์ฑ์ด ์ข์ผ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ค ๋ฌธ๋ ์ต์คํ
์
ํญ์ ๋๊ธธ์ด ๊ฐ๊ฒ ๋์๊ณ , ํฌ๋๋ฆฌ์คํธ๋ ๋ฉ๋ชจ์ฅ์ ์ต์คํ
์
์ผ๋ก ๋ง๋ค์ด๋ณผ ์ ์์๊น? ํ๋ ์๊ฐ์ ํ๊ฒ ๋์์ต๋๋ค.
๊นํ๋ธ
ํ ์ดํ๋ก์ ํธ ์งํ๊ณผ์
โข
๋๋ต์ ์ธ ๊ตฌ์ฑ ์ง๊ธฐ
ํผ๊ทธ๋ง๋ก ๊ตฌ์ฑ์ ์ง๋ณด์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์๋์ฐ98 ๊ฐ์ฑ์ ์ฐธ ์ข์ํด์ ์ด๋ฅผ ์ด๋ ค ๋ง๋ค์ด๋ณด์์ต๋๋ค..
โข
manifest.jason ์์ฑ
{
"manifest_version": 2,
"name": "TodoList",
"description": "์๋์ฐ 98 ์ ๊ฐ์ฑ์ ์
ํ ํฌ๋๋ฆฌ์คํธ์ ๋ฉ๋ชจ์ฅ ์
๋๋ค!",
"version": "1.0.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "todoList.html"
},
"permissions": [
"tabs",
"activeTab",
"storage"
]
}
JSON
๋ณต์ฌ
manifest_version ์ 3 ์ด ์ต์ ์ด์ง๋ง, 3 ์์๋ activeTab ์ด ์ง์์ด ๋์ง ์์ 2 ๋ก ๋ฎ์ถ์ด ์งํํ์์ต๋๋ค.
โข
์ฝ๋์์ฑ
โฆ
์ผ๋ฐ์ ์ธ todoList ์ memo ๊ธฐ๋ฅ์ ๋ง๋ค์์ต๋๋ค.
โฆ
localStorage ์ ์ ์ฅํ ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
Local Storage
๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ๋ฌด์์ธ๊ฐ? ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ์น ์คํ ๋ฆฌ์ง์ ํ ์ข
๋ฅ์
๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฅํ๋ ๊ธฐ์ ์ธ๋ฐ, ๋์ผํ ์ปดํจํฐ์์ ๋์ผํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ ๋์ ํํด ๋ฐ์ดํฐ ์์์ฑ์ด ์ ์ง๋ฉ๋๋ค. ๋ง์ฝ ์ด ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ์๋ก๊ณ ์นจ ํ์๋ง์ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ ๋ฒ๋ฆฌ๊ฒ ์ฃ ,,
์น ์คํ ๋ฆฌ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํค์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ API ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// ํค์ ๋ฐ์ดํฐ ์ฐ๊ธฐ
localStorage.setItem("key", value);
// ํค๋ก ๋ถํฐ ๋ฐ์ดํฐ ์ฝ๊ธฐ
localStorage.getItem("key");
// ํค์ ๋ฐ์ดํฐ ์ญ์
localStorage.removeItem("key");
// ๋ชจ๋ ํค์ ๋ฐ์ดํฐ ์ญ์
localStorage.clear();
// ์ ์ฅ๋ ํค/๊ฐ ์์ ๊ฐ์
localStorage.length;
JavaScript
๋ณต์ฌ
์น ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ/์ฝ๊ธฐ ํ ๋ ์ฃผ์ํด์ผํ ์ ์ด ํ๋ ์์ต๋๋ค. ์น ์คํ ๋ฆฌ์ง๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ๋ฐ์ ์ ์ฅํ ์ ์๋ค๋ ์ ์ธ๋ฐ์, ์ด๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋๋ ๋ฐฐ์ด์ JSON ํํ๋ก ์ง๋ ฌํ(serialization) ํ๊ณ , ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋๋ ๋ฐ๋๋ก ์คํธ๋ง ํํ์ ๋ฐ์ดํฐ๋ฅผ JSON ํํ๋ก ์ญ์ง๋ ฌํ(deserialization) ํ์ฌ ์๋ณธ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ป์ต๋๋ค.
์ง๋ ฌํ
์ญ์ง๋ ฌํ
์ง๋ ฌํ/์ญ์ง๋ ฌํ ๊ฐ๋จํ ์ ๋ฆฌ
์์ฐ
ํฌ๋๊ธฐ๋ฅ
๋ฉ๋ชจ๊ธฐ๋ฅ
ํ๊ณ
๋ฐ๊ธฐ์ ๋์ง๋ง ์์๋ค๋ฉด ํ๋ฃจ๋ง์ ๋๋์๊ฑด๋,, ๋๋ฌด ๊ฒ์ผ๋ฆ์ ํผ์ด๊ฒ ๊ฐ์ต๋๋ค. ๋๋ฆ ๋ํ
์ผ์ ์ด๋ ค๋ณด๊ฒ ๋ค๊ณ ํ๋๋ฐ, ๋จ์ด ๋ณด์์ ๋ ์ ๋ณด์ผ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๊ทธ๋๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ, ์ฌ๋ฏธ์๊ฒ ์ ๋ง์น๊ฒ ๊ฐ์ต๋๋ค. ๋ง๋ค๊ณ ๋ณด๋ ์์ ๊ธฐ๋ฅ์ ๋ฃ์ง ์์์ ์กฐ๋ง๊ฐ ์๊ฐ๋ ๋ ๊ผญ ๋ฃ์ด๋ด์ผ ๊ฒ ์ต๋๋ค. ์ฐ๋ค๋ณด๋ฉด ๊ทธ ๊ธฐ๋ฅ์ด ํ์ํ ๋๊ฐ ์ค๊ฒ ์ฃ ,,?
ํฌ๋กฌ ์ต์คํ
์
์ ํ๋ฒ ๋ง๋ค์ด๋ดค์ผ๋ ๋ค์ ํ ํ๋ก์ ํธ ์งํ ์ ์ด๋ฅผ ์ฌ์ฉํด๋ด์ผ ๊ฒ ์ต๋๋ค. ์ด๋ป๊ฒ ํ์ฉ์ ํด๋ณผ์ง ๋ฒ์จ๋ถํฐ ๊ธฐ๋๊ฐ ๋๋ค์!
์ฝ์ด์ฃผ์ ๋ถ๋ค ๋ชจ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.