<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>nangman00 님의 블로그</title>
    <link>https://nangman00.tistory.com/</link>
    <description>nangman00 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Mon, 6 Apr 2026 05:00:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>nangman00</managingEditor>
    <item>
      <title>자동차 연비 및 장거리 여행 주유비 계산기</title>
      <link>https://nangman00.tistory.com/29</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #27ae60; margin-bottom: 5px;&quot;&gt;⛽ 자동차 연비 &amp; 예상 주유비 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;목적지까지의 이동 거리와 내 차의 연비를 바탕으로 총 유류비를 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;1. 총 주행(왕복) 거리 (km)&lt;/label&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaDistance&quot; placeholder=&quot;예: 350&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. 내 차의 평균 연비 (km/L)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaFuelEff&quot; placeholder=&quot;예: 12.5&quot; step=&quot;0.1&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;3. 1리터당 기름값 (원)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaFuelPrice&quot; placeholder=&quot;예: 1650&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcFuel()&quot; style=&quot;width: 100%; padding: 15px; background: #27ae60; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;예상 주유비 산출하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaFuelResult&quot; style=&quot;display: none; padding: 20px; background: #f4fdf8; border-radius: 8px; border-left: 5px solid #27ae60;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #e1f5e8; padding-bottom: 10px;&quot;&gt;
            &lt;span style=&quot;font-size: 13px; color: #7f8c8d;&quot;&gt;이동에 필요한 총 연료량&lt;/span&gt;
            &lt;span id=&quot;jenaRequiredFuel&quot; style=&quot;font-weight: bold; color: #2c3e50; font-size: 15px;&quot;&gt;0 L&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; margin-top: 15px;&quot;&gt;
            &lt;span style=&quot;font-size: 15px; font-weight: bold; color: #2c3e50;&quot;&gt;예상 유류비 (기름값)&lt;/span&gt;
            &lt;span id=&quot;jenaTotalFuelCost&quot; style=&quot;font-size: 24px; font-weight: bold; color: #27ae60;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;p style=&quot;font-size: 11px; color: #95a5a6; margin: 10px 0 0 0; text-align: left;&quot;&gt;* 고속도로 톨게이트 비용(통행료)은 별도로 계산하셔야 합니다.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcFuel() {
        const distance = parseFloat(document.getElementById('jenaDistance').value) || 0;
        const efficiency = parseFloat(document.getElementById('jenaFuelEff').value) || 0;
        const price = parseFloat(document.getElementById('jenaFuelPrice').value) || 0;

        if (distance === 0 || efficiency === 0 || price === 0) {
            alert(&quot;거리, 연비, 기름값을 모두 입력해 주십시오.&quot;);
            return;
        }

        // 필요 연료량 = 거리 / 연비
        const requiredFuel = distance / efficiency;
        
        // 총 주유비 = 필요 연료량 * 기름값
        const totalCost = requiredFuel * price;

        document.getElementById('jenaRequiredFuel').innerText = requiredFuel.toFixed(1) + ' L';
        document.getElementById('jenaTotalFuelCost').innerText = Math.floor(totalCost).toLocaleString() + '원';
        document.getElementById('jenaFuelResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/29</guid>
      <comments>https://nangman00.tistory.com/29#entry29comment</comments>
      <pubDate>Thu, 19 Mar 2026 15:38:18 +0900</pubDate>
    </item>
    <item>
      <title>임산부 출산 예정일 및 임신 주수 계산기</title>
      <link>https://nangman00.tistory.com/28</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #e84393; margin-bottom: 5px;&quot;&gt;  임산부 출산 예정일 &amp; 주수 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;마지막 생리일(LMP)을 기준으로 280일 뒤의 정확한 예정일과 현재 주수를 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;background: #fdf4f7; padding: 20px; border-radius: 8px; text-align: center; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 14px; font-weight: bold; color: #d63031; display: block; margin-bottom: 10px;&quot;&gt;마지막 생리 시작일을 선택하세요&lt;/label&gt;
        &lt;input type=&quot;date&quot; id=&quot;jenaLmpDate&quot; style=&quot;width: 100%; padding: 12px; border: 1px solid #fab1a0; border-radius: 6px; box-sizing: border-box; font-size: 16px; text-align: center;&quot; onchange=&quot;jenaCalcPregnancy()&quot;&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaPregResultBox&quot; style=&quot;display: none; text-align: center; padding: 20px; background: #fff; border-radius: 8px; border: 2px solid #fdcb6e;&quot;&gt;
        &lt;p style=&quot;font-size: 13px; color: #7f8c8d; margin-bottom: 5px;&quot;&gt;기다리던 아기를 만나는 날&lt;/p&gt;
        &lt;h2 style=&quot;margin: 0 0 15px 0; color: #e84393; font-size: 28px; border-bottom: 1px dashed #ffeaa7; padding-bottom: 15px;&quot; id=&quot;jenaDueDate&quot;&gt;YYYY년 MM월 DD일&lt;/h2&gt;
        
        &lt;div style=&quot;display: flex; justify-content: space-around; margin-top: 15px;&quot;&gt;
            &lt;div&gt;
                &lt;p style=&quot;margin: 0; font-size: 12px; color: #7f8c8d; font-weight: bold;&quot;&gt;오늘 기준 임신 주수&lt;/p&gt;
                &lt;h3 style=&quot;margin: 5px 0 0 0; color: #d63031; font-size: 20px;&quot; id=&quot;jenaCurrentWeeks&quot;&gt;0주 0일차&lt;/h3&gt;
            &lt;/div&gt;
            &lt;div&gt;
                &lt;p style=&quot;margin: 0; font-size: 12px; color: #7f8c8d; font-weight: bold;&quot;&gt;출산까지 남은 날&lt;/p&gt;
                &lt;h3 style=&quot;margin: 5px 0 0 0; color: #0984e3; font-size: 20px;&quot; id=&quot;jenaDday&quot;&gt;D-0&lt;/h3&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        &lt;p style=&quot;font-size: 11px; color: #b2bec3; margin-top: 15px; text-align: left;&quot;&gt;* 네겔의 법칙(Naegele's rule)을 적용한 평균적인 수치이며, 초음파 결과와 다를 수 있습니다.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcPregnancy() {
        const lmpInput = document.getElementById('jenaLmpDate').value;
        if (!lmpInput) return;

        const lmpDate = new Date(lmpInput);
        const today = new Date();
        
        // 시간 초기화 (정확한 날짜 계산을 위해)
        lmpDate.setHours(0, 0, 0, 0);
        today.setHours(0, 0, 0, 0);

        // 출산 예정일 계산: 마지막 생리일 + 280일 (40주)
        const dueDate = new Date(lmpDate.getTime() + (280 * 24 * 60 * 60 * 1000));
        
        // 현재 주수 및 일수 계산
        const diffTime = today.getTime() - lmpDate.getTime();
        let diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));
        
        let weeks = 0;
        let days = 0;
        let dDayText = &quot;&quot;;

        if (diffDays &lt; 0) {
            alert(&quot;마지막 생리일은 오늘보다 미래일 수 없습니다.&quot;);
            return;
        } else if (diffDays &gt; 280) {
            weeks = 40;
            days = 0;
            dDayText = &quot;출산 예정일이 지났습니다.&quot;;
        } else {
            weeks = Math.floor(diffDays / 7);
            days = diffDays % 7;
            const remainDays = 280 - diffDays;
            dDayText = `D-${remainDays}`;
        }

        const dueYear = dueDate.getFullYear();
        const dueMonth = dueDate.getMonth() + 1;
        const dueDay = dueDate.getDate();

        document.getElementById('jenaDueDate').innerText = `${dueYear}년 ${dueMonth}월 ${dueDay}일`;
        document.getElementById('jenaCurrentWeeks').innerText = `${weeks}주 ${days}일차`;
        document.getElementById('jenaDday').innerText = dDayText;
        
        document.getElementById('jenaPregResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/28</guid>
      <comments>https://nangman00.tistory.com/28#entry28comment</comments>
      <pubDate>Wed, 18 Mar 2026 15:37:39 +0900</pubDate>
    </item>
    <item>
      <title>신발/의류 글로벌 사이즈 변환기 (직구족 필수)</title>
      <link>https://nangman00.tistory.com/27</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2980b9; margin-bottom: 5px;&quot;&gt;  해외 직구 신발 사이즈 변환기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;한국(mm) 사이즈를 미국(US), 영국(UK), 유럽(EU) 사이즈로 즉시 치환합니다.&lt;/p&gt;
    
    &lt;div style=&quot;display: flex; justify-content: center; gap: 20px; margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;cursor: pointer; font-weight: bold; color: #2c3e50;&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;jenaShoeGender&quot; value=&quot;men&quot; checked&gt; 남성용&lt;/label&gt;
        &lt;label style=&quot;cursor: pointer; font-weight: bold; color: #e74c3c;&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;jenaShoeGender&quot; value=&quot;women&quot;&gt; 여성용&lt;/label&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;background: #f8f9fa; padding: 20px; border-radius: 8px; text-align: center; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 14px; font-weight: bold; color: #34495e;&quot;&gt;한국 신발 사이즈 입력 (mm)&lt;/label&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaKrSize&quot; placeholder=&quot;예: 260&quot; step=&quot;5&quot; style=&quot;width: 150px; padding: 12px; margin-top: 10px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center; font-size: 18px; display: block; margin-left: auto; margin-right: auto;&quot; onkeyup=&quot;jenaConvertShoes()&quot;&gt;
        &lt;p style=&quot;font-size: 11px; color: #95a5a6; margin-top: 10px;&quot;&gt;* 230, 235 등 5mm 단위로 입력하세요.&lt;/p&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaShoeResult&quot; style=&quot;display: none; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; text-align: center;&quot;&gt;
        &lt;div style=&quot;background: #eef2f5; padding: 15px; border-radius: 8px; border-top: 3px solid #3498db;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 12px; color: #7f8c8d; font-weight: bold;&quot;&gt;미국 (US)&lt;/p&gt;
            &lt;h3 id=&quot;jenaUsSize&quot; style=&quot;margin: 10px 0 0 0; color: #2980b9; font-size: 24px;&quot;&gt;-&lt;/h3&gt;
        &lt;/div&gt;
        &lt;div style=&quot;background: #eef2f5; padding: 15px; border-radius: 8px; border-top: 3px solid #e67e22;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 12px; color: #7f8c8d; font-weight: bold;&quot;&gt;유럽 (EU)&lt;/p&gt;
            &lt;h3 id=&quot;jenaEuSize&quot; style=&quot;margin: 10px 0 0 0; color: #d35400; font-size: 24px;&quot;&gt;-&lt;/h3&gt;
        &lt;/div&gt;
        &lt;div style=&quot;background: #eef2f5; padding: 15px; border-radius: 8px; border-top: 3px solid #9b59b6;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 12px; color: #7f8c8d; font-weight: bold;&quot;&gt;영국 (UK)&lt;/p&gt;
            &lt;h3 id=&quot;jenaUkSize&quot; style=&quot;margin: 10px 0 0 0; color: #8e44ad; font-size: 24px;&quot;&gt;-&lt;/h3&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaConvertShoes() {
        const kr = parseFloat(document.getElementById('jenaKrSize').value);
        const gender = document.querySelector('input[name=&quot;jenaShoeGender&quot;]:checked').value;
        
        if (!kr || kr &lt; 200 || kr &gt; 320) {
            document.getElementById('jenaUsSize').innerText = '-';
            document.getElementById('jenaEuSize').innerText = '-';
            document.getElementById('jenaUkSize').innerText = '-';
            return;
        }

        let us = 0, uk = 0, eu = 0;

        // 글로벌 표준 사이즈 근사치 공식
        if (gender === 'men') {
            us = (kr - 250) / 5 + 7;
            uk = us - 1; // UK는 US보다 보통 1 사이즈 작음
            // EU 변환: 250=40, 260=41, 270=42.5 (대략적인 보정)
            eu = Math.round((us + 33) * 2) / 2; 
        } else {
            // 여성용
            us = (kr - 230) / 5 + 6;
            uk = us - 2; // 여성 UK는 US보다 보통 2 사이즈 작음
            eu = Math.round((us + 30.5) * 2) / 2;
        }

        document.getElementById('jenaUsSize').innerText = us &gt; 0 ? us : '-';
        document.getElementById('jenaUkSize').innerText = uk &gt; 0 ? uk : '-';
        document.getElementById('jenaEuSize').innerText = eu &gt; 0 ? eu : '-';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/27</guid>
      <comments>https://nangman00.tistory.com/27#entry27comment</comments>
      <pubDate>Tue, 17 Mar 2026 15:35:27 +0900</pubDate>
    </item>
    <item>
      <title>더치페이(N빵) 및 여행 팁(Tip) 정산기</title>
      <link>https://nangman00.tistory.com/26</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #e67e22; margin-bottom: 5px;&quot;&gt;  더치페이 &amp; 팁(Tip) 정산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;회식 N빵 정산부터 해외 식당의 팁 비율까지 깔끔하게 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;1. 총 결제 금액 (원/달러/유로 등)&lt;/label&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaTotalBill&quot; placeholder=&quot;예: 150000&quot; style=&quot;width: 100%; padding: 15px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 16px;&quot;&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. 일행 수 (나눌 인원)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaPeople&quot; value=&quot;1&quot; min=&quot;1&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;3. 팁(Tip) 추가 비율 (%)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaTipRate&quot; value=&quot;0&quot; placeholder=&quot;한국은 0입력&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcDutch()&quot; style=&quot;width: 100%; padding: 15px; background: #d35400; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;1인당 정산 금액 확인&lt;/button&gt;
    
    &lt;div id=&quot;jenaDutchResult&quot; style=&quot;display: none; padding: 20px; background: #fffcf8; border-radius: 8px; border: 1px solid #f39c12; text-align: center;&quot;&gt;
        &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;1인당 송금해야 할 금액&lt;/p&gt;
        &lt;h2 id=&quot;jenaPerPersonPay&quot; style=&quot;margin: 0 0 15px 0; color: #d35400; font-size: 36px; font-weight: 900; border-bottom: 1px dashed #f39c12; padding-bottom: 15px;&quot;&gt;0&lt;/h2&gt;
        
        &lt;div style=&quot;display: flex; justify-content: space-between; font-size: 13px; color: #34495e; margin-bottom: 8px;&quot;&gt;
            &lt;span&gt;추가된 팁(Tip) 금액:&lt;/span&gt;
            &lt;b id=&quot;jenaCalculatedTip&quot;&gt;0&lt;/b&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; font-size: 14px; color: #2c3e50; font-weight: bold;&quot;&gt;
            &lt;span&gt;팁 포함 총 결제액:&lt;/span&gt;
            &lt;span id=&quot;jenaGrandTotal&quot;&gt;0&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcDutch() {
        const bill = parseFloat(document.getElementById('jenaTotalBill').value) || 0;
        const people = parseInt(document.getElementById('jenaPeople').value) || 1;
        const tipRate = parseFloat(document.getElementById('jenaTipRate').value) || 0;

        if (bill &lt;= 0 || people &lt; 1) {
            alert(&quot;정상적인 금액과 인원수를 입력해 주십시오.&quot;);
            return;
        }

        const tipAmount = bill * (tipRate / 100);
        const grandTotal = bill + tipAmount;
        // 1인당 금액 (소수점 2자리까지만 표현, 한국 원화일 경우 대비)
        const perPerson = grandTotal / people;

        // 천단위 콤마 및 소수점 처리
        const formatMoney = (num) =&gt; {
            return Number.isInteger(num) ? num.toLocaleString() : num.toLocaleString(undefined, {minimumFractionDigits: 1, maximumFractionDigits: 2});
        };

        document.getElementById('jenaCalculatedTip').innerText = formatMoney(tipAmount);
        document.getElementById('jenaGrandTotal').innerText = formatMoney(grandTotal);
        document.getElementById('jenaPerPersonPay').innerText = formatMoney(perPerson);
        document.getElementById('jenaDutchResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/26</guid>
      <comments>https://nangman00.tistory.com/26#entry26comment</comments>
      <pubDate>Mon, 16 Mar 2026 15:34:04 +0900</pubDate>
    </item>
    <item>
      <title>비만도(BMI) 및 기초대사량(BMR) 계산기</title>
      <link>https://nangman00.tistory.com/25</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #8e44ad; margin-bottom: 5px;&quot;&gt; ‍♂️ BMI 비만도 &amp; 기초대사량 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;체질량 지수(BMI)와 하루 최소 필요 열량(BMR)을 정확히 산출합니다.&lt;/p&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 15px; justify-content: center;&quot;&gt;
        &lt;label style=&quot;cursor: pointer; font-weight: bold; color: #2980b9;&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;jenaGender&quot; value=&quot;m&quot; checked&gt; 남성&lt;/label&gt;
        &lt;label style=&quot;cursor: pointer; font-weight: bold; color: #e74c3c; margin-left: 15px;&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;jenaGender&quot; value=&quot;f&quot;&gt; 여성&lt;/label&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;나이 (만)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaAge&quot; placeholder=&quot;예: 35&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;키 (cm)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaHeight&quot; placeholder=&quot;예: 175&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;몸무게 (kg)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaWeight&quot; placeholder=&quot;예: 70&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcHealth()&quot; style=&quot;width: 100%; padding: 15px; background: #8e44ad; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;내 다이어트 지표 확인하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaHealthResult&quot; style=&quot;display: none;&quot;&gt;
        &lt;div style=&quot;background: #f4fdf8; padding: 20px; border-radius: 8px; border-left: 5px solid #27ae60; margin-bottom: 10px;&quot;&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;나의 체질량 지수 (BMI)&lt;/p&gt;
            &lt;h2 style=&quot;margin: 0 0 5px 0; color: #2c3e50; font-size: 28px;&quot;&gt;&lt;span id=&quot;jenaBmiVal&quot;&gt;0&lt;/span&gt; &lt;span id=&quot;jenaBmiStatus&quot; style=&quot;font-size: 16px; color: #27ae60; font-weight: bold;&quot;&gt;(정상)&lt;/span&gt;&lt;/h2&gt;
            &lt;p style=&quot;margin: 0; font-size: 11px; color: #95a5a6;&quot;&gt;* 18.5미만(저체중), 18.5~23(정상), 23~25(과체중), 25이상(비만)&lt;/p&gt;
        &lt;/div&gt;
        &lt;div style=&quot;background: #fffcf8; padding: 20px; border-radius: 8px; border-left: 5px solid #e67e22;&quot;&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;나의 기초대사량 (BMR)&lt;/p&gt;
            &lt;h2 style=&quot;margin: 0; color: #d35400; font-size: 24px;&quot;&gt;&lt;span id=&quot;jenaBmrVal&quot;&gt;0&lt;/span&gt; kcal / 일&lt;/h2&gt;
            &lt;p style=&quot;margin: 5px 0 0 0; font-size: 11px; color: #95a5a6;&quot;&gt;* 숨만 쉬어도 하루에 소모되는 최소 칼로리 (Mifflin-St Jeor 공식)&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcHealth() {
        const age = parseFloat(document.getElementById('jenaAge').value);
        const h = parseFloat(document.getElementById('jenaHeight').value);
        const w = parseFloat(document.getElementById('jenaWeight').value);
        const gender = document.querySelector('input[name=&quot;jenaGender&quot;]:checked').value;

        if (!age || !h || !w) {
            alert(&quot;나이, 키, 몸무게를 정확히 입력해 주십시오.&quot;);
            return;
        }

        // BMI 계산: 몸무게(kg) / (키(m) * 키(m))
        const hm = h / 100;
        const bmi = (w / (hm * hm)).toFixed(1);
        let status = &quot;&quot;;
        let statusColor = &quot;&quot;;

        if (bmi &lt; 18.5) { status = &quot;저체중&quot;; statusColor = &quot;#3498db&quot;; }
        else if (bmi &lt; 23) { status = &quot;정상&quot;; statusColor = &quot;#27ae60&quot;; }
        else if (bmi &lt; 25) { status = &quot;과체중&quot;; statusColor = &quot;#f1c40f&quot;; }
        else { status = &quot;비만&quot;; statusColor = &quot;#e74c3c&quot;; }

        // BMR 계산 (Mifflin-St Jeor)
        let bmr = 0;
        if (gender === 'm') {
            bmr = (10 * w) + (6.25 * h) - (5 * age) + 5;
        } else {
            bmr = (10 * w) + (6.25 * h) - (5 * age) - 161;
        }

        document.getElementById('jenaBmiVal').innerText = bmi;
        document.getElementById('jenaBmiStatus').innerText = `(${status})`;
        document.getElementById('jenaBmiStatus').style.color = statusColor;
        document.getElementById('jenaBmrVal').innerText = Math.round(bmr).toLocaleString();
        
        document.getElementById('jenaHealthResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/25</guid>
      <comments>https://nangman00.tistory.com/25#entry25comment</comments>
      <pubDate>Sun, 15 Mar 2026 15:32:14 +0900</pubDate>
    </item>
    <item>
      <title>직장인 연차(휴가) 및 발생 기준일 계산기</title>
      <link>https://nangman00.tistory.com/24</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #16a085; margin-bottom: 5px;&quot;&gt;  연차(휴가) 발생일 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;근로기준법 '입사일 기준'으로 현재까지 발생한 총 연차 개수를 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;background: #f8f9fa; padding: 20px; border-radius: 8px; text-align: center; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 14px; font-weight: bold; color: #34495e; display: block; margin-bottom: 10px;&quot;&gt;귀하의 입사일을 선택하세요&lt;/label&gt;
        &lt;input type=&quot;date&quot; id=&quot;jenaJoinDate&quot; style=&quot;width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 16px; text-align: center;&quot; onchange=&quot;jenaCalcLeave()&quot;&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaLeaveResultBox&quot; style=&quot;display: none; text-align: center; padding: 20px; background: #f2fcf9; border-radius: 8px; border: 1px solid #a3e4d7;&quot;&gt;
        &lt;p style=&quot;font-size: 13px; color: #7f8c8d; margin-bottom: 5px;&quot;&gt;오늘 날짜를 기준으로 발생한&lt;/p&gt;
        &lt;h3 style=&quot;margin: 0; font-size: 16px; color: #2c3e50;&quot;&gt;총 누적 연차 개수&lt;/h3&gt;
        &lt;h1 id=&quot;jenaTotalLeave&quot; style=&quot;margin: 10px 0; font-size: 42px; color: #16a085; font-weight: 900;&quot;&gt;0개&lt;/h1&gt;
        
        &lt;div style=&quot;background: white; padding: 15px; border-radius: 8px; text-align: left; font-size: 13px; color: #34495e; line-height: 1.6; border: 1px dashed #bdc3c7;&quot;&gt;
            • 근속 연수: &lt;b id=&quot;jenaWorkYears&quot; style=&quot;color: #e74c3c;&quot;&gt;0년 0개월&lt;/b&gt;&lt;br&gt;
            • 1년 미만 월차 발생분: &lt;b id=&quot;jenaNewbieLeave&quot;&gt;0개&lt;/b&gt; (1개월 만근 시 1개씩)&lt;br&gt;
            • 1년 이상 기본 연차 및 가산 연차: &lt;b id=&quot;jenaSeniorLeave&quot;&gt;0개&lt;/b&gt;&lt;br&gt;
            &lt;span style=&quot;font-size: 11px; color: #95a5a6; display: block; margin-top: 8px;&quot;&gt;* 본 계산기는 '입사일 기준'이며, 회사 내규(회계연도 기준)에 따라 다소 차이가 있을 수 있습니다.&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcLeave() {
        const joinInput = document.getElementById('jenaJoinDate').value;
        if (!joinInput) return;

        const joinDate = new Date(joinInput);
        const today = new Date();
        
        if (joinDate &gt; today) {
            alert(&quot;입사일은 오늘보다 미래일 수 없습니다.&quot;);
            return;
        }

        let totalMonths = (today.getFullYear() - joinDate.getFullYear()) * 12 + (today.getMonth() - joinDate.getMonth());
        if (today.getDate() &lt; joinDate.getDate()) totalMonths--;

        const workYears = Math.floor(totalMonths / 12);
        const workRemMonths = totalMonths % 12;

        let newbieLeave = 0;
        let seniorLeave = 0;
        let totalLeave = 0;

        // 1년 미만일 경우 (매월 1개씩 최대 11개)
        if (workYears === 0) {
            newbieLeave = totalMonths;
            totalLeave = newbieLeave;
        } 
        // 1년 이상일 경우
        else {
            newbieLeave = 11; // 1년 차 때 받은 11개
            
            // 근속 연수에 따른 연차 발생 (1년 차: 15개, 이후 매 2년마다 1개씩 추가, 최대 25개)
            seniorLeave = 15 + Math.floor((workYears - 1) / 2);
            if (seniorLeave &gt; 25) seniorLeave = 25; // 법정 최대 한도
            
            // 2년차 이상부터는 누적된 전체 연차를 합산하는 로직이 필요하지만, 
            // 보통 '올해 사용할 수 있는 연차'를 궁금해하므로 당해 년도 발생분을 출력합니다.
            totalLeave = seniorLeave; 
        }

        document.getElementById('jenaWorkYears').innerText = `${workYears}년 ${workRemMonths}개월`;
        document.getElementById('jenaNewbieLeave').innerText = newbieLeave + '개';
        document.getElementById('jenaSeniorLeave').innerText = workYears &gt; 0 ? seniorLeave + '개 (당해 연도 기준)' : '0개';
        
        // 총 연차는 당해 연도에 새로 부여받은 연차 기준 (미사용 이월분 제외)
        document.getElementById('jenaTotalLeave').innerText = totalLeave + '개';
        document.getElementById('jenaLeaveResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/24</guid>
      <comments>https://nangman00.tistory.com/24#entry24comment</comments>
      <pubDate>Sat, 14 Mar 2026 15:26:40 +0900</pubDate>
    </item>
    <item>
      <title>대출 이자 상환 계산기 (원리금균등 기준)</title>
      <link>https://nangman00.tistory.com/23</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;  대출 이자 상환 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;가장 보편적인 '원리금균등상환' 방식으로 매월 납부해야 할 금액을 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;1. 대출 원금 (원)&lt;/label&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaLoanAmt&quot; placeholder=&quot;예: 100000000 (1억)&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. 연 이자율 (%)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaInterestRate&quot; placeholder=&quot;예: 4.5&quot; step=&quot;0.1&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;3. 대출 기간 (년)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaLoanYears&quot; placeholder=&quot;예: 10&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 15px;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcLoan()&quot; style=&quot;width: 100%; padding: 15px; background: #2980b9; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px; transition: 0.3s;&quot;&gt;매월 상환금액 계산&lt;/button&gt;
    
    &lt;div id=&quot;jenaLoanResult&quot; style=&quot;display: none; padding: 20px; background: #f4f8fb; border-radius: 8px; border-top: 4px solid #2980b9;&quot;&gt;
        &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d; text-align: center;&quot;&gt;매월 갚아야 할 원금 + 이자&lt;/p&gt;
        &lt;h2 id=&quot;jenaMonthlyPay&quot; style=&quot;margin: 0 0 15px 0; color: #2980b9; font-size: 32px; text-align: center; border-bottom: 1px solid #dce8f1; padding-bottom: 15px;&quot;&gt;0원&lt;/h2&gt;
        
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 14px;&quot;&gt;
            &lt;span style=&quot;color: #34495e; font-weight: bold;&quot;&gt;총 상환 이자:&lt;/span&gt;
            &lt;span id=&quot;jenaTotalInterest&quot; style=&quot;color: #e74c3c; font-weight: bold;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; font-size: 14px;&quot;&gt;
            &lt;span style=&quot;color: #34495e; font-weight: bold;&quot;&gt;원금 + 이자 총액:&lt;/span&gt;
            &lt;span id=&quot;jenaTotalPayment&quot; style=&quot;color: #2c3e50; font-weight: bold;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcLoan() {
        const principal = parseFloat(document.getElementById('jenaLoanAmt').value) || 0;
        const annualRate = parseFloat(document.getElementById('jenaInterestRate').value) || 0;
        const years = parseFloat(document.getElementById('jenaLoanYears').value) || 0;

        if (principal === 0 || annualRate === 0 || years === 0) {
            alert(&quot;대출 원금, 연 이자율, 대출 기간을 모두 입력해 주십시오.&quot;);
            return;
        }

        const monthlyRate = (annualRate / 100) / 12;
        const totalMonths = years * 12;

        // 원리금균등상환 공식: 원금 * [월이자율 * (1+월이자율)^개월수] / [(1+월이자율)^개월수 - 1]
        const factor = Math.pow(1 + monthlyRate, totalMonths);
        const monthlyPayment = principal * (monthlyRate * factor) / (factor - 1);
        
        const totalPayment = monthlyPayment * totalMonths;
        const totalInterest = totalPayment - principal;

        document.getElementById('jenaMonthlyPay').innerText = Math.floor(monthlyPayment).toLocaleString() + '원';
        document.getElementById('jenaTotalInterest').innerText = Math.floor(totalInterest).toLocaleString() + '원';
        document.getElementById('jenaTotalPayment').innerText = Math.floor(totalPayment).toLocaleString() + '원';
        document.getElementById('jenaLoanResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/23</guid>
      <comments>https://nangman00.tistory.com/23#entry23comment</comments>
      <pubDate>Fri, 13 Mar 2026 15:25:49 +0900</pubDate>
    </item>
    <item>
      <title>강력한 무작위 로또/추첨 번호 생성기</title>
      <link>https://nangman00.tistory.com/22</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 30px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea; text-align: center;&quot;&gt;
    &lt;h2 style=&quot;color: #c0392b; margin-bottom: 5px;&quot;&gt;  로또 무작위 번호 자동 생성기&lt;/h2&gt;
    &lt;p style=&quot;color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;100% 클라이언트 연산으로 완벽한 난수(Random) 알고리즘을 구현합니다.&lt;/p&gt;
    
    &lt;div id=&quot;jenaLottoBalls&quot; style=&quot;display: flex; justify-content: center; gap: 10px; margin-bottom: 25px; flex-wrap: wrap;&quot;&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
        &lt;div style=&quot;width: 50px; height: 50px; border-radius: 50%; background: #ecf0f1; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: bold; color: #bdc3c7; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);&quot;&gt;?&lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaGenerateLotto()&quot; style=&quot;width: 100%; padding: 15px; background: #c0392b; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 18px; font-weight: bold; box-shadow: 0 4px 6px rgba(192, 57, 43, 0.3); transition: 0.2s;&quot;&gt;운명의 번호 추첨하기&lt;/button&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaGetBallColor(num) {
        if (num &lt;= 10) return '#f1c40f'; // 노란색
        if (num &lt;= 20) return '#3498db'; // 파란색
        if (num &lt;= 30) return '#e74c3c'; // 빨간색
        if (num &lt;= 40) return '#bdc3c7'; // 회색
        return '#2ecc71'; // 녹색
    }

    function jenaGenerateLotto() {
        const numbers = [];
        // 1부터 45까지 중복 없는 난수 6개 추출
        while (numbers.length &lt; 6) {
            const rand = Math.floor(Math.random() * 45) + 1;
            if (!numbers.includes(rand)) {
                numbers.push(rand);
            }
        }
        numbers.sort((a, b) =&gt; a - b); // 오름차순 정렬

        const ballContainer = document.getElementById('jenaLottoBalls');
        ballContainer.innerHTML = ''; // 초기화

        numbers.forEach((num, index) =&gt; {
            // 애니메이션 효과를 위해 약간의 딜레이를 주어 렌더링
            setTimeout(() =&gt; {
                const ball = document.createElement('div');
                ball.style.width = '50px';
                ball.style.height = '50px';
                ball.style.borderRadius = '50%';
                ball.style.background = jenaGetBallColor(num);
                ball.style.color = 'white';
                ball.style.display = 'flex';
                ball.style.alignItems = 'center';
                ball.style.justifyContent = 'center';
                ball.style.fontSize = '20px';
                ball.style.fontWeight = 'bold';
                ball.style.textShadow = '1px 1px 2px rgba(0,0,0,0.5)';
                ball.style.boxShadow = '0 4px 8px rgba(0,0,0,0.2)';
                ball.innerText = num;
                ballContainer.appendChild(ball);
            }, index * 150);
        });
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/22</guid>
      <comments>https://nangman00.tistory.com/22#entry22comment</comments>
      <pubDate>Thu, 12 Mar 2026 15:23:26 +0900</pubDate>
    </item>
    <item>
      <title>글로벌 단위 변환기 (길이/무게/넓이)</title>
      <link>https://nangman00.tistory.com/21</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2980b9; margin-bottom: 5px;&quot;&gt;  글로벌 단위 자동 변환기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;해외 직구와 부동산 필수 단위(무게, 길이, 넓이)를 상호 변환합니다.&lt;/p&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;select id=&quot;jenaUnitType&quot; style=&quot;flex: 1; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; font-size: 14px; font-weight: bold; color: #2c3e50;&quot; onchange=&quot;jenaChangeUnitMode()&quot;&gt;
            &lt;option value=&quot;weight&quot;&gt;무게 (kg ↔ lb 파운드)&lt;/option&gt;
            &lt;option value=&quot;length&quot;&gt;길이 (cm ↔ inch 인치)&lt;/option&gt;
            &lt;option value=&quot;area&quot;&gt;넓이 (㎡ ↔ 평)&lt;/option&gt;
        &lt;/select&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 15px; align-items: center; background: #f8f9fa; padding: 20px; border-radius: 8px;&quot;&gt;
        &lt;div style=&quot;flex: 1; text-align: center;&quot;&gt;
            &lt;label id=&quot;jenaLabel1&quot; style=&quot;font-size: 13px; font-weight: bold; color: #e74c3c;&quot;&gt;킬로그램 (kg)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaInput1&quot; placeholder=&quot;0&quot; style=&quot;width: 100%; padding: 15px; margin-top: 10px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center; font-size: 18px; font-weight: bold;&quot; onkeyup=&quot;jenaConvertUnits(1)&quot;&gt;
        &lt;/div&gt;
        &lt;span style=&quot;font-size: 24px; color: #bdc3c7;&quot;&gt;=&lt;/span&gt;
        &lt;div style=&quot;flex: 1; text-align: center;&quot;&gt;
            &lt;label id=&quot;jenaLabel2&quot; style=&quot;font-size: 13px; font-weight: bold; color: #2980b9;&quot;&gt;파운드 (lb)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaInput2&quot; placeholder=&quot;0&quot; style=&quot;width: 100%; padding: 15px; margin-top: 10px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center; font-size: 18px; font-weight: bold;&quot; onkeyup=&quot;jenaConvertUnits(2)&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;p style=&quot;text-align: center; font-size: 11px; color: #95a5a6; margin-top: 15px;&quot;&gt;양쪽 입력칸 중 한 곳에 숫자를 넣으면 즉시 반대편 단위로 환산됩니다.&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
    const unitFactors = {
        weight: { rate: 2.20462, name1: &quot;킬로그램 (kg)&quot;, name2: &quot;파운드 (lb)&quot; },
        length: { rate: 0.393701, name1: &quot;센티미터 (cm)&quot;, name2: &quot;인치 (inch)&quot; },
        area: { rate: 0.3025, name1: &quot;제곱미터 (㎡)&quot;, name2: &quot;평 (坪)&quot; }
    };

    function jenaChangeUnitMode() {
        const type = document.getElementById('jenaUnitType').value;
        document.getElementById('jenaLabel1').innerText = unitFactors[type].name1;
        document.getElementById('jenaLabel2').innerText = unitFactors[type].name2;
        document.getElementById('jenaInput1').value = '';
        document.getElementById('jenaInput2').value = '';
    }

    function jenaConvertUnits(source) {
        const type = document.getElementById('jenaUnitType').value;
        const rate = unitFactors[type].rate;
        
        if (source === 1) {
            const val = parseFloat(document.getElementById('jenaInput1').value);
            if (!isNaN(val)) {
                document.getElementById('jenaInput2').value = (val * rate).toFixed(2);
            } else {
                document.getElementById('jenaInput2').value = '';
            }
        } else {
            const val = parseFloat(document.getElementById('jenaInput2').value);
            if (!isNaN(val)) {
                document.getElementById('jenaInput1').value = (val / rate).toFixed(2);
            } else {
                document.getElementById('jenaInput1').value = '';
            }
        }
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/21</guid>
      <comments>https://nangman00.tistory.com/21#entry21comment</comments>
      <pubDate>Wed, 11 Mar 2026 15:22:47 +0900</pubDate>
    </item>
    <item>
      <title>사진/영상 화면 비율(Aspect Ratio) 계산기</title>
      <link>https://nangman00.tistory.com/20</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #8e44ad; margin-bottom: 5px;&quot;&gt; ️ 이미지 화면 비율(Ratio) 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;원본 비율을 유지하면서 변경할 이미지의 가로/세로 픽셀(px)을 산출합니다.&lt;/p&gt;
    
    &lt;div style=&quot;background: #f8f9fa; padding: 15px; border-radius: 8px; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;1. 원본 비율 (기준점)&lt;/label&gt;
        &lt;div style=&quot;display: flex; gap: 10px; align-items: center; margin-top: 5px;&quot;&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaW1&quot; placeholder=&quot;가로 (예: 16)&quot; style=&quot;flex: 1; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot;&gt;
            &lt;span style=&quot;font-weight: bold; color: #7f8c8d;&quot;&gt;:&lt;/span&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaH1&quot; placeholder=&quot;세로 (예: 9)&quot; style=&quot;flex: 1; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; gap: 5px; margin-top: 10px;&quot;&gt;
            &lt;button onclick=&quot;jenaSetRatio(16,9)&quot; style=&quot;flex: 1; padding: 5px; font-size: 12px; background: #ecf0f1; border: 1px solid #bdc3c7; border-radius: 4px; cursor: pointer;&quot;&gt;16:9 (유튜브)&lt;/button&gt;
            &lt;button onclick=&quot;jenaSetRatio(4,3)&quot; style=&quot;flex: 1; padding: 5px; font-size: 12px; background: #ecf0f1; border: 1px solid #bdc3c7; border-radius: 4px; cursor: pointer;&quot;&gt;4:3 (일반)&lt;/button&gt;
            &lt;button onclick=&quot;jenaSetRatio(1,1)&quot; style=&quot;flex: 1; padding: 5px; font-size: 12px; background: #ecf0f1; border: 1px solid #bdc3c7; border-radius: 4px; cursor: pointer;&quot;&gt;1:1 (인스타)&lt;/button&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;background: #fffcf8; padding: 15px; border-radius: 8px; border-left: 4px solid #e67e22; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #d35400;&quot;&gt;2. 변경할 픽셀(px) 입력 (한쪽만 입력하세요)&lt;/label&gt;
        &lt;div style=&quot;display: flex; gap: 10px; align-items: center; margin-top: 5px;&quot;&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaW2&quot; placeholder=&quot;새 가로 (px)&quot; style=&quot;flex: 1; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot; onkeyup=&quot;jenaCalcRatio('width')&quot;&gt;
            &lt;span style=&quot;font-weight: bold; color: #7f8c8d;&quot;&gt;x&lt;/span&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaH2&quot; placeholder=&quot;새 세로 (px)&quot; style=&quot;flex: 1; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; text-align: center;&quot; onkeyup=&quot;jenaCalcRatio('height')&quot;&gt;
        &lt;/div&gt;
        &lt;p style=&quot;font-size: 11px; color: #95a5a6; margin: 10px 0 0 0; text-align: center;&quot;&gt;가로나 세로 중 하나를 입력하면 나머지가 자동으로 계산됩니다.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaSetRatio(w, h) {
        document.getElementById('jenaW1').value = w;
        document.getElementById('jenaH1').value = h;
        document.getElementById('jenaW2').value = '';
        document.getElementById('jenaH2').value = '';
    }

    function jenaCalcRatio(type) {
        const w1 = parseFloat(document.getElementById('jenaW1').value);
        const h1 = parseFloat(document.getElementById('jenaH1').value);
        
        if (!w1 || !h1) return;

        if (type === 'width') {
            const w2 = parseFloat(document.getElementById('jenaW2').value);
            if (w2) document.getElementById('jenaH2').value = Math.round((w2 * h1) / w1);
        } else {
            const h2 = parseFloat(document.getElementById('jenaH2').value);
            if (h2) document.getElementById('jenaW2').value = Math.round((h2 * w1) / h1);
        }
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/20</guid>
      <comments>https://nangman00.tistory.com/20#entry20comment</comments>
      <pubDate>Tue, 10 Mar 2026 15:22:04 +0900</pubDate>
    </item>
    <item>
      <title>색상 코드 변환기 (HEX &amp;harr; RGB)</title>
      <link>https://nangman00.tistory.com/19</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea; text-align: center;&quot;&gt;
    &lt;h2 style=&quot;color: #e67e22; margin-bottom: 5px;&quot;&gt;  HEX ↔ RGB 색상 코드 변환기&lt;/h2&gt;
    &lt;p style=&quot;color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;웹 컬러 코드(HEX)와 RGB 값을 상호 변환하고 색상을 즉시 확인합니다.&lt;/p&gt;
    
    &lt;div id=&quot;jenaColorPreview&quot; style=&quot;width: 100%; height: 100px; background: #e67e22; border-radius: 8px; margin-bottom: 20px; box-shadow: inset 0 2px 5px rgba(0,0,0,0.1); transition: 0.3s;&quot;&gt;&lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 15px; margin-bottom: 10px;&quot;&gt;
        &lt;div style=&quot;flex: 1; text-align: left;&quot;&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;1. HEX 코드 입력 (# 포함)&lt;/label&gt;
            &lt;input type=&quot;text&quot; id=&quot;jenaHexInput&quot; placeholder=&quot;#E67E22&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-family: monospace; text-transform: uppercase;&quot; onkeyup=&quot;jenaHexToRgb()&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1; text-align: left;&quot;&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. RGB 값 입력 (R, G, B)&lt;/label&gt;
            &lt;input type=&quot;text&quot; id=&quot;jenaRgbInput&quot; placeholder=&quot;230, 126, 34&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-family: monospace;&quot; onkeyup=&quot;jenaRgbToHex()&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;p style=&quot;font-size: 11px; color: #95a5a6; text-align: left; margin-top: 0;&quot;&gt;* 한쪽을 입력하면 다른 쪽이 자동으로 계산되며 상단 박스 색상이 변합니다.&lt;/p&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaHexToRgb() {
        let hex = document.getElementById('jenaHexInput').value.replace('#', '');
        if (hex.length === 3) {
            hex = hex.split('').map(char =&gt; char + char).join('');
        }
        if (hex.length === 6) {
            const r = parseInt(hex.substring(0, 2), 16);
            const g = parseInt(hex.substring(2, 4), 16);
            const b = parseInt(hex.substring(4, 6), 16);
            
            if(!isNaN(r) &amp;&amp; !isNaN(g) &amp;&amp; !isNaN(b)) {
                document.getElementById('jenaRgbInput').value = `${r}, ${g}, ${b}`;
                document.getElementById('jenaColorPreview').style.background = `#${hex}`;
            }
        }
    }

    function jenaRgbToHex() {
        const rgbArr = document.getElementById('jenaRgbInput').value.split(',').map(item =&gt; parseInt(item.trim()));
        if (rgbArr.length === 3 &amp;&amp; rgbArr.every(val =&gt; !isNaN(val) &amp;&amp; val &gt;= 0 &amp;&amp; val &lt;= 255)) {
            const hex = &quot;#&quot; + rgbArr.map(x =&gt; {
                const h = x.toString(16);
                return h.length === 1 ? &quot;0&quot; + h : h;
            }).join('').toUpperCase();
            
            document.getElementById('jenaHexInput').value = hex;
            document.getElementById('jenaColorPreview').style.background = hex;
        }
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/19</guid>
      <comments>https://nangman00.tistory.com/19#entry19comment</comments>
      <pubDate>Mon, 9 Mar 2026 15:19:43 +0900</pubDate>
    </item>
    <item>
      <title>HTML/CSS 실시간 미리보기 에디터</title>
      <link>https://nangman00.tistory.com/18</link>
      <description>&lt;div style=&quot;max-width: 800px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #8e44ad; margin-bottom: 5px;&quot;&gt;  HTML/CSS 실시간 미리보기 에디터&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;코드를 타이핑하는 즉시 아래 결과 창에 웹페이지가 렌더링됩니다.&lt;/p&gt;
    
    &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;HTML 코드 입력칸 (여기에 코드를 작성하세요)&lt;/label&gt;
    &lt;textarea id=&quot;jenaHtmlEditor&quot; onkeyup=&quot;jenaRenderHtml()&quot; placeholder=&quot;&lt;h1&gt;Hello World!&lt;/h1&gt;&amp;#10;&lt;p style='color:blue;'&gt;이곳에 HTML이나 CSS를 입력하세요.&lt;/p&gt;&quot; style=&quot;width: 100%; height: 200px; padding: 15px; margin-top: 5px; background: #2c3e50; color: #ecf0f1; border: none; border-radius: 8px; box-sizing: border-box; font-family: monospace; font-size: 14px; margin-bottom: 15px; resize: vertical;&quot;&gt;&lt;/textarea&gt;
    
    &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #c0392b;&quot;&gt;실시간 렌더링 결과 (미리보기)&lt;/label&gt;
    &lt;div id=&quot;jenaHtmlOutput&quot; style=&quot;width: 100%; min-height: 200px; margin-top: 5px; padding: 15px; border: 2px dashed #bdc3c7; border-radius: 8px; box-sizing: border-box; background: #fdfbfb; overflow: auto;&quot;&gt;
        &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaRenderHtml() {
        const code = document.getElementById('jenaHtmlEditor').value;
        const outputBox = document.getElementById('jenaHtmlOutput');
        
        // 보안을 위해 스크립트 실행은 막고 순수 HTML/CSS만 렌더링
        const safeCode = code.replace(/&lt;script\b[^&lt;]*(?:(?!&lt;\/script&gt;)&lt;[^&lt;]*)*&lt;\/script&gt;/gi, &quot;&lt;div style='color:red;'&gt;[스크립트 태그는 보안상 렌더링되지 않습니다]&lt;/div&gt;&quot;);
        outputBox.innerHTML = safeCode;
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/18</guid>
      <comments>https://nangman00.tistory.com/18#entry18comment</comments>
      <pubDate>Sun, 8 Mar 2026 15:19:04 +0900</pubDate>
    </item>
    <item>
      <title>텍스트 일괄 찾기 및 바꾸기 (Find &amp;amp; Replace)</title>
      <link>https://nangman00.tistory.com/17</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;  단어 일괄 찾기 및 바꾸기 (텍스트 치환)&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;긴 글에서 특정 단어를 찾아 클릭 한 번으로 모두 다른 단어로 변경합니다.&lt;/p&gt;
    
    &lt;textarea id=&quot;jenaSourceText&quot; placeholder=&quot;여기에 원본 텍스트를 붙여넣으세요...&quot; style=&quot;width: 100%; height: 150px; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; margin-bottom: 15px; resize: vertical;&quot;&gt;&lt;/textarea&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 15px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #e74c3c;&quot;&gt;찾을 단어&lt;/label&gt;
            &lt;input type=&quot;text&quot; id=&quot;jenaFindWord&quot; placeholder=&quot;예: 구글&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #e74c3c; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #27ae60;&quot;&gt;바꿀 단어&lt;/label&gt;
            &lt;input type=&quot;text&quot; id=&quot;jenaReplaceWord&quot; placeholder=&quot;예: 네이버&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #27ae60; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaReplaceText()&quot; style=&quot;width: 100%; padding: 15px; background: #34495e; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: bold; margin-bottom: 20px; transition: 0.3s;&quot;&gt;텍스트 일괄 변환하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaReplaceResultBox&quot; style=&quot;display: none;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #2980b9;&quot;&gt;변환 완료된 텍스트&lt;/label&gt;
        &lt;textarea id=&quot;jenaResultText&quot; readonly style=&quot;width: 100%; height: 150px; padding: 15px; margin-top: 5px; background: #f8f9fa; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; color: #333; resize: vertical;&quot;&gt;&lt;/textarea&gt;
        &lt;button onclick=&quot;jenaCopyText()&quot; style=&quot;width: 100%; padding: 12px; margin-top: 10px; background: #95a5a6; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: bold;&quot;&gt;결과 복사하기&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaReplaceText() {
        const source = document.getElementById('jenaSourceText').value;
        const findW = document.getElementById('jenaFindWord').value;
        const repW = document.getElementById('jenaReplaceWord').value;

        if (!source || !findW) {
            alert(&quot;원본 텍스트와 찾을 단어를 모두 입력해 주십시오.&quot;);
            return;
        }

        // 정규식을 사용하여 전역(g)으로 모든 단어를 찾아 바꿈
        const regExp = new RegExp(findW, 'g');
        const result = source.replace(regExp, repW);

        document.getElementById('jenaResultText').value = result;
        document.getElementById('jenaReplaceResultBox').style.display = 'block';
    }

    function jenaCopyText() {
        const resultArea = document.getElementById('jenaResultText');
        resultArea.select();
        document.execCommand('copy');
        alert(&quot;변환된 텍스트가 클립보드에 복사되었습니다.&quot;);
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/17</guid>
      <comments>https://nangman00.tistory.com/17#entry17comment</comments>
      <pubDate>Sat, 7 Mar 2026 15:18:07 +0900</pubDate>
    </item>
    <item>
      <title>오픈마켓 판매 수수료 비교기</title>
      <link>https://nangman00.tistory.com/16</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2980b9; margin-bottom: 5px;&quot;&gt;  오픈마켓 판매 수수료 비교기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;판매가를 입력하면 주요 마켓별 공제 수수료와 최종 정산액을 비교합니다.&lt;/p&gt;
    
    &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;판매 예정 가격 (원)&lt;/label&gt;
    &lt;input type=&quot;number&quot; id=&quot;jenaMarketPrice&quot; placeholder=&quot;예: 50000&quot; style=&quot;width: 100%; padding: 15px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 16px; margin-bottom: 15px;&quot;&gt;
    
    &lt;button onclick=&quot;jenaCompareMarket()&quot; style=&quot;width: 100%; padding: 15px; background: #34495e; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;마켓별 정산액 비교하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaMarketResult&quot; style=&quot;display: none;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; padding: 15px; background: #f4fdf8; border-radius: 8px; border-left: 5px solid #27ae60; margin-bottom: 10px;&quot;&gt;
            &lt;div&gt;
                &lt;span style=&quot;font-weight: bold; color: #2c3e50; display: block;&quot;&gt;스마트스토어 (약 5.3%)&lt;/span&gt;
                &lt;span style=&quot;font-size: 12px; color: #7f8c8d;&quot; id=&quot;jenaFeeSmart&quot;&gt;수수료: 0원&lt;/span&gt;
            &lt;/div&gt;
            &lt;span id=&quot;jenaNetSmart&quot; style=&quot;font-size: 18px; font-weight: bold; color: #27ae60;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; padding: 15px; background: #fffcf8; border-radius: 8px; border-left: 5px solid #e67e22; margin-bottom: 10px;&quot;&gt;
            &lt;div&gt;
                &lt;span style=&quot;font-weight: bold; color: #2c3e50; display: block;&quot;&gt;쿠팡 일반 (약 10.9%)&lt;/span&gt;
                &lt;span style=&quot;font-size: 12px; color: #7f8c8d;&quot; id=&quot;jenaFeeCoupang&quot;&gt;수수료: 0원&lt;/span&gt;
            &lt;/div&gt;
            &lt;span id=&quot;jenaNetCoupang&quot; style=&quot;font-size: 18px; font-weight: bold; color: #e67e22;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; padding: 15px; background: #fdfbfb; border-radius: 8px; border-left: 5px solid #c0392b;&quot;&gt;
            &lt;div&gt;
                &lt;span style=&quot;font-weight: bold; color: #2c3e50; display: block;&quot;&gt;11번가/G마켓 등 (약 13%)&lt;/span&gt;
                &lt;span style=&quot;font-size: 12px; color: #7f8c8d;&quot; id=&quot;jenaFeeOpen&quot;&gt;수수료: 0원&lt;/span&gt;
            &lt;/div&gt;
            &lt;span id=&quot;jenaNetOpen&quot; style=&quot;font-size: 18px; font-weight: bold; color: #c0392b;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;p style=&quot;text-align: center; font-size: 11px; color: #95a5a6; margin-top: 15px;&quot;&gt;* 카테고리별로 실제 수수료율은 다를 수 있으며, 위는 범용적인 평균 추정치입니다.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCompareMarket() {
        const price = parseFloat(document.getElementById('jenaMarketPrice').value) || 0;
        if(price === 0) { alert(&quot;판매 가격을 입력해 주십시오.&quot;); return; }

        // 평균 수수료율 설정
        const rateSmart = 0.053;
        const rateCoupang = 0.109;
        const rateOpen = 0.13;

        // 수수료 계산
        const feeSmart = Math.floor(price * rateSmart);
        const feeCoupang = Math.floor(price * rateCoupang);
        const feeOpen = Math.floor(price * rateOpen);

        // 정산액 계산
        document.getElementById('jenaFeeSmart').innerText = `예상 수수료: -${feeSmart.toLocaleString()}원`;
        document.getElementById('jenaNetSmart').innerText = (price - feeSmart).toLocaleString() + '원';

        document.getElementById('jenaFeeCoupang').innerText = `예상 수수료: -${feeCoupang.toLocaleString()}원`;
        document.getElementById('jenaNetCoupang').innerText = (price - feeCoupang).toLocaleString() + '원';

        document.getElementById('jenaFeeOpen').innerText = `예상 수수료: -${feeOpen.toLocaleString()}원`;
        document.getElementById('jenaNetOpen').innerText = (price - feeOpen).toLocaleString() + '원';

        document.getElementById('jenaMarketResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/16</guid>
      <comments>https://nangman00.tistory.com/16#entry16comment</comments>
      <pubDate>Fri, 6 Mar 2026 15:16:02 +0900</pubDate>
    </item>
    <item>
      <title>알바 주휴수당 및 급여 계산기</title>
      <link>https://nangman00.tistory.com/15</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #27ae60; margin-bottom: 5px;&quot;&gt;⏰ 알바 주휴수당 자동 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;주 15시간 이상 근무자의 주휴수당과 주급을 정확히 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;1. 시간당 급여 (시급)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaWage&quot; placeholder=&quot;예: 9860&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. 1주 총 근무시간&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaHours&quot; placeholder=&quot;예: 20&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcHoliday()&quot; style=&quot;width: 100%; padding: 15px; background: #27ae60; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;주급 및 주휴수당 계산&lt;/button&gt;
    
    &lt;div id=&quot;jenaHolidayResult&quot; style=&quot;display: none; padding: 20px; background: #f4fdf8; border-radius: 8px; border-left: 5px solid #27ae60;&quot;&gt;
        &lt;div style=&quot;margin-bottom: 10px;&quot;&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;기본 주급 (시급 x 근무시간)&lt;/p&gt;
            &lt;h4 id=&quot;jenaBasicPay&quot; style=&quot;margin: 0; color: #2c3e50; font-size: 16px;&quot;&gt;0원&lt;/h4&gt;
        &lt;/div&gt;
        &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;주휴수당 발생액&lt;/p&gt;
            &lt;h4 id=&quot;jenaHolidayPay&quot; style=&quot;margin: 0; color: #e74c3c; font-size: 16px;&quot;&gt;0원&lt;/h4&gt;
            &lt;p id=&quot;jenaHolidayMsg&quot; style=&quot;margin: 5px 0 0 0; font-size: 11px; color: #c0392b; font-weight: bold;&quot;&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;hr style=&quot;border: 0; border-top: 1px dashed #27ae60; margin: 15px 0;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center;&quot;&gt;
            &lt;span style=&quot;font-size: 15px; font-weight: bold; color: #2c3e50;&quot;&gt;이번 주 총 예상 급여:&lt;/span&gt;
            &lt;span id=&quot;jenaTotalWeeklyPay&quot; style=&quot;font-size: 22px; font-weight: bold; color: #27ae60;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcHoliday() {
        const wage = parseFloat(document.getElementById('jenaWage').value) || 0;
        let hours = parseFloat(document.getElementById('jenaHours').value) || 0;

        if(wage === 0 || hours === 0) {
            alert(&quot;시급과 1주 근무시간을 정확히 입력해 주십시오.&quot;);
            return;
        }

        if (hours &gt; 40) hours = 40; // 주휴수당 산정 최대 기준은 주 40시간

        const basicPay = wage * hours;
        let holidayPay = 0;
        let msg = &quot;&quot;;

        if (hours &gt;= 15) {
            // 주휴수당 = (1주 근무시간 / 40시간) * 8시간 * 시급
            // 간략 공식: (근무시간 / 5) * 시급
            holidayPay = Math.floor((hours / 5) * wage);
            msg = &quot;✅ 주 15시간 이상 근무하여 주휴수당이 발생했습니다.&quot;;
        } else {
            msg = &quot;❌ 주 15시간 미만 근무로 주휴수당 지급 대상이 아닙니다.&quot;;
        }

        const totalPay = basicPay + holidayPay;

        document.getElementById('jenaBasicPay').innerText = basicPay.toLocaleString() + '원';
        document.getElementById('jenaHolidayPay').innerText = holidayPay.toLocaleString() + '원';
        document.getElementById('jenaHolidayMsg').innerText = msg;
        document.getElementById('jenaTotalWeeklyPay').innerText = totalPay.toLocaleString() + '원';
        document.getElementById('jenaHolidayResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/15</guid>
      <comments>https://nangman00.tistory.com/15#entry15comment</comments>
      <pubDate>Thu, 5 Mar 2026 15:15:14 +0900</pubDate>
    </item>
    <item>
      <title>프리랜서 3.3% 세금 및 원천징수 역산기</title>
      <link>https://nangman00.tistory.com/14</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #d35400; margin-bottom: 5px;&quot;&gt;  프리랜서 3.3% 세금 자동 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;계약 금액에서 세금을 뗀 실수령액, 혹은 목표 실수령액을 위한 청구 금액을 역산합니다.&lt;/p&gt;
    
    &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;기준 금액을 입력하세요 (원)&lt;/label&gt;
    &lt;input type=&quot;number&quot; id=&quot;jenaTaxInput&quot; placeholder=&quot;예: 3000000&quot; style=&quot;width: 100%; padding: 15px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 16px; margin-bottom: 15px;&quot;&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;button onclick=&quot;jenaCalcFreeTax('net')&quot; style=&quot;flex: 1; padding: 12px; background: #e67e22; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 14px;&quot;&gt;계약금에서 실수령액 계산&lt;/button&gt;
        &lt;button onclick=&quot;jenaCalcFreeTax('gross')&quot; style=&quot;flex: 1; padding: 12px; background: #c0392b; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 14px;&quot;&gt;실수령을 위한 청구액 역산&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaFreeTaxResult&quot; style=&quot;display: none; padding: 20px; background: #fffcf8; border-radius: 8px; border-top: 4px solid #e67e22;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #f1f2f6; padding-bottom: 10px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;세전 계약 금액 (청구액)&lt;/span&gt;
            &lt;span id=&quot;jenaGross&quot; style=&quot;font-weight: bold; color: #2c3e50; font-size: 16px;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #f1f2f6; padding-bottom: 10px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;원천징수 세액 (3.3%)&lt;/span&gt;
            &lt;span id=&quot;jenaTax&quot; style=&quot;font-weight: bold; color: #e74c3c; font-size: 16px;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; margin-top: 15px;&quot;&gt;
            &lt;span style=&quot;font-size: 16px; font-weight: bold; color: #2c3e50;&quot;&gt;최종 실수령액&lt;/span&gt;
            &lt;span id=&quot;jenaNet&quot; style=&quot;font-size: 24px; font-weight: bold; color: #d35400;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcFreeTax(type) {
        const inputAmount = parseFloat(document.getElementById('jenaTaxInput').value) || 0;
        if(inputAmount === 0) { alert(&quot;기준 금액을 입력해 주십시오.&quot;); return; }

        let gross = 0, tax = 0, net = 0;

        if (type === 'net') {
            // 계약금액을 알 때 실수령액 계산
            gross = inputAmount;
            tax = Math.floor(gross * 0.033);
            net = gross - tax;
        } else {
            // 실수령액을 알 때 계약금액 역산
            net = inputAmount;
            gross = Math.floor(net / 0.967);
            tax = gross - net;
        }

        document.getElementById('jenaGross').innerText = gross.toLocaleString() + '원';
        document.getElementById('jenaTax').innerText = tax.toLocaleString() + '원';
        document.getElementById('jenaNet').innerText = net.toLocaleString() + '원';
        document.getElementById('jenaFreeTaxResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/14</guid>
      <comments>https://nangman00.tistory.com/14#entry14comment</comments>
      <pubDate>Wed, 4 Mar 2026 15:14:20 +0900</pubDate>
    </item>
    <item>
      <title>손익분기점(BEP) 및 흑자 전환 계산기</title>
      <link>https://nangman00.tistory.com/13</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #8e44ad; margin-bottom: 5px;&quot;&gt;  손익분기점(BEP) 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;고정비와 마진을 분석하여 '몇 개를 팔아야 흑자인지' 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;1. 월 고정비용 총액 (원)&lt;/label&gt;
        &lt;p style=&quot;margin: 3px 0; font-size: 11px; color: #95a5a6;&quot;&gt;예: 사무실 임대료, 통신비, 기본 인건비 등 (팔지 않아도 나가는 돈)&lt;/p&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaFixedCost&quot; placeholder=&quot;예: 1500000&quot; style=&quot;width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;2. 제품 1개 판매단가&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaPrice&quot; placeholder=&quot;예: 30000&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;3. 1개당 매입원가(변동비)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaVarCost&quot; placeholder=&quot;예: 18000&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcBEP()&quot; style=&quot;width: 100%; padding: 15px; background: #8e44ad; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; margin-bottom: 20px;&quot;&gt;흑자 전환 목표량 계산&lt;/button&gt;
    
    &lt;div id=&quot;jenaBepResult&quot; style=&quot;display: none; padding: 20px; background: #f5f0f6; border-radius: 8px; text-align: center; border: 1px solid #dcb6e8;&quot;&gt;
        &lt;p style=&quot;margin: 0 0 5px 0; font-size: 14px; color: #7f8c8d;&quot;&gt;적자를 면하기 위한 최소 판매량 (손익분기점)&lt;/p&gt;
        &lt;h2 style=&quot;margin: 0 0 10px 0; color: #8e44ad; font-size: 32px;&quot;&gt;&lt;span id=&quot;jenaBepQty&quot;&gt;0&lt;/span&gt; 개&lt;/h2&gt;
        &lt;div style=&quot;background: white; padding: 10px; border-radius: 6px; font-size: 13px; color: #2c3e50; text-align: left; line-height: 1.6;&quot;&gt;
            • 1개 판매 시 남는 공헌이익: &lt;b id=&quot;jenaMargin&quot; style=&quot;color: #e74c3c;&quot;&gt;0원&lt;/b&gt;&lt;br&gt;
            • 손익분기점 도달 시 월 매출: &lt;b id=&quot;jenaBepRev&quot; style=&quot;color: #2980b9;&quot;&gt;0원&lt;/b&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcBEP() {
        const fixedCost = parseFloat(document.getElementById('jenaFixedCost').value) || 0;
        const price = parseFloat(document.getElementById('jenaPrice').value) || 0;
        const varCost = parseFloat(document.getElementById('jenaVarCost').value) || 0;

        if(fixedCost === 0 || price === 0) {
            alert(&quot;고정비용과 판매단가를 정확히 입력해 주십시오.&quot;);
            return;
        }
        
        const margin = price - varCost; // 공헌이익
        if (margin &lt;= 0) {
            alert(&quot;매입원가가 판매가보다 같거나 높습니다. 구조적으로 흑자가 불가능한 '역마진' 상태입니다.&quot;);
            return;
        }

        // BEP 수량 = 고정비 / 공헌이익 (소수점 올림)
        const bepQty = Math.ceil(fixedCost / margin);
        const bepRevenue = bepQty * price;

        document.getElementById('jenaMargin').innerText = margin.toLocaleString() + '원';
        document.getElementById('jenaBepQty').innerText = bepQty.toLocaleString();
        document.getElementById('jenaBepRev').innerText = bepRevenue.toLocaleString() + '원';
        document.getElementById('jenaBepResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/13</guid>
      <comments>https://nangman00.tistory.com/13#entry13comment</comments>
      <pubDate>Tue, 3 Mar 2026 15:11:34 +0900</pubDate>
    </item>
    <item>
      <title>부가세(VAT) 10% 분리 및 역산기</title>
      <link>https://nangman00.tistory.com/12</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #16a085; margin-bottom: 5px;&quot;&gt;  부가세(VAT) 10% 자동 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;공급가액과 세액을 단 1초 만에 정확하게 분리하고 합산합니다.&lt;/p&gt;
    
    &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;계산할 금액을 입력하세요 (원)&lt;/label&gt;
    &lt;input type=&quot;number&quot; id=&quot;jenaVatInput&quot; placeholder=&quot;예: 110000&quot; style=&quot;width: 100%; padding: 15px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 16px; margin-bottom: 15px;&quot;&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;button onclick=&quot;jenaCalcVat('exclude')&quot; style=&quot;flex: 1; padding: 12px; background: #e67e22; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 14px;&quot;&gt;합계금액에서 부가세 분리&lt;/button&gt;
        &lt;button onclick=&quot;jenaCalcVat('include')&quot; style=&quot;flex: 1; padding: 12px; background: #16a085; color: white; border: none; border-radius: 8px; cursor: pointer; font-weight: bold; font-size: 14px;&quot;&gt;공급가액에 부가세 더하기&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaVatResult&quot; style=&quot;display: none; padding: 20px; background: #fdfbfb; border-radius: 8px; border-top: 4px solid #16a085;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #eee; padding-bottom: 10px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;순수 물품대금 (공급가액)&lt;/span&gt;
            &lt;span id=&quot;jenaNetValue&quot; style=&quot;font-weight: bold; color: #2c3e50; font-size: 16px;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #eee; padding-bottom: 10px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;부가가치세 (세액 10%)&lt;/span&gt;
            &lt;span id=&quot;jenaTaxValue&quot; style=&quot;font-weight: bold; color: #e74c3c; font-size: 16px;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center; margin-top: 15px;&quot;&gt;
            &lt;span style=&quot;font-size: 16px; font-weight: bold; color: #2c3e50;&quot;&gt;최종 합계 금액&lt;/span&gt;
            &lt;span id=&quot;jenaTotalValue&quot; style=&quot;font-size: 24px; font-weight: bold; color: #16a085;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcVat(type) {
        const inputAmount = parseFloat(document.getElementById('jenaVatInput').value) || 0;
        if(inputAmount === 0) { alert(&quot;금액을 입력해 주십시오.&quot;); return; }

        let net = 0, tax = 0, total = 0;

        if (type === 'exclude') {
            // 합계금액에서 부가세 분리 (공급대가 기준)
            net = Math.round(inputAmount / 1.1);
            tax = inputAmount - net;
            total = inputAmount;
        } else {
            // 공급가액에 부가세 10% 더하기
            net = inputAmount;
            tax = Math.round(inputAmount * 0.1);
            total = net + tax;
        }

        document.getElementById('jenaNetValue').innerText = net.toLocaleString() + '원';
        document.getElementById('jenaTaxValue').innerText = tax.toLocaleString() + '원';
        document.getElementById('jenaTotalValue').innerText = total.toLocaleString() + '원';
        document.getElementById('jenaVatResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/12</guid>
      <comments>https://nangman00.tistory.com/12#entry12comment</comments>
      <pubDate>Mon, 2 Mar 2026 15:10:46 +0900</pubDate>
    </item>
    <item>
      <title>CBM(부피무게) 및 항공 운임 계산기</title>
      <link>https://nangman00.tistory.com/11</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;  CBM &amp; 항공 부피무게 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;해상 CBM과 항공 부피무게를 한 번에 계산하여 물류비 폭탄을 방어하세요.&lt;/p&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 15px;&quot;&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;가로 (cm)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaWidth&quot; placeholder=&quot;예: 50&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;세로 (cm)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaLength&quot; placeholder=&quot;예: 40&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;높이 (cm)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaHeight&quot; placeholder=&quot;예: 30&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;박스 수량 (개)&lt;/label&gt;
        &lt;input type=&quot;number&quot; id=&quot;jenaQty&quot; value=&quot;1&quot; style=&quot;width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box;&quot;&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalcCBM()&quot; style=&quot;width: 100%; padding: 15px; background: #2980b9; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: bold; margin-bottom: 20px;&quot;&gt;부피무게 계산하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaCbmResult&quot; style=&quot;display: none; padding: 20px; background: #f8f9fa; border-radius: 8px; border-left: 5px solid #2980b9;&quot;&gt;
        &lt;div style=&quot;margin-bottom: 15px;&quot;&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;해상 운송 기준 (Cubic Meter)&lt;/p&gt;
            &lt;h3 id=&quot;jenaOutCBM&quot; style=&quot;margin: 0; color: #2c3e50; font-size: 22px;&quot;&gt;0 CBM&lt;/h3&gt;
        &lt;/div&gt;
        &lt;div&gt;
            &lt;p style=&quot;margin: 0 0 5px 0; font-size: 13px; color: #7f8c8d;&quot;&gt;항공 운송 기준 (Volumetric Weight)&lt;/p&gt;
            &lt;h3 id=&quot;jenaOutAir&quot; style=&quot;margin: 0; color: #e74c3c; font-size: 22px;&quot;&gt;0 kg&lt;/h3&gt;
            &lt;p style=&quot;margin: 5px 0 0 0; font-size: 11px; color: #95a5a6;&quot;&gt;*항공 부피무게 공식: (가로x세로x높이) / 6000 기준&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcCBM() {
        const w = parseFloat(document.getElementById('jenaWidth').value) || 0;
        const l = parseFloat(document.getElementById('jenaLength').value) || 0;
        const h = parseFloat(document.getElementById('jenaHeight').value) || 0;
        const qty = parseFloat(document.getElementById('jenaQty').value) || 1;

        if(w===0 || l===0 || h===0) {
            alert(&quot;가로, 세로, 높이를 모두 입력해 주십시오.&quot;);
            return;
        }

        // CBM 계산: (가로 * 세로 * 높이 / 1,000,000) * 수량
        const cbm = ((w * l * h) / 1000000) * qty;
        
        // 항공 부피무게 계산 (보통 / 6000 적용)
        const airWeight = ((w * l * h) / 6000) * qty;

        document.getElementById('jenaOutCBM').innerText = cbm.toFixed(3) + ' CBM';
        document.getElementById('jenaOutAir').innerText = airWeight.toFixed(2) + ' kg';
        document.getElementById('jenaCbmResult').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/11</guid>
      <comments>https://nangman00.tistory.com/11#entry11comment</comments>
      <pubDate>Sun, 1 Mar 2026 15:09:48 +0900</pubDate>
    </item>
    <item>
      <title>텍스트 공백 &amp;amp; 줄바꿈 자동 제거기</title>
      <link>https://nangman00.tistory.com/1</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;텍스트 공백 &amp; 줄바꿈 자동 제거기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;PDF 문서나 기사 복사 시 깨진 줄바꿈을 단 1초 만에 깔끔하게 정리하세요.&lt;/p&gt;
    
    &lt;textarea id=&quot;jenaInput&quot; placeholder=&quot;이곳에 원본 텍스트를 붙여넣으십시오...&quot; style=&quot;width: 100%; height: 160px; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; margin-bottom: 15px; resize: vertical; box-sizing: border-box; font-size: 14px; line-height: 1.5;&quot;&gt;&lt;/textarea&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 15px; flex-wrap: wrap;&quot;&gt;
        &lt;button onclick=&quot;jenaRemoveLines()&quot; style=&quot;flex: 1; padding: 12px; background: #3498db; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; transition: 0.3s; font-size: 14px;&quot;&gt;줄바꿈만 제거 (문장 연결)&lt;/button&gt;
        &lt;button onclick=&quot;jenaRemoveAll()&quot; style=&quot;flex: 1; padding: 12px; background: #e67e22; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; transition: 0.3s; font-size: 14px;&quot;&gt;모든 공백 완전 제거&lt;/button&gt;
        &lt;button onclick=&quot;jenaClear()&quot; style=&quot;flex: 0.5; padding: 12px; background: #95a5a6; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; transition: 0.3s; font-size: 14px;&quot;&gt;초기화&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;textarea id=&quot;jenaOutput&quot; placeholder=&quot;정제된 결과가 이곳에 표시됩니다.&quot; readonly style=&quot;width: 100%; height: 160px; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; margin-bottom: 15px; background: #f8f9fa; resize: vertical; box-sizing: border-box; font-size: 14px; line-height: 1.5; color: #333;&quot;&gt;&lt;/textarea&gt;
    
    &lt;button id=&quot;jenaCopyBtn&quot; onclick=&quot;jenaCopy()&quot; style=&quot;width: 100%; padding: 15px; background: #2c3e50; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; letter-spacing: 1px;&quot;&gt;결과 복사하기&lt;/button&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaRemoveLines() {
        const input = document.getElementById('jenaInput').value;
        // 줄바꿈을 띄어쓰기 하나로 변경하고, 연속된 띄어쓰기를 하나로 압축
        document.getElementById('jenaOutput').value = input.replace(/\n|\r/g, ' ').replace(/\s{2,}/g, ' ').trim();
    }

    function jenaRemoveAll() {
        const input = document.getElementById('jenaInput').value;
        // 문장 내의 모든 공백, 탭, 줄바꿈을 완벽히 제거
        document.getElementById('jenaOutput').value = input.replace(/\s+/g, '');
    }

    function jenaClear() {
        document.getElementById('jenaInput').value = '';
        document.getElementById('jenaOutput').value = '';
        document.getElementById('jenaCopyBtn').innerText = '결과 복사하기';
        document.getElementById('jenaCopyBtn').style.background = '#2c3e50';
    }

    function jenaCopy() {
        const output = document.getElementById('jenaOutput');
        if (!output.value) {
            alert(&quot;복사할 텍스트가 존재하지 않습니다.&quot;);
            return;
        }
        output.select();
        document.execCommand(&quot;copy&quot;); // 클립보드 복사 명령어
        
        // 시각적 피드백 제공
        const copyBtn = document.getElementById('jenaCopyBtn');
        copyBtn.innerText = '✅ 클립보드에 복사되었습니다!';
        copyBtn.style.background = '#27ae60';
        
        // 2초 후 원래 버튼으로 복구
        setTimeout(() =&gt; {
            copyBtn.innerText = '결과 복사하기';
            copyBtn.style.background = '#2c3e50';
        }, 2000);
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/1</guid>
      <comments>https://nangman00.tistory.com/1#entry1comment</comments>
      <pubDate>Sat, 28 Feb 2026 22:00:18 +0900</pubDate>
    </item>
    <item>
      <title>뽀모도로(25분) 타이머 &amp;amp; 초시계</title>
      <link>https://nangman00.tistory.com/10</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 30px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea; text-align: center;&quot;&gt;
    &lt;h2 style=&quot;color: #c0392b; margin-bottom: 5px;&quot;&gt;  뽀모도로 집중 타이머&lt;/h2&gt;
    &lt;p style=&quot;color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;25분 집중, 5분 휴식. 창을 닫지 말고 집중력을 극대화하세요.&lt;/p&gt;
    
    &lt;div style=&quot;font-size: 80px; font-weight: 900; color: #2c3e50; font-family: monospace; letter-spacing: -2px; margin-bottom: 25px;&quot; id=&quot;jenaTimerDisplay&quot;&gt;
        25:00
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; justify-content: center; margin-bottom: 20px;&quot;&gt;
        &lt;button onclick=&quot;jenaStartTimer(25)&quot; style=&quot;padding: 10px 20px; background: #e74c3c; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold;&quot;&gt;25분 (집중)&lt;/button&gt;
        &lt;button onclick=&quot;jenaStartTimer(5)&quot; style=&quot;padding: 10px 20px; background: #27ae60; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold;&quot;&gt;5분 (휴식)&lt;/button&gt;
        &lt;button onclick=&quot;jenaStopTimer()&quot; style=&quot;padding: 10px 20px; background: #7f8c8d; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold;&quot;&gt;정지/초기화&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    let jenaInterval;
    let jenaTimeLeft;

    function jenaUpdateDisplay() {
        const minutes = Math.floor(jenaTimeLeft / 60);
        const seconds = jenaTimeLeft % 60;
        document.getElementById('jenaTimerDisplay').innerText = 
            `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
    }

    function jenaStartTimer(minutes) {
        clearInterval(jenaInterval);
        jenaTimeLeft = minutes * 60;
        jenaUpdateDisplay();
        
        jenaInterval = setInterval(() =&gt; {
            jenaTimeLeft--;
            jenaUpdateDisplay();
            if (jenaTimeLeft &lt;= 0) {
                clearInterval(jenaInterval);
                alert(&quot;⏰ 시간이 종료되었습니다!&quot;);
            }
        }, 1000);
    }

    function jenaStopTimer() {
        clearInterval(jenaInterval);
        document.getElementById('jenaTimerDisplay').innerText = &quot;25:00&quot;;
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/10</guid>
      <comments>https://nangman00.tistory.com/10#entry10comment</comments>
      <pubDate>Fri, 27 Feb 2026 22:22:56 +0900</pubDate>
    </item>
    <item>
      <title>영문 대소문자 변환 &amp;amp; URL 인코딩 툴</title>
      <link>https://nangman00.tistory.com/9</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;  영문 대소문자 변환 &amp; URL 인코딩&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;텍스트의 대소문자를 일괄 변경하거나, 깨진 한글 링크를 변환합니다.&lt;/p&gt;
    
    &lt;textarea id=&quot;jenaStringInput&quot; placeholder=&quot;변경할 영문 텍스트나 깨진 URL을 여기에 입력하세요.&quot; style=&quot;width: 100%; height: 120px; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; margin-bottom: 15px; resize: vertical;&quot;&gt;&lt;/textarea&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;button onclick=&quot;jenaTextTransform('upper')&quot; style=&quot;padding: 12px; background: #34495e; color: white; border: none; border-radius: 6px; cursor: pointer;&quot;&gt;대문자로 (UPPER)&lt;/button&gt;
        &lt;button onclick=&quot;jenaTextTransform('lower')&quot; style=&quot;padding: 12px; background: #7f8c8d; color: white; border: none; border-radius: 6px; cursor: pointer;&quot;&gt;소문자로 (lower)&lt;/button&gt;
        &lt;button onclick=&quot;jenaTextTransform('encode')&quot; style=&quot;padding: 12px; background: #16a085; color: white; border: none; border-radius: 6px; cursor: pointer;&quot;&gt;URL 인코딩&lt;/button&gt;
        &lt;button onclick=&quot;jenaTextTransform('decode')&quot; style=&quot;padding: 12px; background: #27ae60; color: white; border: none; border-radius: 6px; cursor: pointer;&quot;&gt;URL 디코딩 (복원)&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;textarea id=&quot;jenaStringOutput&quot; placeholder=&quot;변환된 결과가 여기에 표시됩니다.&quot; readonly style=&quot;width: 100%; height: 120px; padding: 15px; background: #f8f9fa; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; color: #333; resize: vertical;&quot;&gt;&lt;/textarea&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaTextTransform(action) {
        const input = document.getElementById('jenaStringInput').value;
        if (!input) { alert(&quot;텍스트를 먼저 입력해 주십시오.&quot;); return; }
        
        let result = &quot;&quot;;
        try {
            if (action === 'upper') result = input.toUpperCase();
            if (action === 'lower') result = input.toLowerCase();
            if (action === 'encode') result = encodeURIComponent(input);
            if (action === 'decode') result = decodeURIComponent(input);
            
            document.getElementById('jenaStringOutput').value = result;
        } catch (e) {
            alert(&quot;URL 디코딩 중 오류가 발생했습니다. 올바른 형식인지 확인하세요.&quot;);
        }
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/9</guid>
      <comments>https://nangman00.tistory.com/9#entry9comment</comments>
      <pubDate>Thu, 26 Feb 2026 22:21:30 +0900</pubDate>
    </item>
    <item>
      <title>퍼센트(%) 할인 및 할증 계산기</title>
      <link>https://nangman00.tistory.com/8</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #d35400; margin-bottom: 5px;&quot;&gt;  퍼센트(%) 할인 및 할증 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;원가와 할인율을 입력하여 최종 결제 금액을 빠르게 확인하세요.&lt;/p&gt;
    
    &lt;div style=&quot;display: flex; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div style=&quot;flex: 1;&quot;&gt;
            &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;원래 가격 (원)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaBasePrice&quot; placeholder=&quot;예: 45000&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 16px;&quot;&gt;
        &lt;/div&gt;
        &lt;div style=&quot;flex: 1;&quot;&gt;
            &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #34495e;&quot;&gt;할인율/할증율 (%)&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;jenaPercent&quot; placeholder=&quot;예: 15&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 16px;&quot;&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;button onclick=&quot;jenaCalcPercent('discount')&quot; style=&quot;flex: 1; padding: 15px; background: #e74c3c; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: bold; transition: 0.3s;&quot;&gt;할인 가격 계산&lt;/button&gt;
        &lt;button onclick=&quot;jenaCalcPercent('markup')&quot; style=&quot;flex: 1; padding: 15px; background: #2980b9; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 15px; font-weight: bold; transition: 0.3s;&quot;&gt;할증(마진) 가격 계산&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaPercentResultBox&quot; style=&quot;display: none; padding: 20px; background: #fdfbfb; border-radius: 8px; border-left: 5px solid #d35400;&quot;&gt;
        &lt;p style=&quot;margin: 0 0 5px 0; font-size: 14px; color: #7f8c8d;&quot; id=&quot;jenaPercentLabel&quot;&gt;변동 금액&lt;/p&gt;
        &lt;h4 id=&quot;jenaDiffAmount&quot; style=&quot;margin: 0 0 10px 0; color: #c0392b; font-size: 18px;&quot;&gt;0원&lt;/h4&gt;
        &lt;p style=&quot;margin: 0 0 5px 0; font-size: 14px; color: #7f8c8d;&quot;&gt;최종 결과 금액&lt;/p&gt;
        &lt;h2 id=&quot;jenaFinalPrice&quot; style=&quot;margin: 0; color: #2c3e50; font-size: 28px;&quot;&gt;0원&lt;/h2&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcPercent(type) {
        const basePrice = parseFloat(document.getElementById('jenaBasePrice').value) || 0;
        const percent = parseFloat(document.getElementById('jenaPercent').value) || 0;

        if (basePrice === 0 || percent === 0) {
            alert(&quot;원래 가격과 퍼센트를 모두 입력해 주십시오.&quot;);
            return;
        }

        const diffAmount = basePrice * (percent / 100);
        let finalPrice = 0;

        if (type === 'discount') {
            finalPrice = basePrice - diffAmount;
            document.getElementById('jenaPercentLabel').innerText = &quot;절약한 금액 (할인액)&quot;;
            document.getElementById('jenaDiffAmount').style.color = '#27ae60';
        } else {
            finalPrice = basePrice + diffAmount;
            document.getElementById('jenaPercentLabel').innerText = &quot;추가된 금액 (할증액)&quot;;
            document.getElementById('jenaDiffAmount').style.color = '#c0392b';
        }

        document.getElementById('jenaDiffAmount').innerText = Math.floor(diffAmount).toLocaleString() + '원';
        document.getElementById('jenaFinalPrice').innerText = Math.floor(finalPrice).toLocaleString() + '원';
        document.getElementById('jenaPercentResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/8</guid>
      <comments>https://nangman00.tistory.com/8#entry8comment</comments>
      <pubDate>Wed, 25 Feb 2026 22:20:19 +0900</pubDate>
    </item>
    <item>
      <title>날짜 계산기 &amp;amp; 디데이 카운터</title>
      <link>https://nangman00.tistory.com/7</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #8e44ad; margin-bottom: 5px;&quot;&gt;  디데이(D-Day) &amp; 날짜 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;기념일, 시험, 전역일까지 남은 시간 또는 지나온 시간을 정확히 계산합니다.&lt;/p&gt;
    
    &lt;div style=&quot;background: #f8f9fa; padding: 20px; border-radius: 8px; text-align: center; margin-bottom: 20px;&quot;&gt;
        &lt;label style=&quot;font-size: 14px; font-weight: bold; color: #2c3e50; display: block; margin-bottom: 10px;&quot;&gt;목표 날짜를 선택하세요&lt;/label&gt;
        &lt;input type=&quot;date&quot; id=&quot;jenaTargetDate&quot; style=&quot;width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 16px; text-align: center;&quot; onchange=&quot;jenaCalcDday()&quot;&gt;
    &lt;/div&gt;
    
    &lt;div id=&quot;jenaDdayResultBox&quot; style=&quot;display: none; text-align: center;&quot;&gt;
        &lt;p style=&quot;font-size: 14px; color: #7f8c8d; margin-bottom: 5px;&quot;&gt;오늘을 기준으로&lt;/p&gt;
        &lt;h1 id=&quot;jenaDdayDisplay&quot; style=&quot;margin: 0; font-size: 48px; color: #8e44ad; font-weight: 900; letter-spacing: -2px;&quot;&gt;D-0&lt;/h1&gt;
        &lt;p id=&quot;jenaDdayDetail&quot; style=&quot;margin-top: 10px; font-size: 15px; font-weight: bold; color: #34495e;&quot;&gt;&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalcDday() {
        const targetInput = document.getElementById('jenaTargetDate').value;
        if (!targetInput) return;

        const today = new Date();
        today.setHours(0, 0, 0, 0); // 시간 값 초기화
        const targetDate = new Date(targetInput);
        targetDate.setHours(0, 0, 0, 0);

        const diffTime = targetDate.getTime() - today.getTime();
        const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

        const displayObj = document.getElementById('jenaDdayDisplay');
        const detailObj = document.getElementById('jenaDdayDetail');

        if (diffDays &gt; 0) {
            displayObj.innerText = `D-${diffDays}`;
            displayObj.style.color = '#e74c3c'; // 남은 날은 붉은색
            detailObj.innerText = `목표일까지 ${diffDays}일 남았습니다.`;
        } else if (diffDays &lt; 0) {
            const passedDays = Math.abs(diffDays);
            displayObj.innerText = `D+${passedDays}`;
            displayObj.style.color = '#2980b9'; // 지난 날은 푸른색
            detailObj.innerText = `기준일로부터 ${passedDays}일이 지났습니다.`;
        } else {
            displayObj.innerText = `D-Day`;
            displayObj.style.color = '#27ae60';
            detailObj.innerText = `바로 오늘입니다!`;
        }
        document.getElementById('jenaDdayResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/7</guid>
      <comments>https://nangman00.tistory.com/7#entry7comment</comments>
      <pubDate>Tue, 24 Feb 2026 22:19:13 +0900</pubDate>
    </item>
    <item>
      <title>무작위 안전 비밀번호 생성기</title>
      <link>https://nangman00.tistory.com/6</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #27ae60; margin-bottom: 5px;&quot;&gt;  무작위 안전 비밀번호 생성기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;서버에 저장되지 않는 100% 클라이언트 연산으로 해킹 리스크 제로.&lt;/p&gt;
    
    &lt;div style=&quot;background: #2c3e50; padding: 20px; border-radius: 8px; text-align: center; margin-bottom: 15px;&quot;&gt;
        &lt;span id=&quot;jenaPwdResult&quot; style=&quot;color: #2ecc71; font-size: 24px; font-family: monospace; letter-spacing: 2px;&quot;&gt;생성 버튼을 누르세요&lt;/span&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px; margin-bottom: 15px;&quot;&gt;
        &lt;label style=&quot;flex: 1; font-size: 13px; color: #34495e; text-align: center;&quot;&gt;
            길이: &lt;span id=&quot;jenaLenVal&quot; style=&quot;font-weight: bold; color: #27ae60;&quot;&gt;12&lt;/span&gt;자리&lt;br&gt;
            &lt;input type=&quot;range&quot; id=&quot;jenaPwdLen&quot; min=&quot;8&quot; max=&quot;32&quot; value=&quot;12&quot; style=&quot;width: 100%; margin-top: 10px;&quot; oninput=&quot;document.getElementById('jenaLenVal').innerText=this.value&quot;&gt;
        &lt;/label&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; justify-content: space-around; margin-bottom: 20px; font-size: 14px; color: #34495e;&quot;&gt;
        &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;jenaIncUpper&quot; checked&gt; 대문자&lt;/label&gt;
        &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;jenaIncNum&quot; checked&gt; 숫자&lt;/label&gt;
        &lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;jenaIncSym&quot; checked&gt; 특수문자&lt;/label&gt;
    &lt;/div&gt;
    
    &lt;div style=&quot;display: flex; gap: 10px;&quot;&gt;
        &lt;button onclick=&quot;jenaGenPwd()&quot; style=&quot;flex: 2; padding: 15px; background: #27ae60; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; transition: 0.3s;&quot;&gt;새로 생성하기&lt;/button&gt;
        &lt;button onclick=&quot;jenaCopyPwd()&quot; style=&quot;flex: 1; padding: 15px; background: #95a5a6; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold;&quot;&gt;복사&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaGenPwd() {
        const len = document.getElementById('jenaPwdLen').value;
        const incUpper = document.getElementById('jenaIncUpper').checked;
        const incNum = document.getElementById('jenaIncNum').checked;
        const incSym = document.getElementById('jenaIncSym').checked;
        
        let chars = &quot;abcdefghijklmnopqrstuvwxyz&quot;;
        if (incUpper) chars += &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;;
        if (incNum) chars += &quot;0123456789&quot;;
        if (incSym) chars += &quot;!@#$%^&amp;*()_+~`|}{[]:;?&gt;&lt;,./-=&quot;;
        
        let password = &quot;&quot;;
        for (let i = 0; i &lt; len; i++) {
            password += chars.charAt(Math.floor(Math.random() * chars.length));
        }
        document.getElementById('jenaPwdResult').innerText = password;
        document.getElementById('jenaPwdResult').style.color = '#2ecc71';
    }

    function jenaCopyPwd() {
        const pwd = document.getElementById('jenaPwdResult').innerText;
        if(pwd === &quot;생성 버튼을 누르세요&quot;) return;
        
        navigator.clipboard.writeText(pwd).then(() =&gt; {
            document.getElementById('jenaPwdResult').innerText = &quot;복사 완료!&quot;;
            document.getElementById('jenaPwdResult').style.color = '#f1c40f';
            setTimeout(jenaGenPwd, 1500); // 1.5초 후 새 비밀번호 생성
        });
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/6</guid>
      <comments>https://nangman00.tistory.com/6#entry6comment</comments>
      <pubDate>Mon, 23 Feb 2026 22:16:56 +0900</pubDate>
    </item>
    <item>
      <title>이력서 글자수 &amp;amp; 바이트 계산기</title>
      <link>https://nangman00.tistory.com/5</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2980b9; margin-bottom: 5px;&quot;&gt;  자소서 글자 수 &amp; 바이트(Byte) 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;타이핑하는 즉시 실시간으로 공백 포함/제외 글자수와 바이트를 분석합니다.&lt;/p&gt;
    
    &lt;textarea id=&quot;jenaTextCount&quot; placeholder=&quot;여기에 자기소개서나 원고 텍스트를 입력하세요...&quot; style=&quot;width: 100%; height: 200px; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; line-height: 1.6; resize: vertical; margin-bottom: 15px;&quot; onkeyup=&quot;jenaCountText()&quot;&gt;&lt;/textarea&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: center;&quot;&gt;
        &lt;div style=&quot;background: #f8f9fa; padding: 15px; border-radius: 8px; border-top: 3px solid #2980b9;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 13px; color: #7f8c8d;&quot;&gt;공백 포함&lt;/p&gt;
            &lt;h3 style=&quot;margin: 5px 0 0 0; color: #2c3e50;&quot;&gt;&lt;span id=&quot;jenaTotalChars&quot;&gt;0&lt;/span&gt; 자&lt;/h3&gt;
            &lt;p style=&quot;margin: 5px 0 0 0; font-size: 12px; color: #95a5a6;&quot;&gt;&lt;span id=&quot;jenaTotalBytes&quot;&gt;0&lt;/span&gt; Byte&lt;/p&gt;
        &lt;/div&gt;
        &lt;div style=&quot;background: #f8f9fa; padding: 15px; border-radius: 8px; border-top: 3px solid #e74c3c;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 13px; color: #7f8c8d;&quot;&gt;공백 제외&lt;/p&gt;
            &lt;h3 style=&quot;margin: 5px 0 0 0; color: #2c3e50;&quot;&gt;&lt;span id=&quot;jenaNoSpaceChars&quot;&gt;0&lt;/span&gt; 자&lt;/h3&gt;
            &lt;p style=&quot;margin: 5px 0 0 0; font-size: 12px; color: #95a5a6;&quot;&gt;&lt;span id=&quot;jenaNoSpaceBytes&quot;&gt;0&lt;/span&gt; Byte&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCountText() {
        const text = document.getElementById('jenaTextCount').value;
        const textNoSpace = text.replace(/\s+/g, '');
        
        // 글자 수 세기
        document.getElementById('jenaTotalChars').innerText = text.length.toLocaleString();
        document.getElementById('jenaNoSpaceChars').innerText = textNoSpace.length.toLocaleString();
        
        // 바이트 세기 (한글 2바이트, 영문/숫자/공백 1바이트 기준)
        const getByte = (str) =&gt; str.split('').reduce((acc, char) =&gt; acc + (char.charCodeAt(0) &gt; 128 ? 2 : 1), 0);
        
        document.getElementById('jenaTotalBytes').innerText = getByte(text).toLocaleString();
        document.getElementById('jenaNoSpaceBytes').innerText = getByte(textNoSpace).toLocaleString();
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/5</guid>
      <comments>https://nangman00.tistory.com/5#entry5comment</comments>
      <pubDate>Sun, 22 Feb 2026 22:15:49 +0900</pubDate>
    </item>
    <item>
      <title>유튜브 썸네일 고화질 추출기</title>
      <link>https://nangman00.tistory.com/4</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #c0392b; margin-bottom: 5px;&quot;&gt;▶️ 유튜브 썸네일 고화질(HD) 추출기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 20px;&quot;&gt;URL만 입력하면 서버 저장 없이 원본 이미지를 즉시 추출합니다.&lt;/p&gt;
    
    &lt;input type=&quot;text&quot; id=&quot;jenaYtUrl&quot; placeholder=&quot;유튜브 영상 주소를 붙여넣으세요 (예: https://youtu.be/...)&quot; style=&quot;width: 100%; padding: 15px; border: 1px solid #ced4da; border-radius: 8px; box-sizing: border-box; font-size: 14px; margin-bottom: 15px;&quot;&gt;
    
    &lt;button onclick=&quot;jenaExtractThumb()&quot; style=&quot;width: 100%; padding: 15px; background: #c0392b; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; transition: 0.3s; margin-bottom: 20px;&quot;&gt;썸네일 이미지 추출하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaThumbResult&quot; style=&quot;display: none; text-align: center;&quot;&gt;
        &lt;p style=&quot;font-size: 13px; color: #27ae60; font-weight: bold; margin-bottom: 10px;&quot;&gt;✅ 추출 완료! 이미지를 '우클릭 &gt; 다른 이름으로 저장' 하세요.&lt;/p&gt;
        &lt;img id=&quot;jenaThumbImg&quot; src=&quot;&quot; alt=&quot;유튜브 썸네일&quot; style=&quot;width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);&quot;&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaExtractThumb() {
        const url = document.getElementById('jenaYtUrl').value;
        if (!url) { alert(&quot;유튜브 주소를 입력해 주십시오.&quot;); return; }
        
        // 정규식을 이용한 유튜브 영상 ID 추출
        const regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&amp;v=)([^#\&amp;\?]*).*/;
        const match = url.match(regExp);
        
        if (match &amp;&amp; match[2].length === 11) {
            const videoId = match[2];
            // 고화질(maxresdefault) 이미지 URL 조합
            const thumbUrl = `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`;
            document.getElementById('jenaThumbImg').src = thumbUrl;
            document.getElementById('jenaThumbResult').style.display = 'block';
        } else {
            alert(&quot;유효한 유튜브 주소가 아닙니다. 다시 확인해 주십시오.&quot;);
        }
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/4</guid>
      <comments>https://nangman00.tistory.com/4#entry4comment</comments>
      <pubDate>Sat, 21 Feb 2026 22:14:36 +0900</pubDate>
    </item>
    <item>
      <title>해외직구 관부가세 계산기</title>
      <link>https://nangman00.tistory.com/3</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot;&gt;✈️ 해외직구 관부가세 예상 계산기&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot;&gt;유럽, 미국 직구 시 발생하는 관세(8%)와 부가세(10%) 폭탄을 미리 방어하세요.&lt;/p&gt;
    
    &lt;div style=&quot;display: grid; grid-template-columns: 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
        &lt;div style=&quot;display: flex; gap: 10px;&quot;&gt;
            &lt;div style=&quot;flex: 1;&quot;&gt;
                &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;물품 총액 (원화 환산)&lt;/label&gt;
                &lt;input type=&quot;number&quot; id=&quot;jenaItemCost&quot; placeholder=&quot;예: 250000&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot;&gt;
            &lt;/div&gt;
            &lt;div style=&quot;flex: 1;&quot;&gt;
                &lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;현지/국제 배송비 (원)&lt;/label&gt;
                &lt;input type=&quot;number&quot; id=&quot;jenaShipCost&quot; placeholder=&quot;예: 35000&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot;&gt;
            &lt;/div&gt;
        &lt;/div&gt;
        
        &lt;div style=&quot;background: #f8f9fa; padding: 15px; border-radius: 8px; border: 1px dashed #bdc3c7;&quot;&gt;
            &lt;label style=&quot;font-size: 13px; font-weight: bold; color: #c0392b; display: flex; align-items: center; gap: 8px; cursor: pointer;&quot;&gt;
                &lt;input type=&quot;checkbox&quot; id=&quot;jenaTaxExempt&quot; style=&quot;width: 18px; height: 18px; cursor: pointer;&quot;&gt;
                [면세 대상] 미화 150달러 (미국은 200달러) 이하입니까?
            &lt;/label&gt;
            &lt;p style=&quot;margin: 5px 0 0 26px; font-size: 11px; color: #7f8c8d;&quot;&gt;체크 시 관부가세가 0원으로 면제 처리됩니다.&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;button onclick=&quot;jenaCalculateTax()&quot; style=&quot;width: 100%; padding: 15px; background: #8e44ad; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; transition: 0.3s; margin-bottom: 20px;&quot;&gt;예상 세금 계산하기&lt;/button&gt;
    
    &lt;div id=&quot;jenaTaxResultBox&quot; style=&quot;display: none; padding: 20px; background: #fcf3f2; border-radius: 8px; border-left: 5px solid #c0392b;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 8px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;예상 관세 (기본 8%):&lt;/span&gt;
            &lt;span id=&quot;jenaCustoms&quot; style=&quot;font-weight: bold; color: #2c3e50;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; margin-bottom: 12px;&quot;&gt;
            &lt;span style=&quot;font-size: 14px; color: #7f8c8d;&quot;&gt;예상 부가세 (10%):&lt;/span&gt;
            &lt;span id=&quot;jenaVat&quot; style=&quot;font-weight: bold; color: #2c3e50;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
        &lt;hr style=&quot;border: 0; border-top: 1px solid #ecf0f1; margin: 10px 0;&quot;&gt;
        &lt;div style=&quot;display: flex; justify-content: space-between; align-items: center;&quot;&gt;
            &lt;span style=&quot;font-size: 15px; font-weight: bold; color: #c0392b;&quot;&gt;최종 납부 예상액:&lt;/span&gt;
            &lt;span id=&quot;jenaTotalTax&quot; style=&quot;font-size: 22px; font-weight: bold; color: #c0392b;&quot;&gt;0원&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    function jenaCalculateTax() {
        const itemCost = parseFloat(document.getElementById('jenaItemCost').value) || 0;
        const shipCost = parseFloat(document.getElementById('jenaShipCost').value) || 0;
        const isExempt = document.getElementById('jenaTaxExempt').checked;

        if (itemCost === 0) {
            alert(&quot;물품 총액을 입력해 주십시오.&quot;);
            return;
        }

        let customs = 0;
        let vat = 0;
        let totalTax = 0;

        // 면세 대상이 아닐 경우에만 세금 부과
        // 과세표준 = 물품대금 + 배송비
        if (!isExempt) {
            const taxBase = itemCost + shipCost;
            customs = taxBase * 0.08; // 기본 관세 8%
            vat = (taxBase + customs) * 0.10; // 부가세 10% (관세가 포함된 금액에 10% 부과)
            totalTax = customs + vat;
        }

        // 결과 출력 (소수점 버림)
        document.getElementById('jenaCustoms').innerText = Math.floor(customs).toLocaleString() + '원';
        document.getElementById('jenaVat').innerText = Math.floor(vat).toLocaleString() + '원';
        document.getElementById('jenaTotalTax').innerText = Math.floor(totalTax).toLocaleString() + '원';
        document.getElementById('jenaTaxResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/3</guid>
      <comments>https://nangman00.tistory.com/3#entry3comment</comments>
      <pubDate>Fri, 20 Feb 2026 22:09:06 +0900</pubDate>
    </item>
    <item>
      <title>마진율 통합 계산기</title>
      <link>https://nangman00.tistory.com/2</link>
      <description>&lt;div style=&quot;max-width: 600px; margin: 0 auto; font-family: 'Noto Sans KR', sans-serif; background: #ffffff; padding: 25px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border: 1px solid #eaeaea;&quot;&gt;
&lt;h2 style=&quot;text-align: center; color: #2c3e50; margin-bottom: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;스마트 마진율 &amp;amp; 순수익 계산기&lt;/h2&gt;
&lt;p style=&quot;text-align: center; color: #7f8c8d; font-size: 13px; margin-bottom: 25px;&quot; data-ke-size=&quot;size16&quot;&gt;플랫폼 수수료와 배송비를 포함한 진짜 '내 몫'을 1초 만에 확인하세요.&lt;/p&gt;
&lt;div style=&quot;display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px;&quot;&gt;
&lt;div&gt;&lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;매입 원가 (원)&lt;/label&gt; &lt;input id=&quot;jenaCost&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot; type=&quot;number&quot; placeholder=&quot;예: 15000&quot; /&gt;&lt;/div&gt;
&lt;div&gt;&lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;판매 가격 (원)&lt;/label&gt; &lt;input id=&quot;jenaPrice&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot; type=&quot;number&quot; placeholder=&quot;예: 25000&quot; /&gt;&lt;/div&gt;
&lt;div&gt;&lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;마켓 수수료 (%)&lt;/label&gt; &lt;input id=&quot;jenaFee&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot; step=&quot;0.1&quot; type=&quot;number&quot; placeholder=&quot;예: 5.5&quot; /&gt;&lt;/div&gt;
&lt;div&gt;&lt;label style=&quot;font-size: 12px; font-weight: bold; color: #34495e;&quot;&gt;배송비 및 기타 비용 (원)&lt;/label&gt; &lt;input id=&quot;jenaShipping&quot; style=&quot;width: 100%; padding: 12px; margin-top: 5px; border: 1px solid #ced4da; border-radius: 6px; box-sizing: border-box; font-size: 14px;&quot; type=&quot;number&quot; placeholder=&quot;예: 3000&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;button style=&quot;width: 100%; padding: 15px; background: #2980b9; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; transition: 0.3s; margin-bottom: 20px;&quot;&gt;마진 계산하기&lt;/button&gt;
&lt;div id=&quot;jenaResultBox&quot; style=&quot;display: none; padding: 20px; background: #f8f9fa; border-radius: 8px; border-left: 5px solid #27ae60;&quot;&gt;
&lt;p style=&quot;margin: 0 0 10px 0; font-size: 14px; color: #7f8c8d;&quot; data-ke-size=&quot;size16&quot;&gt;정산될 예상 순수익&lt;/p&gt;
&lt;h3 id=&quot;jenaNetProfit&quot; style=&quot;margin: 0 0 5px 0; color: #2c3e50; font-size: 24px;&quot; data-ke-size=&quot;size23&quot;&gt;0원&lt;/h3&gt;
&lt;p style=&quot;margin: 0; font-size: 15px; font-weight: bold; color: #e74c3c;&quot; data-ke-size=&quot;size16&quot;&gt;최종 마진율: &lt;span&gt;0&lt;/span&gt;%&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
    function jenaCalculateMargin() {
        const cost = parseFloat(document.getElementById('jenaCost').value) || 0;
        const price = parseFloat(document.getElementById('jenaPrice').value) || 0;
        const feeRate = parseFloat(document.getElementById('jenaFee').value) || 0;
        const shipping = parseFloat(document.getElementById('jenaShipping').value) || 0;

        if (price === 0) {
            alert(&quot;판매 가격을 입력해 주십시오.&quot;);
            return;
        }

        // 수수료 계산 (판매가 * 수수료율)
        const feeAmount = price * (feeRate / 100);
        
        // 순수익 = 판매가 - 매입원가 - 수수료 - 배송비
        const netProfit = price - cost - feeAmount - shipping;
        
        // 마진율 = (순수익 / 판매가) * 100
        const marginRate = (netProfit / price) * 100;

        // 결과 출력 포맷팅
        document.getElementById('jenaNetProfit').innerText = Math.floor(netProfit).toLocaleString() + '원';
        document.getElementById('jenaMarginRate').innerText = marginRate.toFixed(2);
        document.getElementById('jenaResultBox').style.display = 'block';
    }
&lt;/script&gt;</description>
      <author>nangman00</author>
      <guid isPermaLink="true">https://nangman00.tistory.com/2</guid>
      <comments>https://nangman00.tistory.com/2#entry2comment</comments>
      <pubDate>Thu, 19 Feb 2026 13:04:04 +0900</pubDate>
    </item>
  </channel>
</rss>