์ฟ ํค์ ๋ํด ์์ธํ๊ฑด ๋ค๋ฅธ ๊ธ์์ ์์๋ณด๊ณ , ์ด ๊ธ์์๋ ์ฟ ํค๋ฅผ ์ด๋ป๊ฒ ์ด์ฉํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ Persistence ์ฟ ํค์ session ์ฟ ํค์ ๋ํด ๋์ถฉ ์๊ณ ๋์ด๊ฐ๊ธฐ๋ง ํ๋๋ฐ ์ด๋ฒ ๊ธ์์๋ ์ฟ ํค์ ๋ํด ์ง๊ณ ๋์ด๊ฐ๋ คํฉ๋๋ค.
์ด ๊ธ์ ์ฝ๋๋ ์ ํ์ฌ์ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ ํ์๊ธฐ์ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ๋ฆ ํ์ ํ๊ธฐ์๋ ์ข์ง๋ง, ์ง๊ธ ๋น์ฅ ์ฟ ํค ๊ด๋ จํ ์ฝ๋๊ฐ ํ์ํ์ ๋ถ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค.
l ์ฟ ํค๋ ์ด๋์์๊น?
๊ฐ๋ฐ์ ๋๊ตฌ Application ํญ์ ๊ฐ๋ณด๋ฉด ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋์ด ์๋ ์ฟ ํค์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
JSESSIONID๋ Session ์ฟ ํค์ ๊ดํ ์ ๋ณด์ด๊ณ , ๊ทธ์ธ์๋ Persistence ์ฟ ํค์ ๊ดํ ๊ฒ์ธ๋ฐ ์ฌ๊ธฐ์ Persitence ์ฟ ํค๋ฅผ ๊ทธ๋ฅ ์ฟ ํค๋ผ๊ณ ์ง์นญํ๊ฒ ์ต๋๋ค.
popup104, 105, 106 ์ฟ ํค๋ ์ ๊ฐ ์ง์ ์ฌ์ด ๋์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ Value ๊ฐ๋ค์ด true ์ธ๊ฒ์ ๋ณด์ค ์ ์์ต๋๋ค.
l ์ฟ ํค๋ ์ด๋์ ์ฌ์ฉํ ๊น?
ํ์ ์ฐฝ์ ๋ณด์๋ฉด ์ฒดํฌ๋ฐ์ค๋ก '๋ค์๋ ๋์ฐ์ง ์์' , '์ค๋์ ๊ทธ๋ง๋ณด๊ธฐ' ํญ๋ชฉ์ด ์์ต๋๋ค. ์ ๊ธฐ๋ฅ์ ์ํ๋ ์ ์๋๋ก ํ๊ฒ๋ ํ์ํ ๊ฒ์ด ๋ฐ๋ก ์ฟ ํค์ ๋๋ค.
์์์ ๊ฐ ์ฟ ํค์ value ๊ฐ๋ค์ ๊ฐ์ง๊ณ ์๋ฒ๋จ์์ ์ฟ ํค์ value๊ฐ true ์ด๋ฉด ํ์ ์ด ๋จ์ง ์๊ฒ๋ ํด์ฃผ๋ ๊ฒ์ ๋๋ค.
getCookieValue : function(key){
let cookieKey = key + "=";
let result = "";
const cookieArr = document.cookie.split(";");
for(let i = 0; i < cookieArr.length; i++) {
if(cookieArr[i][0] === " ") {
cookieArr[i] = cookieArr[i].substring(1);
}
if(cookieArr[i].indexOf(cookieKey) === 0) {
result = cookieArr[i].slice(cookieKey.length, cookieArr[i].length);
return result;
}
}
return result;
}
์ ์ฝ๋๋ Cookie์ value ๊ฐ์ ๊ฐ์ ธ์ค๋ ์ฝ๋์ ๋๋ค.
์ฝ์๊ฐ์ผ๋ก true๊ฐ ์ถ๋ ฅ๋์ ๊ฑธ ๋ณด์ค์ ์์ต๋๋ค.
var cookieKey = result.data.result[index].seq;
var today = _this.getToday();
var cookieValue = _this.getCookieValue(`popup${cookieKey}`);
alert(cookieValue);
if(cookieValue !== 'true'){
if(today >= str_date && today <= end_date){
var options = `top=`+ posY +`, left=`+ posX +`,width=` + width + `, height=`+ height + `, status=no, menubar=no, toolbar=no, resizable=no`;
window.open("adm/popup/openPopup?popup_seq="+result.data.result[index].seq, "popup="+result.data.result[index].seq, options);
}
}
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ธ์จ value ๊ฐ์ ๊ฐ์ง๊ณ ๋ง์ฝ true๊ฐ ์๋๋ฉด ํ์ ์ฐฝ์ ๋์ด์ค๋๋ค. ๋ง์ฝ ์ฟ ํค๋ฅผ ์ฌ์ด์ฃผ์ง ์์๋ค๋ฉด ํด๋น ์ฟ ํค์ ๋ํ ์ ๋ณด๊ฐ ์์ด์ cookieValue๊ฐ true ๊ฐ์ ๊ฐ์ง์ง ๋ชปํด ํ์ ์ฐฝ์ด ๋จ๊ฒ ๋ ๊ฒ์ ๋๋ค.
(์ฟ ํค Value์ true์ ์ ๊ฐ ์์๋ก ์ ํด๋๊ฑฐ๋ผ ์ ์ฅํ๊ณ ์ถ์์ ๋๋ก ํ์๋ฉด ๋ฉ๋๋ค.)
function setCookie(c_name,value,exdays){
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
<% if(popupTy == 1){ %>
window.opener.document.cookie=c_name + "=" + c_value;
//์์์ฐฝ์ผ๋ก๋ถํฐ ๋ถ๋ชจ์ฐฝ์ ์๋ ์์ฑ๋ค์ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ opener ๋ผ๋๊ฒ์ ํ์ฉํ์ฌ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ณ
<% }else{ %>
window.parent.document.cookie=c_name + "=" + c_value;
//window.parent๋ <iframe> ํ๊ทธ์ ๋ถ๋ชจ, opener๋์ ์์ฐํ ๋ค๋ฅด๋ค
<% } %>
}
function setCookieClick( key, value, day ){
setCookie(key, value, day);
closePopup('<%=cSR.getParamterInt(popup,"popup_seq")%>');
}
function closePopup( id ){
window.open('about:blank','_self').close();
<% if(popupTy == 0){ %>
parent.closeLayerPopup( id );
<% } %>
}
์ ์ฝ๋๋ JSP์ ์๋ ์ฟ ํค๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ฌ์ด์ฃผ๋ ์ฝ๋์ ๋๋ค. ์ฌ๊ธฐ์ ๋์ฌ๊ฒจ ๋ณผ ์ฝ๋๋ window.opener์ window.parent์ ๋๋ค.
์ด ๋์ ํ์ ์ฐฝ์ ๋ถ๋ชจ๋ฅผ ์ ํํด์ฃผ๋ ํจ์์ ๋๋ค. ์ฆ ํ์ ์ ๋ถ๋ชจ๋๊น ๊ฒฐ๊ตญ ํ์ ์ ์คํ์์ผ์ค ํ์ด์ง๊ฐ ๋ถ๋ชจ๊ฐ ๋๊ฒ ์ง์. ์ฐจ์ด๋ window.opener์ ๊ฒฝ์ฐ๋ ์๋ก ๋ค๋ฅธ ์๋์ฐ ์ฐฝ์์์ ๊ฒฝ์ฐ์ด๊ณ , window.parent๋ iframe ๊ด๋ จํ ํจ์์ ๋๋ค.
๋ง์ฝ winow.openr.document.cookie ๊ฐ ์๋๊ณ ๊ทธ๋ฅ document.cookie๋ฅผ ํด์ค๋ค๋ฉด ํ์ ์์ฒด ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค๋ฅผ ์ฌ๊ฒ๋์ ๊ธฐ๋ฅ์ ์ค๋ฅ๊ฐ ์๊ธฐ๊ฒ ๋ฉ๋๋ค. ๋ฉ์ธ ๋ธ๋ผ์ฐ์ ์์๋ ์ฟ ํค์ ์ ๋ฌด๋ฅผ ํ๋จํด์ค์ ์๊ฒ ๋์ง์.
l ์ฟ ํค๋ฅผ ์ง์ ์คํํด๋ณด์
๋ค์๊ณผ ํ์ ์ด ์๊ณ ์ด ํ์ ์ ๋ํ ์ฟ ํค๋ ์์ต๋๋ค. ๋ง์ฝ '๋ค์๋ ๋์ฐ์ง ์์', '์ค๋์ ๊ทธ๋ง๋ณด๊ธฐ'๋ฅผ ์ฒดํฌํ ๊ฒฝ์ฐ!!
popup105, popup106 ์ฟ ํค๊ฐ ์ฌ์ด์ง ๊ฒ์ ๋ณด์ค์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ popup105์ expires ๊ฒฝ์ฐ 2021๋ ์ธ๋ฐ ์ด๋ '๋ค์๋ ๋์ฐ์ง ์์' ์ 1๋ ์ผ๋ก ์ค์ ํด๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. popup106 ๊ฐ์ ๊ฒฝ์ฐ '์ค๋์ ๊ทธ๋ง๋ณด๊ธฐ' ์ด๋ฏ๋ก ๊ธ์ด ๊ธฐ์ค ๋ ์ง(2020-12-29)์ผ๋ก ํ๋ฃจ ๋ค์๋ ์ด 2020-12-30์ธ๊ฒ์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
๋ง๋ฃ๊ฐ ๋๋ฉด ํด๋น ์ฟ ํค๋ฅผ ์ฌ๋ผ์ง ๊ฒ์ด๋ฉฐ, Value ๊ฐ์ด ์์ด์ ํ์ ์ ๋ค์ ๋ํ๋๊ฒ ๋ ๊ฒ์ ๋๋ค.
ใ ฃ ์์ฝ
- ํ์ ์ฐฝ์ ์ฟ ํค ๊ฐ์ ๊ฒฝ์ฐ ๋ถ๋ชจ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค๋ฅผ ์ฌ์ด์ค์ผ ์ ๊ธฐ๋ฅ์ ํ๋ค.
- ์ฟ ํค์ Value ๊ฐ์ ์๋ฌด๊ฑฐ๋ ํด๋ ์๊ด์๋ค.
- ์ฟ ํค ๋ง๋ฃ ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ์ฟ ํค๋ฅผ ์์์ ์์ด์ง๋ค.
- ํ์ ์ ๊ธฐ๋ฅ ๊ฐ์ ๊ฒฝ์ฐ ์ฟ ํค Value๋ฅผ ๊ฐ์ ธ์ ๊ฐ์ด ์์ผ๋ฉด ํ์ ์ ์๋์ฐ๊ฒ ํด์ค๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ํ์ํฉ๋๋ค.
"๋ ๋ฐ๋์ ๋ฐฑ์๋ ์์ด ๋ ๊ฑฐ์ผ"
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MyBatis] mybatis์์ ๋ค์ ์ํ์ค ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ (0) | 2020.12.29 |
---|---|
[Spring] ์ธ์ ์ ์ด์ฉํ ๋ก๊ทธ์ธ ๊ตฌํ (0) | 2020.12.28 |
[JS] ๊ฐ๋ฐ์๋๊ตฌ ์ฝ์์์ response ๊ฐ ์ถ๋ ฅํ๊ธฐ (0) | 2020.12.24 |
[JS]DOM ์ฝ๊ฒ ์ดํดํ๊ธฐ!! ๊ณ ์ฒ์ค์นด์ด๋ ์๋๋๋ค (4) | 2020.12.23 |
[JS] jquery๋ก ํด๋์ค๋ช ์ด ๋์ผํ ์ฌ๋ฌ ๊ฐ์ ํ๊ทธ ์ ๊ทผํ๊ธฐ (0) | 2020.12.23 |