๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Lect & Tip/javascript, jQuery

(Javascript)๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†”์ฐฝ ์ฐจ๋‹จ ๋ฐฉ๋ฒ• - ์‚ฌ์ดํŠธ ์ด๋™ [๊ฒฝ๊ณ ] ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

by ๋‚ฏ์„ ๊ณต๊ฐ„2019 2023. 12. 14.

๋ชฉ์ฐจ

    (Javascript)๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†”์ฐฝ ์ฐจ๋‹จ ๋ฐฉ๋ฒ• - ์‚ฌ์ดํŠธ ์ด๋™ [๊ฒฝ๊ณ ] ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฐจ๋‹จ์˜ ํ•œ๊ณ„์™€ ์‹ค์šฉ์  ์ ‘๊ทผ

    ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ฐจ๋‹จํ•˜๋ ค๋Š” ์ฃผ๋œ ๋ชฉ์ ์€ ๋ณด์•ˆ ๊ฐ•ํ™”๋‚˜ HTML ๋ฐ CSS์˜ ์ˆจ๊น€์„ ์œ„ํ•จ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ ๊ฒƒ์€, ์ฝ˜์†” ์ฐฝ์„ ๋ง‰๋Š” ๊ฒƒ์ด ๊ธฐ์ˆ ์ ์œผ๋กœ ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ, ์–ด๋Š ์ •๋„๋Š” ๋šซ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ด ๊ธฐ๋Šฅ์€ ๋ณด์กฐ์ ์ธ ์ˆ˜๋‹จ์œผ๋กœ๋งŒ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ์ฝ˜์†” ์ฐฝ ์ฐจ๋‹จ ์ฝ”๋“œ์˜ ์‚ฝ์ž… ์œ„์น˜์™€ ์˜ˆ์ œ

    Stack Overflow์™€ ๊ฐ™์€ ์‚ฌ์ดํŠธ์—๋Š” ๋งŽ์€ ์ฝ˜์†” ์ฐฝ ์ฐจ๋‹จ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๋ธŒ๋ผ์šฐ์ €์˜ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๊ฐ€ ๋ฌด๋ ฅํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ Ukjin Yang ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ๊ฐ€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†” ์ฐฝ์ด ์—ด๋ฆด ๋•Œ ํŠน์ • ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ, ์Šคํ‚จ ํŽธ์ง‘์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋Š” seons-dev.tistory.com์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜์†” ์ฐฝ ์ฐจ๋‹จ ์ฝ”๋“œ๋ฅผ HTML ๋ฌธ์„œ์˜ </body> ํƒœ๊ทธ ๋ฐ”๋กœ ์œ„์— ์‚ฝ์ž…ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

    <html>
      <body>
        <!-- ์—ฌ๊ธฐ์— ์ฝ”๋“œ ์ถ”๊ฐ€ -->
      </body>
    </html>

    ์ฝ˜์†” ์ฐฝ ์ฐจ๋‹จ ์Šคํฌ๋ฆฝํŠธ ์˜ˆ์ œ

    ๋‹ค์Œ์€ ์ฝ˜์†” ์ฐฝ ์ฐจ๋‹จ์„ ์œ„ํ•œ JavaScript ์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค:

    <script>
    !function() {
      function detectDevTool(allow) {
        if(isNaN(+allow)) allow = 100;
        var start = +new Date();
        debugger;
        var end = +new Date();
        if(isNaN(start) || isNaN(end) || end - start > allow) {
          // ์—ฌ๊ธฐ์— ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๊ฐ์ง€ ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ ์‚ฝ์ž…
        }
      }
      if(window.attachEvent) {
        if (document.readyState === "complete" || document.readyState === "interactive") {
          detectDevTool();
          window.attachEvent('onresize', detectDevTool);
          window.attachEvent('onmousemove', detectDevTool);
          window.attachEvent('onfocus', detectDevTool);
          window.attachEvent('onblur', detectDevTool);
        } else {
          setTimeout(argument.callee, 0);
        }
      } else {
        window.addEventListener('load', detectDevTool);
        window.addEventListener('resize', detectDevTool);
        window.addEventListener('mousemove', detectDevTool);
        window.addEventListener('focus', detectDevTool);
        window.addEventListener('blur', detectDevTool);
      }
    }();
    </script>

    ํŠน์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•˜๊ธฐ

    1. Alert ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€:
      ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ์ง€๋  ๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด, ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•œ ๋ถ€๋ถ„์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค:
    2. alert('๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค!');
    3. ํŠน์ • ์‚ฌ์ดํŠธ๋กœ ์ด๋™:
      ํŠน์ • ์‚ฌ์ดํŠธ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:
    4. document.location.href="https://www.tistory.com/";
    5. ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ ์ถ”๊ฐ€:
      ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€์™€ ์‚ฌ์ดํŠธ ๋ฆฌ๋””๋ ‰์…˜์„ ๋™์‹œ์— ์ ์šฉํ•˜๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค:
    6. alert('๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค!'); document.location.href="https://www.tistory.com/";

    ๊ฒฐ๊ณผ ํ™•์ธ

    ์ด์ œ ์›น์‚ฌ์ดํŠธ์—์„œ ์ฝ˜์†” ์ฐฝ์„ ์—ด๋ฉด, ๋””๋ฒ„๊น…์ด ์ผ์‹œ ์ •์ง€๋˜๊ณ , ์ผ์‹œ ์ •์ง€๋ฅผ ํ•ด์ œํ•˜๊ฑฐ๋‚˜ ์ฝ˜์†” ์ฐฝ์„ ๋‹ซ๋Š” ์ˆœ๊ฐ„ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฑฐ๋‚˜ ์ง€์ •ํ•œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ์‚ฌ์šฉ์„ ์™„์ „ํžˆ ๋ง‰์„ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ๊ณ ๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ๋ฆฌ๋””๋ ‰์…˜์„ ํ†ตํ•ด ์ผ์ • ๋ถ€๋ถ„ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์ข…์ ์ธ ๋ณด์•ˆ์€ ์„œ๋ฒ„ ์ธก ์กฐ์น˜์™€ ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€