<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>덜 일하는 연구소</title>
    <link>https://lessworklab.tistory.com/</link>
    <description>적게 일하고 많이 벌자. 귀찮은 반복은 자동화하고, 남는 시간으로 작은 수익을 실험합니다.</description>
    <language>ko</language>
    <pubDate>Sat, 24 Oct 2026 08:30:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>덜 일하는 연구소</managingEditor>
    <item>
      <title>엑셀 파일 10개 합치기: 폴더 연결부터 새로 고침까지</title>
      <link>https://lessworklab.tistory.com/3</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;같은 양식의 엑셀 파일이 열 개 있다. 하나를 열고, 제목 줄을 빼고 복사하고, 합본의 마지막 행에 붙인다. 이 일을 다음 달에도 해야 한다면 폴더를 연결해두는 편이 낫다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀의 Power Query에 어느 폴더에서 어떤 표를 읽을지 정해두면, 이후에는 파일을 넣고 새로 고침하는 방식으로 바꿀 수 있다. 이번에는 직접 만든 주문 파일 10개로 그 연결을 해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;글 아래에 실습 ZIP을 첨부했다.&lt;/b&gt; 원본 파일 10개, 나중에 추가할 파일, 일부러 틀리게 만든 파일, 정답 대조표, 전체 쿼리 코드를 넣었다. 자료는 모두 가상 데이터이며 실제 매출이 아니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내 엑셀에서도 되는지 먼저 확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows는 Excel 2016 이후 버전의 데이터 탭에서 Power Query를 사용할 수 있다. Mac은 Microsoft 365용 Excel을 기준으로 봐야 하고, Windows의 &amp;lsquo;폴더에서&amp;rsquo; 메뉴가 그대로 있지는 않을 수 있다. 이 글에는 Windows 기본 메뉴와 Mac에서 사용한 빈 쿼리 방법을 함께 적었다. &lt;a href=&quot;https://support.microsoft.com/en-us/excel/power-query-data-sources-in-excel-versions&quot;&gt;버전별 지원 범위&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 작업에 AI 구독이나 자동화 서버는 필요 없다. 사용할 수 있는 데스크톱 Excel과 실습 파일을 준비하면 된다. 웹용 Excel이나 휴대폰 앱을 대상으로 한 설명은 아니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;폴더를 잘 나누면 절반은 끝난다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ZIP을 먼저 풀어둔다. 파일 선택창에서 지정할 곳은 &lt;b&gt;input 폴더 하나&lt;/b&gt;다. 실습 꾸러미 전체를 지정하지 않는다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;input:&lt;/b&gt; orders_01.xlsx부터 orders_10.xlsx까지, 각 10행의 정상 원본.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;add-later:&lt;/b&gt; 새로 고침 연습에 쓸 orders_11.xlsx.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;broken:&lt;/b&gt; 열 이름과 날짜가 잘못된 오류 연습 파일. 처음에는 원본 폴더에 넣지 않는다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;expected-results.xlsx:&lt;/b&gt; 행 수와 금액을 비교하는 정답 파일. Power Query 연결이 들어 있는 파일은 아니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;combine-orders.pq:&lt;/b&gt; 빈 쿼리나 고급 편집기에 붙여넣을 전체 코드.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 파일 하나를 열면 &amp;lsquo;주문&amp;rsquo; 시트 안에 &lt;b&gt;Orders라는 이름의 표&lt;/b&gt;가 있다. 읽어야 할 것은 이 표다. 표 위에 있는 제목이나 &amp;lsquo;가상 데이터&amp;rsquo;라는 설명까지 합치지 않도록 범위를 구분해뒀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표의 열은 주문일, 주문번호, 채널, 상품, 수량, 매출액이다. 내 파일로 바꿀 때도 열 이름과 의미를 통일해야 한다. &amp;lsquo;매출&amp;rsquo;, &amp;lsquo;매출액&amp;rsquo;, &amp;lsquo;매출액 &amp;rsquo;은 서로 다른 이름으로 취급될 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Windows: 메뉴로 먼저 합쳐보기&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;새 통합문서를 열고 &lt;b&gt;데이터 &amp;rarr; 데이터 가져오기 &amp;rarr; 파일에서 &amp;rarr; 폴더에서&lt;/b&gt;로 들어간다.&lt;/li&gt;
&lt;li&gt;압축을 푼 위치의 input 폴더를 선택한다. 목록에 orders_01~10.xlsx 열 개가 있는지 확인한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결합 및 변환&lt;/b&gt;을 선택한다. 버전에 따라 &amp;lsquo;결합&amp;rsquo; 아래에 들어 있다.&lt;/li&gt;
&lt;li&gt;샘플 파일에서 &lt;b&gt;Orders 표&lt;/b&gt;를 선택한다. 시트 전체인 &amp;lsquo;주문&amp;rsquo;과 구분한다.&lt;/li&gt;
&lt;li&gt;편집기에서 주문일은 날짜, 주문번호&amp;middot;채널&amp;middot;상품은 텍스트, 수량&amp;middot;매출액은 정수로 맞춘다. 원본 파일명을 나타내는 열은 남겨두면 나중에 추적하기 쉽다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;홈 &amp;rarr; 닫기 및 로드&lt;/b&gt;로 결과를 시트에 불러온다. 합본 통합문서는 input 바깥에 저장한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 메뉴 순서는 &lt;a href=&quot;https://support.microsoft.com/ko-kr/excel/import-data-from-a-folder-with-multiple-files-power-query&quot;&gt;Microsoft의 폴더 결합 안내&lt;/a&gt;를 기준으로 정리했다. 이 메뉴가 자동으로 만드는 쿼리와 아래에 제공하는 직접 작성한 쿼리는 구성과 오류 표시가 다를 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;합본을 원본 폴더 안에 두면 다음번에 결과 파일까지 읽게 될 수 있다. 원본과 결과를 다른 위치에 두는 이유다. 기본 폴더 가져오기는 하위 폴더도 대상으로 삼을 수 있으므로 백업이나 오류 파일도 바깥에 둔다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Mac: 빈 쿼리에 코드를 넣어서 연결했다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인한 Mac Excel의 데이터 원본 선택 화면에는 Excel workbook, Text/CSV, Blank query 등이 있었고, Windows와 같은 폴더 버튼은 없었다. 그래서 &lt;b&gt;Blank query, 즉 빈 쿼리&lt;/b&gt;에서 연결했다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;데이터 &amp;rarr; 데이터 가져오기(Power Query) &amp;rarr; &lt;b&gt;빈 쿼리(Blank query)&lt;/b&gt;를 연다.&lt;/li&gt;
&lt;li&gt;첨부한 combine-orders.pq를 일반 텍스트 편집기로 열고, &lt;b&gt;FolderPath&lt;/b&gt;의 값을 본인 컴퓨터의 input 폴더 절대 경로로 바꾼다.&lt;/li&gt;
&lt;li&gt;기본으로 들어 있는 내용을 지우고 코드 전체를 붙여넣는다. 이미 편집기가 열려 있다면 &lt;b&gt;홈 &amp;rarr; 고급 편집기(Advanced editor)&lt;/b&gt;에서 넣는다.&lt;/li&gt;
&lt;li&gt;폴더 접근을 요청하면 지정한 실습 폴더가 맞는지 확인하고 선택한다. 데이터를 읽은 뒤 표가 표시되는지 확인한다.&lt;/li&gt;
&lt;li&gt;쿼리 이름을 CombinedOrders로 바꾸고 &lt;b&gt;닫기 및 로드(Close &amp;amp; load)&lt;/b&gt;를 선택한다. 통합문서는 input 바깥에 저장한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로는 Windows라면 C:\lessworklab\input 같은 형태이고, Mac이라면 /Users/본인계정/Downloads/excel-folder-lab/input 같은 형태다. 실제 압축을 푼 위치에 맞춰야 한다. 따옴표는 코드에 들어 있는 직선 큰따옴표를 유지한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 화면은 Mac Power Query 편집기에서 원본 10개가 합쳐진 실제 미리보기다. 결과가 100행&amp;middot;7열임을 확인했다. 여섯 개 원본 열에 추적용 &amp;lsquo;원본파일&amp;rsquo; 열을 하나 더 붙였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;powerquery-100rows.png&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtKtzM/dJMcadpNUzD/33lLG4RBZKeF6zv72mgeyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtKtzM/dJMcadpNUzD/33lLG4RBZKeF6zv72mgeyK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtKtzM/dJMcadpNUzD/33lLG4RBZKeF6zv72mgeyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtKtzM%2FdJMcadpNUzD%2F33lLG4RBZKeF6zv72mgeyK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1206&quot; height=&quot;768&quot; data-filename=&quot;powerquery-100rows.png&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상 원본 10개를 읽어온 Mac Power Query 미리보기.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;새 파일을 넣었을 때 맞아야 할 숫자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표가 보인다고 끝내지 않고 행 수와 금액을 같이 대조한다. 아래 숫자는 첨부 원본 파일의 값을 별도로 합산해 검산한 정답이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;처음 10개:&lt;/b&gt; 100행, 매출액 합계 1,932,000원.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;추가할 파일 1개:&lt;/b&gt; 10행, 매출액 합계 192,000원.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;추가한 뒤의 정답:&lt;/b&gt; 110행, 매출액 합계 2,124,000원.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;add-later의 orders_11.xlsx를 input에 복사한 뒤 합본에서 &lt;b&gt;데이터 &amp;rarr; 모두 새로 고침&lt;/b&gt;을 누른다. 이어서 파일을 더 넣지 않고 한 번 더 새로 고침한다. 원본을 다시 읽어 만드는 방식이므로 두 번째에도 110행이어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 결과를 A1부터 불러왔다면, 처음에는 주문번호가 든 B2:B101에 &lt;b&gt;=COUNTA(B2:B101)&lt;/b&gt;, 금액이 든 F2:F101에 &lt;b&gt;=SUM(F2:F101)&lt;/b&gt;을 써서 대조할 수 있다. 추가 후에는 마지막 행을 111로 바꾼다. 검사 수식은 결과 표 밖에 적는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인 범위도 남겨둔다. 이번에 Excel에서 직접 확인한 것은 &lt;b&gt;정상 10개 파일을 결합한 미리보기 100행&lt;/b&gt;이다. 첨부 파일의 저장 내용과 100행&amp;middot;110행의 합계는 별도 검산했다. 파일 추가 후 반복 새로 고침과 아래 오류 사례는 이 글을 쓰는 시점에 Excel에서 실행 확인을 끝내지 못했다. 해당 부분은 실습 절차와 예상 동작으로 구분해서 읽으면 된다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;일부러 틀린 파일도 넣어보자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;input을 복사한 연습 폴더에서 하나씩 시험한다. 아래의 사용자 정의 오류 검사와 문구는 &lt;b&gt;첨부 코드로 만든 쿼리&lt;/b&gt;를 기준으로 한다. Windows 기본 결합 메뉴만 사용했다면 표시가 다를 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lsquo;매출액&amp;rsquo; 열이 &amp;lsquo;매출&amp;rsquo;로 바뀐 경우.&lt;/b&gt; broken/header/orders_01.xlsx를 연습 폴더의 같은 이름 파일과 교체한다. 제공 코드는 필요한 열이 빠지면 파일명과 열 이름을 알리도록 작성했다. 해당 파일을 열어 F4를 &amp;lsquo;매출액&amp;rsquo;으로 고치고 저장한 다음 새로 고침한다. 열 이름은 엑셀이 합칠 대상을 찾는 기준이므로, 값이 같은 숫자여도 이름부터 맞춰야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;날짜가 2026-02-30인 경우.&lt;/b&gt; 이번에는 broken/date의 파일로 교체한다. 겉모양은 날짜 같지만 실제로 없는 날이다. A5를 2026-08-01로 고쳐 저장한다. 실제 업무에서는 &amp;lsquo;날짜처럼 보이는 문자&amp;rsquo;와 실제 날짜 값이 섞여 있는지도 살핀다. &lt;a href=&quot;https://learn.microsoft.com/en-us/powerquery-m/table-transformcolumntypes&quot;&gt;Power Query의 형식 변환 설명&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;같은 파일을 두 번 넣은 경우.&lt;/b&gt; 정상 파일 하나를 orders_copy.xlsx라는 이름으로 복제해 넣어본다. 이 예제는 주문번호 하나가 한 행을 뜻하므로 중복 번호를 발견하면 중단하도록 작성했다. 복사본을 원본 폴더 밖으로 옮긴 뒤 다시 읽는다. 주문 하나가 여러 품목 행으로 나뉘는 실제 자료라면 주문번호와 품목번호 등으로 검사 기준을 바꿔야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 난 파일을 무조건 건너뛰거나 금액을 전부 0으로 바꾸면, 결과는 깔끔해 보여도 합계가 작아질 수 있다. 원인을 확인하고 원본을 고친 뒤 다시 읽는 쪽으로 실습한다. 원본 경로나 열 이름 때문에 나는 오류의 구분은 &lt;a href=&quot;https://learn.microsoft.com/en-us/power-query/dealing-with-errors&quot;&gt;Microsoft의 오류 해결 문서&lt;/a&gt;에서도 확인할 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코드에서 내 업무에 맞게 바꿀 곳&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 코드는 ZIP 안에 있다. 폴더 경로 외에는 다음 네 군데가 내 자료와 맞는지 보면 된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;orders_:&lt;/b&gt; 읽어올 파일명의 시작 부분. 다른 파일을 섞어 읽지 않기 위한 조건이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Orders:&lt;/b&gt; 각 엑셀 파일 안의 표 이름. 시트 이름과 다르다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Required와 Typed:&lt;/b&gt; 필요한 열 목록과 날짜&amp;middot;문자&amp;middot;숫자의 형식.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Counts:&lt;/b&gt; 중복을 판단할 기준. 이 실습은 주문번호를 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첨부 코드는 &lt;a href=&quot;https://learn.microsoft.com/en-us/powerquery-m/folder-contents&quot;&gt;Folder.Contents&lt;/a&gt;로 지정 폴더 바로 아래의 파일만 읽고, &lt;a href=&quot;https://learn.microsoft.com/en-us/powerquery-m/excel-workbook&quot;&gt;Excel.Workbook&lt;/a&gt;에서 Orders 표를 꺼낸다. 표를 합친 뒤 원본 파일명으로 거슬러 올라갈 수 있도록 구성했다.&lt;/p&gt;
&lt;pre class=&quot;stata&quot;&gt;&lt;code&gt;let
    // 본인의 input 폴더 절대 경로로 바꾸세요.
    FolderPath = &quot;C:\lessworklab\input&quot;,
    Required = {&quot;주문일&quot;, &quot;주문번호&quot;, &quot;채널&quot;, &quot;상품&quot;, &quot;수량&quot;, &quot;매출액&quot;},
    Files = Table.SelectRows(Folder.Contents(FolderPath), each
        [Extension] = &quot;.xlsx&quot; and Text.StartsWith([Name], &quot;orders_&quot;)),
    CheckedFiles = if Table.RowCount(Files) = 0 then
        error &quot;orders_로 시작하는 xlsx 파일이 없습니다. 폴더 경로를 확인하세요.&quot;
        else Files,
    ReadTables = Table.AddColumn(CheckedFiles, &quot;Rows&quot;, (file) =&amp;gt;
        let
            Raw = Excel.Workbook(file[Content], null, true){[Item=&quot;Orders&quot;, Kind=&quot;Table&quot;]}[Data],
            Missing = List.Difference(Required, Table.ColumnNames(Raw)),
            Columns = if List.Count(Missing) &amp;gt; 0 then
                error Error.Record(&quot;열 이름 확인&quot;, file[Name] &amp;amp; &quot;: &quot; &amp;amp; Text.Combine(Missing, &quot;, &quot;), null)
                else Table.SelectColumns(Raw, Required),
            Typed = Table.TransformColumnTypes(Columns, {
                {&quot;주문일&quot;, type date}, {&quot;주문번호&quot;, type text},
                {&quot;채널&quot;, type text}, {&quot;상품&quot;, type text},
                {&quot;수량&quot;, Int64.Type}, {&quot;매출액&quot;, Int64.Type}
            }, &quot;ko-KR&quot;),
            Errors = Table.SelectRowsWithErrors(Typed),
            Checked = if Table.RowCount(Errors) &amp;gt; 0 then
                error Error.Record(&quot;날짜 또는 숫자 형식 확인&quot;, file[Name], null)
                else Typed,
            WithFile = Table.AddColumn(Checked, &quot;원본파일&quot;, each file[Name], type text)
        in
            WithFile),
    Combined = Table.Combine(ReadTables[Rows]),
    Counts = Table.Group(Combined, {&quot;주문번호&quot;}, {{&quot;개수&quot;, each Table.RowCount(_), Int64.Type}}),
    Duplicates = Table.SelectRows(Counts, each [개수] &amp;gt; 1),
    Result = if Table.RowCount(Duplicates) &amp;gt; 0 then
        error &quot;주문번호가 중복됩니다. 복사본 파일 또는 원본 주문번호를 확인하세요.&quot;
        else Table.Sort(Combined, {{&quot;주문일&quot;, Order.Ascending}, {&quot;주문번호&quot;, Order.Ascending}})
in
    Result
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음 달에 다시 쓰려면&lt;/h2&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;p data-ke-size=&quot;size16&quot;&gt;이 실습에서는 처리 시간을 재지 않았다. 대신 다음 달에도 다시 쓸 수 있는 연결 하나와, 결과가 맞는지 확인할 숫자를 남겼다. 내 업무에 적용한다면 처음 설정한 시간과 이후에 파일을 정리하고 오류를 고친 시간까지 같이 적어보면 좋겠다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;실습 파일 다운로드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 10개, 추가 파일 1개, 오류 파일 2개, 정답 대조표, 전체 쿼리와 사용 설명서를 한 꾸러미로 묶었다. 자유롭게 고쳐 써도 된다. &lt;b&gt;ZIP을 풀고 input 폴더부터 시작하면 된다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/c5ktEf/dJMcab6EgQF/SctjDMRBs7nyhXtpyhHhrk/excel-folder-lab.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;excel-folder-lab.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.07MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성 기준: 2026년 9월 6일. 실습 데이터는 직접 만든 가상 자료다. 화면은 Mac Excel의 실제 결합 미리보기이며, Windows 메뉴는 공식 문서를 바탕으로 정리했다.&lt;/p&gt;</description>
      <category>귀찮음 자동화</category>
      <category>업무자동화</category>
      <category>엑셀</category>
      <category>파워쿼리</category>
      <author>덜 일하는 연구소</author>
      <guid isPermaLink="true">https://lessworklab.tistory.com/3</guid>
      <comments>https://lessworklab.tistory.com/3#entry3comment</comments>
      <pubDate>Sun, 6 Sep 2026 23:27:42 +0900</pubDate>
    </item>
    <item>
      <title>스레드 자동화로 수익을 내보려면, 뭐부터 필요할까</title>
      <link>https://lessworklab.tistory.com/2</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;그래서 계정을 만드는 순간부터 적어두려고 한다. 어디에 가입했는지, 설정하다 무엇이 안 됐는지, 글 한 편에 얼마가 들었는지. 나중에 수익이 생기면 도구값과 손이 간 시간도 같이 공개할 생각이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 글은 그 첫 번째 준비 메모다. 아직 수익이나 자동화 성능을 검증한 단계는 아니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 살펴본 &lt;a href=&quot;https://threads-autopilot-buddy.lovable.app/&quot;&gt;쇼츠스레드메이커의 판매 페이지&lt;/a&gt;에는 월 49,000원에 상품 문구 생성, 이미지 첨부, 스레드 업로드, 예약과 중복 방지 등을 제공한다고 적혀 있었다. 2026년 9월 6일 공개 페이지에서 확인한 설명이며, 프로그램을 구매하거나 성능을 시험한 것은 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 기능을 하나씩 직접 만들어보고 싶다. 입력한 상품 정보가 어떻게 글이 되고, 예약 시간이 되면 어떻게 올라가고, 실패한 글은 어떻게 다시 처리하는지까지. 따라 만들 수 있도록 설정값과 전체 코드를 블로그에 공개할 계획이다. 직접 만드는 방식에도 도구 사용료와 관리 시간은 들 수 있으니, 그 비용도 같이 비교해보려 한다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;우선 무엇을 해볼 건가&lt;/h2&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;p data-ke-size=&quot;size16&quot;&gt;쿠팡 파트너스는 제휴 링크를 통한 구매 실적 등에 따라 수수료를 받는 구조다. 글의 조회 수나 링크 클릭 수 자체를 수익으로 계산하면 안 된다. &lt;a href=&quot;https://news.coupang.com/archives/397/&quot;&gt;쿠팡의 서비스 소개&lt;/a&gt;에서도 구매와 연결되는 제휴마케팅 방식으로 설명하고 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;당장 준비할 것은 계정 두 개와 기록장&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;스레드 계정.&lt;/b&gt; 글을 올릴 공간이다. &lt;a href=&quot;https://www.threads.com/&quot;&gt;Threads&lt;/a&gt;에서 실험에 사용할 계정을 준비하고, 프로필 주소를 기록해둔다. 누구에게 무슨 이야기를 하는 계정인지 소개 한 줄도 정해야 한다. 첫 주제는 생활 속 귀찮음을 줄이는 방법으로 잡아보려 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;쿠팡 파트너스 계정.&lt;/b&gt; &lt;a href=&quot;https://partners.coupang.com/&quot;&gt;공식 가입 페이지&lt;/a&gt;에서 시작한다. 실제로 링크를 올릴 채널 주소를 준비하고, 가입 화면에서 요구하는 정보와 활동 페이지 등록 절차를 확인한다. 정산에 필요한 본인 정보는 해당 사이트에 직접 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식 가이드는 링크나 배너를 게시할 활동 페이지를 등록하고, 채널이 운영정책에 맞는지 확인하도록 안내한다. 스레드 프로필을 만든 뒤 정확한 주소를 확인하고, 블로그에도 제휴 링크를 넣게 되면 그 활동 페이지도 등록할 예정이다. &lt;a href=&quot;https://partners.coupangcdn.com/partners-guide/partners-guide-20251028182159.pdf&quot;&gt;쿠팡 파트너스 공식 가이드&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기록장.&lt;/b&gt; 처음에는 메모나 시트 한 장이면 된다. 날짜, 게시글 주소, 주제, 사용한 제휴 링크, 작성과 검수에 쓴 시간을 남긴다. 계정 연결에 쓴 시간도 여기부터 기록한다. 자동화가 완성된 뒤부터 재면 준비하는 데 들어간 시간이 빠진다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;자동으로 올리려면 준비물이 더 붙는다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계정을 만들었다고 바로 자동 발행이 되는 것은 아니다. 직접 코드를 연결하는 방식을 쓴다면 아래 작업이 추가된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Threads API 연결:&lt;/b&gt; Meta 개발자 앱을 만들고, 내 계정이 그 앱에 접근 권한을 주는 과정을 거친다. 프로그램이 글을 올릴 때 사용하는 접근 토큰도 필요하다. Meta의 &lt;a href=&quot;https://www.postman.com/meta/threads/documentation/dht3nzz/threads-api&quot;&gt;공식 API 문서&lt;/a&gt;에서 앱 생성, 계정 인증, 글 발행 절차를 확인할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;글 초안을 만드는 도구:&lt;/b&gt; 처음에는 입력문을 직접 넣어 초안을 만들고 검수해도 된다. 프로그램이 자동으로 초안을 만들도록 연결할 때는 선택한 서비스의 API 사용 조건과 비용을 확인한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정해진 시간에 실행할 곳:&lt;/b&gt; 내 컴퓨터에서 돌릴지, 외부 실행 서비스를 쓸지 정해야 한다. 내 컴퓨터라면 예약 시간에 켜져 있어야 한다. 어떤 방식이 맞는지는 첫 발행을 확인한 뒤 고르려 한다.&lt;/li&gt;
&lt;/ul&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;h2 data-ke-size=&quot;size26&quot;&gt;링크를 붙이기 전에 정해둘 것&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상품 링크가 들어간 글은 광고라는 사실을 알아볼 수 있게 쓰겠다. 쿠팡 파트너스 가이드에도 상품 링크와 함께 대가성 문구를 기재하라는 안내가 있다. 실제 게시 때는 최신 안내를 확인하고, 글 앞부분에 제휴 활동과 수수료 관계가 드러나게 표시할 계획이다. &lt;a href=&quot;https://partners.coupangcdn.com/partners-guide/partners-guide-20250714121952.pdf&quot;&gt;공식 가이드의 링크 사용 안내&lt;/a&gt;&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;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;나중에 &amp;ldquo;얼마 벌었냐&amp;rdquo;에 답하려면&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장부에는 다음 항목을 나눠 적으려고 한다. 아직 확인하지 않은 칸은 0원 대신 &amp;lsquo;미집계&amp;rsquo;로 둔다.&lt;/p&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; 구매 건수와 취소&amp;middot;반품 반영 내용&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;li&gt;&lt;b&gt;시간:&lt;/b&gt; 초기 설정, 글 검수, 오류 수정에 쓴 시간&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠팡 파트너스는 수익 요약과 정산&amp;middot;지급 리포트를 나눠 제공한다. 화면에 잡힌 발생 수수료와 통장에 들어온 돈을 같은 숫자로 취급하지 않을 생각이다. &lt;a href=&quot;https://partners.coupangcdn.com/partners-guide/partners-guide-20251028182159.pdf&quot;&gt;공식 가이드의 리포트 안내&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존에 쓰던 유료 도구를 재사용한다면 추가 결제액과 기존 구독료도 구분해서 적는다. &amp;ldquo;추가 지출이 없었다&amp;rdquo;와 &amp;ldquo;아무 비용도 들지 않는다&amp;rdquo;는 계산이 다르기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글별로 성과를 구분할 수 있는지도 연결 과정에서 확인해야 한다. 계정 전체 실적만 확보된다면 그 범위까지만 공개한다. 어느 글에서 구매가 생겼는지 확인되지 않는데 임의로 배분하지는 않겠다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음 편은 계정부터&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연재는 아래 순서로 쌓아갈 예정이다. 결과가 나와야 쓸 수 있는 편은 자료가 생긴 뒤에 올린다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;준비 편 &amp;mdash; 지금 읽는 글.&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; 주제 하나를 정하고 프롬프트&amp;middot;제휴 링크&amp;middot;광고 표시까지 붙여보기. 이미지를 쓴다면 사용 가능한 자료부터 확인하기.&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;li&gt;&lt;b&gt;실적 수집 편.&lt;/b&gt; 조회&amp;middot;클릭&amp;middot;수수료 중 무엇을 어디에서 가져올 수 있는지 확인하고 기록하기.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결산 편.&lt;/b&gt; 같은 기간의 실적과 비용, 검수 시간을 맞춰 보고 실제로 남은 것이 무엇인지 계산하기.&lt;/li&gt;
&lt;/ol&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;p data-ke-size=&quot;size16&quot;&gt;기록 기준: 2026년 9월 6일. 현재 계정 개설 전이며, 이 실험의 수익 자료는 아직 없다. 가입 절차와 서비스 조건은 실제 진행 시 다시 확인한다.&lt;/p&gt;</description>
      <category>작은 수익 실험</category>
      <category>스레드자동화</category>
      <category>자동화수익실험</category>
      <category>쿠팡파트너스</category>
      <author>덜 일하는 연구소</author>
      <guid isPermaLink="true">https://lessworklab.tistory.com/2</guid>
      <comments>https://lessworklab.tistory.com/2#entry2comment</comments>
      <pubDate>Sun, 6 Sep 2026 22:50:19 +0900</pubDate>
    </item>
    <item>
      <title>5분짜리 일을 줄이려고 1시간을 쓴다면</title>
      <link>https://lessworklab.tistory.com/1</link>
      <description>&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;p data-ke-size=&quot;size16&quot;&gt;파일을 옮기고, 같은 문장을 다시 쓰고, 어제 확인한 화면을 오늘도 확인하는 일. 한 번은 5분인데 매일 하면 슬슬 귀찮아진다. 이걸 자동화하는 데 1시간을 써도 괜찮을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;지금 걸리는 시간, 자동화를 만드는 시간, 자동화한 뒤에도 확인해야 하는 시간.&lt;/b&gt; 이 세 가지면 자동화가 언제부터 내 시간을 돌려주는지 대략 계산할 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내가 쓴 60분은 언제 돌아올까&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 실제 실험 결과가 아닌 계산 예시다. 매일 한 번 하는 작업을 가정했다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지금 직접 처리하는 시간: &lt;b&gt;하루 5분&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;처음 자동화를 설정하고 시험하는 시간: &lt;b&gt;60분&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;자동화 결과를 매일 확인하는 시간: &lt;b&gt;하루 1분&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루에 실제로 줄어드는 시간은 &lt;b&gt;5분 &amp;minus; 1분 = 4분&lt;/b&gt;이다. 처음 쓴 60분을 회수하려면 &lt;b&gt;60분 &amp;divide; 4분 = 15회&lt;/b&gt;가 필요하다. 하루 한 번 실행한다면 15일째에 설정 시간을 회수하고, 그다음부터 시간이 남기 시작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20회 실행하면 80분을 줄이지만, 설정에 쓴 60분을 빼면 순수하게 남는 시간은 20분이다. 도중에 고치는 데 30분이 들었다면 아직 10분을 더 쓴 셈이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;그래서 처음에는, 작고 자주 하는 일&lt;/h2&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;p data-ke-size=&quot;size16&quot;&gt;파일 정리라면 삭제보다 복사, 바로 실행보다 변경 예정 목록을 먼저 보여주는 방식으로 시작할 수 있다. 첫 실행은 테스트 파일 몇 개로 해보자.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘은 귀찮은 일 하나만 적어보자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 양식을 복사해서 채우면 된다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반복하는 작업:&lt;br /&gt;한 주에 하는 횟수:&lt;br /&gt;한 번에 직접 쓰는 시간:&lt;br /&gt;자동화 설정에 쓸 예상 시간:&lt;br /&gt;한 번 실행한 뒤 확인할 예상 시간:&lt;br /&gt;오류가 나면 되돌리는 방법:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예상 시간은 시작점일 뿐이다. 실제로 몇 번 실행한 뒤 기록을 바꾸자. 아낀 시간이 계속 남는지, 도구를 돌보느라 더 바빠졌는지까지 봐야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이곳에는 이런 작은 귀찮음부터 적어보려고 한다. 반복을 줄이는 도구를 만들고, AI를 업무에 써보고, 남는 시간으로 작은 수익 실험도 해볼 계획이다. 얼마나 걸렸는지, 뭐가 안 됐는지, 다음번에는 어떻게 덜 고생할 수 있을지. 그런 것들을 남겨보려 한다.&lt;/p&gt;</description>
      <category>귀찮음 자동화</category>
      <category>시간관리</category>
      <category>업무자동화</category>
      <author>덜 일하는 연구소</author>
      <guid isPermaLink="true">https://lessworklab.tistory.com/1</guid>
      <comments>https://lessworklab.tistory.com/1#entry1comment</comments>
      <pubDate>Sun, 6 Sep 2026 22:41:51 +0900</pubDate>
    </item>
  </channel>
</rss>