<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>물류아저씨의 코딩으로 칼퇴하기</title>
    <link>https://kackac.tistory.com/</link>
    <description>17년차 물류 아재가 '시간'을 벌기 위해 코딩을 시작했습니다. 
물류 현장에서 직접 개발한 엑셀(VBA) 및 C# 자동화 프로그램을 공유합니다. 
반복적인 업무를 코딩으로 해결하고, 
그 과정을 통해 '정시 퇴근', '시간 만수르'가 되는 현실적인 여정입니다.</description>
    <language>ko</language>
    <pubDate>Tue, 7 Apr 2026 02:50:26 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kackac</managingEditor>
    <image>
      <title>물류아저씨의 코딩으로 칼퇴하기</title>
      <url>https://tistory1.daumcdn.net/tistory/8222677/attach/243d947c70904cac89f14f951e824f56</url>
      <link>https://kackac.tistory.com</link>
    </image>
    <item>
      <title>물류 실무 엑셀 (20편): 보고서의 품격 - 텍스트 줄 바꿈과 셀 서식의 마법</title>
      <link>https://kackac.tistory.com/77</link>
      <description>&lt;div class=&quot;excel-basic-wrap&quot; style=&quot;font-family: 'Noto Sans KR', sans-serif; line-height: 2.0; color: #2c3e50; max-width: 900px; margin: auto;&quot;&gt;
    &lt;style&gt;
        .excel-basic-wrap h1 { font-size: 34px; font-weight: 800; color: #27ae60; border-bottom: 3px solid #27ae60; padding-bottom: 20px; margin-bottom: 40px; letter-spacing: -0.05em; }
        .excel-basic-wrap .summary-box { background: #f1f9f1; border-left: 8px solid #27ae60; padding: 30px; margin-bottom: 60px; font-size: 17px; color: #2c3e50; line-height: 1.8; }
        .excel-basic-wrap h2.section-title { font-size: 28px; font-weight: 700; color: #1a1a1a; margin: 100px 0 40px 0; padding-left: 20px; border-left: 8px solid #27ae60; letter-spacing: -0.03em; }
        .excel-basic-wrap .narrative-p { font-family: 'Noto Serif KR', serif; font-size: 18px; line-height: 2.2; color: #1a1a1a; text-align: justify; word-break: keep-all; margin-bottom: 50px; text-indent: 1em; }
        .excel-basic-wrap .code-inline { background: #f4f4f4; color: #e74c3c; padding: 2px 6px; border-radius: 4px; font-family: 'Consolas', monospace; font-weight: 600; }
        .excel-basic-wrap table { width: 100%; border-collapse: collapse; margin: 60px 0; font-size: 16px; }
        .excel-basic-wrap th { background: #f8f9fa; padding: 20px; border-top: 2px solid #27ae60; border-bottom: 1px solid #ddd; font-weight: 700; color: #333; }
        .excel-basic-wrap td { padding: 20px; border-bottom: 1px solid #eee; text-align: center; color: #555; }
        .excel-basic-wrap .img-box { margin: 60px 0; text-align: center; }
        .excel-basic-wrap .img-caption { display: block; font-size: 15px; color: #888; margin-top: 15px; font-style: italic; }
        .excel-basic-wrap .point-box { background: #fff3e0; border: 2px solid #ff9800; padding: 40px; border-radius: 15px; margin-top: 100px; }
        .excel-basic-wrap .point-box h4 { margin-top: 0; color: #e65100; font-size: 22px; border-bottom: 1px solid #ffcc80; padding-bottom: 15px; }
        .excel-basic-wrap .tag-section { margin-top: 80px; text-align: center; color: #7f8c8d; font-size: 15px; border-top: 1px solid #eee; padding-top: 40px; }
    &lt;/style&gt;

    &lt;h1&gt;물류 실무 엑셀 (20편): 보고서의 품격 &amp;mdash; 텍스트 줄 바꿈과 셀 서식의 마법&lt;/h1&gt;

    &lt;div class=&quot;summary-box&quot;&gt;
        &lt;b&gt;[원리 요약]&lt;/b&gt;&lt;br&gt;
        본 가이드는 데이터의 원본 값(Value)은 보존하면서 시각적 가독성을 극대화하는 &lt;b&gt;'셀 서식(Cell Formatting)'&lt;/b&gt;의 핵심 메커니즘을 다룹니다. 숫자에 단위를 강제로 결합하는 사용자 정의 서식의 문법과, 좁은 공간 내에서 정보를 효율적으로 배치하는 &lt;b&gt;'Alt+Enter' 줄 바꿈&lt;/b&gt;의 실무적 활용법을 10,000자 분량의 상세한 해설로 제공합니다.
    &lt;/div&gt;

    &lt;p class=&quot;narrative-p&quot;&gt;
        어느 새벽, 차가운 물류 창고의 입구에서 나는 켜켜이 쌓인 상자들의 침묵을 본다. 그것은 이름표를 달지 못한 채 웅크린 거대한 데이터의 무덤과 같다. 엑셀의 시트 또한 마찬가지다. 가공되지 않은 숫자들은 날카로운 파편이 되어 눈을 찌르고, 정돈되지 않은 텍스트들은 경계를 넘어 서로의 영역을 침범한다. 우리는 그 무질서한 사막 위에 '서식'이라는 질서를 부여해야 한다. 그것은 단순히 예쁘게 꾸미는 행위가 아니라, 보이지 않는 숫자들에 숨을 불어넣고 의미라는 옷을 입히는 경건한 공정이다. 셀 하나라는 좁은 감옥 안에 우주의 질서를 가두는 법, 오늘 그 마법의 문을 연다.
    &lt;/p&gt;

    &lt;h2 class=&quot;section-title&quot;&gt;## 텍스트 줄 바꿈: 좁은 셀 안에 정보의 층위를 쌓다&lt;/h2&gt;

    &lt;p&gt;실무에서 마주하는 데이터는 결코 친절하지 않습니다. 품목명 뒤에 '냉장/박스/A구역/유통기한임박' 같은 부가 정보가 꼬리표처럼 길게 붙어 나올 때, 우리는 선택의 기로에 섭니다. 셀 너비를 무한정 늘려 보고서의 균형을 깨뜨릴 것인가, 아니면 정보의 일부를 가릴 것인가. 고수는 제3의 길을 택합니다. 바로 &lt;b&gt;'수직의 층위'&lt;/b&gt;를 만드는 것입니다.&lt;/p&gt;

    &lt;div class=&quot;img-box&quot;&gt;
        
        &lt;span class=&quot;img-caption&quot;&gt;설명: 셀 너비를 초과한 텍스트가 인접 셀을 침범하는 '오버플로' 현상과, '자동 줄 바꿈' 적용 후의 시각적 안정성 비교.&lt;/span&gt;
    &lt;/div&gt;

    &lt;p&gt;가장 강력한 무기는 &lt;span class=&quot;code-inline&quot;&gt;Alt + Enter&lt;/span&gt;입니다. 마우스로 상단 메뉴의 [자동 줄 바꿈]을 누르는 것은 엑셀에게 판단을 맡기는 수동적인 행위이지만, 단축키를 통해 내가 원하는 지점에서 줄을 바꾸는 것은 &lt;b&gt;데이터의 논리적 구조&lt;/b&gt;를 사용자가 직접 결정하는 적극적인 행위입니다. 예를 들어 '거래처명'과 '담당자 연락처'가 한 셀에 있다면, 그 둘 사이를 갈라 수직으로 배치함으로써 보는 이의 시선이 머무는 시간을 단축할 수 있습니다.&lt;/p&gt;

    &lt;ul style=&quot;margin: 40px 0; padding-left: 25px; line-height: 2.2;&quot;&gt;
        &lt;li&gt;&lt;b&gt;자동 줄 바꿈&lt;/b&gt;: 데이터가 셀 너비에 도달하면 물리적으로 다음 줄로 넘깁니다. 행 높이가 가변적이므로 유동적인 데이터 관리에 유리합니다.&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;수동 줄 바꿈 (Alt+Enter)&lt;/b&gt;: 특정 키워드를 강조하거나 논리적 구분을 줄 때 사용합니다. 텍스트 간의 위계질서를 부여하는 핵심 기술입니다.&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;셀에 맞춤&lt;/b&gt;: 글자 크기를 강제로 줄여서 한 줄로 표시합니다. 보고서의 전체적인 틀을 절대 깨지 않아야 할 때 사용하나, 가독성이 급격히 저하될 수 있음을 유의해야 합니다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h2 class=&quot;section-title&quot;&gt;## 사용자 정의 서식: 숫자라는 육체에 단위라는 영혼을 입히다&lt;/h2&gt;

    &lt;p class=&quot;narrative-p&quot;&gt;
        숫자는 정직하지만 차갑다. '1000'이라는 숫자가 누군가에게는 땀 흘려 얻은 수익금일 수도, 누군가에게는 서둘러 출고해야 할 상자의 무게일 수도 있다. 엑셀의 셀 서식은 그 차가운 숫자에 온기를 더한다. 우리가 '1000'을 입력했을 때 화면에 '1,000kg'이라고 나타나게 하는 힘. 그것은 단순히 텍스트를 덧붙이는 것이 아니다. 엑셀의 내부 로직은 여전히 '1000'이라는 숫자로 연산하고 있지만, 우리의 눈에는 의미가 부여된 '정보'로 투영되는 고도의 광학적 트릭이다.
    &lt;/p&gt;

    &lt;p&gt;사용자 정의 서식의 핵심 기호인 &lt;span class=&quot;code-inline&quot;&gt;#&lt;/span&gt;과 &lt;span class=&quot;code-inline&quot;&gt;0&lt;/span&gt;의 차이를 이해하는 것에서부터 중수의 길은 시작됩니다. &lt;span class=&quot;code-inline&quot;&gt;#&lt;/span&gt;은 유효한 숫자만 보여주고 무의미한 0은 숨기는 '은닉'의 미학이며, &lt;span class=&quot;code-inline&quot;&gt;0&lt;/span&gt;은 자릿수가 비어있더라도 반드시 채워 넣는 '강제'의 문법입니다. 물류 현장에서 코드 번호를 다룰 때, 앞자리 0을 보존하기 위해 &lt;span class=&quot;code-inline&quot;&gt;00000&lt;/span&gt; 서식을 사용하는 것은 필수적인 기초 상식입니다.&lt;/p&gt;

    &lt;table&gt;
        &lt;thead&gt;
            &lt;tr&gt;
                &lt;th&gt;서식 기호&lt;/th&gt;
                &lt;th&gt;의미와 역할&lt;/th&gt;
                &lt;th&gt;입력값: 5&lt;/th&gt;
                &lt;th&gt;결과값&lt;/th&gt;
            &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;#&lt;/td&gt;
                &lt;td&gt;숫자 1자리 (무의미한 0 생략)&lt;/td&gt;
                &lt;td&gt;5&lt;/td&gt;
                &lt;td&gt;5&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;000&lt;/td&gt;
                &lt;td&gt;숫자 3자리 강제 표시&lt;/td&gt;
                &lt;td&gt;5&lt;/td&gt;
                &lt;td&gt;005&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;#,##0&lt;/td&gt;
                &lt;td&gt;천 단위 구분 쉼표 추가&lt;/td&gt;
                &lt;td&gt;5000&lt;/td&gt;
                &lt;td&gt;5,000&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;@ &quot;님&quot;&lt;/td&gt;
                &lt;td&gt;텍스트 뒤에 문자 결합&lt;/td&gt;
                &lt;td&gt;홍길동&lt;/td&gt;
                &lt;td&gt;홍길동님&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;

    &lt;div class=&quot;img-box&quot;&gt;
        
        &lt;span class=&quot;img-caption&quot;&gt;설명: 셀 서식(Ctrl+1) 창의 '사용자 지정' 탭에서 복합적인 서식 코드를 입력하여 데이터의 표현 방식을 설계하는 화면.&lt;/span&gt;
    &lt;/div&gt;

    &lt;h2 class=&quot;section-title&quot;&gt;## 색상과 조건의 융합: 서식 안에 흐르는 논리&lt;/h2&gt;

    &lt;p&gt;진정한 마법은 셀 서식 안에 &lt;b&gt;'조건(Condition)'&lt;/b&gt;을 넣을 때 발생합니다. 우리는 보통 셀의 색을 바꾸기 위해 '조건부 서식' 메뉴를 찾지만, 간단한 구분은 사용자 지정 서식 코드 내에서 대괄호 &lt;span class=&quot;code-inline&quot;&gt;[ ]&lt;/span&gt;를 사용하여 해결할 수 있습니다. &lt;span class=&quot;code-inline&quot;&gt;[빨강]▲ #,##0; [파랑]▼ #,##0; 0&lt;/span&gt; 이라는 코드는 양수는 빨간색 삼각형과 함께, 음수는 파란색 역삼각형과 함께 표시하도록 엑셀에 명령합니다.&lt;/p&gt;

    &lt;p class=&quot;narrative-p&quot;&gt;
        이것은 마치 살아있는 유기체와 같다. 데이터가 변함에 따라 서식이 스스로의 피부색을 바꾸고 표정을 달리한다. 물류 현황판에서 전일 대비 재고 증감을 표시할 때, 이 짧은 코드 한 줄은 수천 마디의 설명보다 강력한 직관을 제공한다. 보고서를 읽는 관리자는 색깔의 변화만으로도 창고의 온도를 읽어내고, 이상 징후를 포착한다. 서식은 이제 단순한 옷이 아니라, 데이터의 내면을 드러내는 엑스레이가 된다.
    &lt;/p&gt;

    &lt;ul style=&quot;margin: 40px 0; padding-left: 25px; line-height: 2.2;&quot;&gt;
        &lt;li&gt;&lt;b&gt;날짜와 요일의 결합&lt;/b&gt;: &lt;span class=&quot;code-inline&quot;&gt;yyyy-mm-dd (aaa)&lt;/span&gt; 서식을 사용하면 날짜만 입력해도 &quot;(월)&quot; 같은 요일이 자동 생성됩니다.&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;단위의 마침표&lt;/b&gt;: 숫자 뒤에 &lt;span class=&quot;code-inline&quot;&gt;&quot;원&quot;&lt;/span&gt;이나 &lt;span class=&quot;code-inline&quot;&gt;&quot;EA&quot;&lt;/span&gt;를 서식으로 붙이면, 수식 계산 기능을 그대로 유지하면서 시각적 완결성을 얻습니다.&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;문자와 숫자의 조화&lt;/b&gt;: &lt;span class=&quot;code-inline&quot;&gt;@&lt;/span&gt; 기호를 활용해 &quot;입고 예정: @&quot; 식으로 서식을 짜면, 품목명만 쳐도 문장이 완성됩니다.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h2 class=&quot;section-title&quot;&gt;## 보고서의 품격: 정렬과 테두리, 그리고 여백의 미학&lt;/h2&gt;

    &lt;p&gt;서식을 마쳤다면 마지막은 &lt;b&gt;'공간의 배치'&lt;/b&gt;입니다. 엑셀 보고서에서 문자는 왼쪽 정렬, 숫자는 오른쪽 정렬을 하는 것은 불문율입니다. 숫자를 우측으로 붙여야 자릿수가 수직으로 일치하게 되어, 읽는 이가 숫자의 크기를 뇌에서 연산하지 않고도 시각적으로 즉시 비교할 수 있기 때문입니다. 또한, 눈금선을 해제하고 필요한 영역에만 테두리를 설정하는 절제미가 필요합니다.&lt;/p&gt;

    &lt;p class=&quot;narrative-p&quot;&gt;
        보고서는 설득의 도구다. 정보가 빽빽하게 들어찬 표는 보는 이를 지치게 하지만, 적절한 여백과 선의 굵기 조절이 가미된 리스트는 하나의 잘 짜인 악보처럼 리듬감을 갖는다. 제목줄에는 조금 더 짙은 채도의 배경색을 깔고, 데이터 행에는 옅은 회색 선을 사용하여 시선의 흐름을 방해하지 않도록 배려해야 한다. 친절한 서식은 작성자의 성실함을 증명하는 가장 고요한 웅변이다.
    &lt;/p&gt;

    &lt;div class=&quot;point-box&quot;&gt;
        &lt;h4&gt;⚠️ 칵칵의 포인트 해설: 여기서 실수하면 데이터 꼬입니다!&lt;/h4&gt;
        &lt;ul style=&quot;margin-bottom: 0; font-size: 16.5px; line-height: 2.0; color: #444;&quot;&gt;
            &lt;li&gt;&lt;b&gt;실수 1: '텍스트' 형식의 함정&lt;/b&gt; - 셀 서식이 미리 '텍스트'로 지정된 곳에 숫자를 치면, 나중에 아무리 서식을 바꿔도 계산이 안 됩니다. 셀 왼쪽 상단의 초록색 삼각형을 확인하고 반드시 [숫자로 변환]을 거쳐야 합니다.&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;실수 2: #,### 서식과 0의 실종&lt;/b&gt; - &lt;span class=&quot;code-inline&quot;&gt;#,###&lt;/span&gt; 서식을 쓰면 값이 0일 때 셀이 빈칸처럼 보입니다. 실무에서는 데이터가 없는 것인지 0인 것인지 명확히 해야 하므로, 마지막 자리를 0으로 끝내는 &lt;b&gt;#,##0&lt;/b&gt; 서식을 권장합니다.&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;실수 3: 날짜가 숫자로 보일 때&lt;/b&gt; - 날짜를 입력했는데 45281 같은 정수가 나온다면 당황하지 마세요. 엑셀은 1900년 1월 1일을 1로 계산하는 '일련번호'로 날짜를 인식합니다. 셀 서식을 [날짜]로 다시 지정하면 원래대로 돌아옵니다.&lt;/li&gt;
            &lt;li&gt;&lt;b&gt;실수 4: 병합된 셀의 위험&lt;/b&gt; - 제목을 정중앙에 놓겠다고 셀 병합(Merge)을 남발하지 마세요. 나중에 정렬(Sort)이나 필터 기능을 쓸 때 &quot;병합된 셀 크기가 같아야 합니다&quot;라는 에러 메시지와 사투를 벌이게 됩니다. 대신 &lt;b&gt;[선택 영역의 가운데로]&lt;/b&gt; 기능을 활용하세요.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;tag-section&quot;&gt;
        #엑셀기초 #셀서식 #물류엑셀 #사용자정의서식 #보고서가독성 #AltEnter #엑셀꿀팁 #직장인엑셀 #칼퇴비법 #데이터정리 #칵칵 #엑셀강의 #초보엑셀탈출 #시간단축 #숫자서식 #문자서식
    &lt;/div&gt;

    &lt;p style=&quot;text-align: right; font-style: italic; color: #7f8c8d; margin-top: 20px;&quot;&gt;
        다음 엑셀 이야기 예고: 「엑셀 기초 (21편): 오타를 원천 차단하는 '데이터 유효성 검사'와 목록 상자의 비밀」
    &lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩으로 시간 벌기/엑셀 입문</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/77</guid>
      <comments>https://kackac.tistory.com/77#entry77comment</comments>
      <pubDate>Mon, 6 Apr 2026 09:07:59 +0900</pubDate>
    </item>
    <item>
      <title>소설로 읽는 고려사 (17편): 무너지는 사직의 그림자 - 이성계의 생애 (2부: 벼려진 칼날의 고백)</title>
      <link>https://kackac.tistory.com/75</link>
      <description>&lt;div class=&quot;goryeo-wrap&quot;&gt;
&lt;style&gt;
.goryeo-wrap { font-family: 'Noto Serif KR', Georgia, serif; font-size: 17.5px; line-height: 2.2; color: #1a1a1a; max-width: 100%; letter-spacing: -0.03em; }
.goryeo-wrap h1 { font-size: 34px; font-weight: 800; color: #5a1217; line-height: 1.3; margin-bottom: 25px; letter-spacing: -0.05em; }
.goryeo-wrap .summary-box { background: #f9f9f9; border: 1px solid #eee; padding: 35px; margin-bottom: 60px; font-family: 'Noto Sans KR', sans-serif; font-size: 17px; line-height: 1.9; color: #444; border-left: 10px solid #5a1217; }
.goryeo-wrap h2.section-title { font-size: 28px; font-weight: 700; color: #1a1a1a; margin: 100px 0 50px 0; padding-bottom: 20px; border-bottom: 3px solid #5a1217; }
.goryeo-wrap .novel-section { background: #ffffff; border-top: 2px solid #5a1217; border-bottom: 2px solid #5a1217; padding: 130px 70px; margin: 70px 0; position: relative; }
.goryeo-wrap .novel-label { font-size: 13px; font-weight: 700; letter-spacing: 7px; color: #5a1217; text-transform: uppercase; margin-bottom: 80px; display: block; text-align: center; }
.goryeo-wrap .novel-section p { margin-bottom: 55px; text-indent: 1.5em; text-align: justify; word-break: keep-all; }
.goryeo-wrap .dialogue-block { margin: 80px 0 80px 10%; border-left: 2px solid #5a1217; padding-left: 45px; }
.goryeo-wrap .dialogue-block p { margin: 30px 0; text-indent: 0 !important; color: #222; font-size: 19px; line-height: 2.0; font-style: normal; }
.goryeo-wrap .scene-break { text-align: center; color: #ddd; font-size: 45px; margin: 140px 0; font-weight: 200; letter-spacing: 30px; }
.goryeo-wrap .dark-quote { background: #1a1a1a; color: #c9c9c9; padding: 90px; margin: 120px 0; border-radius: 0; font-style: normal; font-size: 20px; line-height: 2.4; text-align: center; font-weight: 300; border-left: 25px solid #5a1217; }
.goryeo-wrap .img-caption { display: block; text-align: center; font-size: 15.5px; color: #888; margin-top: -50px; margin-bottom: 90px; font-family: 'Noto Sans KR', sans-serif; font-style: italic; }
.goryeo-wrap .study-section { margin-top: 200px; padding: 0 30px; }
.goryeo-wrap .study-section h2.study-title { font-size: 30px; font-weight: 800; color: #1a1a1a; border-bottom: 5px solid #1a1a1a; padding-bottom: 25px; margin-bottom: 70px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap table { width: 100%; border-collapse: collapse; margin: 50px 0 100px 0; }
.goryeo-wrap th { background: #f4f4f4; padding: 25px; border-top: 3px solid #5a1217; border-bottom: 1px solid #ccc; font-weight: 700; }
.goryeo-wrap td { padding: 25px; border-bottom: 1px solid #eee; text-align: center; line-height: 1.9; }
.goryeo-wrap .warning-box { background: #fff5f5; border-left: 8px solid #5a1217; padding: 45px; margin: 80px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 19px; color: #5a1217; }
&lt;/style&gt;

&lt;h1&gt;소설로 읽는 고려사 (17편)&lt;/h1&gt;
&lt;h2 class=&quot;subtitle&quot;&gt;무너지는 사직의 그림자 &amp;mdash; 이성계의 생애 (2부: 벼려진 칼날의 고백)&lt;/h2&gt;

&lt;div class=&quot;summary-box&quot;&gt;
&lt;b&gt;[사료 요약]&lt;/b&gt; 본 원고는 위화도 회군 이후 개경을 장악한 &lt;b&gt;태조 이성계(李成桂)&lt;/b&gt;가 권력의 중심부에서 겪는 정체성의 혼란과 결단을 다룹니다. 16편의 '회군'에 이어, 이번 편에서는 스승이자 동지였던 최영 장군을 숙청해야만 했던 비극적인 필연성과, 고려의 경제적 근간을 뒤흔든 &lt;b&gt;과전법(科田法)&lt;/b&gt;의 실시 과정을 10,000자의 압도적인 서사로 그려냅니다. 사실에 기반한 세밀한 묘사를 통해 한 장수가 왕으로 나아가는 고독한 길을 추적합니다.
&lt;/div&gt;

&lt;div class=&quot;novel-section&quot;&gt;
&lt;span class=&quot;novel-label&quot;&gt;A Life Carved in Steel and Soil&lt;/span&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;개경의 밤은 낮보다 무거웠다. 1388년의 여름, 도성을 감싼 공기는 비릿한 철분 냄새와 눅눅한 안개로 가득했다. 이성계는 궁궐의 높은 회랑에 서서 텅 빈 뜰을 응시했다. 그의 손끝에는 여전히 압록강의 흙탕물이 말라붙어 있는 듯한 환각이 맴돌았다. 말머리를 돌리던 그 찰나의 순간, 그는 고려라는 거대한 배의 키를 꺾어버렸다. 그것은 반역이라 불리기엔 너무나 처절했고, 구국이라 불리기엔 너무나 비정했다. 그는 이제 돌아갈 수 없는 강을 건넜으며, 자신이 지켜온 성벽을 스스로 허무는 파괴자가 되어 있었다.&lt;/p&gt;

&lt;h2 class=&quot;section-title&quot;&gt;## 무너진 방패: 최영의 눈물과 단죄의 무게&lt;/h2&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;최영 장군. 그 이름은 이성계에게 있어 단순히 상급자가 아니었다. 거친 북방의 바람을 맞으며 자라온 그에게 최영은 고려라는 국가가 지닌 마지막 품격이자, 자신이 닮고 싶었던 고결한 아집의 결정체였다. 그러나 이제 이성계는 그 아집의 심장을 찔러야 했다. 형장의 이슬로 사라지기 직전까지도 허리를 꼿꼿이 폈던 노장의 뒷모습은, 이성계의 가슴 속에 지워지지 않는 서늘한 낙인을 남겼다. 최영의 목이 떨어지던 날, 개경의 백성들은 소리 없이 흐느꼈다. 그들의 눈물은 이성계의 심장 위로 차갑게 흘러내려, 결코 씻기지 않는 지층으로 쌓였다.&lt;/p&gt;


&lt;span class=&quot;img-caption&quot;&gt;설명: 이성계가 최영을 비롯한 구세력을 숙청하며 겪은 권력의 비정함과 심리적 압박을 상징하는 검과 비단.&lt;/span&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이성계는 자신의 집무실로 돌아와 활을 닦았다. 시위를 당길 때마다 느껴지는 팽팽한 저항감이 오히려 안도감을 주었다. 세상의 모든 것이 변하고 있었으나, 오직 자신의 활시위만이 변치 않는 진리를 말해주고 있었다. 하지만 그를 찾아오는 사내들은 달랐다. 정도전과 그의 무리는 매일 밤 촛불을 밝히며 새로운 지도를 그렸다. 그들의 눈에는 고려의 산천이 아니라, 자신들이 꿈꾸는 정갈한 유교 국가의 설계도가 들어 있었다. 정도전의 목소리는 낮았으나, 그 안에는 500년 묵은 고려의 뿌리를 단숨에 뽑아버리려는 거대한 화염이 깃들어 있었다.&lt;/p&gt;

&lt;h2 class=&quot;section-title&quot;&gt;## 타오르는 토지: 과전법과 백성의 비명&lt;/h2&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;1391년, 개경의 광장에는 거대한 불길이 솟아올랐다. 그것은 적의 성벽을 태우는 불길이 아니었다. 수백 년간 권문세족들이 독점해온 토지 문서들이 산더미처럼 쌓여 재가 되고 있었다. 과전법(科田法). 그 메마른 단어 하나가 고려의 숨통을 조였다. 이성계는 그 불길을 보며 생각했다. 권력이란 결국 땅에서 시작되어 땅으로 돌아가는 것임을. 타오르는 종이 조각들이 백성들의 머리 위로 눈처럼 내려앉을 때, 누군가는 전 재산을 잃고 통곡했고 누군가는 처음으로 자신의 흙을 가질 수 있다는 기적에 몸을 떨었다. 이성계는 그 거대한 소용돌이의 중심에서 고독을 배웠다.&lt;/p&gt;

&lt;div class=&quot;dialogue-block&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;“장군, 이제 망설일 시간이 없습니다. 이미 민심은 장군을 왕으로 부르고 있습니다.”&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정도전의 재촉에 이성계는 칼자루를 만지작거렸다. “나는 왕이 되려 강을 건넌 것이 아니네. 나는 다만 내 병사들과 이 땅의 백성들이 굶주리지 않기를 바랐을 뿐이야.” 정도전은 씁쓸하게 웃었다. “장군, 그 바람을 이루는 방법이 곧 왕이 되는 길입니다. 고려의 이름으로는 더 이상 그 누구도 배불리 먹일 수 없음을 장군께서도 아시지 않습니까.” 이성계는 대답하지 않았다. 그의 침묵은 짙은 안개가 되어 방 안을 가득 채웠다.&lt;/p&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이성계의 번뇌는 깊어졌다. 그는 밤마다 말을 타고 도성을 빠져나가 옛 전장을 회상했다. 함경도의 추위 속에서 정몽주와 함께 마셨던 술의 향기가 코끝을 스쳤다. 포은 정몽주. 그는 여전히 고려라는 침몰하는 배의 돛을 붙잡고 있었다. 이성계에게 정몽주는 자신을 비추는 유일한 거울이었고, 자신의 야성에 품격을 부여해주던 영혼의 단짝이었다. 하지만 이제 그 거울은 깨지기 직전이었다. 정몽주가 내뱉는 고결한 충절의 단어들은 이성계의 발목을 잡아끄는 무거운 족쇄가 되어가고 있었다.&lt;/p&gt;

&lt;h2 class=&quot;section-title&quot;&gt;## 엇갈린 우정: 선죽교로 향하는 차가운 발자국&lt;/h2&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;개혁의 칼날은 이제 정몽주라는 거대한 바위를 향하고 있었다. 이성계의 아들 이방원은 아버지와 달리 주저함이 없었다. 그는 권력이란 피로 씻어내야만 선명해지는 것임을 본능적으로 알고 있었다. 이성계는 이방원의 눈동자에서 타오르는 광기를 보았으나, 차마 그것을 끄지 못했다. 자신이 열어젖힌 이 문을 통해 들어온 새로운 기운이, 결국 자신이 가장 사랑했던 사람을 집어삼키려 하고 있었다. 이성계는 거울 속의 자신을 보았다. 변방의 장수 이성계는 죽어가고 있었고, 그 자리에는 차가운 왕관의 그림자가 내려앉고 있었다.&lt;/p&gt;


&lt;span class=&quot;img-caption&quot;&gt;설명: 고려의 마지막 절개가 흩뿌려진 선죽교의 정경. 이성계와 정몽주의 엇갈린 운명이 교차하는 역사적 비극의 장소.&lt;/span&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;1392년의 봄은 유난히도 잔인했다. 꽃잎이 흩날리는 개경의 거리에는 보이지 않는 긴장감이 흘렀다. 이성계는 병을 핑계로 몸을 뉘었으나, 그의 귀에는 이미 선죽교를 향해 걷는 누군가의 발소리가 들려오고 있었다. 조영규의 철퇴가 정몽주의 머리를 부술 때, 이성계는 자신의 가슴 한구석도 함께 부서져 내리는 것을 느꼈다. 고려는 그 핏자국과 함께 사라졌다. 이제 그에게 남은 것은 왕좌라는 이름의 거대한 감옥뿐이었다. 그는 이제 승리자가 아니라, 고려라는 시체를 짊어지고 걸어가야 하는 고독한 상주(喪主)였다.&lt;/p&gt;

&lt;div class=&quot;dark-quote&quot;&gt;살기 위해 벤 것은 적의 목이었으나, 다스리기 위해 베어야 할 것은 자신의 영혼이었다.&lt;br /&gt;고려의 마지막 등불이 꺼졌을 때, 그는 스스로 어둠이 되어 새로운 새벽을 잉태했다.&lt;br /&gt;그것은 위대한 건국이기 이전에, 가장 처절한 작별의 기록이었다.&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이성계의 생애 2부는 그렇게, 잉크 대신 피로 쓰여졌다. 그는 이제 압록강의 빗소리를 잊기로 했다. 대신 그는 한양이라는 새로운 땅을 바라보았다. 그곳에는 고려의 썩은 냄새가 나지 않는, 정갈한 흙이 기다리고 있을 것이었다. 하지만 그는 알고 있었다. 어떤 땅으로 옮겨가든, 자신이 묻힌 이 죄책감의 뿌리는 평생 자신을 따라다닐 것임을. 1392년 7월, 그는 마침내 왕이 되었다. 하지만 왕관 아래 감춰진 그의 눈동자는 여전히 위화도의 비에 젖어 있었다. 조선의 문법은 그렇게, 한 남자의 찢겨진 가슴 속에서 비명처럼 시작되고 있었다.&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&quot;study-section&quot;&gt;
&lt;h2 class=&quot;study-title&quot;&gt;  한능검 핵심 요약: 조선의 건국 과정과 주요 개혁&lt;/h2&gt;

&lt;div class=&quot;concept-box&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot;&gt;
&lt;li&gt;&lt;b&gt;과전법 (1391)&lt;/b&gt;: 신진사대부의 경제적 기반을 마련하기 위해 권문세족의 토지를 몰수하고 경기 지역의 토지를 나누어 준 제도입니다. 조선 건국의 결정적인 경제적 토대가 되었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;신진사대부의 분열&lt;/b&gt;: &lt;b&gt;온건 개혁파&lt;/b&gt;(정몽주 등 - 고려 유지)와 &lt;b&gt;급진 개혁파&lt;/b&gt;(정도전 등 - 역성혁명)의 대립이 극에 달했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;조선 건국 (1392)&lt;/b&gt;: 정몽주 등 반대 세력을 제거한 후, 이성계가 공양왕으로부터 양위를 받아 한양을 도읍으로 조선을 개국했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;주요 내용&lt;/th&gt;
&lt;th&gt;역사적 의의&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;위화도 회군 (1388)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;요동 정벌군이 압록강에서 회항&lt;/td&gt;
&lt;td&gt;신흥 무인 세력(이성계)의 정치권력 장악&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;최영 숙청&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;구세력의 핵심 인물 제거&lt;/td&gt;
&lt;td&gt;고려의 군사적·정치적 중심 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;선죽교 사건 (1392)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;정몽주 피살&lt;/td&gt;
&lt;td&gt;고려 왕조 유지파의 마지막 보루 붕괴&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;warning-box&quot;&gt;
&lt;b&gt;  수험생 시험 적중 포인트!&lt;/b&gt;&lt;br&gt;
한능검에서는 **'과전법'**이 조선 건국 **전(1391년)**에 실시되었다는 사실이 순서 문제로 매우 자주 출제됩니다. (위화도 회군 -&gt; 과전법 -&gt; 정몽주 피살 -&gt; 조선 건국) 이 흐름을 반드시 기억하세요! 또한 이성계의 정치적 동반자였던 **'정도전'**의 민본주의 사상도 핵심 키워드입니다.
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;outro&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이성계의 칼날은 고려를 무너뜨리고 새로운 대륙의 주인이 되었습니다. 하지만 왕의 길은 이제 막 시작되었을 뿐입니다. 다음 편에서는 아들들과의 비극적인 골육상쟁, '왕자의 난'과 태조의 쓸쓸한 말년을 다룹니다.&lt;/p&gt;
&lt;div class=&quot;next-episode&quot; style=&quot;background: #f9f9f9; border: 1px solid #eee; padding: 40px; margin-top: 50px;&quot;&gt;  &lt;b&gt;다음 역사 이야기 예고&lt;/b&gt;&lt;br /&gt;&lt;b&gt;「소설로 읽는 고려사 (18편): 피로 물든 왕관 &amp;mdash; 이성계의 생애 (3부: 왕자의 난과 고독한 은둔)」&lt;/b&gt;&lt;br /&gt;자신이 세운 나라에서 아들이 형제를 베는 참극을 지켜봐야 했던 아버지. 함흥차사로 남은 왕의 마지막 비명을 기록합니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>이야기/한국사</category>
      <category>과전법</category>
      <category>민본주의 사상</category>
      <category>선죽교 사건</category>
      <category>위화도 회군</category>
      <category>이성계</category>
      <category>정도전</category>
      <category>정몽주 피살</category>
      <category>최영 숙청</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/75</guid>
      <comments>https://kackac.tistory.com/75#entry75comment</comments>
      <pubDate>Mon, 6 Apr 2026 09:01:54 +0900</pubDate>
    </item>
    <item>
      <title>물류 실무 엑셀 (19편): 특정 단어만 쏙! &amp;quot;찾아바꾸기&amp;quot; 함수의 기술 (REPLACE, SUBSTITUTE)</title>
      <link>https://kackac.tistory.com/74</link>
      <description>&lt;div class=&quot;excel-basic-wrap&quot; style=&quot;font-family: 'Noto Sans KR', sans-serif; line-height: 2.0; color: #2c3e50; max-width: 850px; margin: auto;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #27ae60; border-bottom: 2px solid #27ae60; padding-bottom: 15px;&quot;&gt;물류 실무 엑셀 (19편): 특정 단어만 쏙! &quot;찾아바꾸기&quot; 함수의 기술 (REPLACE, SUBSTITUTE)&lt;/h2&gt;
    
    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    
    &lt;div class=&quot;excel-content&quot;&gt;
        &lt;p&gt;안녕하세요, 물류 현장의 엉망인 텍스트 데이터를 정교하게 다듬어 드리는 '칵칵'입니다. ☕&lt;/p&gt;
        
        &lt;p&gt;수천 줄의 데이터에서 &lt;strong&gt;&quot;품목명의 특정 단어를 일괄적으로 바꿔야 할 때&quot;&lt;/strong&gt;나, &lt;strong&gt;&quot;전화번호 사이의 하이픈(-)을 한꺼번에 제거해야 할 때&quot;&lt;/strong&gt;... 아직도 Ctrl + H만 쓰고 계신가요? 원본 데이터는 보존하면서 수식으로 똑똑하게 바꾸는 &lt;strong&gt;REPLACE&lt;/strong&gt;와 &lt;strong&gt;SUBSTITUTE&lt;/strong&gt; 함수를 소개합니다.&lt;/p&gt;

        &lt;h3 style=&quot;color: #2ecc71; border-left: 5px solid #2ecc71; padding-left: 10px; margin-top: 40px;&quot;&gt;✅ 1. 위치로 바꾸기: REPLACE 함수&lt;/h3&gt;
        &lt;p&gt;&quot;A2 셀의 3번째 글자부터 2글자를 'XX'로 바꿔라&quot;처럼 &lt;strong&gt;글자의 위치&lt;/strong&gt;가 중요할 때 씁니다.&lt;/p&gt;
        &lt;div style=&quot;background: #f1f2f6; border: 1px solid #ddd; padding: 20px; margin: 20px 0; border-radius: 8px;&quot;&gt;
            &lt;code style=&quot;font-size: 1.1em; color: #2980b9;&quot;&gt;=REPLACE(A2, 3, 2, &quot;**&quot;)&lt;/code&gt; &lt;br&gt;
            &lt;span style=&quot;color: #666; font-size: 0.9em;&quot;&gt;결과: &quot;이성계&quot; -&gt; &quot;이**&quot; (3번째 글자부터 2글자를 별표로 변경)&lt;/span&gt;
        &lt;/div&gt;

        &lt;h3 style=&quot;color: #2ecc71; border-left: 5px solid #2ecc71; padding-left: 10px; margin-top: 30px;&quot;&gt;✅ 2. 단어로 바꾸기: SUBSTITUTE 함수&lt;/h3&gt;
        &lt;p&gt;위치와 상관없이 &lt;strong&gt;특정 단어나 기호&lt;/strong&gt;를 찾아 바꿀 때 씁니다. 실무 활용도가 200%인 함수죠.&lt;/p&gt;
        &lt;div style=&quot;background: #f1f2f6; border: 1px solid #ddd; padding: 20px; margin: 20px 0; border-radius: 8px;&quot;&gt;
            &lt;code style=&quot;font-size: 1.1em; color: #2980b9;&quot;&gt;=SUBSTITUTE(A2, &quot;-&quot;, &quot;&quot;)&lt;/code&gt; &lt;br&gt;
            &lt;span style=&quot;color: #666; font-size: 0.9em;&quot;&gt;결과: &quot;010-1234-5678&quot; -&gt; &quot;01012345678&quot; (모든 하이픈을 공백으로 대체)&lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    &lt;div style=&quot;background-color: #fff3e0; padding: 25px; border-radius: 10px; border: 2px solid #ff9800; margin-top: 40px;&quot;&gt;
        &lt;h4 style=&quot;margin-top: 0; color: #e65100; font-size: 1.2em;&quot;&gt;⚠️ 칵칵의 포인트 해설: 여기서 실수하면 퇴근 못 합니다!&lt;/h4&gt;
        &lt;ul style=&quot;margin-bottom: 0; font-size: 1em; line-height: 2.0; color: #444;&quot;&gt;
            &lt;li&gt;&lt;strong&gt;실수 1: 대소문자 구분&lt;/strong&gt; - SUBSTITUTE 함수는 대소문자를 엄격하게 구분합니다. &lt;code&gt;&quot;excel&quot;&lt;/code&gt;을 찾으라고 하면 &lt;code&gt;&quot;Excel&quot;&lt;/code&gt;은 바꾸지 못합니다. 주의하세요!&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;실수 2: 숫자로 보이지만 텍스트임&lt;/strong&gt; - 함수로 숫자를 바꿔서 나온 결과값은 엑셀이 **'텍스트'**로 취급합니다. 합계나 계산을 해야 한다면 함수 앞에 &lt;code&gt;--&lt;/code&gt;를 붙이거나 &lt;code&gt;VALUE&lt;/code&gt; 함수를 씌워야 합니다.&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;실수 3: 빈칸과 공백의 차이&lt;/strong&gt; - 특정 단어를 지우고 싶다면 &lt;code&gt;&quot;&quot;&lt;/code&gt;(따옴표 사이 아무것도 없음)를 넣어야 합니다. &lt;code&gt;&quot; &quot;&lt;/code&gt;처럼 한 칸 띄우면 해당 자리에 공백이 남게 됩니다.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    &lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center; margin-top: 30px;&quot;&gt;
        #엑셀기초 #SUBSTITUTE #REPLACE #텍스트바꾸기 #데이터클리닝 #물류실무 #직장인엑셀 #칼퇴비법 #데이터정리 #엑셀함수 #칵칵 #개인정보마스킹 #엑셀꿀팁 #시간단축 #초보엑셀
    &lt;/div&gt;
    &lt;p style=&quot;text-align: right; font-style: italic; color: #7f8c8d; margin-top: 20px;&quot;&gt;다음 엑셀 이야기 예고: 「엑셀 기초 (20편): 보고서의 가독성을 결정하는 텍스트 줄 바꿈과 셀 서식의 마법」&lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩으로 시간 벌기/엑셀 입문</category>
      <category>replace</category>
      <category>substitute</category>
      <category>개인정보마스킹</category>
      <category>데이터클리닝</category>
      <category>엑셀기초</category>
      <category>엑셀함수</category>
      <category>직장인엑셀</category>
      <category>텍스트바꾸기</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/74</guid>
      <comments>https://kackac.tistory.com/74#entry74comment</comments>
      <pubDate>Sat, 4 Apr 2026 00:08:51 +0900</pubDate>
    </item>
    <item>
      <title>소설로 읽는 고려사 (16편): 압록강의 붉은 눈물 - 이성계의 생애 (1부: 위화도의 비)</title>
      <link>https://kackac.tistory.com/73</link>
      <description>&lt;div class=&quot;goryeo-wrap&quot;&gt;
&lt;style&gt;
.goryeo-wrap { font-family: 'Noto Serif KR', Georgia, serif; font-size: 17.5px; line-height: 2.2; color: #1a1a1a; max-width: 100%; letter-spacing: -0.03em; }
.goryeo-wrap h1 { font-size: 30px; font-weight: 800; color: #5a1217; line-height: 1.3; margin-bottom: 12px; letter-spacing: -0.05em; }
.goryeo-wrap h2.subtitle { font-size: 19px; font-weight: 400; color: #666; margin-top: 0; margin-bottom: 60px; font-family: 'Noto Sans KR', sans-serif; border: none; padding: 0; }
.goryeo-wrap .novel-section { background: #ffffff; border-top: 2px solid #5a1217; border-bottom: 2px solid #5a1217; padding: 100px 50px; margin: 50px 0; position: relative; }
.goryeo-wrap .novel-label { font-size: 11px; font-weight: 700; letter-spacing: 5px; color: #5a1217; text-transform: uppercase; margin-bottom: 60px; display: block; text-align: center; }
.goryeo-wrap .novel-section p { margin-bottom: 40px; text-indent: 1.2em; text-align: justify; word-break: keep-all; }
.goryeo-wrap .dialogue-block { margin: 50px 0 50px 10%; border-left: 1px solid #5a1217; padding-left: 35px; }
.goryeo-wrap .dialogue-block p { margin: 18px 0; text-indent: 0 !important; color: #222; font-size: 17px; line-height: 1.8; font-style: normal; }
.goryeo-wrap .scene-break { text-align: center; color: #ddd; font-size: 30px; margin: 80px 0; font-weight: 200; letter-spacing: 15px; }
.goryeo-wrap .dark-quote { background: #1a1a1a; color: #c9c9c9; padding: 60px; margin: 60px 0; border-radius: 0; font-style: normal; font-size: 16.5px; line-height: 2.2; text-align: center; font-weight: 300; border-left: 10px solid #5a1217; }
.goryeo-wrap .study-section { margin-top: 120px; padding: 0 10px; }
.goryeo-wrap .study-section h2.study-title { font-size: 24px; font-weight: 800; color: #1a1a1a; border-bottom: 3px solid #1a1a1a; padding-bottom: 15px; margin-bottom: 45px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .study-section h3 { font-size: 19px; font-weight: 700; color: #222; margin: 60px 0 20px 0; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap table { width: 100%; border-collapse: collapse; margin: 35px 0 60px 0; font-size: 15px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap th { background: #f4f4f4; color: #111; padding: 18px; text-align: center; font-weight: 700; border-top: 2px solid #111; border-bottom: 1px solid #ccc; }
.goryeo-wrap td { padding: 18px; border-bottom: 1px solid #eee; vertical-align: middle; font-size: 15px; line-height: 1.9; text-align: center; }
.goryeo-wrap .concept-box { background: #fdfaf7; border: 1px solid #e1d8d0; padding: 40px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; }
.goryeo-wrap .concept-box li { margin-bottom: 18px; line-height: 1.95; color: #333; }
.goryeo-wrap .warning-box { background: #fff5f5; border-left: 5px solid #5a1217; padding: 30px 35px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; color: #5a1217; }
.goryeo-wrap .memory-box { background: #1a1a1a; color: #fff; padding: 50px; margin: 60px 0; text-align: center; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .memory-box .label { font-size: 11px; letter-spacing: 5px; color: #777; margin-bottom: 25px; text-transform: uppercase; }
.goryeo-wrap .memory-box .chant { font-size: 18.5px; font-weight: 700; color: #e1d8d0; line-height: 2.1; }
.goryeo-wrap .outro { margin-top: 100px; padding-top: 60px; border-top: 1px solid #eee; font-family: 'Noto Sans KR', sans-serif; font-size: 16.5px; color: #444; line-height: 2.1; }
.goryeo-wrap strong { color: #5a1217; font-weight: 800; }
&lt;/style&gt;

&lt;h1&gt;소설로 읽는 고려사 (16편)&lt;/h1&gt;
&lt;h2 class=&quot;subtitle&quot;&gt;압록강의 붉은 눈물 &amp;mdash; 이성계의 생애 (1부: 위화도의 비)&lt;/h2&gt;

&lt;div class=&quot;novel-section&quot;&gt;
&lt;span class=&quot;novel-label&quot;&gt;A Narrative of History&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;압록강의 비는 비릿했다. 1388년의 초여름, 하늘은 구멍이 난 듯 끈적한 수증기를 쏟아냈고, 강물은 흙탕물을 뒤집어쓴 채 거대한 짐승처럼 포효했다. 이성계는 위화도의 진흙탕 속에 발을 묻고 서 있었다. 갑옷 사이로 스며드는 빗줄기는 차가운 가시가 되어 살갗을 찔렀고, 등 뒤에서 들려오는 병사들의 젖은 기침 소리는 마치 고려라는 낡은 집이 무너져 내리는 파열음처럼 들렸다. 그의 손에는 요동으로 진격하라는 최영 장군의 서슬 퍼런 명령서가 들려 있었으나, 그의 눈앞에 놓인 것은 승리가 아닌 거대한 절멸의 예감이었다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;북방의 맹주로 자라온 이성계에게 전쟁은 익숙한 공포였다. 황산에서 아기발도의 화살을 꺾을 때도, 쌍성총관부의 성벽을 허물 때도 그의 심장은 바위처럼 단단했다. 그러나 이번은 달랐다. 명나라라는 신흥 제국의 심장부를 향해 작은 나라의 군대를 몰아넣는 일은, 불길 속으로 마른 짚단을 던지는 것과 같았다. &quot;사소출사(四不可) - 네 가지 불가한 이유.&quot; 그는 왕과 최영에게 보낸 서신을 떠올렸다. 작은 나라가 큰 나라를 거스르는 일, 여름철에 군사를 부리는 일... 그 메마른 문장들은 충심이 아닌, 이 땅에 살아남은 민초들의 목숨을 구걸하는 비명이기도 했다.&lt;/p&gt;

&lt;div class=&quot;dialogue-block&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;“강을 건너면 돌아올 길이 없고, 강을 건너지 않으면 반역의 길이 열린다. 장군, 우리는 어디로 가야 합니까?”&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부장들의 물음은 빗소리에 묻혀 희미하게 흩어졌다. 이성계는 대답 대신 압록강 건너편의 요동 벌판을 보았다. 그곳에는 고려의 흙보다 더 차가운 죽음이 기다리고 있었다. 명나라의 철기병들이 숲속의 뱀처럼 혀를 낼름거리며 이 굶주린 고려군을 기다리고 있을 것이었다. 이성계는 자신의 칼자루를 움켜쥐었다. 뼈마디가 하얗게 드러날 정도로 힘을 주자, 억눌러왔던 북방의 야성이 폐부 깊은 곳에서 고개를 들었다.&lt;/p&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;이성계의 유년은 함경도 영흥의 거친 바람 속에 있었다. 고려의 변방, 원나라의 옷을 입고 살아야 했던 그의 가문은 늘 경계에 선 유령과 같았다. 고려인이면서도 고려인이 아니었던 시간들. 그의 아버지 이자춘이 공민왕의 부름에 응해 쌍성총관부의 문을 열었을 때, 소년 이성계는 처음으로 조국이라는 단어의 비릿한 무게를 배웠다. 그에게 고려는 지켜야 할 성벽이자, 동시에 자신을 끊임없이 시험하는 잔혹한 어머니였다. 그리고 지금, 압록강의 빗줄기 속에서 고려는 그에게 가장 가혹한 시험지를 던지고 있었다.&lt;/p&gt;

&lt;div class=&quot;scene-break&quot;&gt;...&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;전염병이 돌고, 활시위는 습기에 녹아내렸다. 식량은 바닥났고 병사들의 눈동자에서는 생기가 증발했다. 이성계는 위화도 막사 안에서 홀로 촛불을 밝혔다. 촛불의 일렁임 속에 비친 그의 그림자는 고려의 국경을 넘어 개경을 향해 길게 뻗어 있었다. 그는 최영의 고결한 아집을 존경했으나, 그 아집이 태울 백성들의 고혈을 차마 외면할 수 없었다. &quot;회군(回軍).&quot; 그 짧은 단어를 입술 밖으로 뱉어내는 순간, 그는 더 이상 고려의 충직한 사냥개가 아닌, 새로운 시대를 잉태할 늑대가 되어야 했다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;말머리를 돌리던 순간, 압록강의 물결은 이성계의 발목을 붙잡았다. 훗날 역사는 이를 위화도 회군이라 부르며 한 시대의 반역이자 새로운 국가의 탄생이라 기록할 것이었다. 하지만 이성계에게 그것은 오직 살기 위한 처절한 몸부림이었다. 진흙탕 속에서 건져 올린 그의 칼은 이제 명나라가 아닌, 고려의 썩은 심장을 향해 나아갔다. 그의 등 뒤로 5만 대군의 함성이 비를 뚫고 솟구쳤다. 그것은 멸망해가는 고려가 내뱉는 마지막 탄식인 동시에, 잉크로 쓰이지 않은 새로운 역사의 첫 장이 펼쳐지는 소리였다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;개경으로 향하는 길 위에서 이성계는 생각했다. 왕관은 금으로 만들어지지만, 그것을 지탱하는 것은 백성들의 핏줄이라는 사실을. 그는 이제 개혁의 이름으로 친구였던 최영을 베고, 스승이었던 고려를 무너뜨려야 했다. 위화도의 비는 여전히 그치지 않았으나, 이성계의 눈동자 속에서는 이미 차가운 여명이 밝아오고 있었다. 보이지 않는 선이 대지 위에 그어지고, 그 선을 따라 누군가의 인생은 마침표를, 누군가의 인생은 새로운 문장을 적어 내려가기 시작했다.&lt;/p&gt;

&lt;div class=&quot;dark-quote&quot;&gt;강물은 거꾸로 흐르지 않으나 장수의 말은 거꾸로 달렸다.&lt;br /&gt;위화도의 진흙탕 속에 묻힌 것은 고려의 자존심이었고,&lt;br /&gt;그 진흙을 털고 일어난 것은 새로운 대륙의 주인이 될 고독한 왕이었다.&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;study-section&quot;&gt;
&lt;h2 class=&quot;study-title&quot;&gt;  한능검 핵심 요약: 위화도 회군과 신진사대부 (16편)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 위화도 회군 (1388)의 배경&lt;/h3&gt;
&lt;div class=&quot;concept-box&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;명의 철령위 설치 요구&lt;/b&gt;: 명나라가 고려의 영토인 철령 이북 땅을 요구하며 갈등 발생.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;요동 정벌 추진&lt;/b&gt;: 우왕과 최영이 명을 공격하기 위해 이성계를 중심으로 요동 정벌군 파견.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;4불가론&lt;/b&gt;: 이성계가 제시한 요동 정벌 반대 이유(소국이 대국을 침, 여름 군사 동원 등).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 회군의 전개와 결과 &lt;span class=&quot;star&quot; style=&quot;color: #5a1217;&quot;&gt;★★★★★&lt;/span&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;주요 내용&lt;/th&gt;
&lt;th&gt;비고 (역사적 의의)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;위화도 회군&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;압록강 위화도에서 군대를 돌려 개경 함락&lt;/td&gt;
&lt;td&gt;최영 숙청, 이성계 정권 장악&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;경제 개혁&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;과전법 실시 (1391)&lt;/td&gt;
&lt;td&gt;신진사대부의 경제적 기반 마련&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;신진사대부 결탁&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;정도전 등 혁명파 사대부와 손을 잡음&lt;/td&gt;
&lt;td&gt;역성혁명의 사상적 토대 구축&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;warning-box&quot;&gt;
&lt;b&gt;  수험생 암기 포인트!&lt;/b&gt;&lt;br&gt;
위화도 회군은 단순한 군사 반란이 아니라 **'신진사대부(정도전 등)'**와 **'신흥 무인 세력(이성계)'**이 결탁하여 고려의 권문세족을 타도한 정치적 대변혁입니다. 시험에서는 이 사건 이후 실시된 **'과전법'**과 연결하는 문제가 단골로 출제됩니다!
&lt;/div&gt;

&lt;div class=&quot;memory-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;✏ 핵심 암기 구호&lt;/div&gt;
&lt;div class=&quot;chant&quot;&gt;&quot;명나라 철령위 요구에 최영은 요동을 치고!&quot;&lt;br /&gt;&quot;위화도 비오는 날 이성계는 말머리 돌려!&quot;&lt;br /&gt;&quot;과전법 땅 나눠주고 조선을 세우자!&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;outro&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개경을 장악한 이성계의 칼끝은 이제 제도와 땅의 개혁을 향합니다. 다음 편에서는 이성계의 그림자이자 설계자, 정도전과의 운명적인 만남과 조선 건국의 마지막 퍼즐을 다룹니다.&lt;/p&gt;
&lt;div class=&quot;next-episode&quot;&gt;  &lt;b&gt;다음 역사 이야기 예고&lt;/b&gt;&lt;br /&gt;&lt;b&gt;「소설로 읽는 고려사 (17편): 설계된 나라 — 정도전의 사유와 정몽주의 마지막 밤」&lt;/b&gt;&lt;br /&gt;무너진 고려의 잿더미 위에서 유교 국가를 꿈꾼 사내. 하지만 그 꿈의 대가는 가장 친한 친구의 피로 치러야 했습니다. 선죽교의 붉은 눈물이 펼쳐집니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center;&quot;&gt;
#고려사 #이성계 #위화도회군 #최영 #우왕 #정도전 #과전법 #4불가론 #신진사대부 #역성혁명 #역사소설 #한능검 #한국사능력검정시험 #역사공부 #조선건국 #압록강
&lt;/div&gt;</description>
      <category>이야기/한국사</category>
      <category>4불가론</category>
      <category>과전법</category>
      <category>신진사대부</category>
      <category>역사소설</category>
      <category>역성혁명</category>
      <category>우왕</category>
      <category>위화도회군</category>
      <category>이성계</category>
      <category>정도전</category>
      <category>최영</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/73</guid>
      <comments>https://kackac.tistory.com/73#entry73comment</comments>
      <pubDate>Sat, 4 Apr 2026 00:08:03 +0900</pubDate>
    </item>
    <item>
      <title>실무 자동화 (12편): 클릭 한 번으로 &amp;quot;거래처별 대량 메일 자동 발송&amp;quot; (Outlook 연동)</title>
      <link>https://kackac.tistory.com/70</link>
      <description>&lt;div class=&quot;excel-vba-wrap&quot; style=&quot;font-family: 'Noto Sans KR', sans-serif; line-height: 1.8; color: #2c3e50; max-width: 900px; margin: auto;&quot;&gt;
&lt;h2 style=&quot;text-align: center; color: #5a1217; border-bottom: 3px solid #5a1217; padding-bottom: 15px;&quot; data-ke-size=&quot;size26&quot;&gt;실무 자동화 (12편): 클릭 한 번으로 &quot;거래처별 대량 메일 자동 발송&quot; (Outlook 연동)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요, 물류 현장의 지루한 반복 작업을 코딩으로 박멸하는 '칵칵'입니다. ☕&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매일 오후, 수십 곳의 거래처에 각각 다른 명세서나 안내 메일을 보내고 계신가요? 엑셀 리스트를 보고 Outlook을 열어 주소 복사, 제목 입력, 본문 수정... 이 과정을 50번 반복하다 보면 어느새 퇴근 시간은 저 멀리 사라지죠. 오늘은 버튼 클릭 한 번으로 수백 통의 메일을 순식간에 쏘아 올리는 VBA 마법을 공유합니다.&lt;/p&gt;
&lt;h3 style=&quot;background: #fdf2f2; padding: 10px 15px; border-left: 5px solid #5a1217; color: #5a1217;&quot; data-ke-size=&quot;size23&quot;&gt;  Outlook 메일 자동 발송 VBA 코드&lt;/h3&gt;
&lt;div style=&quot;background: #1e1e1e; color: #dcdcdc; padding: 20px; border-radius: 8px; font-family: 'Consolas', monospace; overflow-x: auto; margin: 20px 0;&quot;&gt;
&lt;pre class=&quot;vbnet&quot; style=&quot;margin: 0;&quot;&gt;&lt;code&gt;Sub SendBulkEmails()
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Dim i As Long, lastRow As Long
    
    Set OutlookApp = CreateObject(&quot;Outlook.Application&quot;)
    
    ' 1. 현재 시트의 데이터 마지막 줄 찾기
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 2. 반복문 실행 (2행부터 마지막행까지)
    For i = 2 To lastRow
        Set OutlookMail = OutlookApp.CreateItem(0)
        
        With OutlookMail
            .To = Cells(i, 2).Value ' B열: 수신자 주소
            .Subject = Cells(i, 3).Value ' C열: 메일 제목
            .Body = Cells(i, 4).Value ' D열: 메일 본문
            
            ' .Attachments.Add &quot;C:\파일경로\첨부파일.pdf&quot; ' 첨부파일 필요 시 주석 해제
            
            .Display ' 3. 메일창 띄우기 (즉시 발송하려면 .Send 로 변경)
        End With
        
        Set OutlookMail = Nothing
    Next i
    
    MsgBox &quot;모든 메일 작성이 완료되었습니다! 확인 후 발송하세요.&quot;
End Sub
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;margin-top: 40px; color: #5a1217;&quot; data-ke-size=&quot;size23&quot;&gt;  코드 핵심 해설 (실무 포인트)&lt;/h3&gt;
&lt;ul style=&quot;line-height: 2.0; list-style-type: square;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;CreateObject(&quot;Outlook.Application&quot;)&lt;/b&gt;: 엑셀에서 Outlook 프로그램을 강제로 제어할 수 있게 연결해 주는 명령입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.To / .Subject / .Body&lt;/b&gt;: 엑셀의 각 열에 입력된 정보를 메일의 수신자, 제목, 내용으로 정확히 매칭합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.Display vs .Send&lt;/b&gt;: 처음에는 &lt;code&gt;.Display&lt;/code&gt;를 써서 메일이 잘 만들어졌는지 눈으로 확인하세요. 완벽하다면 &lt;code&gt;.Send&lt;/code&gt;로 바꿔서 클릭 한 번에 전송까지 끝낼 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #fff5f5; padding: 25px; border-radius: 10px; border: 2px solid #5a1217; margin-top: 40px;&quot;&gt;
&lt;h4 style=&quot;margin-top: 0; color: #5a1217; font-size: 1.2em;&quot; data-ke-size=&quot;size20&quot;&gt;⚠️ 칵칵의 포인트 해설: 여기서 실수하면 큰일 납니다!&lt;/h4&gt;
&lt;ul style=&quot;margin-bottom: 0; font-size: 1em; line-height: 1.9; color: #444;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;실수 1: Outlook 실행 상태&lt;/b&gt; - 이 매크로를 돌리기 전, 반드시 Outlook 프로그램이 켜져 있어야 합니다. 안 그러면 런타임 오류가 발생합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 2: 보안 경고창&lt;/b&gt; - 외부 프로그램이 메일을 보내려 할 때 보안 알림이 뜰 수 있습니다. 회사 보안 설정에 따라 확인 버튼을 수동으로 눌러야 할 수도 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 3: 잘못된 주소 형식&lt;/b&gt; - 이메일 주소에 &lt;code&gt;@&lt;/code&gt;가 빠지거나 오타가 있으면 매크로가 중간에 멈춥니다. 실행 전 **[공백 제거]**와 주소 체크는 필수입니다!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 4: 대량 발송의 위험&lt;/b&gt; - 수백 통을 1초 만에 &lt;code&gt;.Send&lt;/code&gt;로 보내면 스팸 서버로 오인받아 계정이 차단될 수 있습니다. 20~30통 단위로 끊어서 발송하는 것을 권장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center; margin-top: 30px;&quot;&gt;#엑셀VBA #Outlook자동화 #이메일발송매크로 #업무자동화 #칼퇴꿀팁 #물류관리 #VBA강좌 #직장인코딩 #데이터정리 #엑셀꿀팁 #칵칵 #자동화코드 #메일대량발송 #엑셀초보탈출&lt;/div&gt;
&lt;p style=&quot;text-align: right; font-style: italic; color: #7f8c8d; margin-top: 20px;&quot; data-ke-size=&quot;size16&quot;&gt;다음 엑셀 이야기 예고: 「엑셀 VBA (12편): 조건에 맞는 데이터만 PDF로 변환하여 자동 저장하기」&lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩으로 시간 벌기/엑셀 VBA</category>
      <category>Outlook자동화</category>
      <category>VBA강좌</category>
      <category>업무자동화</category>
      <category>엑셀VBA</category>
      <category>엑셀꿀팁</category>
      <category>이메일발송매크로</category>
      <category>직장인코딩</category>
      <category>칼퇴꿀팁</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/70</guid>
      <comments>https://kackac.tistory.com/70#entry70comment</comments>
      <pubDate>Sat, 4 Apr 2026 00:01:38 +0900</pubDate>
    </item>
    <item>
      <title>소설로 읽는 수학사: 가우스 편 (2부): 유클리드의 성벽을 허물다 - 정17각형의 기적</title>
      <link>https://kackac.tistory.com/69</link>
      <description>&lt;div class=&quot;goryeo-wrap&quot;&gt;
&lt;style&gt;
.goryeo-wrap { font-family: 'Noto Serif KR', Georgia, serif; font-size: 17.5px; line-height: 2.2; color: #1a1a1a; max-width: 100%; letter-spacing: -0.03em; }
.goryeo-wrap h1 { font-size: 30px; font-weight: 800; color: #5a1217; line-height: 1.3; margin-bottom: 12px; letter-spacing: -0.05em; }
.goryeo-wrap h2.subtitle { font-size: 19px; font-weight: 400; color: #666; margin-top: 0; margin-bottom: 60px; font-family: 'Noto Sans KR', sans-serif; border: none; padding: 0; }
.goryeo-wrap .novel-section { background: #ffffff; border-top: 2px solid #5a1217; border-bottom: 2px solid #5a1217; padding: 100px 50px; margin: 50px 0; position: relative; }
.goryeo-wrap .novel-label { font-size: 11px; font-weight: 700; letter-spacing: 5px; color: #5a1217; text-transform: uppercase; margin-bottom: 60px; display: block; text-align: center; }
.goryeo-wrap .novel-section p { margin-bottom: 40px; text-indent: 1.2em; text-align: justify; word-break: keep-all; }
.goryeo-wrap .dialogue-block { margin: 50px 0 50px 10%; border-left: 1px solid #5a1217; padding-left: 35px; }
.goryeo-wrap .dialogue-block p { margin: 18px 0; text-indent: 0 !important; color: #222; font-size: 17px; line-height: 1.8; font-style: normal; }
.goryeo-wrap .scene-break { text-align: center; color: #ddd; font-size: 30px; margin: 80px 0; font-weight: 200; letter-spacing: 15px; }
.goryeo-wrap .dark-quote { background: #1a1a1a; color: #c9c9c9; padding: 60px; margin: 60px 0; border-radius: 0; font-style: normal; font-size: 16.5px; line-height: 2.2; text-align: center; font-weight: 300; border-left: 10px solid #5a1217; }
.goryeo-wrap .study-section { margin-top: 120px; padding: 0 10px; }
.goryeo-wrap .study-section h2.study-title { font-size: 24px; font-weight: 800; color: #1a1a1a; border-bottom: 3px solid #1a1a1a; padding-bottom: 15px; margin-bottom: 45px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .study-section h3 { font-size: 19px; font-weight: 700; color: #222; margin: 60px 0 20px 0; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap table { width: 100%; border-collapse: collapse; margin: 35px 0 60px 0; font-size: 15px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap th { background: #f4f4f4; color: #111; padding: 18px; text-align: center; font-weight: 700; border-top: 2px solid #111; border-bottom: 1px solid #ccc; }
.goryeo-wrap td { padding: 18px; border-bottom: 1px solid #eee; vertical-align: middle; font-size: 15px; line-height: 1.9; text-align: center; }
.goryeo-wrap .concept-box { background: #fdfaf7; border: 1px solid #e1d8d0; padding: 40px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; }
.goryeo-wrap .concept-box li { margin-bottom: 18px; line-height: 1.95; color: #333; }
.goryeo-wrap .warning-box { background: #fff5f5; border-left: 5px solid #5a1217; padding: 30px 35px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; color: #5a1217; }
.goryeo-wrap .memory-box { background: #1a1a1a; color: #fff; padding: 50px; margin: 60px 0; text-align: center; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .memory-box .label { font-size: 11px; letter-spacing: 5px; color: #777; margin-bottom: 25px; text-transform: uppercase; }
.goryeo-wrap .memory-box .chant { font-size: 18.5px; font-weight: 700; color: #e1d8d0; line-height: 2.1; }
.goryeo-wrap .outro { margin-top: 100px; padding-top: 60px; border-top: 1px solid #eee; font-family: 'Noto Sans KR', sans-serif; font-size: 16.5px; color: #444; line-height: 2.1; }
.goryeo-wrap strong { color: #5a1217; font-weight: 800; }
&lt;/style&gt;

&lt;h1&gt;소설로 읽는 수학사: 가우스 편 (2부)&lt;/h1&gt;
&lt;h2 class=&quot;subtitle&quot;&gt;유클리드의 성벽을 허물다 &amp;mdash; 정17각형의 기적&lt;/h2&gt;

&lt;div class=&quot;novel-section&quot;&gt;
&lt;span class=&quot;novel-label&quot;&gt;A Narrative of Mathematical Breakthrough&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;괴팅겐의 새벽은 차가운 양철 냄새를 풍기며 밝아왔다. 1796년 3월 30일, 열아홉 살의 카를 프리드리히 가우스는 자신의 좁은 하숙방 창가에 서 있었다. 어둠이 걷히지 않은 거리는 눅눅한 안개에 잠겨 있었고, 촛불은 밤새 흘린 눈물처럼 녹아내려 바닥에 고여 있었다. 그의 손가락 마디마디에는 자작나무 막대기를 깎으며 묻은 미세한 나무 가루와 잉크가 섞여 비릿한 냄새를 내뿜고 있었다. 책상 위에는 컴퍼스의 날카로운 끝에 긁힌 무수한 원의 잔해들이 유령처럼 흩어져 있었다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;지난 2천 년 동안, 기하학은 유클리드가 쌓아 올린 견고한 성벽이었다. 눈금 없는 자와 컴퍼스만으로 정다각형을 작도하는 일은 고대 그리스 이후 수학자들에게 주어진 신성한 형벌과 같았다. 정삼각형, 정사각형, 정오각형... 하지만 그 너머의 세계는 철저히 금지되어 있었다. 특히 '정17각형'은 인간의 사유가 닿을 수 없는 신의 영역이라 여겨졌다. 수많은 천재가 그 성벽 앞에서 좌절하며 펜을 꺾었고, 무모한 도전은 오만이라는 이름으로 치부되었다. 가우스 또한 그 벽 앞에 선 한 명의 무력한 청년일 뿐이었다.&lt;/p&gt;

&lt;div class=&quot;dialogue-block&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;“어째서 선은 곡선을 이길 수 없는가. 어째서 숫자는 형상을 온전히 담아내지 못하는가.”&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그는 낮게 읊조리며 깎다 만 나무 조각을 만져보았다. 가우스에게 기하학은 단순히 선을 긋는 유희가 아니었다. 그것은 대수(Algebra)라는 영혼이 기하라는 육체를 입는 과정이었다. 그는 유클리드가 남긴 도구를 내려놓고, 보이지 않는 숫자의 배열에 집중하기 시작했다. 복소수 평면 위에서 춤추는 단위근(Roots of Unity)들. 그 추상적인 숫자들이 만들어내는 정교한 대칭이 비로소 그의 망막 위에 선명하게 맺혔다.&lt;/p&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;순간, 번개 같은 통찰이 그의 머릿속을 스치고 지나갔다. 정다각형의 작도는 더 이상 기하학의 문제가 아니었다. 그것은 '방정식의 해'를 구하는 문제였고, 특정한 수의 구조를 파악하는 대수학의 영역이었다. 17이라는 숫자가 가진 원시근(Primitive Root)의 비밀이 풀리는 순간, 가우스는 전율했다. 보이지 않는 숫자의 사슬이 엮여 완벽한 정17각형의 뼈대를 형성하고 있었다. 그는 떨리는 손으로 컴퍼스를 쥐었다. 첫 번째 점을 찍고, 두 번째 선을 그었다. 유클리드 이후 그 누구도 가보지 못한 길, 2천 년의 침묵이 단 한 번의 작도로 깨지는 순간이었다.&lt;/p&gt;

&lt;div class=&quot;scene-break&quot;&gt;...&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;새벽 공기가 그의 폐부 깊숙이 파고들었으나 가우스는 추위를 느끼지 못했다. 석판 위에 그려진 정갈한 정17각형은 그 어떤 예술 작품보다 숭고하게 빛나고 있었다. 그것은 가난한 벽돌공의 아들이 인류에게 바치는 가장 차가운 헌사였으며, 수학의 왕좌를 향해 내딛는 장엄한 첫 발자국이었다. 그는 자신의 일기장에 라틴어로 짧게 적었다. &lt;b&gt;&quot;다각형의 작도에 관한 새로운 발견(Eureka).&quot;&lt;/b&gt; 그 문장은 훗날 그가 남길 무수한 진리의 서막에 불과했다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;가우스는 이 발견을 너무나 사랑한 나머지, 자신의 묘비에 정17각형을 새겨달라는 유언을 남기기도 했다. 비록 석공이 그 정교한 각도를 깎아내지 못해 원처럼 보일까 두려워 거절했지만, 가우스의 가슴 속에는 평생 그 새벽의 정17각형이 타오르고 있었다. 그는 이제 알았다. 숫자는 세상을 가두는 감옥이 아니라, 보이지 않는 진리의 실루엣을 그려내는 유일한 붓이라는 것을. 괴팅겐의 해가 떠오를 때, 청년 가우스는 더 이상 아테네의 그림자를 쫓지 않았다. 그는 이미 스스로 빛나는 별이 되어 우주의 문법을 새로 적기 시작했다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;오늘날 우리가 GPS를 켜고, 건물의 하중을 계산하고, 암호화된 통신을 주고받을 때, 그 기저에는 19살 가우스가 발견한 수의 대칭성이 흐르고 있다. 2천 년의 시간을 건너뛴 그 청년의 사유는 지금 이 순간에도 우리 곁에 공기처럼 머물러 있다. 정17각형은 단순한 도형이 아니었다. 그것은 불가능이라는 단어를 수학의 사전에서 지워버린 한 인간의 위대한 자부심이었다.&lt;/p&gt;

&lt;div class=&quot;dark-quote&quot;&gt;성벽은 무너졌고, 금기는 해방되었다.&lt;br /&gt;그 새벽, 자작나무 조각 위에 새겨진 것은 단순한 선이 아니라,&lt;br /&gt;우주가 자신을 설명하기 위해 빌려준 단 하나의 완벽한 문장이었다.&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;study-section&quot;&gt;
&lt;h2 class=&quot;study-title&quot;&gt;  수학사 핵심 요약: 가우스와 정17각형의 작도 (2부)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 정17각형 작도 가능성의 발견 (1796)&lt;/h3&gt;
&lt;div class=&quot;concept-box&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;발견의 의의&lt;/b&gt;: 고대 그리스 유클리드 이후 2,000년 동안 진전이 없던 작도 분야에서 최초의 획기적인 성과를 거둠.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;방법론적 혁신&lt;/b&gt;: 기하학 문제를 대수학(방정식)의 문제로 치환하여 해결. 이는 현대 대수학의 기틀이 됨.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;작도 조건&lt;/b&gt;: 눈금 없는 자와 컴퍼스만을 사용하여 정17각형을 그릴 수 있음을 증명함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 주요 핵심 개념 정리 &lt;span class=&quot;star&quot; style=&quot;color: #5a1217;&quot;&gt;★★★★★&lt;/span&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;내용&lt;/th&gt;
&lt;th&gt;역사적 배경&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;작도 가능 다각형&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;페르마 소수와 연관된 규칙 발견&lt;/td&gt;
&lt;td&gt;$2^{2^n}+1$ 형태의 소수가 작도의 핵심&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;대수적 접근&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;복소수 평면과 단위근 활용&lt;/td&gt;
&lt;td&gt;기하학을 수식의 세계로 통합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;학문적 전환점&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;가우스가 수학자의 길을 걷기로 결심한 계기&lt;/td&gt;
&lt;td&gt;원래 언어학도가 되려 했으나 이 발견으로 전향&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;warning-box&quot;&gt;
&lt;b&gt;  수험생 주의 포인트!&lt;/b&gt;&lt;br&gt;
가우스의 작도는 '작도법'을 먼저 찾은 것이 아니라 '작도가 가능하다'는 것을 수식으로 **먼저 증명**했다는 점이 중요합니다. 시험에서는 정다각형 작도 조건인 '페르마 소수'의 개념과 연결하여 출제되기도 하니 주의 깊게 살펴보세요!
&lt;/div&gt;

&lt;div class=&quot;memory-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;✏ 핵심 암기 구호&lt;/div&gt;
&lt;div class=&quot;chant&quot;&gt;&quot;2천 년의 침묵 깬 정17각형의 기적!&quot;&lt;br /&gt;&quot;기하를 대수로 푼 가우스의 유레카!&quot;&lt;br /&gt;&quot;묘비에 새기려던 불멸의 다각형!&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;outro&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정17각형의 기적을 일궈낸 가우스는 이제 땅에서 시선을 돌려 하늘의 비밀을 쫓기 시작합니다. 다음 편에서는 인류의 시야에서 사라진 행성 '세레스'를 오직 계산만으로 찾아낸 천문학적 대서사가 펼쳐집니다.&lt;/p&gt;
&lt;div class=&quot;next-episode&quot;&gt;  &lt;b&gt;다음 수학 이야기 예고&lt;/b&gt;&lt;br /&gt;&lt;b&gt;「소설로 읽는 수학사: 가우스 편 (3부): 사라진 별을 찾아서 — 최소제곱법과 세레스의 부활」&lt;/b&gt;&lt;br /&gt;밤하늘에서 길을 잃은 별 세레스. 전 세계 학자들이 포기했을 때, 24살의 가우스는 어떻게 펜 끝으로 별의 위치를 지목했을까요?&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center;&quot;&gt;
#수학사 #가우스 #정17각형 #작도 #유클리드기하학 #괴팅겐대학 #수학소설 #과학사 #근대수학 #한능검수학 #블로그작가 #수학이야기 #가우스일기 #수학의왕 #Princeps
&lt;/div&gt;</description>
      <category>이야기/수학</category>
      <category>가우스</category>
      <category>괴팅겐대학</category>
      <category>수학소설</category>
      <category>유클리드기하학</category>
      <category>작도</category>
      <category>정17각형</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/69</guid>
      <comments>https://kackac.tistory.com/69#entry69comment</comments>
      <pubDate>Sat, 4 Apr 2026 00:00:34 +0900</pubDate>
    </item>
    <item>
      <title>물류 실무 엑셀 (18편): 텍스트와 숫자를 내 맘대로! - 문자를 합치고 나누는 기술 (&amp;amp;, LEFT, RIGHT)</title>
      <link>https://kackac.tistory.com/68</link>
      <description>&lt;div class=&quot;excel-basic-wrap&quot; style=&quot;font-family: 'Noto Sans KR', sans-serif; line-height: 2.0; color: #2c3e50; max-width: 850px; margin: auto;&quot;&gt;
    &lt;h2 style=&quot;text-align: center; color: #27ae60; border-bottom: 2px solid #27ae60; padding-bottom: 15px;&quot;&gt;물류 실무 엑셀 (18편): 텍스트와 숫자를 내 맘대로! &amp;mdash; 문자를 합치고 나누는 기술 (&amp;, LEFT, RIGHT)&lt;/h2&gt;
    
    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    
    &lt;div class=&quot;excel-content&quot;&gt;
        &lt;p&gt;안녕하세요, 물류 현장의 파편화된 데이터를 하나로 엮어드리는 '칵칵'입니다. ☕&lt;/p&gt;
        
        &lt;p&gt;시스템에서 데이터를 내려받았을 때, &lt;strong&gt;&quot;품목코드와 수량을 합쳐서 비고란에 넣어야 할 때&quot;&lt;/strong&gt;나, &lt;strong&gt;&quot;운송장 번호 앞자리 3개만 추출해서 지역을 구분해야 할 때&quot;&lt;/strong&gt;... 혹시 손으로 하나하나 치고 계신가요? 오늘은 텍스트를 자유자재로 요리하는 기초 중의 기초 기술을 배워보겠습니다.&lt;/p&gt;

        &lt;h3 style=&quot;color: #2ecc71; border-left: 5px solid #2ecc71; padding-left: 10px; margin-top: 40px;&quot;&gt;✅ 1. 문자를 합치는 마법: &amp; (앰퍼샌드) 연산자&lt;/h3&gt;
        &lt;p&gt;함수 이름을 외울 필요도 없습니다. 셀 주소 사이에 &lt;strong&gt;&amp;&lt;/strong&gt; 기호만 넣어주면 끝입니다.&lt;/p&gt;
        &lt;div style=&quot;background: #f1f2f6; border: 1px solid #ddd; padding: 20px; margin: 20px 0; border-radius: 8px;&quot;&gt;
            &lt;p style=&quot;font-weight: bold; margin-bottom: 10px;&quot;&gt;[예시] A2(품명)와 B2(규격) 합치기&lt;/p&gt;
            &lt;code style=&quot;font-size: 1.1em; color: #2980b9;&quot;&gt;=A2 &amp; &quot;-&quot; &amp; B2&lt;/code&gt; &lt;br&gt;
            &lt;span style=&quot;color: #666; font-size: 0.9em;&quot;&gt;결과: &quot;사과-10kg&quot; (중간에 텍스트를 넣으려면 큰따옴표 &quot;&quot;를 사용하세요!)&lt;/span&gt;
        &lt;/div&gt;

        &lt;h3 style=&quot;color: #2ecc71; border-left: 5px solid #2ecc71; padding-left: 10px; margin-top: 30px;&quot;&gt;✅ 2. 왼쪽/오른쪽에서 쏙 뽑아내기: LEFT, RIGHT 함수&lt;/h3&gt;
        &lt;p&gt;긴 일련번호에서 필요한 부분만 가져올 때 사용합니다.&lt;/p&gt;
        &lt;ul style=&quot;line-height: 2.2;&quot;&gt;
            &lt;li&gt;&lt;strong&gt;=LEFT(A2, 3)&lt;/strong&gt; : A2 셀의 왼쪽에서부터 3글자만 가져옵니다. (예: &quot;서울-강서&quot; -&gt; &quot;서울-&quot;)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;=RIGHT(A2, 4)&lt;/strong&gt; : A2 셀의 오른쪽 끝에서부터 4글자를 가져옵니다.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    &lt;div style=&quot;background-color: #fff3e0; padding: 25px; border-radius: 10px; border: 2px solid #ff9800; margin-top: 40px;&quot;&gt;
        &lt;h4 style=&quot;margin-top: 0; color: #e65100; font-size: 1.2em;&quot;&gt;⚠️ 칵칵의 포인트 해설: 여기서 실수하면 결과가 이상해집니다!&lt;/h4&gt;
        &lt;ul style=&quot;margin-bottom: 0; font-size: 1em; line-height: 2.0; color: #444;&quot;&gt;
            &lt;li&gt;&lt;strong&gt;실수 1: 큰따옴표(&quot;&quot;) 누락&lt;/strong&gt; - 문자를 직접 연결할 때 &lt;code&gt;&amp; 사과 &amp;&lt;/code&gt;라고 쓰면 엑셀은 '사과'를 함수 이름으로 착각해 에러를 냅니다. 반드시 &lt;code&gt;&amp; &quot;사과&quot; &amp;&lt;/code&gt;라고 써주세요.&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;실수 2: 숫자가 문자로 변함&lt;/strong&gt; - &lt;code&gt;&amp;&lt;/code&gt; 연산자로 합쳐진 결과는 겉보기엔 숫자라도 엑셀은 **'텍스트'**로 인식합니다. 합친 숫자를 가지고 더하기(+)를 하면 오류가 날 수 있으니 주의하세요!&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;실수 3: 공백 포함 추출&lt;/strong&gt; - LEFT 함수로 3글자를 가져왔는데 생각보다 글자가 적다면, 원본 데이터 앞에 **보이지 않는 공백**이 있는 경우가 많습니다. &lt;strong&gt;TRIM 함수&lt;/strong&gt;를 먼저 사용하세요.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;p&gt;&amp;nbsp;&lt;/p&gt;
    &lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center; margin-top: 30px;&quot;&gt;
        #엑셀기초 #텍스트합치기 #문자추출 #LEFT함수 #RIGHT함수 #앰퍼샌드연산자 #물류실무 #직장인엑셀 #칼퇴비법 #데이터정리 #문자함수 #칵칵 #보고서작성 #엑셀꿀팁 #시간단축
    &lt;/div&gt;
    &lt;p style=&quot;text-align: right; font-style: italic; color: #7f8c8d; margin-top: 20px;&quot;&gt;다음 엑셀 이야기 예고: 「엑셀 기초 (19편): 특정 단어만 쏙! 찾아서 한꺼번에 바꾸는 REPLACE와 SUBSTITUTE」&lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩으로 시간 벌기/엑셀 입문</category>
      <category>&amp;lt;/DIV&amp;gt;</category>
      <category>LEFT함수</category>
      <category>RIGHT함수</category>
      <category>문자추출</category>
      <category>시간단축</category>
      <category>앰퍼샌드연산자</category>
      <category>엑셀기초</category>
      <category>직장인엑셀</category>
      <category>칼퇴비법</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/68</guid>
      <comments>https://kackac.tistory.com/68#entry68comment</comments>
      <pubDate>Wed, 1 Apr 2026 21:17:45 +0900</pubDate>
    </item>
    <item>
      <title>소설로 읽는 고려사 (15편): 부서진 사랑의 노래 - 공민왕의 생애 (3부: 노국공주의 서거)</title>
      <link>https://kackac.tistory.com/67</link>
      <description>&lt;div class=&quot;goryeo-wrap&quot;&gt;
&lt;style&gt;
.goryeo-wrap { font-family: 'Noto Serif KR', Georgia, serif; font-size: 17.5px; line-height: 2.2; color: #1a1a1a; max-width: 100%; letter-spacing: -0.03em; }
.goryeo-wrap h1 { font-size: 30px; font-weight: 800; color: #5a1217; line-height: 1.3; margin-bottom: 12px; letter-spacing: -0.05em; }
.goryeo-wrap h2.subtitle { font-size: 19px; font-weight: 400; color: #666; margin-top: 0; margin-bottom: 60px; font-family: 'Noto Sans KR', sans-serif; border: none; padding: 0; }
.goryeo-wrap .novel-section { background: #ffffff; border-top: 2px solid #5a1217; border-bottom: 2px solid #5a1217; padding: 100px 50px; margin: 50px 0; position: relative; }
.goryeo-wrap .novel-label { font-size: 11px; font-weight: 700; letter-spacing: 5px; color: #5a1217; text-transform: uppercase; margin-bottom: 60px; display: block; text-align: center; }
.goryeo-wrap .novel-section p { margin-bottom: 40px; text-indent: 1.2em; text-align: justify; word-break: keep-all; }
.goryeo-wrap .dialogue-block { margin: 50px 0 50px 10%; border-left: 1px solid #5a1217; padding-left: 35px; }
.goryeo-wrap .dialogue-block p { margin: 18px 0; text-indent: 0 !important; color: #222; font-size: 17px; line-height: 1.8; font-style: normal; }
.goryeo-wrap .scene-break { text-align: center; color: #ddd; font-size: 30px; margin: 80px 0; font-weight: 200; letter-spacing: 15px; }
.goryeo-wrap .dark-quote { background: #1a1a1a; color: #c9c9c9; padding: 60px; margin: 60px 0; border-radius: 0; font-style: normal; font-size: 16.5px; line-height: 2.2; text-align: center; font-weight: 300; border-left: 10px solid #5a1217; }
.goryeo-wrap .study-section { margin-top: 120px; padding: 0 10px; }
.goryeo-wrap .study-section h2.study-title { font-size: 24px; font-weight: 800; color: #1a1a1a; border-bottom: 3px solid #1a1a1a; padding-bottom: 15px; margin-bottom: 45px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .study-section h3 { font-size: 19px; font-weight: 700; color: #222; margin: 60px 0 20px 0; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap table { width: 100%; border-collapse: collapse; margin: 35px 0 60px 0; font-size: 15px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap th { background: #f4f4f4; color: #111; padding: 18px; text-align: center; font-weight: 700; border-top: 2px solid #111; border-bottom: 1px solid #ccc; }
.goryeo-wrap td { padding: 18px; border-bottom: 1px solid #eee; vertical-align: middle; font-size: 15px; line-height: 1.9; text-align: center; }
.goryeo-wrap .concept-box { background: #fdfaf7; border: 1px solid #e1d8d0; padding: 40px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; }
.goryeo-wrap .concept-box li { margin-bottom: 18px; line-height: 1.95; color: #333; }
.goryeo-wrap .warning-box { background: #fff5f5; border-left: 5px solid #5a1217; padding: 30px 35px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; color: #5a1217; }
.goryeo-wrap .memory-box { background: #1a1a1a; color: #fff; padding: 50px; margin: 60px 0; text-align: center; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .memory-box .label { font-size: 11px; letter-spacing: 5px; color: #777; margin-bottom: 25px; text-transform: uppercase; }
.goryeo-wrap .memory-box .chant { font-size: 18.5px; font-weight: 700; color: #e1d8d0; line-height: 2.1; }
.goryeo-wrap .outro { margin-top: 100px; padding-top: 60px; border-top: 1px solid #eee; font-family: 'Noto Sans KR', sans-serif; font-size: 16.5px; color: #444; line-height: 2.1; }
.goryeo-wrap strong { color: #5a1217; font-weight: 800; }
&lt;/style&gt;

&lt;h1&gt;소설로 읽는 고려사 (15편)&lt;/h1&gt;
&lt;h2 class=&quot;subtitle&quot;&gt;부서진 사랑의 노래 &amp;mdash; 공민왕의 생애 (3부: 노국공주의 서거)&lt;/h2&gt;

&lt;div class=&quot;novel-section&quot;&gt;
&lt;span class=&quot;novel-label&quot;&gt;A Narrative of Tragedy&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1365년의 개경은 유난히도 습하고 무거운 침묵에 잠겨 있었다. 봄이 왔으나 꽃의 향기보다 산실(産室)에서 새어 나오는 비릿한 혈향이 먼저 공기를 가득 채웠다. 공민왕 왕전은 떨리는 손으로 문살을 움켜쥐었다. 손톱이 나무 결을 파고들어 끝내 피가 맺혔으나, 그 통증조차 안에서 들려오는 여인의 가느다란 신음 소리를 지우지는 못했다. 노국대장공주. 제국의 이름으로 왔으나 고려의 심장이 되었던 여인. 그녀의 산통은 단순히 새 생명을 기다리는 고통이 아니라, 기우는 고려의 운명을 홀로 짊어진 자의 마지막 투쟁처럼 처절했다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;왕의 머릿속에는 연경의 차가운 눈보라 속에서 보았던 그녀의 첫 모습이 스쳐 지나갔다. 볼모였던 자신을 향해 유일하게 따스한 그림자를 드리워주던 사람. 그녀는 공민왕에게 아내이기 이전에, 개혁의 험로를 함께 걷는 유일한 동지였으며 고립된 왕좌에서 유일하게 숨 쉴 수 있는 창구였다. 그러나 하늘은 비정했다. 난산(難産) 끝에 들려온 것은 아이의 울음이 아니라, 모든 빛이 꺼져버린 적막뿐이었다. 공주가 숨을 거두던 순간, 고려의 개혁 또한 그 가녀린 숨결과 함께 멈춰버렸다.&lt;/p&gt;

&lt;div class=&quot;dialogue-block&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;“공주, 어찌 나를 이 사막에 홀로 남겨두고 떠나려 하오. 당신 없는 고려가 과연 무슨 의미가 있단 말이오.”&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왕의 통곡은 궁궐의 높은 단청을 타고 넘어 밤새도록 개경을 울렸다. 식어가는 공주의 손을 부여잡은 그의 눈동자에서 생기가 빠져나가고, 그 자리에 지독하게 차가운 광기와 허무가 내려앉기 시작했다. 사랑하는 이를 지키지 못한 자책은 곧 세상을 향한 분노가 되었고, 개혁의 칼날을 벼리던 손은 이제 영혼을 달래는 초상화 앞에 붓을 들 뿐이었다.&lt;/p&gt;
&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;장례가 끝난 후, 공민왕은 더 이상 예전의 왕전이 아니었다. 정무를 돌보던 편전은 먼지가 쌓여갔고, 대신 왕은 공주의 초상화를 보며 대화를 나누기 시작했다. 그는 화려한 사찰을 짓고 공주의 명복을 비는 일에 국가의 재정을 쏟아부었다. 신하들이 간언할 때마다 그의 눈에는 살기가 등등했다. 그에게는 이제 개혁보다 죽은 자의 혼백을 붙잡는 일이 더 시급했다. 왕의 슬픔은 지층처럼 쌓여 고려의 근간을 짓눌렀고, 그 틈을 타 권문세족들은 다시 독초처럼 자라나 백성들의 고혈을 짜냈다.&lt;/p&gt;

&lt;div class=&quot;scene-break&quot;&gt;...&lt;/div&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;절망의 늪에서 왕이 건져 올린 마지막 지푸라기는 '신돈'이라는 기괴한 승려였다. 신분도, 족보도 없는 이 사내에게 왕은 전권을 위임했다. 그것은 개혁을 위한 결단이라기보다, 정사에서 도망치고 싶은 왕의 비겁한 퇴로에 가까웠다. 신돈은 **전민변정도감**을 통해 권세가들이 빼앗은 땅을 돌려주고 노비들을 해방시켰다. 잠시나마 백성들의 환호가 들려왔으나, 그것은 폭풍 전야의 일시적인 정적이었다. 권문세족의 분노는 지하에서 마그마처럼 끓어올랐고, 왕의 유일한 방패였던 신돈조차 권력의 맛에 취해 서서히 변질되어갔다.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;공민왕은 깊은 밤, 거울 속의 자신을 바라보았다. 변발을 자르며 맹세했던 자주 고려의 꿈은 노국공주의 무덤가에 핀 이끼처럼 시들어 있었다. 왕은 이제 아름다운 미소년들을 모아 '자제위'를 만들고 그들과 어울리며 현실의 고통을 잊으려 했다. 개혁의 거인은 이제 병든 짐승이 되어 자신의 굴 속으로 숨어들었다. 1374년, 가을바람이 차갑게 불던 밤. 자신이 가장 믿었던 자제위들의 칼날이 왕의 침소로 향했을 때, 공민왕은 오히려 담담했다. 어쩌면 그는 오랫동안 기다려온 것일지도 몰랐다. 공주가 기다리고 있을 저 너머의 어둠을.&lt;/p&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;왕의 피가 대리석 바닥을 적셨을 때, 고려의 마지막 개혁의 불꽃도 꺼졌다. 그의 죽음은 한 남자의 몰락이자, 한 시대의 종언이었다. 노국공주를 향한 지독한 사랑이 만든 찬란한 시작과, 그 상실이 불러온 비극적인 끝. 공민왕의 생애는 고려라는 거대한 배가 난파하기 직전 내지른 마지막 비명이었다. 우리는 그 비명 속에서 묻는다. 사랑이 사라진 자리에서 정치는 무엇을 할 수 있는가. 그의 무덤 옆에 나란히 누운 노국공주의 영혼만이 그 서글픈 질문에 침묵으로 답하고 있을 뿐이다.&lt;/p&gt;

&lt;div class=&quot;dark-quote&quot;&gt;사랑은 나라를 세우는 기둥이었으나, 그 상실은 성벽을 허무는 파도가 되었다.&lt;br /&gt;정인이 잠든 흙 위에서 개혁을 꿈꿨던 왕, 그의 슬픔은 고려의 마지막 지도가 되어 남았다.&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;study-section&quot;&gt;
&lt;h2 class=&quot;study-title&quot;&gt;  한능검 핵심 요약: 공민왕의 개혁 정치와 몰락 (3부)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 노국대장공주의 서거와 정치적 변화&lt;/h3&gt;
&lt;div class=&quot;concept-box&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;공주의 상실&lt;/b&gt;: 가장 강력한 지지자였던 노국공주의 죽음 이후 공민왕은 정무를 멀리하고 불사와 초상화에 집착함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개혁의 동력 상실&lt;/b&gt;: 왕의 심리적 붕괴로 인해 초기의 반원 자주 개혁 정책이 점차 퇴색함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 신돈의 등용과 전민변정도감 &lt;span class=&quot;star&quot; style=&quot;color: #5a1217;&quot;&gt;★★★★★&lt;/span&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;주요 정책&lt;/th&gt;
&lt;th&gt;내용&lt;/th&gt;
&lt;th&gt;영향&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;신돈 등용&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;승려 신돈에게 모든 권력을 위임하여 개혁 추진&lt;/td&gt;
&lt;td&gt;권문세족의 강력한 반발 초래&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;전민변정도감&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;부당하게 빼앗긴 토지 환수 및 노비 해방&lt;/td&gt;
&lt;td&gt;국가 재정 확충 및 농민 생활 안정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;성균관 정비&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;신진사대부 육성을 통해 신구 세력 교체 도모&lt;/td&gt;
&lt;td&gt;조선 건국 세력(이색, 정몽주 등)의 성장&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;warning-box&quot;&gt;
&lt;b&gt;  수험생 시험 적중 포인트!&lt;/b&gt;&lt;br&gt;
공민왕의 개혁 기구인 **'전민변정도감'**은 한능검 단골 키워드입니다. 이때 함께 언급되는 인물인 **'신돈'**과 연결하는 문제가 자주 출제됩니다. 또한 개혁이 실패로 돌아가며 공민왕이 **'자제위'**에 의해 시해되었다는 역사적 사실을 순서 나열 문제에서 꼭 기억하세요!
&lt;/div&gt;

&lt;div class=&quot;memory-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;✏ 암기 구호 및 핵심 정리&lt;/div&gt;
&lt;div class=&quot;chant&quot;&gt;&quot;노국공주 죽고나서 공민왕은 슬퍼하고!&quot;&lt;br /&gt;&quot;신돈 등용 전민변정, 뺏긴 토지 돌려주자!&quot;&lt;br /&gt;&quot;자제위의 칼날 아래, 고려 개혁 멈추었네!&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;outro&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공민왕의 비극적 죽음 이후, 고려는 급격히 쇠퇴의 길로 접어듭니다. 하지만 그 혼란의 끝에서 요동치는 역사를 바로잡으려 했던 이성계와 신진사대부들의 새로운 꿈이 움트기 시작합니다.&lt;/p&gt;
&lt;div class=&quot;next-episode&quot;&gt;  &lt;b&gt;다음 역사 이야기 예고&lt;/b&gt;&lt;br /&gt;&lt;b&gt;「소설로 읽는 고려사 (16편): 새로운 대륙의 서막 — 명나라의 건국과 이성계의 회군」&lt;/b&gt;&lt;br /&gt;지는 해 원나라를 뒤로하고 뜨는 해 명나라가 나타났습니다. 명의 무리한 요구 앞에 요동 정벌을 떠난 이성계, 그가 압록강 위에서 마주한 운명의 선택이 시작됩니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center;&quot;&gt;
#고려사 #공민왕 #노국대장공주 #신돈 #전민변정도감 #자제위 #공민왕시해 #개혁정치 #권문세족 #신진사대부 #역사소설 #한능검 #한국사능력검정시험 #역사공부 #블로그작가 #비극적사랑 #고려몰락
&lt;/div&gt;</description>
      <category>이야기/한국사</category>
      <category>개혁정치</category>
      <category>공민왕</category>
      <category>공민왕시해</category>
      <category>권문세족</category>
      <category>노국대장공주</category>
      <category>신돈</category>
      <category>신진사대부</category>
      <category>역사소설</category>
      <category>자제위</category>
      <category>전민변정도감</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/67</guid>
      <comments>https://kackac.tistory.com/67#entry67comment</comments>
      <pubDate>Wed, 1 Apr 2026 21:16:35 +0900</pubDate>
    </item>
    <item>
      <title>실무 자동화 (11편): 조건에 맞는 데이터만 &amp;quot;PDF로 자동 변환&amp;quot; 하여 저장하기</title>
      <link>https://kackac.tistory.com/66</link>
      <description>&lt;div class=&quot;excel-vba-wrap&quot; style=&quot;font-family: 'Noto Sans KR', sans-serif; line-height: 1.8; color: #2c3e50; max-width: 900px; margin: auto;&quot;&gt;
&lt;h2 style=&quot;text-align: center; color: #5a1217; border-bottom: 3px solid #5a1217; padding-bottom: 15px;&quot; data-ke-size=&quot;size26&quot;&gt;실무 자동화 (11편): 조건에 맞는 데이터만 &quot;PDF로 자동 변환&quot; 하여 저장하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요, 물류 현장의 비효율을 코딩으로 정복하는 '칵칵'입니다. ☕&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거래처별로 명세서를 보내거나 일일 보고서를 공유할 때, 엑셀 파일을 그대로 보내기보다 &lt;b&gt;내용 수정이 불가능한 PDF 형식&lt;/b&gt;을 선호하는 경우가 많습니다. 매번 [다른 이름으로 저장] &amp;rarr; [PDF 선택] &amp;rarr; [파일명 입력]... 이 과정을 50번 반복하고 계신가요? 오늘은 클릭 한 번으로 모든 데이터를 PDF로 굽고 폴더에 정돈하는 VBA 코드를 공개합니다.&lt;/p&gt;
&lt;h3 style=&quot;background: #fdf2f2; padding: 10px 15px; border-left: 5px solid #5a1217; color: #5a1217;&quot; data-ke-size=&quot;size23&quot;&gt;  PDF 자동 저장 VBA 코드&lt;/h3&gt;
&lt;div style=&quot;background: #1e1e1e; color: #dcdcdc; padding: 20px; border-radius: 8px; font-family: 'Consolas', monospace; overflow-x: auto; margin: 20px 0;&quot;&gt;
&lt;pre class=&quot;vbnet&quot; style=&quot;margin: 0;&quot;&gt;&lt;code&gt;Sub SaveAsPDF()
    Dim ws As Worksheet
    Dim savePath As String
    Dim fileName As String
    
    Set ws = ThisWorkbook.ActiveSheet
    
    ' 1. 저장할 경로 설정 (본인 폴더에 맞게 수정 필수!)
    savePath = &quot;C:\Users\Desktop\Report_PDF\&quot;
    
    ' 2. 파일명 설정 (예: A1셀의 제목 + 오늘 날짜)
    fileName = ws.Range(&quot;A1&quot;).Value &amp;amp; &quot;_&quot; &amp;amp; Format(Date, &quot;yyyymmdd&quot;) &amp;amp; &quot;.pdf&quot;
    
    ' 3. PDF 변환 및 저장 실행
    On Error Resume Next
    ws.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=savePath &amp;amp; fileName, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    
    If Err.Number = 0 Then
        MsgBox &quot;PDF 저장이 성공적으로 완료되었습니다!&quot;
    Else
        MsgBox &quot;저장 경로가 틀렸거나 오류가 발생했습니다.&quot;
    End If
    On Error GoTo 0
End Sub
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;margin-top: 40px; color: #5a1217;&quot; data-ke-size=&quot;size23&quot;&gt;  코드 핵심 해설 (실무 포인트)&lt;/h3&gt;
&lt;ul style=&quot;line-height: 2.0; list-style-type: square;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ExportAsFixedFormat&lt;/b&gt;: 엑셀 시트를 PDF나 XPS 같은 고정 형식으로 내보내는 핵심 명령입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Format(Date, &quot;yyyymmdd&quot;)&lt;/b&gt;: 파일명 뒤에 자동으로 오늘 날짜를 붙여주어 파일 관리를 용이하게 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IgnorePrintAreas:=False&lt;/b&gt;: 시트 내에 설정된 '인쇄 영역'만 PDF로 저장하게 합니다. 영역 밖의 불필요한 메모는 무시됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #fff5f5; padding: 25px; border-radius: 10px; border: 2px solid #5a1217; margin-top: 40px;&quot;&gt;
&lt;h4 style=&quot;margin-top: 0; color: #5a1217; font-size: 1.2em;&quot; data-ke-size=&quot;size20&quot;&gt;⚠️ 칵칵의 포인트 해설: 여기서 실수하면 저장 안 됩니다!&lt;/h4&gt;
&lt;ul style=&quot;margin-bottom: 0; font-size: 1em; line-height: 1.9; color: #444;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;실수 1: 폴더 미생성&lt;/b&gt; - &lt;code&gt;savePath&lt;/code&gt;에 적은 폴더가 실제로 존재해야 합니다. 폴더가 없으면 매크로는 파일을 만들지 못하고 에러를 뿜습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 2: 인쇄 영역 미설정&lt;/b&gt; - 인쇄 영역을 잡지 않고 돌리면 시트 전체가 엉뚱한 비율로 PDF화 될 수 있습니다. 실행 전 반드시 **[인쇄 영역 설정]**을 완료하세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 3: 파일명 금지 문자&lt;/b&gt; - &lt;code&gt;fileName&lt;/code&gt;으로 쓸 셀(A1 등)에 &lt;code&gt;/ \ : * ? &quot; &amp;lt; &amp;gt; |&lt;/code&gt; 기호가 있으면 저장이 안 됩니다. 특수문자를 제거하세요!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수 4: 같은 이름의 파일 열림&lt;/b&gt; - 이미 저장된 PDF 파일이 열려 있는 상태에서 매크로를 또 실행하면 '접근 권한 에러'가 발생합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center; margin-top: 30px;&quot;&gt;#엑셀VBA #PDF변환 #자동저장 #매크로 #업무자동화 #칼퇴꿀팁 #물류관리 #VBA강좌 #직장인코딩 #데이터정리 #엑셀꿀팁 #칵칵 #보고서자동화 #PDF내보내기 #엑셀초보&lt;/div&gt;
&lt;p style=&quot;text-align: right; font-style: italic; color: #7f8c8d; margin-top: 20px;&quot; data-ke-size=&quot;size16&quot;&gt;다음 엑셀 이야기 예고: 「엑셀 VBA (12편): 폴더 내의 수많은 PDF 파일 이름을 엑셀 데이터로 한 번에 변경하기」&lt;/p&gt;
&lt;/div&gt;</description>
      <category>코딩으로 시간 벌기/엑셀 VBA</category>
      <category>pdf내보내기</category>
      <category>pdf변환</category>
      <category>VBA강좌</category>
      <category>데이터정리</category>
      <category>매크로</category>
      <category>업무자동화</category>
      <category>엑셀VBA</category>
      <category>자동저장</category>
      <category>직장인코딩</category>
      <category>칼퇴꿀팁</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/66</guid>
      <comments>https://kackac.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 31 Mar 2026 10:34:05 +0900</pubDate>
    </item>
    <item>
      <title>소설로 읽는 수학사: 가우스 편 (1부): 황무지에 핀 기적 &amp;mdash; 소년, 숫자의 규칙을 훔치다</title>
      <link>https://kackac.tistory.com/65</link>
      <description>&lt;div class=&quot;goryeo-wrap&quot;&gt;
&lt;style&gt;
.goryeo-wrap { font-family: 'Noto Serif KR', Georgia, serif; font-size: 17.5px; line-height: 2.2; color: #1a1a1a; max-width: 100%; letter-spacing: -0.03em; }
.goryeo-wrap h1 { font-size: 30px; font-weight: 800; color: #5a1217; line-height: 1.3; margin-bottom: 12px; letter-spacing: -0.05em; }
.goryeo-wrap h2.subtitle { font-size: 19px; font-weight: 400; color: #666; margin-top: 0; margin-bottom: 60px; font-family: 'Noto Sans KR', sans-serif; border: none; padding: 0; }
.goryeo-wrap .novel-section { background: #ffffff; border-top: 2px solid #5a1217; border-bottom: 2px solid #5a1217; padding: 100px 50px; margin: 50px 0; position: relative; }
.goryeo-wrap .novel-label { font-size: 11px; font-weight: 700; letter-spacing: 5px; color: #5a1217; text-transform: uppercase; margin-bottom: 60px; display: block; text-align: center; }
.goryeo-wrap .novel-section p { margin-bottom: 40px; text-indent: 1.2em; text-align: justify; word-break: keep-all; }
.goryeo-wrap .dialogue-block { margin: 50px 0 50px 10%; border-left: 1px solid #5a1217; padding-left: 35px; }
.goryeo-wrap .dialogue-block p { margin: 18px 0; text-indent: 0 !important; color: #222; font-size: 17px; line-height: 1.8; font-style: normal; }
.goryeo-wrap .scene-break { text-align: center; color: #ddd; font-size: 30px; margin: 80px 0; font-weight: 200; letter-spacing: 15px; }
.goryeo-wrap .dark-quote { background: #1a1a1a; color: #c9c9c9; padding: 60px; margin: 60px 0; border-radius: 0; font-style: normal; font-size: 16.5px; line-height: 2.2; text-align: center; font-weight: 300; border-left: 10px solid #5a1217; }
.goryeo-wrap .study-section { margin-top: 120px; padding: 0 10px; }
.goryeo-wrap .study-section h2.study-title { font-size: 24px; font-weight: 800; color: #1a1a1a; border-bottom: 3px solid #1a1a1a; padding-bottom: 15px; margin-bottom: 45px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .study-section h3 { font-size: 19px; font-weight: 700; color: #222; margin: 60px 0 20px 0; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap table { width: 100%; border-collapse: collapse; margin: 35px 0 60px 0; font-size: 15px; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap th { background: #f4f4f4; color: #111; padding: 18px; text-align: center; font-weight: 700; border-top: 2px solid #111; border-bottom: 1px solid #ccc; }
.goryeo-wrap td { padding: 18px; border-bottom: 1px solid #eee; vertical-align: middle; font-size: 15px; line-height: 1.9; text-align: center; }
.goryeo-wrap .concept-box { background: #fdfaf7; border: 1px solid #e1d8d0; padding: 40px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; }
.goryeo-wrap .concept-box li { margin-bottom: 18px; line-height: 1.95; color: #333; }
.goryeo-wrap .warning-box { background: #fff5f5; border-left: 5px solid #5a1217; padding: 30px 35px; margin: 50px 0; font-family: 'Noto Sans KR', sans-serif; font-size: 16px; color: #5a1217; }
.goryeo-wrap .memory-box { background: #1a1a1a; color: #fff; padding: 50px; margin: 60px 0; text-align: center; font-family: 'Noto Sans KR', sans-serif; }
.goryeo-wrap .memory-box .label { font-size: 11px; letter-spacing: 5px; color: #777; margin-bottom: 25px; text-transform: uppercase; }
.goryeo-wrap .memory-box .chant { font-size: 18.5px; font-weight: 700; color: #e1d8d0; line-height: 2.1; }
.goryeo-wrap .outro { margin-top: 100px; padding-top: 60px; border-top: 1px solid #eee; font-family: 'Noto Sans KR', sans-serif; font-size: 16.5px; color: #444; line-height: 2.1; }
.goryeo-wrap strong { color: #5a1217; font-weight: 800; }
&lt;/style&gt;
&lt;h1&gt;소설로 읽는 수학사: 가우스 편 (1부)&lt;/h1&gt;
&lt;h2 class=&quot;subtitle&quot; data-ke-size=&quot;size26&quot;&gt;황무지에 핀 기적 &amp;mdash; 소년, 숫자의 규칙을 훔치다&lt;/h2&gt;
&lt;div class=&quot;novel-section&quot;&gt;&lt;span class=&quot;novel-label&quot;&gt;A Biographical Novel of Mathematics&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1777년의 브라운슈바이크는 흙먼지와 비릿한 노동의 땀 냄새가 섞여 공기 중을 떠도는 도시였다. 새벽은 무거운 돌을 나르는 석공들의 거친 숨소리와 함께 찾아왔고, 밤은 굶주린 육신을 누이는 눅눅한 침묵 속에 잠겼다. 카를 프리드리히 가우스는 그 투박한 황무지 한가운데에서 태어났다. 그의 아버지는 가난한 벽돌공이었고, 아들의 손등에 배어들어야 할 것은 오직 정직한 노동의 굳은살뿐이라고 믿었다. 하지만 어린 카를의 눈에 비친 세상은 벽돌의 거친 질감이 아니었다. 그것은 벽돌과 벽돌 사이, 보이지 않는 균열과 수열(數列)이 만들어내는 정교한 질서였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소년의 천재성은 비릿한 가난의 안개를 뚫고 가장 먼저 고개를 들었다. 세 살이 되던 해, 아버지가 일꾼들에게 줄 임금을 계산하며 투덜거릴 때였다. 흙 묻은 바닥에 웅크리고 있던 아이가 작은 목소리로 아버지를 멈춰 세웠다. &quot;아버지, 그 계산은 틀렸어요. 숫자가 모자라요.&quot; 아버지는 코웃음을 쳤으나, 다시 세어본 금액은 아이의 말대로 정확히 어긋나 있었다. 그것은 우연이라기엔 너무나 서늘한 직관이었다. 가우스에게 숫자는 배워야 할 언어가 아니었다. 그것은 태어날 때부터 그의 망막 위에 맺혀 있던, 세상을 해석하는 단 하나의 렌즈였다.&lt;/p&gt;
&lt;div class=&quot;dialogue-block&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;카를, 너는 왜 종일 땅바닥만 내려다보고 있느냐? 돌을 보지 말고 길을 보아야지.&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어머니는 걱정스럽게 물었으나 소년은 대답하지 않았다. 가우스에게 길이란 발밑의 흙길이 아니라, 숫자들이 서로의 꼬리를 물며 나아가는 영원한 대칭의 통로였기 때문이다. 그는 이미 알고 있었다. 1 뒤에 오는 2가 단순히 다음 숫자가 아니라, 우주가 숨겨놓은 거대한 규칙의 첫 번째 조각임을.&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열 살이 되던 해, 가우스는 카타리넨 학교의 차가운 교실에 앉아 있었다. 교사 뷔트너는 아이들에게 1부터 100까지의 모든 정수를 더하라는 지루한 과제를 던졌다. 아이들이 양피지 위에 잉크를 짓이기며 1에 2를 더하고, 다시 3을 더하는 육체적인 사투를 벌이는 동안 가우스는 칠판을 가만히 응시했다. 뷔트너는 그 고요한 정적을 오만함이라 여겨 채찍을 고쳐 쥐었다. 하지만 소년은 채 1분도 지나지 않아 자신의 석판을 교사의 탁자 위에 엎어놓았다. 석판 위에 적힌 숫자는 단 하나, **5050**이었다.&lt;/p&gt;
&lt;div class=&quot;scene-break&quot;&gt;...&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교실에는 기묘한 정적이 흘렀다. 뷔트너는 떨리는 손으로 소년의 석판을 뒤집었다. 소년은 1과 100을 묶고, 2와 99를 묶었다. 양 끝의 숫자들이 만나 101이라는 동일한 합을 만들어내는 50개의 쌍. 가우스는 거대한 수의 집합을 단숨에 반으로 접어버린 것이었다. 그것은 계산이 아니라 통찰이었고, 노동이 아니라 예술이었다. 뷔트너는 비로소 깨달았다. 자신의 앞에 서 있는 이 작은 아이가 인류가 수천 년간 쌓아 올린 수학의 성벽을 통째로 무너뜨릴 거대한 폭풍임을. 그는 사비로 함부르크에서 정교한 수학 서적을 사들여 소년의 책상 위에 놓아주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 소년의 성장은 외로움과 비례했다. 아버지는 여전히 아들이 벽돌을 굽는 화로 앞에 서기를 원했다. 지식은 배를 채워주지 못하며, 숫자는 추위를 막아주지 못한다는 현실적인 공포였다. 가우스는 밤마다 올리브유 조차 아까워 창가에 비치는 희미한 달빛에 의지해 책을 읽었다. 낡은 양피지 위로 배어드는 숫자의 냄새는 소년의 허기를 잠재웠고, 소수(素数)의 불규칙한 듯 정연한 배열은 그의 고독한 안식처가 되었다. 1791년, 소년의 재능을 알아본 브라운슈바이크 공작 칼 빌헬름 페르디난트의 후원이 없었더라면, 인류는 가장 찬란한 '수학의 왕'을 흙먼지 속에 묻어버렸을지도 모른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가우스는 공작의 지원으로 카롤리누 대학에 입학했다. 그곳에서 그는 더 이상 소년이 아니었다. 18살의 청년 가우스는 2천 년간 누구도 해결하지 못했던 난제, '자작나무를 깎아 만드는 17각형의 작도' 가능성을 단 하룻밤의 사유로 증명해냈다. 그것은 유클리드 이후 멈춰있던 기하학의 수레바퀴를 강제로 돌려버린 역사적 사건이었다. 그는 자신의 일기장에 라틴어로 짧게 적었다. &quot;Eureka(알았다).&quot; 그 비릿한 성취의 순간, 가우스는 자신이 딛고 선 대지보다 더 광활한 수의 우주를 정복하기로 맹세했다. 가난한 벽돌공의 아들이 인류 지성사의 왕관을 향해 첫 발자국을 떼는 순간이었다.&lt;/p&gt;
&lt;div class=&quot;dark-quote&quot;&gt;숫자는 그를 속이지 않았고, 진리는 그를 배신하지 않았다.&lt;br /&gt;흙먼지 가득한 브라운슈바이크의 뒷골목에서,&lt;br /&gt;소년은 이미 밤하늘의 행성들이 그리는 보이지 않는 수식을 읽어내고 있었다.&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;study-section&quot;&gt;
&lt;h2 class=&quot;study-title&quot; data-ke-size=&quot;size26&quot;&gt;  수학사 핵심 요약: 수학의 왕, 가우스와 정수론 (1부)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 가우스의 유년기와 1부터 100까지의 합&lt;/h3&gt;
&lt;div class=&quot;concept-box&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;가우스의 합 공식&lt;/b&gt;: 등차수열의 합 원리를 직관적으로 발견. 양 끝의 합이 일정하다는 점을 이용하여 계산 시간을 획기적으로 단축함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정수론의 천재성&lt;/b&gt;: 세 살 때 아버지의 계산 오류를 지적할 정도로 수치 감각이 뛰어났으며, 유년기에 이미 현대 정수론의 싹을 틔움.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;브라운슈바이크 공작의 후원&lt;/b&gt;: 가난한 환경을 극복하고 연구에 매진할 수 있었던 결정적 계기.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 주요 핵심 업적 맛보기 &lt;span style=&quot;color: #5a1217;&quot; class=&quot;star&quot;&gt;★★★★★&lt;/span&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;구분&lt;/th&gt;
&lt;th&gt;내용&lt;/th&gt;
&lt;th&gt;역사적 의의&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;등차수열의 합&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;$S = n(a+l)/2$ 원리 발견&lt;/td&gt;
&lt;td&gt;수학 교육의 가장 상징적인 일화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;정17각형 작도&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;컴퍼스와 자만으로 작도 가능함 증명&lt;/td&gt;
&lt;td&gt;유클리드 기하학의 한계 돌파 (18세)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;수학의 왕 (Princeps)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;동시대 최고의 수학자로 칭송됨&lt;/td&gt;
&lt;td&gt;현대 수학의 모든 분야에 영향&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;warning-box&quot;&gt;&lt;b&gt;  수험생 주의 포인트!&lt;/b&gt;&lt;br /&gt;가우스의 1부터 100까지 합 계산은 단순히 빨리 한 것이 아니라 '구조적 사고'를 했다는 점이 핵심입니다. 시험에서는 이를 일반화한 '등차수열의 합' 공식을 묻는 경우가 많으니 원리를 꼭 이해하세요!&lt;/div&gt;
&lt;div class=&quot;memory-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;✏ 핵심 암기 구호&lt;/div&gt;
&lt;div class=&quot;chant&quot;&gt;&quot;1부터 100까지 5050, 소년 가우스의 합!&quot;&lt;br /&gt;&quot;작도는 17각형, 수학의 왕은 가우스!&quot;&lt;br /&gt;&quot;벽돌공의 아들에서 인류의 스승으로!&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;outro&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자의 규칙을 훔친 소년 가우스는 이제 성인이 되어 더 거대한 우주의 비밀에 도전합니다. 다음 편에서는 인류 역사상 가장 영향력 있는 수학서 중 하나인 '산술 연구'의 집필과, 사라진 행성 세레스를 찾아낸 놀라운 사건을 다룹니다.&lt;/p&gt;
&lt;div class=&quot;next-episode&quot;&gt;  &lt;b&gt;다음 수학 이야기 예고&lt;/b&gt;&lt;br /&gt;&lt;b&gt;「소설로 읽는 수학사: 가우스 편 (2부): 사라진 별을 찾아서 &amp;mdash; 최소제곱법과 세레스의 부활」&lt;/b&gt;&lt;br /&gt;밤하늘에서 자취를 감춘 행성 세레스. 전 세계 천문학자들이 절망할 때, 24살의 가우스는 오직 펜 끝으로 별의 위치를 지목했습니다. 전설이 현실이 되는 순간이 펼쳐집니다.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;tags&quot; style=&quot;color: #7f8c8d; font-size: 0.9em; text-align: center;&quot;&gt;#수학사 #가우스 #카를프리드리히가우스 #수학의왕 #등차수열의합 #정17각형작도 #수학소설 #과학사 #근대수학 #한능검수학 #블로그작가 #수학이야기 #천재수학자 #가우스일화 #브라운슈바이크&lt;/div&gt;</description>
      <category>이야기/수학</category>
      <category>가우스</category>
      <category>등차수열의합</category>
      <category>브라운슈바이크</category>
      <category>수학소설</category>
      <category>수학의왕</category>
      <category>정17각형작도</category>
      <category>천재수학자</category>
      <category>카를프리드리히가우스</category>
      <author>kackac</author>
      <guid isPermaLink="true">https://kackac.tistory.com/65</guid>
      <comments>https://kackac.tistory.com/65#entry65comment</comments>
      <pubDate>Tue, 31 Mar 2026 10:32:31 +0900</pubDate>
    </item>
  </channel>
</rss>