<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>유용한 도구 &#8211; SNSnote</title>
	<atom:link href="https://snsnote.com/category/%EC%A0%95%EB%B3%B4/%EC%9C%A0%EC%9A%A9%ED%95%9C-%EB%8F%84%EA%B5%AC/feed/" rel="self" type="application/rss+xml" />
	<link>https://snsnote.com</link>
	<description>인스타그램 정지, 기기밴, 계정 복구, 알고리즘, 성장 전략까지 20만 팔로워를 직접 운영하며 쌓은 실전 노하우를 모두 공유합니다. 초보자도 쉽게 따라할 수 있는 SNS 팁을 확인하세요.</description>
	<lastBuildDate>Thu, 06 Aug 2026 15:54:39 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://snsnote.com/wp-content/uploads/2026/06/sns-thumbnail-logo-32x32.png</url>
	<title>유용한 도구 &#8211; SNSnote</title>
	<link>https://snsnote.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">254946779</site>	<item>
		<title>포토샵 색상 코드 매트릭스표 HEX, RGB, HSL, HSV 변환기</title>
		<link>https://snsnote.com/photoshop-color-code/</link>
					<comments>https://snsnote.com/photoshop-color-code/#respond</comments>
		
		<dc:creator><![CDATA[JH]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 15:54:37 +0000</pubDate>
				<category><![CDATA[유용한 도구]]></category>
		<guid isPermaLink="false">https://snsnote.com/?p=1234</guid>

					<description><![CDATA[포토샵 색상 코드 매트릭스표를 통해 HEX, RGB, HSL, HSV 색상 코드를 실시간으로 확인하고 변환해 보세요. 클릭 한 번으로 색상 코드가 바로 복사됩니다.]]></description>
										<content:encoded><![CDATA[
<CENTER>
<style>
  .color-map-container {
    width: 100%;
    max-width: 320px; /* 모바일 기본 너비 */
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    box-sizing: border-box;
    margin: 20px 0;
    transition: all 0.2s ease-in-out;
  }

  /* &#x1f4bb; PC / 태블릿 화면 (화면 폭 600px 이상) */
  @media (min-width: 600px) {
    .color-map-container {
      max-width: 500px; /* PC에서 너비 확대 */
      padding: 20px;
    }
    .color-map-wrapper {
      height: 260px !important; /* PC에서 높이 확대 */
    }
    .color-map-container .title {
      font-size: 17px;
    }
    .code-input {
      font-size: 13px;
    }
  }

  .color-map-container .title {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 12px;
    text-align: center;
  }

  /* 2D 색상 맵 */
  .color-map-wrapper {
    position: relative;
    width: 100%;
    height: 180px; /* 모바일 기본 높이 */
    border-radius: 8px;
    overflow: hidden;
    cursor: crosshair;
    margin-bottom: 12px;
    border: 1px solid #cbd5e1;
  }

  #colorCanvas {
    width: 100%;
    height: 100%;
    display: block;
  }

  .map-pointer {
    position: absolute;
    width: 14px;
    height: 14px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 0 3px rgba(0,0,0,0.6);
    pointer-events: none;
    transform: translate(-50%, -50%);
    top: 50%;
    left: 50%;
  }

  /* 색상 띠 (Hue Slider) */
  .hue-slider-wrapper {
    margin-bottom: 12px;
  }

  #hueRange {
    -webkit-appearance: none;
    width: 100%;
    height: 14px;
    border-radius: 7px;
    outline: none;
    background: linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
    cursor: pointer;
  }

  #hueRange::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ffffff;
    border: 2px solid #0f172a;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  }

  /* 미리보기 바 */
  .preview-bar {
    width: 100%;
    height: 38px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 14px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
    margin-bottom: 12px;
    border: 1px solid rgba(0,0,0,0.1);
  }

  /* 코드 입력 영역 */
  .color-code-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .code-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 4px 8px;
  }

  .code-label {
    font-size: 11px;
    font-weight: 700;
    color: #64748b;
    width: 35px;
  }

  .code-input {
    flex: 1;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    padding: 5px 6px;
    font-size: 12px;
    font-weight: 600;
    color: #0f172a;
    font-family: monospace;
    text-align: center;
    margin: 0 6px;
    background-color: #ffffff;
    outline: none;
  }

  .code-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
  }

  .copy-btn {
    background-color: #e2e8f0;
    border: none;
    border-radius: 4px;
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
    transition: all 0.15s;
  }

  .copy-btn:hover { background-color: #2563eb; color: #ffffff; }

  #color-toast {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #0f172a;
    color: #ffffff;
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    z-index: 9999;
  }
  #color-toast.show { display: block; }
</style>

<div class="color-map-container">
  <div class="title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3a8.png" alt="🎨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> HTML 색상 매트릭스 표</div>

  <div class="color-map-wrapper" id="mapWrapper">
    <canvas id="colorCanvas"></canvas>
    <div class="map-pointer" id="pointer"></div>
  </div>

  <div class="hue-slider-wrapper">
    <input type="range" id="hueRange" min="0" max="360" value="0">
  </div>

  <div class="preview-bar" id="previewBar">#FF0000</div>

  <div class="color-code-group">
    <div class="code-item">
      <span class="code-label">HEX</span>
      <input type="text" class="code-input" id="hexVal" value="#FF0000">
      <button class="copy-btn" onclick="copyMapCode('hexVal')">복사</button>
    </div>
    <div class="code-item">
      <span class="code-label">RGB</span>
      <input type="text" class="code-input" id="rgbVal" value="rgb(255, 0, 0)">
      <button class="copy-btn" onclick="copyMapCode('rgbVal')">복사</button>
    </div>
    <div class="code-item">
      <span class="code-label">HSL</span>
      <input type="text" class="code-input" id="hslVal" value="hsl(0, 100%, 50%)">
      <button class="copy-btn" onclick="copyMapCode('hslVal')">복사</button>
    </div>
    <div class="code-item">
      <span class="code-label">HSV</span>
      <input type="text" class="code-input" id="hsvVal" value="hsv(0, 100%, 100%)">
      <button class="copy-btn" onclick="copyMapCode('hsvVal')">복사</button>
    </div>
  </div>
</div>

<div id="color-toast">복사되었습니다!</div>

<script>
(function() {
  const canvas = document.getElementById('colorCanvas');
  const ctx = canvas.getContext('2d');
  const wrapper = document.getElementById('mapWrapper');
  const pointer = document.getElementById('pointer');
  const hueRange = document.getElementById('hueRange');
  const previewBar = document.getElementById('previewBar');

  const hexInput = document.getElementById('hexVal');
  const rgbInput = document.getElementById('rgbVal');
  const hslInput = document.getElementById('hslVal');
  const hsvInput = document.getElementById('hsvVal');

  let currentHue = 0;
  let isDragging = false;
  let currentX = 0;
  let currentY = 0;

  function resizeCanvas() {
    canvas.width = wrapper.clientWidth;
    canvas.height = wrapper.clientHeight;
    currentX = canvas.width;
    currentY = 0;
    drawCanvas();
  }

  function drawCanvas() {
    const width = canvas.width;
    const height = canvas.height;

    ctx.fillStyle = `hsl(${currentHue}, 100%, 50%)`;
    ctx.fillRect(0, 0, width, height);

    const whiteGrad = ctx.createLinearGradient(0, 0, width, 0);
    whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');
    whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');
    ctx.fillStyle = whiteGrad;
    ctx.fillRect(0, 0, width, height);

    const blackGrad = ctx.createLinearGradient(0, 0, 0, height);
    blackGrad.addColorStop(0, 'rgba(0,0,0,0)');
    blackGrad.addColorStop(1, 'rgba(0,0,0,1)');
    ctx.fillStyle = blackGrad;
    ctx.fillRect(0, 0, width, height);

    pickColorFromCoords(currentX, currentY);
  }

  /* 색상 상호 변환 알고리즘 */
  function rgbToHsl(r, g, b) {
    r /= 255; g /= 255; b /= 255;
    const max = Math.max(r, g, b), min = Math.min(r, g, b);
    let h, s, l = (max + min) / 2;

    if (max === min) { h = s = 0; } 
    else {
      const d = max - min;
      s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
      switch (max) {
        case r: h = (g - b) / d + (g < b ? 6 : 0); break;
        case g: h = (b - r) / d + 2; break;
        case b: h = (r - g) / d + 4; break;
      }
      h /= 6;
    }
    return { h: Math.round(h * 360), s: Math.round(s * 100), l: Math.round(l * 100) };
  }

  function hslToRgb(h, s, l) {
    s /= 100; l /= 100;
    const k = n => (n + h / 30) % 12;
    const a = s * Math.min(l, 1 - l);
    const f = n => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));
    return {
      r: Math.round(255 * f(0)),
      g: Math.round(255 * f(8)),
      b: Math.round(255 * f(4))
    };
  }

  function rgbToHsv(r, g, b) {
    r /= 255; g /= 255; b /= 255;
    const max = Math.max(r, g, b), min = Math.min(r, g, b);
    const d = max - min;
    let h, s = max === 0 ? 0 : d / max, v = max;

    if (max === min) { h = 0; } 
    else {
      switch (max) {
        case r: h = (g - b) / d + (g < b ? 6 : 0); break;
        case g: h = (b - r) / d + 2; break;
        case b: h = (r - g) / d + 4; break;
      }
      h /= 6;
    }
    return { h: Math.round(h * 360), s: Math.round(s * 100), v: Math.round(v * 100) };
  }

  function hsvToRgb(h, s, v) {
    s /= 100; v /= 100;
    let r, g, b;
    let i = Math.floor((h / 60) % 6);
    let f = h / 60 - Math.floor(h / 60);
    let p = v * (1 - s);
    let q = v * (1 - f * s);
    let t = v * (1 - (1 - f) * s);
    switch (i) {
      case 0: r = v; g = t; b = p; break;
      case 1: r = q; g = v; b = p; break;
      case 2: r = p; g = v; b = t; break;
      case 3: r = p; g = q; b = v; break;
      case 4: r = t; g = p; b = v; break;
      case 5: r = v; g = p; b = q; break;
    }
    return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255) };
  }

  /* 화면 UI 및 포인터 업데이트 */
  function updateAllUI(r, g, b, activeSource = null) {
    const hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase();
    const hsl = rgbToHsl(r, g, b);
    const hsv = rgbToHsv(r, g, b);

    previewBar.style.backgroundColor = hex;
    previewBar.textContent = hex;

    if (activeSource !== 'hex') hexInput.value = hex;
    if (activeSource !== 'rgb') rgbInput.value = `rgb(${r}, ${g}, ${b})`;
    if (activeSource !== 'hsl') hslInput.value = `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;
    if (activeSource !== 'hsv') hsvInput.value = `hsv(${hsv.h}, ${hsv.s}%, ${hsv.v}%)`;

    currentHue = hsv.h;
    hueRange.value = currentHue;

    redrawCanvasWithoutPicker();

    const width = canvas.width;
    const height = canvas.height;
    currentX = (hsv.s / 100) * width;
    currentY = (1 - hsv.v / 100) * height;

    pointer.style.left = currentX + 'px';
    pointer.style.top = currentY + 'px';
  }

  function pickColorFromCoords(x, y) {
    x = Math.max(0, Math.min(x, canvas.width - 1));
    y = Math.max(0, Math.min(y, canvas.height - 1));
    currentX = x; currentY = y;

    pointer.style.left = x + 'px';
    pointer.style.top = y + 'px';

    const pixel = ctx.getImageData(x, y, 1, 1).data;
    updateAllUI(pixel[0], pixel[1], pixel[2]);
  }

  function redrawCanvasWithoutPicker() {
    const width = canvas.width, height = canvas.height;
    ctx.fillStyle = `hsl(${currentHue}, 100%, 50%)`;
    ctx.fillRect(0, 0, width, height);

    const whiteGrad = ctx.createLinearGradient(0, 0, width, 0);
    whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');
    whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');
    ctx.fillStyle = whiteGrad;
    ctx.fillRect(0, 0, width, height);

    const blackGrad = ctx.createLinearGradient(0, 0, 0, height);
    blackGrad.addColorStop(0, 'rgba(0,0,0,0)');
    blackGrad.addColorStop(1, 'rgba(0,0,0,1)');
    ctx.fillStyle = blackGrad;
    ctx.fillRect(0, 0, width, height);
  }

  /* 입력 필드별 실시간 반영 이벤트 */
  hexInput.addEventListener('input', (e) => {
    let val = e.target.value.trim();
    if (!val.startsWith('#')) val = '#' + val;
    if (/^#([0-9A-F]{3}){1,2}$/i.test(val)) {
      if (val.length === 4) {
        val = '#' + val[1] + val[1] + val[2] + val[2] + val[3] + val[3];
      }
      const num = parseInt(val.slice(1), 16);
      const r = (num >> 16) & 255, g = (num >> 8) & 255, b = num & 255;
      updateAllUI(r, g, b, 'hex');
    }
  });

  rgbInput.addEventListener('input', (e) => {
    const match = e.target.value.match(/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i) || 
                  e.target.value.match(/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)$/);
    if (match) {
      const r = Math.min(255, parseInt(match[1]));
      const g = Math.min(255, parseInt(match[2]));
      const b = Math.min(255, parseInt(match[3]));
      updateAllUI(r, g, b, 'rgb');
    }
  });

  hslInput.addEventListener('input', (e) => {
    const match = e.target.value.match(/hsl\(\s*(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?\s*\)/i) ||
                  e.target.value.match(/^(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?$/);
    if (match) {
      const h = Math.min(360, parseInt(match[1]));
      const s = Math.min(100, parseInt(match[2]));
      const l = Math.min(100, parseInt(match[3]));
      const { r, g, b } = hslToRgb(h, s, l);
      updateAllUI(r, g, b, 'hsl');
    }
  });

  hsvInput.addEventListener('input', (e) => {
    const match = e.target.value.match(/hsv\(\s*(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?\s*\)/i) ||
                  e.target.value.match(/^(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?$/);
    if (match) {
      const h = Math.min(360, parseInt(match[1]));
      const s = Math.min(100, parseInt(match[2]));
      const v = Math.min(100, parseInt(match[3]));
      const { r, g, b } = hsvToRgb(h, s, v);
      updateAllUI(r, g, b, 'hsv');
    }
  });

  /* 드래그 및 슬라이더 이벤트 */
  function handleMove(e) {
    const rect = canvas.getBoundingClientRect();
    const clientX = e.touches ? e.touches[0].clientX : e.clientX;
    const clientY = e.touches ? e.touches[0].clientY : e.clientY;
    pickColorFromCoords(clientX - rect.left, clientY - rect.top);
  }

  wrapper.addEventListener('mousedown', (e) => { isDragging = true; handleMove(e); });
  window.addEventListener('mousemove', (e) => { if (isDragging) handleMove(e); });
  window.addEventListener('mouseup', () => { isDragging = false; });

  wrapper.addEventListener('touchstart', (e) => { isDragging = true; handleMove(e); }, {passive: true});
  window.addEventListener('touchmove', (e) => { if (isDragging) handleMove(e); }, {passive: true});
  window.addEventListener('touchend', () => { isDragging = false; });

  hueRange.addEventListener('input', (e) => {
    currentHue = e.target.value;
    drawCanvas();
  });

  /* 클립보드 복사 함수 */
  window.copyMapCode = function(id) {
    const inputEl = document.getElementById(id);
    const textToCopy = inputEl.value;

    function showToast() {
      const toast = document.getElementById('color-toast');
      toast.textContent = `"${textToCopy}" 복사되었습니다!`;
      toast.classList.add('show');
      setTimeout(() => toast.classList.remove('show'), 1500);
    }

    if (navigator.clipboard && window.isSecureContext) {
      navigator.clipboard.writeText(textToCopy).then(showToast).catch(() => fallbackCopy());
    } else {
      fallbackCopy();
    }

    function fallbackCopy() {
      const tempTextArea = document.createElement('textarea');
      tempTextArea.value = textToCopy;
      tempTextArea.style.position = 'fixed';
      tempTextArea.style.left = '-999999px';
      tempTextArea.style.top = '-999999px';
      document.body.appendChild(tempTextArea);
      tempTextArea.focus();
      tempTextArea.select();
      try {
        document.execCommand('copy');
        showToast();
      } catch (err) {
        alert('복사에 실패했습니다.');
      }
      document.body.removeChild(tempTextArea);
    }
  };

  setTimeout(resizeCanvas, 50);
  window.addEventListener('resize', resizeCanvas);
})();
</script>
</CENTER>



<h2 class="wp-block-heading">포토샵 색상 코드와 2D 매트릭스표의 이해</h2>



<p class="wp-block-paragraph">웹 디자인, 그래픽 작업, 인쇄물 제작 등 다양한 디자인 작업에서 원하는 색상을 정확하게 선택하고 공유하는 것은 매우 중요합니다. <strong>색상 코드</strong>는 컴퓨터와 그래픽 프로그램이 특정 컬러를 인식할 수 있도록 표준화한 기호입니다.</p>



<p class="wp-block-paragraph">특히 <strong>포토샵 색상 코드</strong>는 작업 시 자주 사용되는 HEX, RGB, HSL, HSV 등 여러 체계로 표현됩니다. 본 페이지에서 제공하는 2D 색상 매트릭스표 도구를 사용하면 수동으로 수치를 입력하거나 화면의 포인터를 움직여 원하는 <strong>색상 코드</strong>를 실시간으로 확인하고 변환할 수 있습니다.</p>



<h2 class="wp-block-heading">주요 색상 코드 종류 및 특징 (HEX, RGB, HSL, HSV)</h2>



<p class="wp-block-paragraph">디자인 환경에 따라 사용하는 <strong>색상 코드</strong> 방식이 달라집니다. 각 표기법의 특징은 다음과 같습니다.</p>



<ul class="wp-block-list">
<li><strong>HEX 코드 (16진수 색상 코드):</strong> <code>#</code> 기호 뒤에 6자리 문자와 숫자로 조합된 표기법입니다. 웹 사이트(HTML/CSS)에서 가장 널리 쓰이는 표준 <strong>색상 코드</strong>입니다. (예: <code>#4A140A</code>)</li>



<li><strong>RGB 코드:</strong> Red, Green, Blue 3가지 빛의 삼원색을 0부터 255까지의 수치로 나타냅니다. 디지털 모니터 화면 표현에 최적화되어 있습니다. (예: <code>rgb(74, 20, 10)</code>)</li>



<li><strong>HSL 코드:</strong> 색상(Hue), 채도(Saturation), 명도(Lightness)의 3가지 요소로 <strong>색상 코드</strong>를 구성합니다. 직관적으로 색조와 밝기를 조정할 때 유리합니다.</li>



<li><strong>HSV 코드:</strong> 색상(Hue), 채도(Saturation), 명도/가치(Value)를 뜻하며, 포토샵의 컬러 피커(Color Picker) 방식과 가장 유사한 형태입니다.</li>
</ul>



<h2 class="wp-block-heading">포토샵 색상 코드 변환기 사용 방법</h2>



<p class="wp-block-paragraph">본 <strong>색상 코드</strong> 변환기는 PC와 모바일 환경 모두에서 손쉽게 동작하도록 최적화되어 있습니다.</p>



<ol start="1" class="wp-block-list">
<li><strong>2D 매트릭스 조절:</strong> 상단 판에서 마우스나 손가락으로 포인터를 이동하여 채도와 명도를 변경합니다.</li>



<li><strong>색상 띠(Hue Slider) 변경:</strong> 슬라이더를 움직여 기본 색상톤(Hue)을 빠르게 전환합니다.</li>



<li><strong>수동 입력 및 실시간 변환:</strong> HEX, RGB, HSL, HSV 입력창에 직접 <strong>색상 코드</strong> 값을 입력해도 매트릭스 포인터와 나머지 수치가 자동으로 즉시 업데이트됩니다.</li>



<li><strong>원클릭 복사:</strong> 각 코드 오른쪽에 위치한 <strong>[복사]</strong> 버튼을 클릭하면 클립보드에 해당 <strong>색상 코드</strong>가 저장되어 포토샵이나 CSS 코드에 바로 붙여넣을 수 있습니다.</li>
</ol>



<h2 class="wp-block-heading">웹 디자인 및 포토샵 작업 시 색상 코드 활용 팁</h2>



<p class="wp-block-paragraph">포토샵 작업을 진행할 때 정확한 <strong>색상 코드</strong>를 공유하는 것은 일관된 브랜딩과 디자인 품질 유지에 필수적입니다. 본 도구에서 추출한 HEX나 RGB <strong>색상 코드</strong>를 활용하면 스타일시트(CSS) 작성 시 오차 없이 디자이너의 의도대로 웹페이지 요소를 구현할 수 있습니다.</p>



<p class="wp-block-paragraph">필요할 때마다 이 <strong>색상 코드</strong> 변환기를 활용해 쉽고 빠르게 원하는 컬러를 추출해 보세요!</p>



<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 더 자세한 웹 표준 색상 가이드 보기:</strong></p>



<p class="wp-block-paragraph">다양한 색상 코드의 정확한 웹 표준 규격과 표현 방식은 <a target="_blank" rel="noreferrer noopener" href="https://developer.mozilla.org/ko/docs/Web/CSS/color_value">MDN CSS 색상 값 공식 문서</a>에서 확인하실 수 있습니다.</p>



<p class="wp-block-paragraph">그 외의 유용한 도구</p>



<ul class="wp-block-list">
<li><a href="https://snsnote.com/free-qr-code-generator/">자영업자 전용 무료 QR 코드 생성기</a></li>



<li><a href="https://snsnote.com/emoticon-list/">2000년대 느낌 텍스트 이모티콘 표정 특수문자 모음</a></li>
</ul>



<style>
  /* 이 글에서만 본문 상단 대표 이미지 숨기기 */
  .featured-image, 
  .post-thumbnail, 
  .entry-header .post-image,
  .single-media {
    display: none !important;
  }
</style>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img decoding="async" src="https://snsnote.com/wp-content/uploads/2026/06/5555.png" width="100"  height="100" alt="" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://snsnote.com/author/admin/" class="vcard author" rel="author"><span class="fn">JH</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>SNSnote 편집 담당 JH입니다.<br />
2020년부터 SNS를 본격적으로 운영하기 시작해 현재 인스타그램, 유튜브, X를 합쳐 총 40만 팔로워를 보유하고 있습니다.<br />
영구정지 복구, 계정 성장, 수익화까지 직접 경험한 실패와 성공 사례를 바탕으로<br />
실전에서 바로 써먹을 수 있는 최신 정보를 전달해드리고 있습니다.</p>
</div></div><div class="saboxplugin-web "><a href="https://snsnote.com" target="_self">snsnote.com</a></div><div class="clearfix"></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://snsnote.com/photoshop-color-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://snsnote.com/wp-content/uploads/2026/08/photoshop-color-code.jpg" medium="image" /><post-id xmlns="com-wordpress:feed-additions:1">1234</post-id>	</item>
		<item>
		<title>Y2K 레트로 2000년대 느낌 텍스트 이모티콘 표정 특수문자 모음</title>
		<link>https://snsnote.com/emoticon-list/</link>
					<comments>https://snsnote.com/emoticon-list/#respond</comments>
		
		<dc:creator><![CDATA[JH]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 12:32:23 +0000</pubDate>
				<category><![CDATA[유용한 도구]]></category>
		<category><![CDATA[인스타그램]]></category>
		<guid isPermaLink="false">https://snsnote.com/?p=1195</guid>

					<description><![CDATA[귀여운 텍스트 이모티콘과 특수문자 모음! 클릭 한 번으로 간편하게 복사해서 인스타그램, 블로그, 유튜브 댓글에 바로 사용해 보세요.]]></description>
										<content:encoded><![CDATA[
<style>
  #emoticon-box {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 25px 20px;
    margin: 25px 0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    text-align: center;
  }

  #emoticon-box b.title {
    display: block;
    font-size: 22px;
    font-weight: bold;
    color: #0f172a;
    margin-bottom: 6px;
  }

  #emoticon-box p.desc {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 20px;
  }

  /* 카테고리 탭 버튼 */
  .emo-tab-group {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 20px;
  }

  .emo-tab-btn {
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all 0.2s;
  }

  .emo-tab-btn:hover, .emo-tab-btn.active {
    background-color: #2563eb;
    color: #ffffff;
    border-color: #2563eb;
  }

  /* &#x1f31f; 상시 스크롤바 감싸는 영구 영역 */
  .emo-scroll-wrapper {
    position: relative;
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 6px;
  }

  /* 이모티콘 스크롤 영역 */
  .emo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 8px;
    max-height: 500px;
    overflow-y: scroll !important;
    padding: 8px 16px 8px 8px;
    
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
  }
  
  .emo-grid::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  /* &#x1f31f; 모바일에서도 손을 대지 않고 상시 뜨는 스크롤 트랙 */
  .custom-scrollbar-track {
    position: absolute;
    top: 10px;
    right: 8px;
    bottom: 10px;
    width: 6px;
    background-color: #e2e8f0;
    border-radius: 10px;
    pointer-events: none;
    z-index: 99;
  }

  /* &#x1f31f; 항상 선명하게 떠 있는 파란색 손잡이 */
  .custom-scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 25%;
    background-color: #2563eb;
    border-radius: 10px;
    will-change: transform;
  }

  .emo-item {
    background-color: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 6px;
    font-size: 13px;
    color: #1e293b;
    cursor: pointer;
    transition: all 0.15s ease-in-out;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .emo-item:hover {
    background-color: #e2e8f0;
    transform: translateY(-2px);
    border-color: #cbd5e1;
  }

  .emo-item:active {
    transform: scale(0.96);
  }

  /* 복사 알림 토스트 (화면 중앙 고정) */
  #emo-toast {
    display: none;
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    min-width: 220px;
    background-color: #0f172a;
    color: #ffffff;
    text-align: center;
    border-radius: 8px;
    padding: 14px 24px;
    z-index: 999999 !important;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  }

  #emo-toast.show {
    display: block !important;
  }

  /* 모바일 최적화 */
  @media (max-width: 600px) {
    .emo-grid {
      display: block !important;
      max-height: 380px !important;
      height: 380px !important;
      overflow-y: scroll !important;
      -webkit-overflow-scrolling: touch !important;
      padding-right: 20px !important;
    }

    .emo-item {
      display: inline-block !important;
      width: calc(50% - 8px) !important;
      margin: 4px !important;
      box-sizing: border-box !important;
      font-size: 12px !important;
      padding: 10px 2px !important;
      vertical-align: top !important;
    }
  }
</style>

<!-- 특수문자 이모티콘 모음 도구 -->
<div id="emoticon-box">
  <b class="title">⸜(｡˃ ᵕ ˂ )⸝ 특수문자 이모티콘 모음</b>
  <p class="desc">원하는 이모티콘을 클릭하면 바로 클립보드에 복사됩니다!</p>

  <!-- 카테고리 탭 -->
  <div class="emo-tab-group">
    <button class="emo-tab-btn active" onclick="filterEmo('all', this)">전체</button>
    <button class="emo-tab-btn" onclick="filterEmo('happy', this)">기쁨/신남</button>
    <button class="emo-tab-btn" onclick="filterEmo('love', this)">사랑/하트</button>
    <button class="emo-tab-btn" onclick="filterEmo('sad', this)">슬픔/눈물</button>
    <button class="emo-tab-btn" onclick="filterEmo('angry', this)">분노/황당</button>
    <button class="emo-tab-btn" onclick="filterEmo('animal', this)">동물/귀염</button>
    <button class="emo-tab-btn" onclick="filterEmo('action', this)">인사/응원</button>
    <button class="emo-tab-btn" onclick="filterEmo('etc', this)">기타/특수</button>
  </div>

  <!-- 이모티콘 목록 그리드 & 상시 노출 스크롤바 -->
  <div class="emo-scroll-wrapper">
    <div class="emo-grid" id="emo-grid-container"></div>
    <div class="custom-scrollbar-track" id="custom-scroll-track">
      <div class="custom-scrollbar-thumb" id="custom-scroll-thumb"></div>
    </div>
  </div>
</div>

<!-- 복사 알림 토스트 -->
<div id="emo-toast">클립보드에 복사되었습니다!</div>

<script>
(function() {
  const emoData = [
    // [기쁨 / 신남]
    { text: "(ღ'ᴗ'ღ)", cat: "happy" }, { text: "(｡˃ ᵕ ˂ )b", cat: "happy" }, { text: "( ˶ˆᗜˆ˶ )", cat: "happy" },
    { text: "(๑>ᴗ<๑)", cat: "happy" }, { text: "(ง ᵕᴗᵕ)ว", cat: "happy" }, { text: "( ੭ ̇ᗜ ̇ )੭", cat: "happy" },
    { text: "( •̀ᴗ•́ )و", cat: "happy" }, { text: "(๑ᵔ⤙ᵔ๑)", cat: "happy" }, { text: "( ๑ ❛ ᴗ ❛ )", cat: "happy" },
    { text: "( * ´ ` *)", cat: "happy" }, { text: "( ˃᷄˶˶̫˶˂᷅ )", cat: "happy" }, { text: "( ˆ͈̑꒳ˆ͈̑ )੭", cat: "happy" },
    { text: "( ˶ｰ̀֊ｰ́˶ )", cat: "happy" }, { text: "(๑ᵔᗜᵔ๑)", cat: "happy" }, { text: "(๑˃̵ᴗ˂̵)و", cat: "happy" },
    { text: "(◍´ꇴ`◍)", cat: "happy" }, { text: "(❁´▽`❁)", cat: "happy" }, { text: "(っ'ヮ'c)", cat: "happy" },
    { text: "!(•̀ᴗ•́)و ̑̑", cat: "happy" }, { text: "!(ᵒ̤̑ ◁ ᵒ̤̑)wow!", cat: "happy" }, { text: "( ᐛ )σ", cat: "happy" },
    { text: "٩( ᐛ )و", cat: "happy" }, { text: "(๑^ ^๑)", cat: "happy" }, { text: "(⁎˃ᴗ˂⁎)", cat: "happy" },
    { text: "٩(๑>◊<๑)۶", cat: "happy" }, { text: "⁽⁽◝( ˙ &#x1f4a5; ˙ )◜⁾⁾", cat: "happy" }, { text: "₍₍ (ง ˙ω˙)ง ⁾⁾", cat: "happy" },
    { text: "＼＼\\٩( 'ω' )و //／／", cat: "happy" }, { text: "(⑉︎• •⑉︎)♡", cat: "happy" }, { text: "٩(ˊᗜˋ*)و", cat: "happy" },
    { text: "(*°▽°*)", cat: "happy" }, { text: "(^0^)/", cat: "happy" }, { text: "(*>∀<*)b", cat: "happy" },
    { text: "＼(★^∀^★)／", cat: "happy" }, { text: "٩(θ‿θ)۶", cat: "happy" }, { text: "(o &#x1f4f8; o)", cat: "happy" },
    { text: "(˶◕ ‿◕˶)", cat: "happy" }, { text: "(•̀ᴗ•́)൬", cat: "happy" }, { text: "(☆▽☆)", cat: "happy" },
    { text: "(⌒▽⌒)☆", cat: "happy" }, { text: "(o^▽^o)", cat: "happy" }, { text: "٩(◕‿◕｡)۶", cat: "happy" },
    { text: "(◕‿◕)", cat: "happy" }, { text: "(*^▽^*)", cat: "happy" }, { text: "(´∇｀)", cat: "happy" },
    { text: "(▰˘◡˘▰)", cat: "happy" }, { text: "(•̀ᴗ•́)و ̑̑", cat: "happy" }, { text: "(^▽^)", cat: "happy" },
    { text: "(*^-^*)", cat: "happy" }, { text: "( ▔•ω•▔ )", cat: "happy" }, { text: "(^O^)", cat: "happy" },
    { text: "(*≧▽≦)", cat: "happy" }, { text: "(⌒‿⌒)", cat: "happy" }, { text: "(〃^∇^〃)", cat: "happy" },
    { text: "(≧∇≦)/", cat: "happy" }, { text: "(^.^)", cat: "happy" }, { text: "(╹◡╹)", cat: "happy" },
    { text: "(◍‿◍)", cat: "happy" }, { text: "( •̀∀•́ )", cat: "happy" }, { text: "( &#x270c;︎'ω')&#x270c;︎", cat: "happy" },
    { text: "(￣▽￣)V", cat: "happy" }, { text: "( ⁀⤚⁀ )", cat: "happy" }, { text: "( ° ▽ ° )", cat: "happy" },
    { text: "( ๑ ❛ ▿ ❛ ๑ )", cat: "happy" }, { text: "( ° ͜ʖ °)", cat: "happy" }, { text: "( -_・)", cat: "happy" },
    { text: "( ⸝⸝•ᴗ•⸝⸝ )", cat: "happy" }, { text: "(｡>﹏<｡)", cat: "happy" }, { text: "( ๑‾̀◡‾́)&#x2728;", cat: "happy" },
    { text: "!(•̀ᴗ•́)و", cat: "happy" }, { text: "( ´ ▽ ` )", cat: "happy" }, { text: "( ` ∇ ´ )", cat: "happy" },
    { text: "( ͡~ ͜ʖ ͡~)", cat: "happy" }, { text: "(  •̀ - •́  )", cat: "happy" }, { text: "(｡•̀ᴗ-)✧", cat: "happy" },
    { text: "(〃⌒▽⌒〃)", cat: "happy" }, { text: "٩( ๑╹ ꇴ ╹๑ )۶", cat: "happy" },

    // [사랑 / 하트]
    { text: "( ´͈ ᵕ ᵕ `͈ )◞♡", cat: "love" }, { text: "( ˘͈ ᵕ ˘͈♡)", cat: "love" }, { text: "( ˶'ᵕ'&#x1faf6;)&#x1f495;", cat: "love" },
    { text: "(*Ü*)ﻌﻌﻌ&#x2665;", cat: "love" }, { text: "(..◜ᴗ◝..)", cat: "love" }, { text: "( ⁎ᵕᴗᵕ⁎ )", cat: "love" }, { text: "(´∩｡• ᵕ •｡∩`) ♡", cat: "love" },
    { text: "(ෆ`꒳´ෆ)", cat: "love" }, { text: "( ˊ ᵕ ˋ )♡.°⑅", cat: "love" }, { text: "( ˘▽˘)っ♡", cat: "love" },
    { text: "( ˭̵̵̵̵͈́◡ु͂˭̵̵̵͈̀ )ˉ̞̭♡", cat: "love" }, { text: "( ̧⸝⸝⍢⸝⸝)ི", cat: "love" }, { text: "( σ̴̶̷̤ .̫ σ̴̶̷̤ )♡", cat: "love" },
    { text: "( ๑ ᴖ ᴈ ᴖ)ᴖ ᴑ ᴖ๑)ෆ", cat: "love" }, { text: "( ᴗ͈ˬᴗ͈)ఒ♡", cat: "love" }, { text: "(*˘︶˘*).｡.:*♡", cat: "love" },
    { text: "(,,> <,,)♡", cat: "love" }, { text: "( ˘ ³˘(◡‿◡˶)", cat: "love" }, { text: "(´•᎑•`)♡", cat: "love" },
    { text: "(˵ •ᴗ• ˵)♡", cat: "love" }, { text: "(๑♡ᴗ♡๑)", cat: "love" }, { text: "(ღˇ◡ˇ)&#x2665;ℒᵒᵛᵉ", cat: "love" },
    { text: "( ─‿‿─ )♡", cat: "love" }, { text: "(◍•ᴗ•◍)♡", cat: "love" }, { text: "( ◞&#x2665;ꈍ∇ꈍ)◞&#x2665;", cat: "love" },
    { text: "♡(˃͈ દ ˂͈ ༶ )", cat: "love" }, { text: "(っ˘з(˘⌣˘ )", cat: "love" }, { text: "( ˘͈ ᵕ ˘͈ )", cat: "love" },
    { text: "( ♡‿♡ )", cat: "love" }, { text: "( &#x1f48c; )", cat: "love" }, { text: "(&#x2665;_&#x2665;)", cat: "love" },
    { text: "(｡&#x2665;‿&#x2665;｡)", cat: "love" }, { text: "(͡° ͜ʖ ͡°)", cat: "love" }, { text: "╰(✿´⌣`✿)╯", cat: "love" },
    { text: "(´∀｀)♡", cat: "love" }, { text: "&#x2665;(✿ฺ´∀`✿ฺ)ﾉ", cat: "love" }, { text: "(｡･ω･｡)ﾉ♡", cat: "love" },
    { text: "( ˘ ³˘)&#x2665;", cat: "love" }, { text: "(⊃³ : )⊃&#x2665;", cat: "love" }, { text: "♡＼(￣▽￣)／♡", cat: "love" },
    { text: "(⌒▽⌒)♡", cat: "love" }, { text: "(*♡∀♡)", cat: "love" }, { text: "( ᵒ̴̶̷̤ &#x2709; ᵒ̴̶̷̤ )", cat: "love" },
    { text: "( ͒ԅ( ͒ㅅ ͒ԅ)", cat: "love" }, { text: "(っಠ‿ಠ)っ♡", cat: "love" }, { text: "(✿ &#x2665;‿&#x2665;)", cat: "love" },

    // [슬픔 / 눈물]
    { text: "( Ĭ ^ Ĭ )", cat: "sad" }, { text: "(ᵒ̴̵̶̷ ᵒ̴̵̶̷ )", cat: "sad" }, { text: "( ɵ̷̥̥᷄﹏ɵ̷̥̥᷅ )", cat: "sad" },
    { text: "( ´•̥̥̥ω•̥̥̥` )", cat: "sad" }, { text: "( •̯́ &#x2708; •̯̀ )", cat: "sad" }, { text: "(o̴̶̷᷄𖧉o̴̶̷̥᷅)", cat: "sad" },
    { text: "(.°(д。)°.)", cat: "sad" }, { text: "( ༎ຶㅂ༎ຶ )", cat: "sad" }, { text: "(இ﹏இ`｡)", cat: "sad" },
    { text: "( 이_이 )", cat: "sad" }, { text: "( ߹~߹ )", cat: "sad" }, { text: "( -_-; )", cat: "sad" },
    { text: "(;´༎ຶД༎ຶ`)", cat: "sad" }, { text: "(┬┬﹏┬┬)", cat: "sad" }, { text: "(｡•́︿•̀｡)", cat: "sad" },
    { text: "( ; ω ; )", cat: "sad" }, { text: "(T_T)", cat: "sad" }, { text: "(ToT)", cat: "sad" },
    { text: "(Q_Q)", cat: "sad" }, { text: "(T.T)", cat: "sad" }, { text: "(ㅠㅠ)", cat: "sad" },
    { text: "(;_;)", cat: "sad" }, { text: "(T-T)", cat: "sad" }, { text: "(>_<)", cat: "sad" },
    { text: "(;﹏;)", cat: "sad" }, { text: "( &#x1f62d; )", cat: "sad" }, { text: "( &#x1f494; )", cat: "sad" },
    { text: "(ó﹏ò｡)", cat: "sad" }, { text: "(｡T ω T｡)", cat: "sad" }, { text: "(; - ;)", cat: "sad" },
    { text: "(; _ ;)", cat: "sad" }, { text: "(•_•;)", cat: "sad" }, { text: "( ; _ ; )", cat: "sad" },
    { text: "(o_ _)o", cat: "sad" }, { text: "( ;∀;)", cat: "sad" }, { text: "( ;  ; )", cat: "sad" },

    // [분노 / 황당]
    { text: "( •̀_•́ )", cat: "angry" }, { text: "( 𝌆 𝌆 )", cat: "angry" }, { text: "( ▀ Ĺ̯ ▀ )", cat: "angry" },
    { text: "(ꐦ ▔• ▔)", cat: "angry" }, { text: "( ⚆ _ ⚆ )", cat: "angry" }, { text: "( ° ͜ʖ °)", cat: "angry" },
    { text: "( ͡ - ͜ʖ ͡- )", cat: "angry" }, { text: "( ʘ̆ ╭͜ʖ╮ ʘ̆ )", cat: "angry" }, { text: "( • ꈊ• )", cat: "angry" },
    { text: "( 𝍇 𝍇 )", cat: "angry" }, { text: "(•̀⤙•́)", cat: "angry" }, { text: "( ಠ_ಠ )", cat: "angry" },
    { text: "( •᷄▒•᷅ )", cat: "angry" }, { text: "( ` 皿 ´ )", cat: "angry" }, { text: "( ⍥ )", cat: "angry" },
    { text: "( ಠ 皿 ಠ )", cat: "angry" }, { text: "( ╬▔皿▔)╯", cat: "angry" }, { text: "(#`Ð´)", cat: "angry" },
    { text: "( `ε´ )", cat: "angry" }, { text: "(ಠ_ಠ)", cat: "angry" }, { text: "(¬_¬)", cat: "angry" },
    { text: "(;￢_￢)", cat: "angry" }, { text: "(⊙_⊙)", cat: "angry" }, { text: "(O_o)", cat: "angry" },
    { text: "(o_O)", cat: "angry" }, { text: "(゜Д゜)", cat: "angry" }, { text: "(;￣Д￣)", cat: "angry" },
    { text: "(＃￣0￣)", cat: "angry" }, { text: "( ・_・)", cat: "angry" }, { text: "( ͠° ͟ʖ ͡°)", cat: "angry" },
    { text: "(¬‿¬)", cat: "angry" }, { text: "(°ㅂ°╬)", cat: "angry" }, { text: "(;ಠ_ಠ)", cat: "angry" },

    // [동물 / 귀염]
    { text: "( ˆ ̳◝ ·̫ ◜ ̳ˆ )", cat: "animal" }, { text: "(  •᷄⌓•᷅ )", cat: "animal" }, { text: "( •̀ө•́ )", cat: "animal" },
    { text: "( ≡^∇^≡ )", cat: "animal" }, { text: "( 𖦹> ·̫ <𖦹 )", cat: "animal" }, { text: "(^. ̫ .^)", cat: "animal" },
    { text: "( - &#x1f43e; - )", cat: "animal" }, { text: "( ะ ื ▿ ื ะ )", cat: "animal" }, { text: "₍ᐢ.ˬ.ᐢ₎", cat: "animal" },
    { text: "₍ᐢ. ̫ .ᐢ₎", cat: "animal" }, { text: "₍ᐢɞ̴̶̷ ·̫ ɞ̴̶̷ᐢ₎", cat: "animal" }, { text: "૮ ̷ ̷ ̅ ̅ ̷ ̷ &#x1f436; ა", cat: "animal" },
    { text: "૮ ฅ́ ˘ ฅ̀ ა", cat: "animal" }, { text: "૮ . ̫ . ა", cat: "animal" }, { text: "( ´ิ(ꈊ) ´ิ)", cat: "animal" },
    { text: "( =^･ω･^= )", cat: "animal" }, { text: "( &#x1f43e; )", cat: "animal" }, { text: "( &#x1f43b; )", cat: "animal" },
    { text: "(≡^∇^≡)", cat: "animal" }, { text: "(=^·^=)", cat: "animal" }, { text: "(=^ㆍ^=)", cat: "animal" },
    { text: "( &#x1f431; )", cat: "animal" }, { text: "( &#x1f436; )", cat: "animal" }, { text: "( &#x1f430; )", cat: "animal" },
    { text: "ʕ•ᴥ•ʔ", cat: "animal" }, { text: "ʕ •ᴥ• ʔ", cat: "animal" }, { text: "( ͒•·̫• ͒)", cat: "animal" },
    { text: "(=^･^=)", cat: "animal" }, { text: "₍ᐢó╻òᐢ₎", cat: "animal" }, { text: "(◕ᴥ◕)", cat: "animal" },

    // [인사 / 응원]
    { text: "( ੭ ᐕ)੭*⁾⁾", cat: "action" }, { text: "(و ˃̵ᴗ˂̵)و", cat: "action" }, { text: "( Six•̀ᴗ•́)۶", cat: "action" },
    { text: "( &#x1f33f;•̀ᵕ•́)੭", cat: "action" }, { text: "(,,• ֊ •,,)੭", cat: "action" }, { text: "( ⸝⸝•ᴗ•⸝⸝ )੭˒˒", cat: "action" },
    { text: "(*ˊᵕˋ*)੭", cat: "action" }, { text: "(,,ᴗ ᴗ,,) ⁾⁾", cat: "action" }, { text: "(*ˊᗜˋ*)ᵗʰᵃⁿᵏ ʸᵒᵘ", cat: "action" },
    { text: "say hi～(ღゝ◡╹)", cat: "action" }, { text: "| ᐕ)੭*⁾⁾", cat: "action" }, { text: "└(^o^ )┐", cat: "action" },
    { text: "(っ'-')╮=͟͟͞͞♡", cat: "action" }, { text: "⸜( &#x1f514; )⸝", cat: "action" }, { text: "( &#x1f44d;&#x1f3fb; ˃ ᴗ ˂ )&#x1f44d;&#x1f3fb;", cat: "action" },
    { text: "(^o^)/~", cat: "action" }, { text: "(&#x1f44b;)", cat: "action" }, { text: "(•̀ᴗ•́)و", cat: "action" },
    { text: "＼(￣▽￣)／", cat: "action" }, { text: "( ˙o˙ )", cat: "action" }, { text: "(*￣▽￣)ノ", cat: "action" },

    // [기타 / 특수]
    { text: "★", cat: "etc" }, { text: "☆", cat: "etc" }, { text: "✦", cat: "etc" }, { text: "✧", cat: "etc" },
    { text: "✿", cat: "etc" }, { text: "❀", cat: "etc" }, { text: "❁", cat: "etc" }, { text: "&#x2744;", cat: "etc" },
    { text: "❆", cat: "etc" }, { text: "&#x2615;", cat: "etc" }, { text: "&#x1f340;", cat: "etc" }, { text: "&#x2618;", cat: "etc" },
    { text: "&#x2763;", cat: "etc" }, { text: "&#x2764;", cat: "etc" }, { text: "❥", cat: "etc" }, { text: "❦", cat: "etc" },
    { text: "♩", cat: "etc" }, { text: "♪", cat: "etc" }, { text: "♫", cat: "etc" }, { text: "♬", cat: "etc" },
    { text: "♮", cat: "etc" }, { text: "♯", cat: "etc" }, { text: "♭", cat: "etc" }, { text: "&#x2660;", cat: "etc" },
    { text: "&#x2663;", cat: "etc" }, { text: "&#x2665;", cat: "etc" }, { text: "&#x2666;", cat: "etc" }, { text: "&#x2668;", cat: "etc" },
    { text: "&#x26a1;", cat: "etc" }, { text: "&#x2693;", cat: "etc" }, { text: "&#x2694;", cat: "etc" }, { text: "&#x2696;", cat: "etc" },
    { text: "&#x269b;", cat: "etc" }, { text: "&#x269c;", cat: "etc" }, { text: "&#x26a0;", cat: "etc" }, { text: "&#x2623;", cat: "etc" },
    { text: "&#x2622;", cat: "etc" }, { text: "&#x262f;", cat: "etc" }, { text: "&#x2638;", cat: "etc" }, { text: "&#x271d;", cat: "etc" },
    { text: "&#x262a;", cat: "etc" }, { text: "&#x2721;", cat: "etc" }, { text: "✢", cat: "etc" }, { text: "✣", cat: "etc" },
    { text: "✤", cat: "etc" }, { text: "✥", cat: "etc" }, { text: "✱", cat: "etc" }, { text: "✲", cat: "etc" },
    { text: "&#x2733;", cat: "etc" }, { text: "&#x2734;", cat: "etc" }, { text: "✵", cat: "etc" }, { text: "✶", cat: "etc" },
    { text: "✷", cat: "etc" }, { text: "✸", cat: "etc" }, { text: "✹", cat: "etc" }
  ];

  let toastTimer = null;

  function renderEmo(category) {
    const container = document.getElementById("emo-grid-container");
    if (!container) return;
    container.innerHTML = "";

    const filtered = category === "all" 
      ? emoData 
      : emoData.filter(item => item.cat === category);

    const fragment = document.createDocumentFragment();
    filtered.forEach(item => {
      const btn = document.createElement("div");
      btn.className = "emo-item";
      btn.textContent = item.text;
      btn.title = item.text;
      btn.onclick = function() { copyText(item.text); };
      fragment.appendChild(btn);
    });
    container.appendChild(fragment);

    requestAnimationFrame(updateCustomScrollbar);
  }

  function updateCustomScrollbar() {
    const container = document.getElementById("emo-grid-container");
    const thumb = document.getElementById("custom-scroll-thumb");
    const track = document.getElementById("custom-scroll-track");
    if (!container || !thumb || !track) return;

    const scrollHeight = container.scrollHeight;
    const clientHeight = container.clientHeight;

    if (scrollHeight <= clientHeight) {
      track.style.display = "none";
      return;
    } else {
      track.style.display = "block";
    }

    const thumbRatio = clientHeight / scrollHeight;
    const thumbHeight = Math.max(clientHeight * thumbRatio, 25);
    thumb.style.height = thumbHeight + "px";

    const maxScrollTop = scrollHeight - clientHeight;
    const maxTrackTop = track.clientHeight - thumbHeight;
    const currentScrollTop = container.scrollTop;

    const translateTop = (currentScrollTop / maxScrollTop) * maxTrackTop;
    thumb.style.transform = `translateY(${translateTop}px)`;
  }

  window.filterEmo = function(category, element) {
    document.querySelectorAll(".emo-tab-group .emo-tab-btn").forEach(btn => btn.classList.remove("active"));
    if (element) element.classList.add("active");
    renderEmo(category);
  };

  function copyText(text) {
    if (navigator.clipboard && window.isSecureContext) {
      navigator.clipboard.writeText(text).then(function() {
        showToast('"' + text + '" 복사되었습니다!');
      }).catch(function() {
        fallbackCopy(text);
      });
    } else {
      fallbackCopy(text);
    }
  }

  function fallbackCopy(text) {
    const textarea = document.createElement("textarea");
    textarea.value = text;
    textarea.style.position = "fixed";
    textarea.style.opacity = "0";
    document.body.appendChild(textarea);
    textarea.focus();
    textarea.select();
    try {
      document.execCommand("copy");
      showToast('"' + text + '" 복사되었습니다!');
    } catch (err) {
      alert("복사에 실패했습니다.");
    }
    document.body.removeChild(textarea);
  }

  function showToast(msg) {
    const toast = document.getElementById("emo-toast");
    if (!toast) return;
    
    toast.textContent = msg;
    toast.classList.add("show");

    if (toastTimer) clearTimeout(toastTimer);
    toastTimer = setTimeout(function() {
      toast.classList.remove("show");
    }, 1500);
  }

  function init() {
    const container = document.getElementById("emo-grid-container");
    if (container) {
      renderEmo("all");
      container.addEventListener("scroll", updateCustomScrollbar, { passive: true });
      window.addEventListener("resize", updateCustomScrollbar);
    } else {
      setTimeout(init, 50);
    }
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init);
  } else {
    init();
  }
})();
</script>



<h2 class="wp-block-heading">클릭 한 번으로 복사해서 바로 사용하세요</h2>



<p class="wp-block-paragraph">블로그 포스팅, 인스타그램 피드, 유튜브 댓글, 오픈채팅방까지! 분위기를 살려주는 다양한 텍스트 이모티콘과 특수문자를 모아두었습니다. 원하시는 버튼을 클릭하시면 클립보드에 바로 복사되어 언제든 편리하게 붙여넣을 수 있습니다.</p>



<h3 class="wp-block-heading">SNS 감성 듬뿍 담은 제목 및 본문 꾸미기</h3>



<ul class="wp-block-list">
<li><strong>제목 포인트:</strong> 글의 제목이나 소제목 앞에 이모티콘을 살짝 얹어주면 클릭률을 높이는 데 도움이 됩니다.</li>



<li><strong>본문 가독성 높이기:</strong> 줄바꿈 사이에 심심한 텍스트 대신 이모티콘을 배치하면 전체적인 가독성이 훨씬 좋아집니다.</li>
</ul>



<h3 class="wp-block-heading">자주 묻는 질문 (FAQ)</h3>



<p class="wp-block-paragraph"><strong>Q. 모바일(아이폰/아드로이드)에서도 잘 깨지지 않나요?</strong><br>A. 본 페이지의 이모티콘들은 대부분의 최신 스마트폰과 PC OS에서 표준으로 지원되는 범용 특수문자 및 유니코드로 제작되었습니다. 어느 기기에서나 깨짐 없이 깔끔하게 표시됩니다.</p>



<p class="wp-block-paragraph"><strong>Q. 복사한 이모티콘이 바로 안 붙여넣어질 때는 어떻게 하나요?</strong><br>A. 버튼을 누르면 자동으로 클립보드에 저장됩니다. 붙여넣을 위치(입력창)를 길게 누르신 뒤 [붙여넣기] 또는 단축키 <code>Ctrl + V</code> (맥은 <code>Cmd + V</code>)를 누르시면 됩니다.</p>



<p class="wp-block-paragraph">외의 유용한 툴</p>



<ul class="wp-block-list">
<li><a href="https://snsnote.com/free-qr-code-generator/">자영업자 전용 무료 QR 코드 생성기</a></li>



<li><a href="https://blog.naver.com/bexelaaa/224357842067" target="_blank" rel="noopener">인스타그램 고객센터 실제 연락 가능한 이메일 모음</a></li>
</ul>



<style>
  /* 이 글에서만 본문 상단 대표 이미지 숨기기 */
  .featured-image, 
  .post-thumbnail, 
  .entry-header .post-image,
  .single-media {
    display: none !important;
  }
</style>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img decoding="async" src="https://snsnote.com/wp-content/uploads/2026/06/5555.png" width="100"  height="100" alt="" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://snsnote.com/author/admin/" class="vcard author" rel="author"><span class="fn">JH</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>SNSnote 편집 담당 JH입니다.<br />
2020년부터 SNS를 본격적으로 운영하기 시작해 현재 인스타그램, 유튜브, X를 합쳐 총 40만 팔로워를 보유하고 있습니다.<br />
영구정지 복구, 계정 성장, 수익화까지 직접 경험한 실패와 성공 사례를 바탕으로<br />
실전에서 바로 써먹을 수 있는 최신 정보를 전달해드리고 있습니다.</p>
</div></div><div class="saboxplugin-web "><a href="https://snsnote.com" target="_self">snsnote.com</a></div><div class="clearfix"></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://snsnote.com/emoticon-list/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://snsnote.com/wp-content/uploads/2026/08/emoticon-list.jpg" medium="image" /><post-id xmlns="com-wordpress:feed-additions:1">1195</post-id>	</item>
		<item>
		<title>자영업자 전용 무료 QR 코드 생성기, 필수 활용 방법 4가지</title>
		<link>https://snsnote.com/free-qr-code-generator/</link>
					<comments>https://snsnote.com/free-qr-code-generator/#respond</comments>
		
		<dc:creator><![CDATA[JH]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 09:31:57 +0000</pubDate>
				<category><![CDATA[유용한 도구]]></category>
		<guid isPermaLink="false">https://snsnote.com/?p=1187</guid>

					<description><![CDATA[자영업자들을 위한 QR 코드 생성기 입니다. 상단 하단 문구를 추가하고 한번에 포스터 형식으로 추출할 수 있습니다.]]></description>
										<content:encoded><![CDATA[
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>

<style>
  #qr-generator-box {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 30px 20px;
    text-align: center;
    margin: 25px 0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  }

  #qr-generator-box b.title {
    display: block;
    font-size: 22px;
    font-weight: bold;
    color: #0f172a;
    margin-bottom: 8px;
  }

  #qr-generator-box p.desc {
    font-size: 15px;
    color: #64748b;
    margin-bottom: 24px;
  }

  .qr-input-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 500px;
    margin: 0 auto 24px auto;
    text-align: left;
  }

  .qr-input-group label {
    font-size: 13px;
    font-weight: bold;
    color: #334155;
    margin-bottom: -6px;
  }

  .qr-input {
    width: 100%;
    padding: 12px 14px;
    border: 2px solid #cbd5e1;
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    box-sizing: border-box;
    font-family: inherit;
    resize: vertical;
  }

  .qr-input:focus {
    border-color: #2563eb;
  }

  /* 2줄 입력 텍스트상자 전용 높이 설정 */
  textarea.qr-input {
    height: 64px;
    line-height: 1.4;
  }

  .qr-btn {
    background-color: #2563eb;
    color: #ffffff !important;
    border: none;
    border-radius: 8px;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    margin-top: 8px;
  }
  .qr-btn:hover { background-color: #1d4ed8; }

  /* 완성되는 포스터형 카드 레이아웃 (너비 260px -> 310px로 확장) */
  .qr-card-wrapper {
    display: inline-block;
    margin-bottom: 15px;
    max-width: 100%;
  }

  #qr-card {
    background-color: #ffffff;
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    padding: 30px 25px;
    width: 310px;
    max-width: 100%;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
  }

  .qr-card-title {
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 15px;
    word-break: break-all;
    line-height: 1.4;
    white-space: pre-line; /* 엔터 줄바꿈 허용 */
  }

  #qrcode {
    margin: 0;
  }
  #qrcode img {
    margin: 0 auto;
  }

  .qr-card-sub {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    margin-top: 15px;
    word-break: break-all;
    line-height: 1.4;
    white-space: pre-line; /* 엔터 줄바꿈 허용 */
  }

  .qr-download-btn {
    background-color: #10b981;
    color: #ffffff !important;
    border: none;
    border-radius: 6px;
    padding: 12px 22px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
  }
  .qr-download-btn:hover { background-color: #059669; }
</style>

<!-- 자영업자 맞춤형 QR 생성기 -->
<div id="qr-generator-box">
  <b class="title">자영업자 전용<BR>무료 QR 코드 생성기</b>
  <p class="desc">매장 안내 문구와 QR 코드가 포함된 안내판을 <BR>1초 만에 완성하세요!</p>

  <div class="qr-input-group">
    <label>1. 연결할 URL 주소 (또는 텍스트)</label>
    <input type="text" id="qr-target-url" class="qr-input" value="https://instagram.com/가게인스타">

    <label>2. 상단 제목 문구<BR>(QR 코드 위 &#8211; 줄바꿈 가능, 지우면 미표시)</label>
    <textarea id="qr-top-text" class="qr-input" rows="2">인스타 팔로우 이벤트 ♡</textarea>

    <label>3. 하단 안내 문구<BR>(QR 코드 아래 &#8211; 줄바꿈 가능,지우면 미표시)</label>
    <textarea id="qr-bottom-text" class="qr-input" rows="2">카메라 앱으로 스캔해보세요. (ღ&#8217;ᴗ&#8217;ღ)</textarea>

    <button class="qr-btn" onclick="generateQRCode()">QR 안내판 만들기</button>
  </div>

  <!-- QR 카드 미리보기 영역 -->
  <div class="qr-card-wrapper">
    <div id="qr-card">
      <div class="qr-card-title" id="display-top-text"></div>
      <div id="qrcode"></div>
      <div class="qr-card-sub" id="display-bottom-text"></div>
    </div>
  </div>

  <div>
    <button id="download-btn" class="qr-download-btn" onclick="downloadQRCard()">통합 PNG 이미지 다운로드</button>
  </div>
</div>

<script>
  function generateQRCode() {
    const url = document.getElementById("qr-target-url").value.trim();
    const topText = document.getElementById("qr-top-text").value.trim();
    const bottomText = document.getElementById("qr-bottom-text").value.trim();
    
    const topElem = document.getElementById("display-top-text");
    const bottomElem = document.getElementById("display-bottom-text");
    const qrcodeContainer = document.getElementById("qrcode");

    if (!url) {
      alert("연결할 URL 주소를 입력해 주세요!");
      return;
    }

    // 상단 텍스트 유무 처리
    if (topText) {
      topElem.innerText = topText;
      topElem.style.display = "block";
    } else {
      topElem.innerText = "";
      topElem.style.display = "none";
    }

    // 하단 텍스트 유무 처리
    if (bottomText) {
      bottomElem.innerText = bottomText;
      bottomElem.style.display = "block";
    } else {
      bottomElem.innerText = "";
      bottomElem.style.display = "none";
    }

    // QR 생성
    qrcodeContainer.innerHTML = "";
    new QRCode(qrcodeContainer, {
      text: url,
      width: 180,
      height: 180,
      colorDark: "#000000",
      colorLight: "#ffffff",
      correctLevel: QRCode.CorrectLevel.H
    });
  }

  // 전체 카드를 통째로 PNG로 저장
  function downloadQRCard() {
    const card = document.getElementById("qr-card");
    
    html2canvas(card, { scale: 3 }).then(canvas => {
      const link = document.createElement("a");
      link.href = canvas.toDataURL("image/png");
      link.download = "qr_notice_card.png";
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    });
  }

  // 페이지 접속하자마자 예시 세팅 및 자동 생성
  document.addEventListener("DOMContentLoaded", function() {
    generateQRCode();
  });
</script>



<p class="wp-block-paragraph">적용 가능한 텍스트 이모티콘 모음 (◍´ꇴ`◍)<br><a href="https://snsnote.com/emoticon-list/" target="_blank" rel="noreferrer noopener">레트로 2000년대 느낌 텍스트 이모티콘 표정 모음 &lt;</a></p>



<h2 class="wp-block-heading">매장용 QR 코드, 왜 안내 문구가 필요할까요?</h2>



<p class="wp-block-paragraph">손님들이 매장에서 QR 코드를 볼 때, <br><strong>단순히 QR 코드 이미지 하나만 달랑 배치되어 있으면 스캔할 확률이 크게 낮아집니다.</strong> <br>손님 입장에서는 이 QR 코드가 와이파이 연결용인지, 인스타그램 이벤트용인지, 아니면 메뉴판인지 알 수 없기 때문입니다.</p>



<p class="wp-block-paragraph">본 무료 QR 코드 생성기를 활용하면 <br><strong>[상단 제목] + [QR 코드] + [하단 설명]</strong>이 들어간 포스터 형태의 안내 카드를 1초 만에 만들고 <strong>PNG 이미지로 통째로 다운로드</strong>받아 바로 인쇄하실 수 있습니다.</p>



<h2 class="wp-block-heading">자영업자 필수 QR 코드 활용 추천 TOP 4</h2>



<p class="wp-block-paragraph">매장 운영 시 아래 상황에서 QR 코드를 활용해 보세요. 손님 편의성은 물론 매장 운영 효율이 크게 올라갑니다.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2615.png" alt="☕" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 1. 매장 와이파이(Wi-Fi) 접속 안내</h3>



<ul class="wp-block-list">
<li><strong>상단 제목:</strong> 매장 와이파이 안내</li>



<li><strong>하단 설명:</strong> 카메라로 스캔하면 바로 연결됩니다.</li>



<li><strong>팁:</strong> 와이파이 접속 주소나 안내 페이지 링크를 QR 코드로 연결해 두면 손님이 일일이 비밀번호를 물어보지 않아도 됩니다.</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f8.png" alt="📸" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 2. 인스타그램 / 블로그 리뷰 이벤트</h3>



<ul class="wp-block-list">
<li><strong>상단 제목:</strong> 리뷰 작성 시 음료 무료!</li>



<li><strong>하단 설명:</strong> 스캔 후 팔로우 및 리뷰를 남겨주세요.</li>



<li><strong>팁:</strong> 네이버 영수증 리뷰나 인스타그램 이벤트 페이지 URL을 넣어두시면 손쉬운 참여를 유도할 수 있습니다.</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 3. 모바일 메뉴판 및 테이블 주문</h3>



<ul class="wp-block-list">
<li><strong>상단 제목:</strong> 한눈에 보는 모바일 메뉴판</li>



<li><strong>하단 설명:</strong> 편하게 스캔해서 메뉴를 확인해 보세요.</li>



<li><strong>팁:</strong> 종이 메뉴판을 매번 수정할 필요 없이 온라인 메뉴판(네이버 지도, 포스 연동 링크 등)으로 연결해 보세요.</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cd.png" alt="📍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 4. 네이버 지도 플레이스 / 길 안내</h3>



<ul class="wp-block-list">
<li><strong>상단 제목:</strong> 네이버 저장 &amp; 알림 받기</li>



<li><strong>하단 설명:</strong> 단골 등록하고 혜택 쿠폰을 받아보세요!</li>



<li><strong>팁:</strong> 네이버 스마트플레이스 주소를 연결해 두면 매장 저장 및 재방문율을 높이는 데 큰 도움이 됩니다.</li>
</ul>



<h2 class="wp-block-heading">QR 코드 생성기 사용 및 출력 방법</h2>



<ol start="1" class="wp-block-list">
<li><strong>URL 입력:</strong> 손님이 이동할 웹사이트 주소(인스타그램, 네이버 지도, 메뉴판 등)를 입력합니다.</li>



<li><strong>문구 입력:</strong> QR 코드 위/아래에 들어갈 안내 제목과 설명 글을 적습니다. (지우면 QR 코드만 깔끔하게 생성됩니다.)</li>



<li><strong>이미지 저장:</strong> <code>[통합 PNG 이미지 다운로드]</code> 버튼을 누르면 한 장의 카드로 저장됩니다.</li>



<li><strong>인쇄 및 배치:</strong> 다운로드한 PNG 이미지를 A4 용지나 카운터/테이블용 미니 거치대에 출력해 붙여두세요!</li>
</ol>



<h4 class="wp-block-heading">그 외의 유용한 도구</h4>



<ul class="wp-block-list">
<li><a href="https://snsnote.com/ip-address-check/">아이피(IP) 주소 찾는 방법</a></li>



<li><a href="https://blog.naver.com/bexelaaa/224357842067" target="_blank" rel="noopener">인스타그램 고객센터 실제 연락 가능한 이메일 모음</a></li>
</ul>



<style>
  /* 이 글에서만 본문 상단 대표 이미지 숨기기 */
  .featured-image, 
  .post-thumbnail, 
  .entry-header .post-image,
  .single-media {
    display: none !important;
  }
</style>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img decoding="async" src="https://snsnote.com/wp-content/uploads/2026/06/5555.png" width="100"  height="100" alt="" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://snsnote.com/author/admin/" class="vcard author" rel="author"><span class="fn">JH</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>SNSnote 편집 담당 JH입니다.<br />
2020년부터 SNS를 본격적으로 운영하기 시작해 현재 인스타그램, 유튜브, X를 합쳐 총 40만 팔로워를 보유하고 있습니다.<br />
영구정지 복구, 계정 성장, 수익화까지 직접 경험한 실패와 성공 사례를 바탕으로<br />
실전에서 바로 써먹을 수 있는 최신 정보를 전달해드리고 있습니다.</p>
</div></div><div class="saboxplugin-web "><a href="https://snsnote.com" target="_self">snsnote.com</a></div><div class="clearfix"></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://snsnote.com/free-qr-code-generator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://snsnote.com/wp-content/uploads/2026/08/free-qr-code-generator.jpg" medium="image" /><post-id xmlns="com-wordpress:feed-additions:1">1187</post-id>	</item>
		<item>
		<title>아이피(IP) 주소 찾는 방법 (공인 IP, 사설 IP 조회 가능)</title>
		<link>https://snsnote.com/ip-address-check/</link>
					<comments>https://snsnote.com/ip-address-check/#respond</comments>
		
		<dc:creator><![CDATA[JH]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 08:14:25 +0000</pubDate>
				<category><![CDATA[유용한 도구]]></category>
		<guid isPermaLink="false">https://snsnote.com/?p=1182</guid>

					<description><![CDATA[현재 내 공인(외부) IP 주소 조회 및 복사 기능 제공. 집 안이나 사무실에서 쓰는 사설(내부) IP와의 차이점 및 기기별(PC, 모바일) 내부 IP 확인 명령어를 소개합니다.]]></description>
										<content:encoded><![CDATA[
<style>
  /* IP 조회기 전체 컨테이너 */
  #ip-checker-box {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 30px 20px;
    text-align: center;
    margin: 25px 0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  }

  #ip-checker-box b.main-title {
    display: block;
    font-size: 22px;
    font-weight: bold;
    color: #0f172a;
    margin-bottom: 8px;
  }

  #ip-checker-box p.desc {
    font-size: 15px;
    color: #64748b;
    margin-bottom: 20px;
  }

  /* IP 메인 카드 */
  .ip-display-area {
    background-color: #ffffff;
    border: 2px dashed #cbd5e1;
    border-radius: 10px;
    padding: 20px 15px;
    margin-bottom: 15px;
  }

  .ip-address {
    font-size: 25px;
    font-weight: 800;
    color: #2563eb;
    letter-spacing: 1px;
    word-break: break-all;
    margin: 5px 0 10px 0;
  }

  /* IP 배지 */
  .ip-type-badge {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: bold;
    border-radius: 20px;
    background-color: #dcfce7;
    color: #15803d;
  }

  /* 버튼 */
  .ip-btn {
    background-color: #2563eb;
    color: #ffffff !important;
    border: none;
    border-radius: 6px;
    padding: 10px 18px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    margin-bottom: 25px;
    transition: background-color 0.2s;
  }
  .ip-btn:hover { background-color: #1d4ed8; }

  /* 하단 통합 안내 박스 */
  .ip-guide-box {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 20px;
    text-align: left;
    font-size: 14px;
    color: #334155;
    line-height: 1.65;
  }

  .ip-guide-title {
    font-size: 15px;
    font-weight: bold;
    color: #0f172a;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
  }

  /* 차이점 비교 카드 영역 */
  .ip-compare-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 18px;
  }

  @media (max-width: 600px) {
    .ip-compare-grid { grid-template-columns: 1fr; } /* 모바일 대응 */
  }

  .compare-card {
    background-color: #f8fafc;
    border-radius: 8px;
    padding: 12px 14px;
    border-left: 4px solid #94a3b8;
  }
  .compare-card.public { border-left-color: #2563eb; }
  .compare-card.private { border-left-color: #f59e0b; }

  .compare-card strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    margin-bottom: 4px;
  }
  .compare-card p {
    font-size: 12px;
    color: #64748b;
    margin: 0;
  }

  /* 사설 IP 명령어 안내 영역 */
  .private-cmd-area {
    background-color: #f1f5f9;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 13px;
  }
  .private-cmd-area code {
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: bold;
    color: #2563eb;
  }
</style>

<!-- IP 조회 컨테이너 -->
<div id="ip-checker-box">
  <b class="main-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 아이피(IP) 주소 조회</b>
  <p class="desc">현재 사용 중인 IP 주소와 정보를 확인하세요.</p>

  <!-- 메인 IP 노출 카드 -->
  <div class="ip-display-area">
    <div class="ip-address" id="user-ip-text">조회 중&#8230;</div>
    <div class="ip-type-badge" id="user-ip-type"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f7e2.png" alt="🟢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 공인(외부 공개용) IP 주소</div>
  </div>

  <button class="ip-btn" onclick="copyMyIp()">IP 주소 복사하기</button>

  <!-- 하단 가이드: 차이점 설명 + 사설 IP 확인법 -->
  <div class="ip-guide-box">
    
    <!-- 1. 공인 vs 사설 차이점 설명 -->
    <div class="ip-guide-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 공인 IP와 사설 IP의 차이점</div>
    
    <div class="ip-compare-grid">
      <div class="compare-card public">
        <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 공인 IP (외부용 대표 주소)</strong>
        <p>인터넷 세상(웹사이트, 게임 등)이 내 집 공유기를 찾아올 때 사용하는 <b>세상에 하나뿐인 대표 도로명 주소</b>입니다.</p>
      </div>
      <div class="compare-card private">
        <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e0.png" alt="🏠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 사설 IP (내부용 내선 번호)</strong>
        <p>집 안에서 공유기가 스마트폰, 컴퓨터 등 연결된 기기 구분을 위해 붙여주는 <b>집 안 전용 내선 번호(192.168.x.x)</b>입니다.</p>
      </div>
    </div>

    <!-- 2. 내 컴퓨터 사설 IP 확인 명령어 -->
    <div class="private-cmd-area">
      <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 내 컴퓨터 자체 사설(내부) IP를 보려면?</strong><br>
      • <b>Windows:</b> [Win + R] 키 ➔ <code>cmd</code> 입력 ➔ <code>ipconfig</code> 입력<br>
      • <b>Mac:</b> [시스템 설정] ➔ [네트워크] ➔ 현재 연결된 Wi-Fi/유선 클릭
    </div>

  </div>
</div>

<script>
  // IP 불러오기
  function fetchUserIp() {
    fetch('https://api.ipify.org?format=json')
      .then(res => res.json())
      .then(data => {
        document.getElementById('user-ip-text').innerText = data.ip;
      })
      .catch(err => {
        document.getElementById('user-ip-text').innerText = "조회 실패";
      });
  }

  // 복사 기능
  function copyMyIp() {
    const ipText = document.getElementById('user-ip-text').innerText;
    if (ipText === "조회 중..." || ipText.includes("실패")) return;
    navigator.clipboard.writeText(ipText).then(() => alert("IP 주소가 복사되었습니다!"));
  }

  fetchUserIp();
</script>



<h2 class="wp-block-heading">1. 내 IP 주소란 무엇인가요?</h2>



<p class="wp-block-paragraph">IP 주소(Internet Protocol Address)는 인터넷망에 연결된 모든 기기(컴퓨터, 스마트폰, 태블릿 등)가 서로를 식별하고 데이터를 주고받기 위해 부여받는 디지털 네트워크 주소입니다. 쉽게 말해 인터넷 세상에서 우체부가 물건을 배송할 때 찾아오는 &#8216;우리 집 주소&#8217;와 같은 역할을 합니다.</p>



<p class="wp-block-paragraph">인터넷을 이용할 때는 크게 공인 IP(외부 IP)와 사설 IP(내부 IP) 두 가지 유형의 주소가 사용됩니다.</p>



<h2 class="wp-block-heading">2. 공인 IP와 사설 IP의 차이점 한눈에 보기</h2>



<p class="wp-block-paragraph">많은 분들이 집에서 사용하는 인터넷 주소인데 왜 &#8216;외부 IP&#8217; 또는 &#8216;공인 IP&#8217;라고 부르는지 헷갈려 하십니다. 두 주소의 차이를 쉽게 비유하면 다음과 같습니다.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 공인 IP (외부용 대표 주소)</h3>



<ul class="wp-block-list">
<li><strong>개념:</strong> 통신사(KT, SKT, LGU+ 등)에서 우리 집 공유기에 할당해 주는 세상에 단 하나뿐인 대표 인터넷 주소입니다.</li>



<li><strong>역할:</strong> 네이버, 구글, 온라인 게임 서버 등 외부 웹사이트에 접속할 때 나를 나타내는 대표 주소로 사용됩니다.</li>



<li><strong>비유:</strong> 택배 기사님이 찾아오는 &#8216;아파트 도로명 주소&#8217;와 같습니다.</li>
</ul>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e0.png" alt="🏠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 사설 IP (내부용 내선 번호)</h3>



<ul class="wp-block-list">
<li><strong>개념:</strong> 하나의 공유기에 여러 기기(스마트폰, 노트북, 스마트TV 등)가 연결될 때, 공유기가 각 기기를 구분하기 위해 내부적으로 부여하는 내선 주소입니다.</li>



<li><strong>주요 대역:</strong> 보통 <code>192.168.x.x</code> 또는 <code>10.x.x.x</code> 형태로 시작합니다.</li>



<li><strong>비유:</strong> 외부에서는 알 수 없는 &#8216;101동 502호&#8217; 같은 내부 동/호수와 같습니다.</li>
</ul>



<h2 class="wp-block-heading">3. 내 컴퓨터 및 스마트폰 사설 IP(내부 IP) 확인 방법</h2>



<p class="wp-block-paragraph">위의 조회 도구에서 확인되는 주소는 외부 인터넷용 공인 IP입니다. 만약 프린터 연결, 공유기 설정, 내부 서버 구축 등을 위해 기기 자체의 사설 IP를 확인해야 한다면 아래 방법을 따라 해 보세요.</p>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Windows(윈도우) PC에서 확인하기</h3>



<ol start="1" class="wp-block-list">
<li>키보드의 <strong>[Win + R]</strong> 키를 눌러 실행 창을 엽니다.</li>



<li><strong>cmd</strong>를 입력하고 확인을 눌러 명령 프롬프트를 실행합니다.</li>



<li>창에 <strong>ipconfig</strong>를 입력하고 Enter를 누릅니다.</li>



<li><strong>IPv4 주소</strong> 항목에 적힌 번호(예: 192.168.0.2)가 내 컴퓨터의 사설 IP입니다.</li>
</ol>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f34e.png" alt="🍎" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Mac(맥북)에서 확인하기</h3>



<ol start="1" class="wp-block-list">
<li>화면 좌측 상단 사과 아이콘 ➔ [시스템 설정]으로 이동합니다.</li>



<li><strong>[네트워크]</strong> 탭을 클릭한 뒤 현재 연결된 Wi-Fi 또는 유선 랜을 선택합니다.</li>



<li><strong>[세부사항]</strong> 버튼을 누르면 나오는 <strong>IP 주소</strong>를 확인합니다.</li>
</ol>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f1.png" alt="📱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 스마트폰(Wi-Fi)에서 확인하기</h3>



<ul class="wp-block-list">
<li><strong>갤럭시(Android):</strong> [설정] ➔ [연결] ➔ [Wi-Fi] ➔ 현재 연결된 Wi-Fi 옆 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" />(설정) 아이콘 ➔ IP 주소 확인</li>



<li><strong>아이폰(iOS):</strong> [설정] ➔ [Wi-Fi] ➔ 연결된 Wi-Fi 옆 ⓘ(정보) 아이콘 ➔ IPv4 주소 확인</li>
</ul>



<h4 class="wp-block-heading">그 외의 유용한 무료 툴</h4>



<ul class="wp-block-list">
<li><a href="https://snsnote.com/%ec%9d%b8%ec%8a%a4%ed%83%80%ea%b7%b8%eb%9e%a8-%ed%8f%b0%ed%8a%b8-%ea%b8%80%ec%94%a8%ec%b2%b4-%eb%b3%80%ed%99%98%ea%b8%b0/" target="_blank" rel="noreferrer noopener">인스타그램 폰트 글씨체 변환기</a></li>



<li><a href="https://snsnote.com/diet-calorie-calculator/">다이어트 칼로리 &amp; 비만도(BMI) 계산기</a></li>



<li><a href="https://snsnote.com/lotto/">로또 번호 생성기</a></li>



<li><a href="https://master5115.tistory.com/category/%EA%BF%88%20%ED%95%B4%EB%AA%BD" target="_blank" rel="noopener">꿈 해몽 및 해석</a></li>
</ul>



<style>
  /* 이 글에서만 본문 상단 대표 이미지 숨기기 */
  .featured-image, 
  .post-thumbnail, 
  .entry-header .post-image,
  .single-media {
    display: none !important;
  }
</style>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://snsnote.com/wp-content/uploads/2026/06/5555.png" width="100"  height="100" alt="" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://snsnote.com/author/admin/" class="vcard author" rel="author"><span class="fn">JH</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>SNSnote 편집 담당 JH입니다.<br />
2020년부터 SNS를 본격적으로 운영하기 시작해 현재 인스타그램, 유튜브, X를 합쳐 총 40만 팔로워를 보유하고 있습니다.<br />
영구정지 복구, 계정 성장, 수익화까지 직접 경험한 실패와 성공 사례를 바탕으로<br />
실전에서 바로 써먹을 수 있는 최신 정보를 전달해드리고 있습니다.</p>
</div></div><div class="saboxplugin-web "><a href="https://snsnote.com" target="_self">snsnote.com</a></div><div class="clearfix"></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://snsnote.com/ip-address-check/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://snsnote.com/wp-content/uploads/2026/08/ip-address-check.jpg" medium="image" /><post-id xmlns="com-wordpress:feed-additions:1">1182</post-id>	</item>
		<item>
		<title>로또 번호 생성기 &#124; 이번 주 행운의 로또 번호 무제한 추천</title>
		<link>https://snsnote.com/lotto/</link>
					<comments>https://snsnote.com/lotto/#respond</comments>
		
		<dc:creator><![CDATA[JH]]></dc:creator>
		<pubDate>Tue, 04 Aug 2026 13:05:35 +0000</pubDate>
				<category><![CDATA[유용한 도구]]></category>
		<guid isPermaLink="false">https://snsnote.com/?p=1171</guid>

					<description><![CDATA[🎰 행운의 로또 번호 생성기 버튼을 누를 때마다 아래 번호가 계속 추가됩니다! 번호 생성하기 위 버튼을 눌러 번호를 생성해보세요. 🎰 무료 로또 번호 생성기 활용법...]]></description>
										<content:encoded><![CDATA[
<!-- 로또 번호 생성기 컨테이너 -->
<div id="lotto-generator-box">
  <b><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3b0.png" alt="🎰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 행운의 로또 번호 생성기</b>
  <p>버튼을 누를 때마다 아래 번호가 계속 추가됩니다!</p>

  <!-- 번호 생성 버튼 -->
  <button id="generate-btn" onclick="generateLottoNumbers()">번호 생성하기</button>

  <!-- 생성된 번호 리스트가 쌓이는 영역 -->
  <div id="lotto-history-container">
    <div class="empty-msg">위 버튼을 눌러 번호를 생성해보세요.</div>
  </div>
</div>

<!-- 스타일 (CSS) -->
<style>
  #lotto-generator-box {
    max-width: 480px;
    margin: 30px auto;
    padding: 25px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    text-align: center;
    font-family: 'Pretendard', -apple-system, sans-serif;
  }

  #lotto-generator-box h2 {
    margin-top: 0;
    margin-bottom: 8px;
    font-size: 22px;
    color: #1e293b;
  }

  #lotto-generator-box p {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 20px;
  }

  /* 버튼 스타일 */
  #generate-btn {
    width: 100%;
    max-width: 220px;
    padding: 13px 0;
    font-size: 16px;
    font-weight: bold;
    color: #ffffff;
    background: linear-gradient(135deg, #4f46e5, #3b82f6);
    border: none;
    border-radius: 30px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3);
    transition: all 0.2s ease;
    margin-bottom: 25px;
  }

  #generate-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(79, 70, 229, 0.4);
  }

  /* 생성 내역 영역 (높이 및 스크롤 설정) */
  #lotto-history-container {
    display: flex;
    flex-direction: column;
    gap: 8px; /* 항목 간 간격 좁힘 */
    /* 20개까지는 스크롤 없이 늘어나게 max-height를 높게 잡음 */
    max-height: 1200px; /* 대략 20줄 높이. 21줄부터 스크롤 */
    overflow-y: auto; /* 내용이 max-height를 넘으면 스크롤 발생 */
    padding-right: 4px;
    transition: max-height 0.3s ease-in-out; /* 영역 늘어날 때 부드럽게 */
  }

  /* 생성된 세트 개수에 따라 스크롤 바를 강제로 보여줄지 결정하는 클래스 (JS에서 제어) */
  #lotto-history-container.has-scroll {
      /* 20개가 넘으면 스크롤 바를 보여주기 위해 높이를 고정 */
      max-height: 800px; /* 스크롤바 생기는 높이로 고정 */
  }

  .empty-msg {
    font-size: 13px;
    color: #94a3b8;
    padding: 20px 0;
  }

  /* 각 로또 세트 줄 스타일 */
  .lotto-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px; /* 공 간격 좁힘 */
    padding: 8px; /* 줄 높이 줄임 */
    background: #f8fafc;
    border-radius: 8px;
    border: 1px solid #f1f5f9;
    animation: fadeIn 0.3s ease-in-out;
  }

  @keyframes fadeIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* 로또 공 스타일 (조금 작게 조절) */
  .ball {
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 50%;
    color: white;
    font-weight: bold;
    font-size: 14px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    box-shadow: inset -2px -2px 5px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.1);
  }

  /* 구간별 공 색상 */
  .ball.yellow { background: #fbc02d; color: #fff; } /* 1 ~ 10 */
  .ball.blue   { background: #1e88e5; }             /* 11 ~ 20 */
  .ball.red    { background: #e53935; }             /* 21 ~ 30 */
  .ball.gray   { background: #8e8e8e; }             /* 31 ~ 40 */
  .ball.green  { background: #43a047; }             /* 41 ~ 45 */
</style>

<!-- 자바스크립트 로직 (JS) -->
<script>
  let generatedSets = 0; // 생성된 세트 수 카운트

  function generateLottoNumbers() {
    const numbers = [];
    
    // 1~45 중 중복 없이 6개 추출
    while (numbers.length < 6) {
      const randNum = Math.floor(Math.random() * 45) + 1;
      if (!numbers.includes(randNum)) {
        numbers.push(randNum);
      }
    }
    
    // 오름차순 정렬
    numbers.sort((a, b) => a - b);

    // 공 색상 함수
    function getColorClass(num) {
      if (num <= 10) return 'yellow';
      if (num <= 20) return 'blue';
      if (num <= 30) return 'red';
      if (num <= 40) return 'gray';
      return 'green';
    }

    const historyContainer = document.getElementById('lotto-history-container');
    
    // 안내 문구가 있으면 삭제
    const emptyMsg = historyContainer.querySelector('.empty-msg');
    if (emptyMsg) {
      emptyMsg.remove();
    }

    // 새로운 번호 줄(Row) 생성
    const row = document.createElement('div');
    row.className = 'lotto-row';

    numbers.forEach(num => {
      const ball = document.createElement('span');
      ball.className = `ball ${getColorClass(num)}`;
      ball.innerText = num;
      row.appendChild(ball);
    });

    // 가장 최신에 생성된 번호가 맨 위에 추가되도록 배치
    historyContainer.prepend(row);

    // 생성된 세트 수 증가
    generatedSets++;

    // 20개가 넘으면 스크롤 바를 보여주기 위해 높이 고정 클래스 추가
    if (generatedSets > 20) {
      historyContainer.classList.add('has-scroll');
    }
  }
</script>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3b0.png" alt="🎰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 무료 로또 번호 생성기 활용법 및 특징</h2>



<p class="wp-block-paragraph">본 로또 번호 추첨기는 <strong>1부터 45까지의 숫자 중 중복 없이 무작위로 6개 숫자를 추출</strong>하여 제공하는 100% 무료 행운 번호 생성 툴입니다.</p>



<ul class="wp-block-list">
<li><strong>공식 로또 색상 적용:</strong> 실제 로또 6/45 공식 색상 기준(1~10번 노란색, 11~20번 파란색, 21~30번 빨간색, 31~40번 회색, 41~45번 초록색)을 적용하여 생성된 번호를 한눈에 직관적으로 확인하실 수 있습니다.</li>



<li><strong>무제한 번호 생성:</strong> [번호 추첨하기] 버튼을 누를 때마다 이전에 추출한 번호가 차곡차곡 쌓여 여러 조합을 쉽게 비교하고 선택할 수 있습니다.</li>



<li><strong>오름차순 자동 정렬:</strong> 추출된 6개 번호는 보기에 편하도록 자동으로 작은 숫자부터 순서대로 정렬됩니다.</li>
</ul>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f552.png" alt="🕒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 로또 6/45 판매 시간 및 추첨 시간 안내</h2>



<p class="wp-block-paragraph">로또 복권은 매일 구매가 가능하지만, 추첨 당일인 토요일에는 마감 시간이 정해져 있으므로 구매 시 시간을 반드시 확인해 주셔야 합니다.</p>



<ul class="wp-block-list">
<li><strong>매일 판매 시간:</strong> 06:00 ~ 24:00 (일요일~금요일)</li>



<li><strong>토요일 판매 마감:</strong> <strong>오후 8시 00분</strong> (토요일 오후 8시 이후 구매 건은 다음 주 회차로 처리됩니다.)</li>



<li><strong>로또 추첨 시간:</strong> <strong>매주 토요일 오후 8시 35분경</strong> (MBC TV 생방송)</li>



<li><strong>판매 재개 시간:</strong> 추첨 당일 토요일 오후 8시 30분부터 일요일 오전 6시까지는 판매가 중단되며, 일요일 오전 6시부터 다음 회차 구매가 재개됩니다.</li>
</ul>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4b0.png" alt="💰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 로또 당첨금 수령 방법 및 준비물</h2>



<p class="wp-block-paragraph">로또에 당첨되셨다면 당첨 등수에 따라 수령 장소와 필요한 준비물이 달라집니다. 당첨금 지급 기한은 <strong>지급 개시일로부터 1년 이내</strong>이므로 기한 내에 수령하셔야 합니다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>당첨 등수</strong></td><td><strong>수령 장소</strong></td><td><strong>필요 준비물</strong></td></tr></thead><tbody><tr><td><strong>1등</strong></td><td><strong>NH농협은행 본점</strong> (서울 중구)</td><td>복권 실물, 주민등록증(신분증)</td></tr><tr><td><strong>2등 / 3등</strong></td><td><strong>NH농협은행 전국 지점</strong></td><td>복권 실물, 주민등록증(신분증)</td></tr><tr><td><strong>4등 / 5등</strong></td><td><strong>일반 로또 복권 판매점</strong> 및 농협은행 지점</td><td>복권 실물</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>주의사항:</strong> 4등(5만 원)과 5등(5천 원)은 일반 복권 판매점에서도 즉시 현금이나 로또 복권으로 교환하실 수 있습니다. 1등부터 3등까지는 농협은행 영업점을 방문하셔야 하며, 지역 단위농협(조합)에서는 수령이 불가능하니 <strong>NH농협은행 중앙회 지점</strong>인지 꼭 확인 후 방문하시기 바랍니다.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4cc.png" alt="📌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Tip:</strong> 내가 산 복권의 QR코드를 스캔하거나 회차별 1등 당첨 지점을 상세히 조회하고 싶다면 <a href="https://www.dhlottery.co.kr/" target="_blank" rel="noreferrer noopener">동행복권 당첨 결과 페이지</a>를 활용해 보세요.<br><a href="https://snsnote.com/">SNSnote</a>는 여러분의 행운을 기원합니다.</p>
</blockquote>



<style>
  /* 이 글에서만 본문 상단 대표 이미지 숨기기 */
  .featured-image, 
  .post-thumbnail, 
  .entry-header .post-image,
  .single-media {
    display: none !important;
  }
</style>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://snsnote.com/wp-content/uploads/2026/06/5555.png" width="100"  height="100" alt="" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://snsnote.com/author/admin/" class="vcard author" rel="author"><span class="fn">JH</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>SNSnote 편집 담당 JH입니다.<br />
2020년부터 SNS를 본격적으로 운영하기 시작해 현재 인스타그램, 유튜브, X를 합쳐 총 40만 팔로워를 보유하고 있습니다.<br />
영구정지 복구, 계정 성장, 수익화까지 직접 경험한 실패와 성공 사례를 바탕으로<br />
실전에서 바로 써먹을 수 있는 최신 정보를 전달해드리고 있습니다.</p>
</div></div><div class="saboxplugin-web "><a href="https://snsnote.com" target="_self">snsnote.com</a></div><div class="clearfix"></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://snsnote.com/lotto/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<media:content url="https://snsnote.com/wp-content/uploads/2026/08/lotte.jpg" medium="image" /><post-id xmlns="com-wordpress:feed-additions:1">1171</post-id>	</item>
	</channel>
</rss>
