๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ธฐ์ ์ธ ์น ์คํ ๋ฆฌ์ง์๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง(localStorage)์ ์ธ์
์คํ ๋ฆฌ์ง(sessionStorage)๊ฐ ์๋ค. ์ธ์
์คํ ๋ฆฌ์ง๋ ์น ํ์ด์ง์ ์ธ์
์ด ๋๋ ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์ง์์ง๋ ๋ฐ๋ฉด, ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ์นํ์ด์ง์ ์ธ์
์ด ๋๋๋ ๋ฐ์ดํฐ๊ฐ ์ง์์ง์ง ์๋๋ค.
์น ์คํ ๋ฆฌ์ง๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํค(key)์ ๊ฐ(value)์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
localStorage.setItem("key", "value");
: ๋ฐ์ดํฐ ์ ์ฅ
localStorage.getItem("key", "value");
: ๋ฐ์ดํฐ ์ฝ๊ธฐ(๋ถ๋ฌ์ค๊ธฐ)
localStorage.removeItem("key");
: ํด๋น ๋ฐ์ดํฐ ์ญ์
localStorage.clear();
: ๋ชจ๋ ๋ฐ์ดํฐ ์ญ์
์ ์ฅ๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ ๋ธ๋ผ์ฐ์ ์ ์ฝ์ ์ฐฝ์ ์ด์ด ํ์ธํ ์ ์๋ค.
๐ฅ์ฐ์ต
/*
1. ๋ก๊ทธ์ธ์ ๋๋ฅด๋ฉด ์์ด๋์ ๋น๋ฒ์ด ๊นจ๋ํด์ง๋ค.
2. ๋ก๊ทธ์ธ ์, ์์ด๋์ ์ฅ์ ์ฒดํฌํ ์ํ๋ฉด ๋ค์์ ์์ ๋ ์์ด๋๊ฐ ๊ธฐ์
๋์ด์๋ค.
-> localStorage ํ์ฉ!
1) ๋ก๊ทธ์ธ๋ฒํผ ๋๋ ์ ๋ -> ์ฒดํฌ๋ฐ์ค ์ฒดํฌ์ฌ๋ถ
2) ์ฒดํฌ ์ํ๋ฉด localStorage์ ์ ์ฅ
3) ์ด์ ์ ์์ด๋์ ์ฅ์ ํ์ผ๋ฉด, lacalStorage์์ ๋ถ๋ฌ์์ ์์ด๋ ์นธ์ ๊ธฐ์
.
3. ์์ด๋๋ ํ๊ฐ๋ง ์ ์ฅ๋๋ค. (์ ์ผ ๋ง์ง๋ง์ ์ ์ฅ๋์๋ ์์ด๋๋ก ํ์ฉ)
*/
๐ฝHTML ์ฝ๋
<div class="container">
<h1>๋ก๊ทธ์ธ</h1>
<h3>์์ด๋</h3>
<input type="text" id="inputId" placeholder="์์ด๋">
<h3>๋น๋ฐ๋ฒํธ</h3>
<input type="password" id="inputPw"placeholder="๋น๋ฐ๋ฒํธ">
<label for="">์์ด๋ ์ ์ฅ<input type="checkbox" id="checkIdSave"></label>
<button id="btnLogIn">๋ก๊ทธ์ธ</button>
</div>
๐ฝCSS ์ฝ๋
.container{
width: 400px;
border: 1px solid black;
margin: 0 auto;
padding: 50px;
display: flex;
flex-direction: column;
}
.container label{
margin-top: 20px;
}
.container button{
margin-top: 20px;
}
.container input{
font-size: 1.25rem;
padding-left: 10px;
}
.container input:focus{
border: 1px solid red;
}
h1{
text-align: center;
}
๐ฝJS ์ฝ๋
window.onload = ()=>{
const btn = document.getElementById('btnLogIn');
const inputId = document.getElementById('inputId');
const inputPw = document.getElementById('inputPw');
const inputChk = document.getElementById('checkIdSave');
inputId.value = localStorage.getItem("id");
btn.addEventListener('click', function(){
if(inputChk.checked == true){
localStorage.setItem("id", inputId.value);
}
inputId.value = '';
inputPw.value = '';
});
}
๐ฉ์์ด๋ ์ ์ฅ ์ฒดํฌ ํ ์คํ๊ฒฐ๊ณผ
/*
*์ถ๊ฐ์๊ตฌ์ฌํญ
4. ์์ด๋ ์ ์ฅ์ ํ๊ณ ๋ก๊ทธ์ธํ๋ฉด, ์์ด๋๊ฐ ์ ์ฅ๋์ง ์๋๋ค.
5. ์ ์ฅ๋ ์์ด๋๋ฅผ ๋ถ๋ฌ์์ ํ๊ธฐํ ๊ฒฝ์ฐ์๋ ์์ด๋ ์ ์ฅ ์ฒดํฌ๋ฐ์ค๋ ๊ฐ์ด ์ฒดํฌ๋ ์ํ๋ก ์์ํ๋ค.
*/
๐ฝJS ์ฝ๋ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
window.onload = ()=>{
const btn = document.getElementById('btnLogIn');
const inputId = document.getElementById('inputId');
const inputPw = document.getElementById('inputPw');
const inputChk = document.getElementById('checkIdSave');
let id_localStorage = localStorage.getItem("id");
inputId.value = id_localStorage;
if(id_localStorage != '' && id_localStorage != null){
inputChk.checked = true;
}
btn.addEventListener('click', function(){
if(inputChk.checked == true){
localStorage.setItem("id", inputId.value);
} else{
localStorage.setItem("id", "");
// localStorage.removeItem("id"); -> ๊ฐ์ด null์ด ๋จ
}
inputId.value = '';
inputPw.value = '';
});
}
๐ฉ์คํ ๊ฒฐ๊ณผ