DELETE FROM KEYWORDS WHERE ID_DOMAINE=34244999DoneDoneDone
URL:brunch.co.kr
Connection: keep-alive
Date: Sat, 02 Nov 2024 10:30:39 GMT
Content-Length: 164
Content-Type: text/html
Location: https://brunch.co.kr
Location => https://brunch.co.kr
Status => 308
<html>
<head><title>308 Permanent Redirect</title></head>
(vide) Tentative en https
<!DOCTYPE html>
<html lang="ko">
<head>
<title>브런치스토리</title>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="title" content="브런치스토리">
<meta name="referrer" content="always">
<meta name="secureToken" value="">
<meta name="robots" content="max-image-preview:large">
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" />
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)" />
<meta name="description" content="작품이 되는 이야기">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Brunch Story">
<meta property="og:title" content="브런치스토리">
<meta property="og:description" content="작품이 되는 이야기">
<meta property="og:image" content="https://t1.daumcdn.net/brunch/static/img/brunchstory/brunchstory_og_image.png">
<meta property="og:url" content="https://brunch.co.kr">
<meta name="twitter:card" content="summary">
<meta name="twitter:app:name:iphone" content="브런치스토리">
<meta name="twitter:app:id:iphone" content="1001388574">
<meta name="twitter:app:url:iphone" content="brunchapp://open">
<meta name="twitter:image" content="https://img1.daumcdn.net/thumb/C500x500/?fname=https://t1.daumcdn.net/brunch/static/img/brunchstory/brunchstory_og_image.png">
<meta name="twitter:title" content="브런치스토리">
<meta name="twitter:description" content="작품이 되는 이야기">
<meta property="fb:app_id" content="313683402170826">
<link rel="SHORTCUT ICON" href="//t1.daumcdn.net/brunch/static/icon/favicon/brunchstory/favicon_20230406.ico"/>
<link rel="apple-touch-icon-precomposed" sizes="180x180" href="//t1.daumcdn.net/brunch/static/icon/ios/brunchstory/ico_bi_180.png">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="//t1.daumcdn.net/brunch/static/icon/ios/brunchstory/ico_bi_152.png">
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="//t1.daumcdn.net/brunch/static/icon/ios/brunchstory/ico_bi_120.png">
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width, viewport-fit=cover">
<link rel="stylesheet" type="text/css" href="//t1.daumcdn.net/brunch/static/prod/20241031130651/production/css/B.min.css">
<link rel="stylesheet" type="text/css" href="//t1.daumcdn.net/brunch/static/prod/20241031130651/production/css/B.Message.min.css">
<link rel="stylesheet" type="text/css" href="//t1.daumcdn.net/brunch/static/prod/20241031130651/production/css/B.Font.min.css">
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/jquery.min-3.6.4.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/jquery.cookie.min-1.4.1.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/jquery.xdomainrequest.min-1.0.4.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/jquery.word-break-keep-all.min-1.3.0.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/handlebars.runtime.min-v4.7.8.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/sentry.min.5.27.4.js?v=20221124"></script>
<script type="text/javascript" src="//t1.daumcdn.net/brunch/static/libraries/js/clipboard.min.js"></script>
<script type="text/javascript" src="//t1.daumcdn.net/tiara/js/v1/tiara.min.js"></script>
<script>
window.Guard = {
hasError: false,
excuteFunctionArray: [],
loadedJsHistory: [],
/*
kebana에 프론트 로그 발생 오류를 기록 한다.
*/
fetchLog: function(message, extraJson) {
if (!window.fetch && !fetch) {
return '';
}
var csrfToken = document.querySelector('meta[name=secureToken]').attributes['value'].value;
fetch('https://api.brunch.co.kr/v1/front-log', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': csrfToken
},
credentials: 'include',
body : JSON.stringify({
message: message,
extras: extraJson
})
})
},
/*
js파일의 tenth2 fetch 결과를 Matrix에 기록.
*/
checkTenth2JsStatus: function (jsFileName) {
var phase = '/';
phase = '/production/'
var jsUrl = '//t1.daumcdn.net/brunch/static/prod/20241031130651' + phase + jsFileName;
if (!window.fetch && !fetch) {
return '';
}
fetch(jsUrl).then(function(response) {
Sentry.setTag('InitFail', 'FailLoadTenth2js');
Sentry.captureMessage('[BRUNCH] InitFail - Tenth2', {
extra: {
extra: {
status: response.status,
url: response.url,
statusText: response.statusText,
},
},
});
}).catch(function(error) {
Sentry.captureMessage('[BRUNCH] InitFail - Tenth2', {
extra: {
extra: {
url: jsUrl,
},
},
});
});
},
dynamicAppendJsLibraryTags: function(jsFileNameArray) {
for(var i=0; i<jsFileNameArray.length; i++) {
this.dynamicAppendJsLibraryTag(jsFileNameArray[i]);
}
},
dynamicAppendJsLibraryTag: function(jsFileName) {
this.createScriptTag('/static/libraries/js/', jsFileName);
},
/**
* 자바스크립트 동적 생성 함수
* @param {String} jsPath - 자바스크립트 파일 경로
* @param {String} jsFileName - 자바스크립트 파일 이름
* @param {Function} onLoadCallback - 스크립트 onLoad 이후 실행될 함수
*/
createScriptTag: function(jsPath, jsFileName, onLoadCallback, type) {
this.loadedJsHistory.push(jsFileName);
var script = document.createElement('script');
script.type = type || 'text/javascript';
script.src = jsPath + jsFileName + '?v=1730543440554';
if (onLoadCallback) {
script.onload = function() {
onLoadCallback();
}
}
script.onerror = function(e) {
this.matrixLogging(e, 'Invalid Script src', jsPath + jsFileName);
}.bind(this)
script.async = false;
this.removeScriptTag(jsPath + jsFileName);
document.getElementsByTagName('head')[0].appendChild(script);
},
/**
* dom 내에 존재하는 대상 스크립트를 찾아서 제거 하는 함수
* @param {String} targetSrc
*/
removeScriptTag: function(targetSrc) {
for (var i=0; i<document.scripts.length; i++) {
if (document.scripts[i].src.indexOf(targetSrc) > -1) {
document.scripts[i].remove();
}
}
},
/**
* 함수를 실행하고, 그 실행 내역을 Array에 저장
* @param {Function} func - 실행될 함수
*/
executeAndSaveFunction: function(func) {
try {
this.excuteFunctionArray.push(func);
func();
} catch(e) {
if(!this.hasError) {
this.fetchLog('script error occur', {});
}
this.hasError = true;
}
},
/**
* 글뷰 페이지를 복구 하기 위한 함수
* 1. libraries 태그 복원
* 2. 글뷰 통합 번들 파일 추가
* @param {boolean} isPc
*/
restoreArticlePage: function(isPc) {
var scripts = [
"sentry.min.5.27.4.js",
"jquery.min-3.6.4.js",
"jquery.cookie.min-1.4.1.js",
"jquery.xdomainrequest.min-1.0.4.js",
"jquery.word-break-keep-all.min-1.3.0.js",
"handlebars.runtime.min-v4.7.8.js"
];
this.dynamicAppendJsLibraryTags(scripts);
this.excuteFunctionArray.push(function() {
this.loggedIsArticleRestored(isPc);
}.bind(this));
if (isPc) {
this.createScriptTag('/static/production/', 'brunch.article.pc.min.js', this.doExcuteFunctionArray.bind(this));
} else {
this.createScriptTag('/static/production/', 'brunch.article.mobile.min.js', this.doExcuteFunctionArray.bind(this));
}
},
/**
* article 페이지 복구 여부에 대한 기록 함수
* PC .wrap_body_frame 존재 유무
* Mobile #articleMain display 속성 확인 (not none)
* @param isPc
*/
loggedIsArticleRestored: function(isPc) {
var isRestored = false;
if (isPc) {
isRestored = document.querySelector('.wrap_body_frame') !== null
} else {
isRestored = window.getComputedStyle(document.querySelector('#articleMain')).display !== 'none';
}
var fetchMsg = 'restorePageFail';
if (isRestored) {
fetchMsg = 'restorePage';
}
this.fetchLog(fetchMsg, {
isPc: isPc
})
},
doExcuteFunctionArray: function() {
if (this.excuteFunctionArray.length > 0) {
for (var i = 0; i < this.excuteFunctionArray.length; i++) {
var func = this.excuteFunctionArray[i];
if (func && typeof func === 'function') {
try {
func();
} catch(e) {
this.fetchLog('failRestorePage', {
error: e,
})
}
}
}
}
},
matrixLogging: function(error, tagValue, data) {
// B.Util 스크립트도 로딩이 안된 경우가 있어 별도의 로깅을 진행 한다.
Sentry.addBreadcrumb({
type: 'error',
category: 'error',
level: 'error',
data: data
});
Sentry.setTag('Monitoring', tagValue);
Sentry.captureMessage('[BRUNCH] Article View Restore Fail');
}
};
</script>
<script type="text/javascript">
window._platform = "unknown";
function sentryInit() {
Sentry.init({
dsn: 'https://82e056052bc34de9a6b32456d6f1f370@aem-kakao-collector.onkakao.net/1768',
release: '20241031130651',
environment: 'prod',
allowUrls: [
"brunch.co.kr",
"dev.onkakao.net",
"daumcdn.net"
],
beforeSend: function (event) {
if('request' in event && 'headers' in event.request && 'User-Agent' in event.request.headers) {
var lowerUserAgent = event.request.headers['User-Agent'].toLowerCase();
var botIgnoredMsg = '[BRUNCH] Spider or Bot detected. Ignored.';
if (lowerUserAgent.indexOf('bot') > -1 || lowerUserAgent.indexOf('crawl') > -1) {
event.title = botIgnoredMsg;
event.message = botIgnoredMsg;
}
}
return event;
}
});
Sentry.setTag("ua.platform", window._platform);
Sentry.setInitFail = function(message) {
Sentry.setTag('InitFail', 'InitFail');
Sentry.setTag('FailMessage', message)
Sentry.captureMessage('[BRUNCH] InitFail. Script is not initialized.');
}
}
Guard.executeAndSaveFunction(sentryInit);
</script>
<script>
if (typeof jQuery === 'undefined') {
var scripts = [
"sentry.min.5.27.4.js",
"jquery.min-3.6.4.js",
"jquery.cookie.min-1.4.1.js",
"jquery.xdomainrequest.min-1.0.4.js",
"jquery.word-break-keep-all.min-1.3.0.js",
"handlebars.runtime.min-v4.7.8.js"
]
Guard.dynamicAppendJsLibraryTags(scripts);
Guard.fetchLog('libraries init', {});
}
</script> <meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width">
<link rel="stylesheet" type="text/css" href="//t1.daumcdn.net/brunch/static/prod/20241031130651/production/pages/top/index.min.css">
</head>
브런치스토리
Recherche META Description de la page
작품이 되는 이야기
Recherche META Keywords de la page
UPDATE DOMAINES SET server='',redirection='https://brunch.co.kr',Status='200',err='',[TITRE]=N'브런치스토리',[DESCRIPTION]=N'작품이 되는 이야기',[KEYWORDS]=N'' WHERE id=34244999
0 브런치스토리 작품이 되는 이야기
0. 브런치스토리 (6)--------->0
1. 작품이 (3)--------->0
2. 되는 (2)--------->0
3. 이야기 (3)--------->0
INSERT INTO KEYWORDS (keyword,id_domaine) VALUES (N'브런치스토리',34244999),(N'작품이',34244999),(N'되는',34244999),(N'이야기',34244999)