• DELETE FROM KEYWORDS WHERE ID_DOMAINE=34244999
  • DoneDoneDone

    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

    https://brunch.co.kr

    
    
    
    
    
    <!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)