<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>HERO의잡학다식</title>
    <link>https://hero0309.tistory.com/</link>
    <description>넓고 얕게 다양한 지식들을 찾아다닙니다.</description>
    <language>ko</language>
    <pubDate>Sat, 5 Sep 2026 11:04:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Hero0309</managingEditor>
    <item>
      <title>[MS SQL] 'TRY_CONVERT' 함수가 동작하지 않을 때 원인 분석 및 해결 방법</title>
      <link>https://hero0309.tistory.com/6</link>
      <description>&lt;h1&gt;[MS SQL] 'TRY_CONVERT' 함수가 동작하지 않을 때 원인 분석 및 해결 방법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL Server에서 문자열 데이터를 숫자나 날짜 등으로 변환할 때 변환 에러(&lt;code&gt;Conversion failed when converting...&lt;/code&gt;)를 방지하기 위해 &lt;code&gt;TRY_CONVERT()&lt;/code&gt;를 자주 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 사내 서버나 특정 데이터베이스 환경에서 쿼리를 실행했을 때 다음과 같은 오류 메시지가 출력되며 쿼리가 실패하는 경우가 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bySOFL/dJMcahsfc1j/TRvL468Sn5dbF5ucpwR0i0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bySOFL/dJMcahsfc1j/TRvL468Sn5dbF5ucpwR0i0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bySOFL/dJMcahsfc1j/TRvL468Sn5dbF5ucpwR0i0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbySOFL%2FdJMcahsfc1j%2FTRvL468Sn5dbF5ucpwR0i0%2Fimg.png&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;408&quot; height=&quot;66&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;66&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Msg 195, Level 15, State 10, Line 1&lt;/b&gt;&lt;br /&gt;&lt;code&gt;'TRY_CONVERT'은(는) 인식할 수 없는 기본 제공 함수 이름입니다.&lt;/code&gt;&lt;br /&gt;&lt;i&gt;(&lt;code&gt;'TRY_CONVERT' is not a recognized built-in function name.&lt;/code&gt;)&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서는 이 에러가 발생하는 원인과 서버 상태 점검 쿼리, 그리고 구형 환경에서도 안전하게 데이터를 변환할 수 있는 해결 방법을 정리합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 동작하지 않는 주요 원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;TRY_CONVERT()&lt;/code&gt;가 인식되지 않는 이유는 크게 2가지로 분류할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;① SQL Server 엔진 버전이 2012 미만인 경우&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;TRY_CONVERT()&lt;/code&gt;, &lt;code&gt;TRY_CAST()&lt;/code&gt;, &lt;code&gt;TRY_PARSE()&lt;/code&gt; 함수는 &lt;b&gt;SQL Server 2012 (11.x)&lt;/b&gt; 버전부터 도입된 내장 함수입니다.&lt;/li&gt;
&lt;li&gt;사내 서버가 SQL Server 2008, 2008 R2 이하 버전을 사용 중이라면 엔진 자체에 해당 함수가 정의되어 있지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;② 데이터베이스 호환성 수준(Compatibility Level)이 낮은 경우&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서버 엔진 자체는 SQL Server 2012 이상이더라도, 과거 버전에서 데이터베이스를 백업/복원(마이그레이션)한 경우 호환성 수준이 &lt;code&gt;100&lt;/code&gt;(SQL Server 2008 수준) 이하로 유지될 수 있습니다.&lt;/li&gt;
&lt;li&gt;호환성 수준이 낮으면 최신 T-SQL 구문 및 내장 함수를 파서(Parser)가 인식하지 못합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 서버 버전 및 호환성 수준 확인 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 접속 중인 인스턴스와 데이터베이스 상태를 확인하기 위해 SSMS(SQL Server Management Studio)에서 아래 쿼리를 실행합니다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;-- 1. SQL Server 인스턴스 버전 정보 확인
SELECT 
    SERVERPROPERTY('ProductVersion') AS [ProductVersion],
    SERVERPROPERTY('ProductLevel') AS [PatchLevel],
    SERVERPROPERTY('Edition') AS [Edition],
    @@VERSION AS [FullVersionInfo];

-- 2. 현재 데이터베이스의 호환성 수준(Compatibility Level) 확인
SELECT 
    name AS [DatabaseName],
    compatibility_level AS [CompatibilityLevel]
FROM sys.databases 
WHERE name = DB_NAME();&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;[버전 매핑 기준표]&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ProductVersion 기준:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10.00.xxxx&lt;/code&gt;: SQL Server 2008 (사용 불가)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10.50.xxxx&lt;/code&gt;: SQL Server 2008 R2 (사용 불가)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;11.0.xxxx&lt;/code&gt;: SQL Server 2012 (호환성 110 이상 필요)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;12.0.xxxx&lt;/code&gt;: SQL Server 2014 (호환성 110 이상 필요)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;13.0.xxxx&lt;/code&gt; 이상: SQL Server 2016+&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Compatibility Level 기준:&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;100&lt;/code&gt;: SQL Server 2008 / 2008 R2&lt;/li&gt;
&lt;li&gt;&lt;code&gt;110&lt;/code&gt;: SQL Server 2012&lt;/li&gt;
&lt;li&gt;&lt;code&gt;120&lt;/code&gt;: SQL Server 2014&lt;/li&gt;
&lt;li&gt;&lt;code&gt;130&lt;/code&gt; 이상: SQL Server 2016 이상&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 상황별 해결 방법&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;[해결책 A] 호환성 수준 상향 (엔진이 2012 이상인 경우)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔진 버전은 2012 이상인데 호환성 수준만 낮은 상태라면, 호환성 레벨을 상향 조정하여 바로 &lt;code&gt;TRY_CONVERT()&lt;/code&gt;를 사용할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;-- 대상 데이터베이스의 호환성 수준을 110(SQL Server 2012) 이상으로 변경
ALTER DATABASE [데이터베이스명]
SET COMPATIBILITY_LEVEL = 110;
GO
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주의 사항:&lt;/b&gt; 호환성 수준을 변경하면 쿼리 옵티마이저의 실행 계획 생성 방식 및 레거시 문법 지원 여부(예: 과거 구형 외부 조인 구문 &lt;code&gt;*=&lt;/code&gt; 등)에 변화가 생길 수 있으므로, 운영 반영 전 테스트 환경 검증을 권장합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;[해결책 B] 레거시 환경 대체 쿼리 작성 (SQL Server 2008 이하)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 엔진 업그레이드가 어려운 레거시 환경에서는 &lt;code&gt;CASE&lt;/code&gt; 문과 유효성 검사 함수/패턴을 조합하여 동일한 예외 처리 로직을 구현합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) 정수형 변환 대체 (&lt;code&gt;INT&lt;/code&gt;, &lt;code&gt;BIGINT&lt;/code&gt;)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;ISNUMERIC()&lt;/code&gt;은 &lt;code&gt;.&lt;/code&gt;(마침표), &lt;code&gt;,&lt;/code&gt;(쉼표), &lt;code&gt;$&lt;/code&gt;(통화 기호), &lt;code&gt;d&lt;/code&gt;/&lt;code&gt;e&lt;/code&gt;(지수) 등도 숫자로 판별하므로, 순수 정수 변환 시에는 부정 패턴(&lt;code&gt;NOT LIKE '%[^0-9]%'&lt;/code&gt;)을 함께 사용하는 것이 안전합니다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
    TargetCol,
    CASE 
        WHEN TargetCol NOT LIKE '%[^0-9]%' AND LEN(TargetCol) &amp;gt; 0 
        THEN CONVERT(INT, TargetCol)
        ELSE NULL 
    END AS SafeIntCol
FROM YourTable;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) 소수형 변환 대체 (&lt;code&gt;DECIMAL&lt;/code&gt;, &lt;code&gt;FLOAT&lt;/code&gt;)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소수점 및 부호를 고려하여 정규식 유사 패턴을 적용합니다.&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT 
    TargetCol,
    CASE 
        WHEN ISNUMERIC(TargetCol) = 1 AND TargetCol NOT LIKE '%[^0-9.-]%'
        THEN CONVERT(DECIMAL(18, 2), TargetCol)
        ELSE NULL 
    END AS SafeDecimalCol
FROM YourTable;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3) 날짜형 변환 대체 (&lt;code&gt;DATETIME&lt;/code&gt;, &lt;code&gt;DATE&lt;/code&gt;)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;ISDATE()&lt;/code&gt; 함수를 사용하여 유효한 날짜 포맷인 경우에만 &lt;code&gt;CONVERT&lt;/code&gt;를 수행하도록 처리합니다.&lt;/p&gt;
&lt;pre class=&quot;gherkin&quot;&gt;&lt;code&gt;SELECT 
    TargetDateStr,
    CASE 
        WHEN ISDATE(TargetDateStr) = 1 
        THEN CONVERT(DATETIME, TargetDateStr)
        ELSE NULL 
    END AS SafeDateCol
FROM YourTable;


---

## 4. 요약 정리

| 구분 | 엔진 버전 2012 이상 | 엔진 버전 2008 이하 |
|---|---|---|
| **원인** | 호환성 수준(Compatibility Level) 저하 | 함수 미지원 엔진 |
| **확인 방법** | `sys.databases` 조회 (`compatibility_level &amp;lt; 110`) | `SERVERPROPERTY('ProductVersion')` 확인 (`10.x`) |
| **해결 방법** | `ALTER DATABASE ... SET COMPATIBILITY_LEVEL = 110;` | `CASE WHEN ISDATE/패턴 THEN CONVERT ELSE NULL` 적용 |&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SQL(Oracle,MSSQL,Postgre)</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/6</guid>
      <comments>https://hero0309.tistory.com/6#entry6comment</comments>
      <pubDate>Tue, 1 Sep 2026 14:30:43 +0900</pubDate>
    </item>
    <item>
      <title>[PC용량확인프로그램/SpaceSniffer]내 PC가 용량이 없는데, 어떤 프로그램들 때문에 용량이 부족할까?</title>
      <link>https://hero0309.tistory.com/5</link>
      <description>&lt;h1&gt;내 PC 용량 차지하는 범인 찾기! SpaceSniffer 소개 및 초간단 사용법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터를 사용하다 보면 어느 순간 C드라이브나 D드라이브 용량이 꽉 차서 빨간색 경고 표시가 뜨는 경우가 많습니다. 일일이 폴더 속성을 눌러보며 용량을 확인하기 번거로울 때, 한눈에 대용량 파일을 찾아 정리할 수 있는 무료 디스크 분석 도구 &lt;b&gt;SpaceSniffer&lt;/b&gt;를 소개합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  SpaceSniffer란?&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC4oW1/dJMcaiYMXpV/4IkG9uaPJmk1rn5Pvl4wk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC4oW1/dJMcaiYMXpV/4IkG9uaPJmk1rn5Pvl4wk0/img.png&quot; data-alt=&quot;SpaceSniffer(이미지 출처:SpaceSniffer공식사이트)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC4oW1/dJMcaiYMXpV/4IkG9uaPJmk1rn5Pvl4wk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC4oW1%2FdJMcaiYMXpV%2F4IkG9uaPJmk1rn5Pvl4wk0%2Fimg.png&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;256&quot; height=&quot;256&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SpaceSniffer(이미지 출처:SpaceSniffer공식사이트)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SpaceSniffer&lt;/b&gt;는 PC의 하드디스크와 SSD의 사용 현황을 &lt;b&gt;직관적인 블록 형태(트리맵, Treemap)&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;직관적인 시각화&lt;/b&gt;: 용량을 많이 차지하는 폴더나 파일일수록 더 큰 블록으로 표시됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;무설치 포터블(Portable) 지원&lt;/b&gt;: 복잡한 설치 과정 없이 압축만 풀면 바로 실행 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;빠른 실시간 분석&lt;/b&gt;: 드라이브 내 대용량 파일 및 숨은 임시/캐시 파일을 손쉽게 추적할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1909&quot; data-origin-height=&quot;1413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmUi7z/dJMcaiEDlUB/tEK0U9rhcCyrTDxe1Z3mXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmUi7z/dJMcaiEDlUB/tEK0U9rhcCyrTDxe1Z3mXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmUi7z/dJMcaiEDlUB/tEK0U9rhcCyrTDxe1Z3mXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmUi7z%2FdJMcaiEDlUB%2FtEK0U9rhcCyrTDxe1Z3mXK%2Fimg.png&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;1909&quot; height=&quot;1413&quot; data-origin-width=&quot;1909&quot; data-origin-height=&quot;1413&quot;/&gt;&lt;/span&gt;&lt;/figure&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;공식 다운로드 링크&lt;/b&gt;: &lt;a href=&quot;https://space-sniffer.com/&quot;&gt;https://space-sniffer.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;압축 파일(&lt;code&gt;.zip&lt;/code&gt;)을 내려받은 뒤 원하는 폴더에 압축을 해제하면 모든 준비가 끝납니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; ️ 간단 사용 방법 (Step by Step)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 관리자 권한으로 실행&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;781&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0tTYm/dJMcadC7TOt/7UayTKKIOhJ27BRu4iqtK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0tTYm/dJMcadC7TOt/7UayTKKIOhJ27BRu4iqtK1/img.png&quot; data-alt=&quot;정확한 분석을 위해 관리자 권한으로 실행&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0tTYm/dJMcadC7TOt/7UayTKKIOhJ27BRu4iqtK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0tTYm%2FdJMcadC7TOt%2F7UayTKKIOhJ27BRu4iqtK1%2Fimg.png&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;355&quot; height=&quot;494&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;781&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정확한 분석을 위해 관리자 권한으로 실행&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 파일이나 숨김 폴더까지 누락 없이 정확하게 검사하기 위해, &lt;code&gt;SpaceSniffer.exe&lt;/code&gt; 파일을 &lt;b&gt;마우스 우클릭 &amp;rarr; [관리자 권한으로 실행]&lt;/b&gt;합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 분석할 드라이브 선택&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EUkGt/dJMcacj2xAZ/RuPcprYTx2tzEewcTyD1kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EUkGt/dJMcacj2xAZ/RuPcprYTx2tzEewcTyD1kK/img.png&quot; data-alt=&quot;분석을 원하는 드라이브를 더블클릭 또는 클릭 후 Start&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EUkGt/dJMcacj2xAZ/RuPcprYTx2tzEewcTyD1kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEUkGt%2FdJMcacj2xAZ%2FRuPcprYTx2tzEewcTyD1kK%2Fimg.png&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;515&quot; height=&quot;457&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1164&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;분석을 원하는 드라이브를 더블클릭 또는 클릭 후 Start&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램이 실행되면 분석창이 나타납니다. 확인하고 싶은 드라이브(예: &lt;code&gt;C:&lt;/code&gt; 또는 &lt;code&gt;D:&lt;/code&gt;)를 선택한 후 &lt;b&gt;&lt;code&gt;Start&lt;/code&gt;&lt;/b&gt; 버튼을 누릅니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 용량 분석 맵 확인&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/li5xZ/dJMb9910dAw/kApirRK7lQNblNCbrRosak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/li5xZ/dJMb9910dAw/kApirRK7lQNblNCbrRosak/img.png&quot; data-alt=&quot;C드라이브를 분석중인 프로그램. 우측 상단에 진행도가 표시됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/li5xZ/dJMb9910dAw/kApirRK7lQNblNCbrRosak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fli5xZ%2FdJMb9910dAw%2FkApirRK7lQNblNCbrRosak%2Fimg.png&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;611&quot; height=&quot;541&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1161&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;C드라이브를 분석중인 프로그램. 우측 상단에 진행도가 표시됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&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;블록 크기&lt;/b&gt;: 클수록 용량을 많이 차지하는 항목입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;더블클릭&lt;/b&gt;: 특정 폴더 블록을 더블클릭하면 해당 하위 폴더의 세부 파일 구성을 즉시 줌인(Zoom-in)하여 볼 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 불필요한 파일 삭제 및 정리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;용량을 과도하게 차지하는 불필요한 파일(오래된 백업, 대용량 임시 파일, 안 쓰는 설치 파일 등)을 발견하면, 프로그램 화면에서 &lt;b&gt;마우스 우클릭 &amp;rarr; [삭제]&lt;/b&gt;를 선택해 바로 제거할 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  요약 및 팁&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;윈도우 기본 시스템 파일(&lt;code&gt;Windows&lt;/code&gt;, &lt;code&gt;System32&lt;/code&gt; 등)은 함부로 삭제하지 않도록 주의하세요.&lt;/li&gt;
&lt;li&gt;주로 &lt;code&gt;사용자(Users)&lt;/code&gt; 폴더 내 다운로드, 앱 데이터 캐시, 임시 파일 위주로 정리하면 안전하게 수 기가바이트(GB) 이상의 저장 공간을 확보할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>잡학상식</category>
      <category>c드라이브 용량부족</category>
      <category>PC</category>
      <category>PC디스크분석</category>
      <category>PC용량없을때</category>
      <category>SpaceSniffer</category>
      <category>디스크분석프로그램</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/5</guid>
      <comments>https://hero0309.tistory.com/5#entry5comment</comments>
      <pubDate>Tue, 1 Sep 2026 12:43:23 +0900</pubDate>
    </item>
    <item>
      <title>(IT/IT가전/노트북/맥북) 맥북은 정말로 고성능 노트북일까?(예산별 노트북 선택 가이드)</title>
      <link>https://hero0309.tistory.com/4</link>
      <description>&lt;h1&gt;맥북은 정말 &amp;quot;고성능&amp;quot; 노트북일까? — 예산별로 따져본 2026년 합리적 선택 가이드&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;글 요약&lt;/strong&gt;&lt;br&gt;맥북이 좋다/나쁘다의 문제가 아닙니다. 2026년 메모리 대란으로 노트북 시장 전체 가격이 올라가면서, &amp;quot;맥북은 비싸다&amp;quot;는 오래된 전제 자체가 흔들렸습니다. 예산 구간별로 무엇이 실제로 합리적인 선택인지 정리했습니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKB2X8/dJMb99U9BTW/Kki4QWfdq32A60nm5EPsg0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKB2X8/dJMb99U9BTW/Kki4QWfdq32A60nm5EPsg0/img.webp&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1201&quot; data-is-animation=&quot;false&quot; width=&quot;310&quot; height=&quot;372&quot; style=&quot;width: 44.9056%; margin-right: 10px;&quot; data-widthpercent=&quot;45.43&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKB2X8/dJMb99U9BTW/Kki4QWfdq32A60nm5EPsg0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKB2X8%2FdJMb99U9BTW%2FKki4QWfdq32A60nm5EPsg0%2Fimg.webp&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;1000&quot; height=&quot;1201&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cu9bcd/dJMcabyDVNT/BOdsQvSdEuwhLkIYMngVNk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cu9bcd/dJMcabyDVNT/BOdsQvSdEuwhLkIYMngVNk/img.jpg&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.9316%;&quot; data-widthpercent=&quot;54.57&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cu9bcd/dJMcabyDVNT/BOdsQvSdEuwhLkIYMngVNk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcu9bcd%2FdJMcabyDVNT%2FBOdsQvSdEuwhLkIYMngVNk%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;500&quot; height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;Windows OS 노트북(Gram 2026) 과 MacBook Air 2026 13인치&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;  목차&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;#%EB%93%A4%EC%96%B4%EA%B0%80%EB%A9%B0-%EC%A7%88%EB%AC%B8%EC%9D%84-%EB%B0%94%EA%BF%94%EC%95%BC-%EB%8B%B5%EC%9D%B4-%EB%82%98%EC%98%A8%EB%8B%A4&quot;&gt;들어가며: 질문을 바꿔야 답이 나온다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#1-%EA%B3%A0%EC%84%B1%EB%8A%A5%EC%9D%B4%EB%9D%BC%EB%8A%94-%EB%A7%90%EB%B6%80%ED%84%B0-%EC%AA%BC%EA%B0%9C%EB%B3%B4%EC%9E%90&quot;&gt;“고성능”이라는 말부터 쪼개보자&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#%EB%A7%A5%EB%B6%81%EC%9D%B4-%EA%B0%95%ED%95%9C-%EC%9D%B4%EC%9C%A0-%EA%B5%AC%EC%A1%B0%EC%A0%81-%EA%B7%BC%EA%B1%B0&quot;&gt;맥북이 강한 이유&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#m6-%EC%84%B8%EB%8C%80%EA%B0%80-%EB%B3%B4%EC%97%AC%EC%A4%80-%EB%B0%A9%ED%96%A5-2026%EB%85%84-8%EC%9B%94-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8&quot;&gt;M6 세대가 보여준 방향&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%EB%A7%A5%EB%B6%81%EC%9D%B4-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%BD%ED%95%9C-%EC%A7%80%EC%A0%90&quot;&gt;맥북이 명확히 약한 지점&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#2-2026%EB%85%84%EC%9D%B4-%ED%8A%B9%EC%88%98%ED%95%9C-%EC%9D%B4%EC%9C%A0-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%8C%80%EB%9E%80%EC%9D%B4-%ED%8C%90%EC%9D%84-%EB%92%A4%EC%A7%91%EC%97%88%EB%8B%A4&quot;&gt;2026년이 특수한 이유: 메모리 대란&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#3-%EC%98%88%EC%82%B0-%EA%B5%AC%EA%B0%84%EB%B3%84-%EB%B9%84%EA%B5%90&quot;&gt;예산 구간별 비교&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#-120%EB%A7%8C%EC%9B%90-%EC%9D%B4%ED%95%98--%EB%A7%A5%EB%B6%81-%EB%84%A4%EC%98%A4-vs-%EB%B3%B4%EA%B8%89%ED%98%95-%EC%9C%88%EB%8F%84%EC%9A%B0&quot;&gt;120만원 이하&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#-150230%EB%A7%8C%EC%9B%90--%EA%B0%80%EC%9E%A5-%EC%B9%98%EC%97%B4%ED%95%9C-%EA%B5%AC%EA%B0%84&quot;&gt;150~230만원&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#-250350%EB%A7%8C%EC%9B%90--%EC%97%AC%EA%B8%B0%EC%84%9C-%EB%A7%A5%EB%B6%81-%ED%94%84%EB%A1%9C%EA%B0%80-%EA%B0%88%EB%A6%B0%EB%8B%A4&quot;&gt;250~350만원&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#-350%EB%A7%8C%EC%9B%90-%EC%9D%B4%EC%83%81--%EB%AA%A9%EC%A0%81%EC%9D%B4-%EB%AA%85%ED%99%95%ED%95%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EB%82%AD%EB%B9%84&quot;&gt;350만원 이상&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#4-%EA%B0%80%EA%B2%A9%ED%91%9C%EC%97%90-%EC%95%88-%EB%82%98%EC%98%A4%EB%8A%94-%EB%B9%84%EC%9A%A9--4%EB%85%84-%EC%B4%9D%EC%86%8C%EC%9C%A0%EB%B9%84%EC%9A%A9tco&quot;&gt;가격표에 안 나오는 비용: 4년 총소유비용&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#5-3%EB%B6%84-%EC%B2%B4%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%8A%B8--%EB%82%98%EB%8A%94-%EC%96%B4%EB%8A%90-%EC%AA%BD%EC%9D%B8%EA%B0%80&quot;&gt;3분 체크리스트&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#6-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%95%BC-%ED%95%98%EB%82%98--%ED%83%80%EC%9D%B4%EB%B0%8D-%EC%9D%B4%EC%8A%88&quot;&gt;언제 사야 하나 — 타이밍 이슈&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%EA%B2%B0%EB%A1%A0&quot;&gt;결론&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;들어가며: 질문을 바꿔야 답이 나온다&lt;/h2&gt;
&lt;p&gt;&amp;quot;맥북이 좋아요, 삼성/LG 노트북이 좋아요?&amp;quot;&lt;/p&gt;
&lt;p&gt;이 질문에는 답이 없습니다. 대신 이렇게 바꾸면 답이 나옵니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;&amp;quot;내 예산 OOO만원에서, 내가 하는 작업을 기준으로 총 소유 기간 4년 동안 가장 손해가 적은 선택은 무엇인가?&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;이 글은 위 질문에 답하기 위해 ①맥북의 성능이 실제로 어디서 나오는지 ②2026년 시장 상황이 왜 특수한지 ③예산 구간별 현실적인 결론 순서로 정리합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;1. &amp;quot;고성능&amp;quot;이라는 말부터 쪼개보자&lt;/h2&gt;
&lt;p&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;맥북의 위치&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;피크 성능&lt;/strong&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;strong&gt;지속 성능&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;30분~수시간 부하에서 유지되는 성능&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;강점&lt;/strong&gt; (특히 Pro 라인)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;전성비&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;같은 성능을 낼 때 쓰는 전력&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;압도적 강점&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;특정 워크로드 성능&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;영상 인코딩, 로컬 AI, 컴파일 등&lt;/td&gt;
&lt;td&gt;작업 종류에 따라 극과 극&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;맥북이 강한 이유 (구조적 근거)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;① SoC 통합 설계&lt;/strong&gt;&lt;br&gt;CPU, GPU, NPU, 메모리 컨트롤러, 미디어 엔진이 한 칩 안에 있습니다. 부품 간 데이터 이동 거리가 짧아 지연과 전력 소모가 줄어듭니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② 통합 메모리(Unified Memory)&lt;/strong&gt;&lt;br&gt;CPU와 GPU가 같은 메모리 풀을 공유합니다. 일반 노트북이 시스템 RAM → VRAM으로 데이터를 복사하는 과정이 아예 없습니다. 영상 편집, 로컬 LLM 구동처럼 대용량 데이터를 GPU가 다뤄야 하는 작업에서 이 차이가 큽니다.&lt;br&gt;→ 특히 로컬에서 대형 AI 모델을 돌릴 때, &amp;quot;메모리 64GB짜리 맥북&amp;quot;이 &amp;quot;VRAM 8GB 외장 그래픽 노트북&amp;quot;보다 유리한 역설이 여기서 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;③ 전용 미디어 엔진&lt;/strong&gt;&lt;br&gt;H.264, HEVC, &lt;strong&gt;ProRes&lt;/strong&gt; 인코딩/디코딩 전용 하드웨어 블록이 있습니다. 파이널컷·다빈치리졸브에서 4K 멀티캠 타임라인이 부드럽게 도는 건 CPU가 세서가 아니라 이 전용 회로 덕분입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;④ 전원 정책의 일관성&lt;/strong&gt;&lt;br&gt;대부분의 윈도우 노트북은 배터리 모드에서 성능이 눈에 띄게 떨어집니다. 맥북은 배터리에서도 거의 같은 성능을 냅니다. 카페에서 작업하는 시간이 많다면 카탈로그 스펙보다 이게 훨씬 체감이 큽니다.&lt;/p&gt;
&lt;h3&gt;M6 세대가 보여준 방향 (2026년 8월 업데이트)&lt;/h3&gt;
&lt;p&gt;2026년 8월 25일, 애플은 M6와 M5 Ultra를 공개했습니다. &lt;strong&gt;중요한 건 이 칩들이 맥북이 아니라 Mac mini와 Mac Studio에 먼저 들어갔다는 점입니다.&lt;/strong&gt; 하지만 스펙을 보면 다음 세대 맥북이 어떤 방향으로 갈지 읽을 수 있습니다.&lt;/p&gt;
&lt;p&gt;M6는 애플 최초의 2나노미터 공정 칩으로, 12코어 CPU와 12코어 GPU, 듀얼 16코어 Neural Engine을 탑재하고 최대 170GB/s의 통합 메모리 대역폭을 제공합니다.&lt;/p&gt;
&lt;p&gt;주목할 만한 세 가지:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;① CPU 구성이 3단계로 바뀌었습니다&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;M6의 12코어 CPU는 슈퍼 코어 2개, 성능 코어 4개, 효율 코어 6개로 구성됩니다. 슈퍼 코어는 싱글스레드 워크로드를 처리하고, 성능 코어는 더 적은 전력으로 슈퍼 코어와 함께 고사양 멀티스레드 작업을 처리하며, 효율 코어는 백그라운드 작업을 담당합니다.&lt;/p&gt;
&lt;p&gt;기존의 성능/효율 2단계 구조에서 3단계로 세분화된 것으로, 앞서 설명한 &amp;quot;전성비&amp;quot; 강점을 더 밀어붙인 설계입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② AI 연산이 이번 세대의 핵심입니다&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;듀얼 16코어 Neural Engine으로 최대 컴퓨팅 성능이 이전 세대 대비 최대 2배&lt;/p&gt;
&lt;p&gt;가 됐고,&lt;/p&gt;
&lt;p&gt;GPU의 AI 컴퓨팅 성능은 M5 대비 약 30% 향상되며 온디바이스 LLM 프롬프트 처리 속도가 빨라집니다.&lt;/p&gt;
&lt;p&gt;로컬에서 AI를 돌릴 계획이 있다면 이 부분이 실제 체감으로 이어집니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;③ 다만 메모리 상한은 32GB입니다&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;M6는 최대 32GB의 통합 메모리를 지원&lt;/p&gt;
&lt;p&gt;합니다. 기본형 칩의 한계선은 그대로라는 뜻이고, 그 이상이 필요하면 여전히 Pro/Max 라인으로 올라가야 합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;글에 반영할 포인트:&lt;/strong&gt; 애플이 CPU 코어를 늘리는 대신 &lt;strong&gt;AI 연산 유닛과 전력 효율에 자원을 집중&lt;/strong&gt;하고 있다는 흐름이 분명합니다. &amp;quot;노트북의 고성능&amp;quot;이 순수 연산력에서 온디바이스 AI 처리 능력으로 이동하는 중이라는 해석이 가능합니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;맥북이 명확히 약한 지점&lt;/h3&gt;
&lt;p&gt;정직하게 짚고 갑시다. 여기 하나라도 해당하면 맥북은 답이 아닙니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;게이밍&lt;/strong&gt; — 스팀 라이브러리 대부분이 네이티브 미지원. 이건 성능 문제가 아니라 생태계 문제라 돈으로 해결이 안 됩니다. (M6 세대에서 (cite index=&amp;quot;32-1&amp;quot;&amp;gt;복잡한 그래픽 작업의 지오메트리 처리율이 50% 향상되는 등 애플이 게이밍에 투자하고 있는 건 사실이지만, &lt;strong&gt;하드웨어가 빨라져도 돌릴 게임이 없다는 문제는 그대로&lt;/strong&gt;입니다.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;외장 GPU 확장 불가&lt;/strong&gt; — eGPU 미지원. CUDA 필수 환경(딥러닝 학습, 일부 3D 렌더러)이면 탈락.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;업계 전용 소프트웨어&lt;/strong&gt; — 한컴 계열 일부 기능, 국내 관공서·금융 웹 환경, CAD·회계·설계 프로그램 상당수가 윈도우 전용.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;확장성 제로&lt;/strong&gt; — RAM·SSD 납땜. 구매 시점의 선택이 4~5년을 결정합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;업그레이드 비용&lt;/strong&gt; — 애플의 RAM·SSD 옵션 가격은 여전히 비쌉니다. (다만 이 항목은 아래에서 반전이 있습니다.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;포트 구성&lt;/strong&gt; — 에어와 네오는 포트가 적어 허브가 사실상 필수 지출입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;2. 2026년이 특수한 이유: 메모리 대란이 판을 뒤집었다&lt;/h2&gt;
&lt;p&gt;이 글의 핵심입니다. &lt;strong&gt;작년까지 통하던 가성비 상식이 지금은 통하지 않습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AI 데이터센터 수요가 D램·낸드 물량을 빨아들이면서 메모리 가격이 폭등했고, 그 여파가 완제품 노트북 가격에 그대로 전이됐습니다.&lt;/p&gt;
&lt;p&gt;2026년 삼성전자와 LG전자 모두 전년 출시 모델과 비슷한 사양의 신제품 출고가를 20% 안팎으로 인상&lt;/p&gt;
&lt;p&gt;했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;윈도우 진영이 맞은 타격&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LG 그램 16은 연초 314만 원에서 354만 원까지 올랐고, 전년 모델(264만 원) 대비 1년 만에 약 90만 원이 상승했습니다.&lt;/li&gt;
&lt;li&gt;삼성도 갤럭시 북 6 시리즈 가격을 최소 17만 5천 원에서 최대 90만 원까지 인상했습니다.&lt;/li&gt;
&lt;li&gt;80만원 이하 구간은 선택지가 크게 줄었고, 이 가격대의 스펙 구성이 눈에 띄게 낮아졌습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;애플 진영도 예외는 아니었다&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026년 6월 24일 애플은 국내 가격을 일제히 조정했고, M5 맥북 에어 13형은 40만 원 오른 219만 원, 맥북 프로는 60만 원 오른 329만 원이 됐습니다. 인상률로는 각각 18.2%, 17.7% 수준입니다.&lt;/li&gt;
&lt;li&gt;3월에 99만 원으로 출시됐던 보급형 맥북 네오도 119만 원으로 올라 &amp;quot;100만원 미만&amp;quot;이라는 상징적 가격대가 깨졌습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;그래서 결론이 뭐냐면&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;양쪽 다 올랐지만 &lt;strong&gt;인상 폭과 방식이 달랐습니다.&lt;/strong&gt; 애플은 기본 저장용량을 두 배로 늘리면서 가격을 올렸고(에어 기준 512GB 기본), 윈도우 진영은 사양은 비슷하거나 오히려 축소된 상태로 가격만 올랐습니다.&lt;/p&gt;
&lt;p&gt;결과적으로&lt;/p&gt;
&lt;p&gt;램값 폭등으로 여러 PC 제조사가 가격을 대폭 올리면서, 비싸다고 평가받던 Mac의 램 업그레이드 비용과 큰 차이가 나지 않거나 오히려 Mac이 더 저렴해지는 수준&lt;/p&gt;
&lt;p&gt;이 됐습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;⚠️ &lt;strong&gt;가격은 계속 바뀝니다.&lt;/strong&gt; 이 글의 가격은 2026년 8월 기준이며, 구매 직전 애플 공식 스토어와 다나와 최저가를 반드시 재확인하세요. 특히 윈도우 노트북은 출고가와 실구매가(혜택가) 차이가 50만원 이상 나는 경우가 흔합니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2&gt;3. 예산 구간별 비교&lt;/h2&gt;
&lt;h3&gt;  120만원 이하 — &amp;quot;맥북 네오 vs 보급형 윈도우&amp;quot;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;MacBook Neo&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;A18 Pro (6코어 CPU / 5코어 GPU)&lt;/td&gt;
&lt;td&gt;인텔 코어5 / 라이젠 5 급&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM&lt;/td&gt;
&lt;td&gt;8GB (고정)&lt;/td&gt;
&lt;td&gt;8~16GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;저장&lt;/td&gt;
&lt;td&gt;256GB / 512GB&lt;/td&gt;
&lt;td&gt;256~512GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;화면&lt;/td&gt;
&lt;td&gt;13형 Liquid Retina, 2408×1506&lt;/td&gt;
&lt;td&gt;대부분 FHD IPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;무게&lt;/td&gt;
&lt;td&gt;1.23kg&lt;/td&gt;
&lt;td&gt;1.4~1.7kg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;macOS 26&lt;/td&gt;
&lt;td&gt;Windows (프리도스 모델 주의)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;$599, 혹은 교육할인가 $499조차 크롬북과 1:1 비교 가능한 가격은 아니지만, 동 가격대의 윈도우 노트북과 비교해도 장점은 많습니다.&lt;/p&gt;
&lt;p&gt;애플 자체 비교 시연에서도&lt;/p&gt;
&lt;p&gt;동가격대 PC 대비 훨씬 선명하고 밝은 디스플레이, 예상 이상의 스피커 음질을 강조&lt;/p&gt;
&lt;p&gt;했습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;판단 기준&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;웹 브라우징 + 문서 + 인강 + 넷플릭스가 전부라면 → &lt;strong&gt;네오가 유리&lt;/strong&gt;합니다. 화면·스피커·트랙패드·무게·배터리 모두 동가격대 윈도우 대비 앞섭니다.&lt;/li&gt;
&lt;li&gt;단, &lt;strong&gt;RAM 8GB 고정&lt;/strong&gt;은 명확한 상한선입니다. 크롬 탭 30개 + 줌 + 문서 동시 사용이 일상이라면 2~3년 뒤 답답해집니다.&lt;/li&gt;
&lt;li&gt;윈도우 전용 프로그램이 하나라도 필수라면 → 이 구간에서는 &lt;strong&gt;윈도우로 가세요.&lt;/strong&gt; 이 예산대에선 &amp;quot;가상머신으로 돌리면 되지&amp;quot;가 성립하지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;  150~230만원 — &amp;quot;가장 치열한 구간&amp;quot;&lt;/h3&gt;
&lt;p&gt;여기가 대부분의 대학생·직장인이 고민하는 지점입니다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;MacBook Air 13 (M5)&lt;/th&gt;
&lt;th&gt;LG 그램 15/16&lt;/th&gt;
&lt;th&gt;갤럭시북6 프로 14&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;가격대&lt;/td&gt;
&lt;td&gt;약 219만원~&lt;/td&gt;
&lt;td&gt;약 220~270만원 (혜택가 기준)&lt;/td&gt;
&lt;td&gt;약 150만원 후반~&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;프로세서&lt;/td&gt;
&lt;td&gt;M5 (10코어 CPU)&lt;/td&gt;
&lt;td&gt;코어 Ultra / 라이젠 AI&lt;/td&gt;
&lt;td&gt;코어 Ultra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM / 저장&lt;/td&gt;
&lt;td&gt;16GB / 512GB&lt;/td&gt;
&lt;td&gt;32GB / 256GB 구성 다수&lt;/td&gt;
&lt;td&gt;구성별 상이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;무게&lt;/td&gt;
&lt;td&gt;1.24kg&lt;/td&gt;
&lt;td&gt;1.2kg 미만(16형)&lt;/td&gt;
&lt;td&gt;경량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;특징&lt;/td&gt;
&lt;td&gt;팬리스·무소음, 배터리 최대 18시간&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;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rsetK/dJMcabehb2N/hISSpV77puVN8V5yvZJMi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rsetK/dJMcabehb2N/hISSpV77puVN8V5yvZJMi1/img.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;469&quot; data-is-animation=&quot;false&quot; width=&quot;432&quot; height=&quot;207&quot; style=&quot;width: 40.7524%; margin-right: 10px;&quot; data-widthpercent=&quot;41.72&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rsetK/dJMcabehb2N/hISSpV77puVN8V5yvZJMi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrsetK%2FdJMcabehb2N%2FhISSpV77puVN8V5yvZJMi1%2Fimg.png&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;980&quot; height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0jVP2/dJMcahMo5Oy/G7B1Gzb51RYnFZTB9AXze0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0jVP2/dJMcahMo5Oy/G7B1Gzb51RYnFZTB9AXze0/img.jpg&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;543&quot; data-is-animation=&quot;false&quot; width=&quot;360&quot; height=&quot;254&quot; style=&quot;width: 27.6561%; margin-right: 10px;&quot; data-widthpercent=&quot;28.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0jVP2/dJMcahMo5Oy/G7B1Gzb51RYnFZTB9AXze0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0jVP2%2FdJMcahMo5Oy%2FG7B1Gzb51RYnFZTB9AXze0%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;770&quot; height=&quot;543&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TfIi3/dJMcagzY8Y1/iSKYCEEYuyDiZwk6SRYK7K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TfIi3/dJMcagzY8Y1/iSKYCEEYuyDiZwk6SRYK7K/img.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;853&quot; data-is-animation=&quot;false&quot; width=&quot;399&quot; height=&quot;266&quot; style=&quot;width: 29.2659%;&quot; data-widthpercent=&quot;29.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TfIi3/dJMcagzY8Y1/iSKYCEEYuyDiZwk6SRYK7K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTfIi3%2FdJMcagzY8Y1%2FiSKYCEEYuyDiZwk6SRYK7K%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;1280&quot; height=&quot;853&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;Macbook Air 13 / LG Gram 16 / 갤럭시북 6 프로 14 이미지 사진&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;맥북 에어 M5의 포지션&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;M5 칩은 전작 M4 대비 최대 4배 향상된 AI 작업 성능을 제공하고, 메모리 대역폭은 초당 153GB로 28% 향상됐습니다. 기본 저장용량은 512GB로 두 배 늘었습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;이렇게 판단하세요&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;✅ &lt;strong&gt;맥북 에어를 사야 하는 경우&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;아이폰·아이패드를 이미 쓰고 있다 (에어드롭·연속성 기능의 시간 절약이 실제로 큽니다)&lt;/li&gt;
&lt;li&gt;이동이 잦고 충전기 없이 반나절 이상 버텨야 한다&lt;/li&gt;
&lt;li&gt;개발(웹/앱), 문서, 디자인 시안 작업 위주&lt;/li&gt;
&lt;li&gt;소음에 예민하다 (팬리스는 물리적으로 소음이 0입니다)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;✅ &lt;strong&gt;그램/갤럭시북을 사야 하는 경우&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15~16인치 대화면이 필요하다 (같은 예산에서 맥북은 13인치)&lt;/li&gt;
&lt;li&gt;HDMI, USB-A, SD 슬롯 등 포트를 자주 쓴다&lt;/li&gt;
&lt;li&gt;회사·학교 시스템이 윈도우 전제로 돌아간다&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A/S 접근성이 중요하다&lt;/strong&gt; — 전국 서비스센터 밀도는 삼성·LG가 압도적입니다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;⚠️ &lt;strong&gt;주의:&lt;/strong&gt; 그램 구매 시 &lt;strong&gt;프리도스(FreeDOS)&lt;/strong&gt; 모델인지 확인하세요. 윈도우 정품 라이선스 비용(약 15~20만원)이 추가로 듭니다. 다나와 최저가만 보고 비교하면 이 부분에서 계산이 틀어집니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;  250~350만원 — &amp;quot;여기서 맥북 프로가 갈린다&amp;quot;&lt;/h3&gt;
&lt;p&gt;M5 Pro 탑재 14인치 맥북 프로가 329만원&lt;/p&gt;
&lt;p&gt;으로 이 구간 상단에 위치합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;맥북 프로가 에어보다 나은 지점은 칩이 아니라 냉각과 화면입니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;팬이 없는 에어는 발열 시 성능을 낮추지만, 프로는 강력한 쿨링 시스템으로 칩셋의 성능을 끝까지 유지합니다.&lt;/p&gt;
&lt;p&gt;여기에 미니 LED 기반 Liquid Retina XDR 패널과 120Hz 프로모션, HDMI·SD 카드 슬롯이 더해집니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;이 구간의 실질적 선택지&lt;/strong&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;맥북 에어 15 + 남는 예산으로 모니터·주변기기&lt;/td&gt;
&lt;td&gt;화면 크기가 중요하지만 무거운 작업은 안 하는 사람&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;맥북 프로 14 (M5 Pro)&lt;/td&gt;
&lt;td&gt;4K 영상 편집, 장시간 컴파일, 로컬 AI 추론&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LG 그램 프로 16 / 갤럭시북6 프로&lt;/td&gt;
&lt;td&gt;대화면 + 윈도우 필수 + 이동성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RTX 탑재 게이밍/크리에이터 노트북&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CUDA 필요, 게임 병행, 3D 렌더링&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;  자주 놓치는 계산:&lt;/strong&gt; 이 구간에서 맥북 프로를 살 바에야, &lt;strong&gt;맥북 에어 + 외장 모니터 + 좋은 키보드/마우스&lt;/strong&gt; 조합이 더 나은 경우가 많습니다. 집이나 사무실에 고정으로 앉아서 하는 작업 비중이 70% 이상이라면 특히 그렇습니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;
&lt;h3&gt;  350만원 이상 — &amp;quot;목적이 명확하지 않으면 낭비&amp;quot;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cImBmo/dJMcab6xM6T/zhnEsoRjYfY4aCneYBRuo0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cImBmo/dJMcab6xM6T/zhnEsoRjYfY4aCneYBRuo0/img.webp&quot; data-alt=&quot;Macbook Pro 14(M5) 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cImBmo/dJMcab6xM6T/zhnEsoRjYfY4aCneYBRuo0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcImBmo%2FdJMcab6xM6T%2FzhnEsoRjYfY4aCneYBRuo0%2Fimg.webp&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;1000&quot; height=&quot;388&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Macbook Pro 14(M5) 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
14인치 M5 Max 모델은 3599달러, 16인치 M5 Max는 3899달러&lt;/p&gt;
&lt;p&gt;부터입니다. 국내가로는 500만원대에 진입합니다.&lt;/p&gt;
&lt;p&gt;이 구간은 &lt;strong&gt;&amp;quot;이 노트북이 벌어다 주는 돈&amp;quot;으로 정당화되는 영역&lt;/strong&gt;입니다. 취미로 접근하면 대부분 오버스펙입니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;맥북 프로 M5 Max&lt;/strong&gt; → 8K 영상, 대규모 앱 빌드, 대용량 로컬 LLM 추론. 48GB 이상의 고용량 램은 영상 편집뿐 아니라 대용량 파라미터를 다루는 AI 모델링이나 대규모 앱 빌드 시 발생하는 병목을 방지합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RTX 5070/5080 탑재 윈도우 워크스테이션&lt;/strong&gt; → CUDA 기반 딥러닝 학습, 언리얼 엔진, 게임 병행.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;이 둘은 경쟁 관계가 아닙니다.&lt;/strong&gt; 추론(inference) 위주면 통합 메모리가 큰 맥이, 학습(training)과 CUDA 생태계가 필요하면 엔비디아 GPU가 답입니다. 예산이 아니라 작업 종류가 결정합니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;4. 가격표에 안 나오는 비용 — 4년 총소유비용(TCO)&lt;/h2&gt;
&lt;p&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;윈도우 노트북&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;중고 잔존가치&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3년 후 정가의 50~60% 수준&lt;/td&gt;
&lt;td&gt;30~40% 수준&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OS 라이선스&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;포함&lt;/td&gt;
&lt;td&gt;프리도스 모델은 별도(15~20만원)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OS 업데이트 지원&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;통상 7년 내외&lt;/td&gt;
&lt;td&gt;제조사·모델별 상이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A/S 접근성&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;공인 서비스센터 (지역 편차 큼)&lt;/td&gt;
&lt;td&gt;삼성·LG는 전국망 우수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;수리비&lt;/strong&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;strong&gt;업그레이드&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;불가 (구매 시 확정)&lt;/td&gt;
&lt;td&gt;RAM/SSD 교체 가능한 모델 존재&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;핵심 두 가지&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;잔존가치 차이는 실제 지출 차이입니다.&lt;/strong&gt; 250만원 맥북을 3년 뒤 130만원에 팔면 실부담은 120만원. 200만원 윈도우 노트북을 70만원에 팔면 실부담 130만원. 정가가 50만원 비싼 쪽이 실제로는 더 쌀 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;반대로, 맥북은 &amp;quot;선택을 되돌릴 수 없습니다.&amp;quot;&lt;/strong&gt; RAM 16GB로 샀는데 부족해지면 방법이 없습니다. 이 리스크 프리미엄을 감안해 &lt;strong&gt;RAM은 예산이 허락하는 한 한 단계 위로&lt;/strong&gt; 가는 게 정석입니다. (저장공간은 외장 SSD로 우회 가능하지만 RAM은 우회가 안 됩니다.)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;5. 3분 체크리스트 — 나는 어느 쪽인가&lt;/h2&gt;
&lt;p&gt;다음 중 &lt;strong&gt;하나라도&lt;/strong&gt; ✅면 → &lt;strong&gt;윈도우 노트북&lt;/strong&gt;으로 가세요. 고민할 필요 없습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; PC 게임을 한다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; CUDA / 엔비디아 GPU가 필요한 작업을 한다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 회사·학교에서 윈도우 전용 프로그램 사용이 강제된다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 예산이 100만원 이하다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 직접 부품을 업그레이드하며 오래 쓰고 싶다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음 중 &lt;strong&gt;3개 이상&lt;/strong&gt; ✅면 → &lt;strong&gt;맥북&lt;/strong&gt;이 유리합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 아이폰 또는 아이패드를 쓰고 있다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 하루 중 상당 시간을 충전기 없이 쓴다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 영상·사진·디자인 작업을 한다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 개발자다 (특히 웹/모바일/유닉스 환경)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 팬 소음이 신경 쓰인다&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;&quot; type=&quot;checkbox&quot;&gt; 3~4년 이상 쓰고 중고로 팔 계획이다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;6. 언제 사야 하나 — 타이밍 이슈&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;⚠️ M6 맥북을 기다려야 할까?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2026년 8월 25일 애플이 M6를 공개했지만, &lt;strong&gt;탑재 기기는 Mac mini(데스크탑)였습니다.&lt;/strong&gt; M5 Ultra 역시 Mac Studio에 들어갔습니다. 즉 &lt;strong&gt;현재 시점에 M6를 탑재한 맥북은 존재하지 않습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;이게 구매자 입장에서 의미하는 바:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;차세대 칩이 이미 양산 단계에 들어갔다는 뜻이므로, &lt;strong&gt;M6 탑재 맥북 에어/프로가 나오는 건 시간 문제&lt;/strong&gt;로 보는 것이 합리적입니다.&lt;/li&gt;
&lt;li&gt;지금 M5 맥북 에어를 219만원에 사면, 몇 달 안에 신형이 나올 가능성을 감수하는 셈입니다.&lt;/li&gt;
&lt;li&gt;반대로 &lt;strong&gt;당장 필요한 사람이라면 기다림의 실익이 크지 않습니다.&lt;/strong&gt; M5 → M6는 코어 2개 추가와 AI 성능 향상이 중심이라, 문서·웹·개발 위주 작업에서는 체감 차이가 작을 가능성이 높습니다.&lt;/li&gt;
&lt;li&gt;온디바이스 AI를 적극적으로 쓸 계획이라면 → &lt;strong&gt;기다릴 가치가 있습니다.&lt;/strong&gt; Neural Engine 성능이 2배 차이 나는 세대 교체입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;다만 위 판단은 어디까지나 추론입니다. 맥북 탑재 시점과 가격은 애플이 공식 발표하기 전까지 알 수 없습니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;그 밖의 타이밍 요소&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;다만 업계에서는 공급 부족 흐름이 당분간 지속되며 2026년 말까지도 추가 상승 가능성이 있다는 분석이 나옵니다. &lt;strong&gt;&amp;quot;가격이 떨어지면 사겠다&amp;quot;는 전략은 현재로선 성공 확률이 낮습니다.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;업무나 학업처럼 노트북이 필수적인 경우라면, 가격 하락을 기다리기보다 현재 시점에서 합리적인 사양을 선택하는 것이 현실적입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;돈 아끼는 실질적 방법&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;교육 할인&lt;/strong&gt; — 재학생·교직원은 애플 교육 스토어 이용. 네오는 교육가가 별도로 책정되어 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;리퍼브(공식 재정비 제품)&lt;/strong&gt; — 애플 공식 리퍼브는 신품과 동일한 1년 보증에 10~15% 저렴합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;직전 세대 재고&lt;/strong&gt; — M4 에어 재고가 남아 있다면 체감 성능 대비 가격 메리트가 큽니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;윈도우는 다나와 최저가 확인 필수&lt;/strong&gt; — 출고가와 실구매가 차이가 큽니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2&gt;결론&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;맥북은 고성능인가?&amp;quot;&lt;/strong&gt; → 전성비와 지속 성능, 그리고 통합 메모리를 쓰는 특정 작업에서는 명확히 그렇습니다. 하지만 게이밍과 CUDA 워크로드에서는 같은 돈으로 살 수 있는 윈도우 노트북에 밀립니다. &lt;strong&gt;범용적 우위가 아니라 특정 축에서의 우위입니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;그래서 뭘 사야 하나?&amp;quot;&lt;/strong&gt; → 2026년의 정답은 예년과 다릅니다. 메모리 대란으로 윈도우 진영의 가격 우위가 상당 부분 사라졌기 때문에, &lt;strong&gt;과거처럼 &amp;quot;가성비=윈도우&amp;quot;라는 공식으로 접근하면 손해를 볼 수 있습니다.&lt;/strong&gt; 반드시 지금 시점의 실구매가를 양쪽 다 확인한 뒤 결정하세요.&lt;/p&gt;
&lt;p&gt;결국 결정 요인은 &lt;strong&gt;가격이 아니라 소프트웨어 호환성과 사용 패턴&lt;/strong&gt;입니다. 위 체크리스트에서 윈도우 항목에 하나라도 걸린다면 그게 답입니다. 아무것도 걸리지 않는다면, 지금은 맥북을 진지하게 고려해볼 만한 드문 시기입니다.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;이미지 출처: Apple Newsroom (apple.com/kr/newsroom)&lt;/em&gt;&lt;br&gt;&lt;em&gt;이미지 출처: 삼성전자 뉴스룸 | © Samsung Electronics&lt;/em&gt;&lt;br&gt;&lt;em&gt;이미지 출처: LG전자 제공&lt;/em&gt;&lt;/p&gt;</description>
      <category>잡학상식</category>
      <category>LG Gram 2026</category>
      <category>Macbook Air 13</category>
      <category>갤럭시북 6</category>
      <category>노트북 비교</category>
      <category>맥북</category>
      <category>맥북 비교</category>
      <category>맥북 프로 맥스</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/4</guid>
      <comments>https://hero0309.tistory.com/4#entry4comment</comments>
      <pubDate>Mon, 31 Aug 2026 10:17:20 +0900</pubDate>
    </item>
    <item>
      <title>주식 ETF 이름 용어 완전 정리(액티브, 커버드콜, (H) 등)</title>
      <link>https://hero0309.tistory.com/3</link>
      <description>&lt;h1&gt;ETF 이름 뒤에 붙는 용어 완전 정리 (액티브&amp;middot;커버드콜&amp;middot;(H)&amp;middot;TR&amp;middot;합성까지)&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;KODEX 미국30년국채타겟커버드콜(합성 H)&lt;/code&gt;, &lt;code&gt;TIGER 미국배당다우존스타겟데일리커버드콜&lt;/code&gt;, &lt;code&gt;RISE 25-11회사채(A+이상)액티브&lt;/code&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;ETF를 처음 보면 이름이 암호처럼 느껴집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이 긴 이름은 아무렇게나 붙인 게 아니라 &lt;b&gt;정해진 순서대로 정보를 나열한 요약문&lt;/b&gt;입니다. 규칙만 알면 상품설명서를 열기 전에도 &quot;이 ETF가 뭘 담고, 어떻게 굴리고, 환율은 어떻게 처리하는지&quot;를 3초 만에 읽어낼 수 있습니다.&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;이 글에서는 ETF 이름에 붙는 용어를 &lt;b&gt;운용방식 / 괄호 표기 / 수익계산 방식 / 인컴 전략 / 방향성&amp;middot;배수 / 채권&amp;middot;금리형 / 스타일&lt;/b&gt; 7개 그룹으로 나눠 정리했습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 본 글은 2026년 8월 기준 국내 상장 ETF를 기준으로 작성한 정보성 글이며, 특정 종목의 매수&amp;middot;매도 권유가 아닙니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 먼저 알아야 할 것: ETF 이름은 5칸으로 끊어 읽는다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국내 ETF 상품명은 대체로 아래 순서를 따릅니다.&lt;/p&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;[브랜드] + [기초자산/지수] + [전략] + [운용방식] + [(괄호 표기)]&lt;/code&gt;&lt;/pre&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;/td&gt;
&lt;td&gt;운용사 ETF 브랜드명&lt;/td&gt;
&lt;td&gt;KODEX, TIGER, ACE, RISE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;② 기초자산&lt;/td&gt;
&lt;td&gt;무엇에 투자하는가&lt;/td&gt;
&lt;td&gt;200, 미국S&amp;amp;P500, 미국30년국채&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;③ 전략&lt;/td&gt;
&lt;td&gt;어떤 방법으로 굴리는가&lt;/td&gt;
&lt;td&gt;커버드콜, 고배당, 레버리지, TOP10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&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;/td&gt;
&lt;td&gt;실물이냐 스왑이냐, 환헤지 여부&lt;/td&gt;
&lt;td&gt;(합성), (H), (합성 H)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실전 예시&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;code&gt;TIGER 미국30년국채커버드콜액티브(H)&lt;/code&gt;&lt;br /&gt;&amp;rarr; 미래에셋 / 미국 30년 국채 / 커버드콜 전략 / 액티브 운용 / 환헤지&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KODEX 미국30년국채타겟커버드콜(합성 H)&lt;/code&gt;&lt;br /&gt;&amp;rarr; 삼성 / 미국 30년 국채 / 타겟형 커버드콜 / 스왑(합성) 구조 / 환헤지&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 기초자산이라도 뒤에 붙는 단어에 따라 &lt;b&gt;수익 구조가 완전히 달라진다&lt;/b&gt;는 점이 핵심입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-1. 브랜드명(운용사) 정리&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;KODEX&lt;/td&gt;
&lt;td&gt;삼성자산운용&lt;/td&gt;
&lt;td&gt;시장 1위권&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIGER&lt;/td&gt;
&lt;td&gt;미래에셋자산운용&lt;/td&gt;
&lt;td&gt;시장 1위권&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RISE&lt;/td&gt;
&lt;td&gt;KB자산운용&lt;/td&gt;
&lt;td&gt;2024년 5월 KBSTAR에서 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ACE&lt;/td&gt;
&lt;td&gt;한국투자신탁운용&lt;/td&gt;
&lt;td&gt;2022년 KINDEX에서 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PLUS&lt;/td&gt;
&lt;td&gt;한화자산운용&lt;/td&gt;
&lt;td&gt;2024년 10월 ARIRANG에서 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SOL&lt;/td&gt;
&lt;td&gt;신한자산운용&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HANARO&lt;/td&gt;
&lt;td&gt;NH-Amundi자산운용&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KOSEF / 히어로즈&lt;/td&gt;
&lt;td&gt;키움투자자산운용&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIME&lt;/td&gt;
&lt;td&gt;타임폴리오자산운용&lt;/td&gt;
&lt;td&gt;액티브 특화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KoAct&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;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리브랜딩 이력이 있는 브랜드(KBSTAR, ARIRANG, KINDEX)는 &lt;b&gt;옛 이름으로 검색해도 같은 운용사&lt;/b&gt; 상품입니다. 블로그&amp;middot;유튜브 자료가 예전 이름으로 남아 있는 경우가 많으니 참고하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 운용방식: 패시브 ETF vs 액티브 ETF&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-1. 패시브(Passive) ETF&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름에 아무 표기가 없으면 대부분 패시브입니다. &lt;b&gt;기초지수를 그대로 복제&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;/li&gt;
&lt;li&gt;총보수가 낮은 편&lt;/li&gt;
&lt;li&gt;예) &lt;code&gt;KODEX 200&lt;/code&gt;, &lt;code&gt;TIGER 미국S&amp;amp;P500&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-2. 액티브(Active) ETF&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 뒤에 &lt;b&gt;&quot;액티브&quot;&lt;/b&gt;가 붙습니다. 비교지수(BM)를 두되, 운용역의 판단으로 종목&amp;middot;비중을 조정해 &lt;b&gt;초과수익을 노리는&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;/li&gt;
&lt;li&gt;보수는 패시브보다 높은 편&lt;/li&gt;
&lt;li&gt;예) &lt;code&gt;ACE 애플밸류체인액티브&lt;/code&gt;, &lt;code&gt;KODEX KOFR금리 액티브(합성)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-3. 반드시 알아야 할 '상관계수 규제'&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 국내 ETF만의 독특한 규칙이 하나 있습니다. 현행 유가증권시장 상장규정상 패시브 ETF는 비교지수와의 상관계수를 0.9 이상, 액티브 ETF는 0.7 이상 유지해야 합니다. 이 기준을 밑도는 상태가 3개월간 지속되면 상장폐지 대상이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 액티브 ETF가 &lt;b&gt;너무 잘해도&lt;/b&gt; 지수와 따로 움직여 상관계수가 깨진다는 점입니다. 실제로 최근 1년 수익률이 170%를 넘겨 비교지수를 54%포인트 상회한 액티브 ETF가 상관계수 미달로 상장폐지되는 사례도 나왔습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;금융위원회는 2026년 초 지수 요건이 없는 '완전 액티브 ETF' 도입을 위한 자본시장법 개정을 추진하겠다고 밝혔지만, 입법 일정이 하반기로 밀리면서 2026년 8월 현재까지 제도 개선은 완료되지 않은 상태입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;투자자 체크포인트&lt;/b&gt;: 액티브 ETF는 &quot;더 좋은 상품&quot;이 아니라 &quot;다른 상품&quot;입니다. 보수가 더 높고, 상관계수 미달로 인한 상장폐지 리스크도 함께 봐야 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 괄호 안의 표기: (H), (UH), (합성), 적격&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-1. (H) &amp;mdash; 환헤지(Hedge)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해외 자산에 투자할 때 &lt;b&gt;환율 변동 효과를 제거&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;비용&lt;/b&gt;이 듭니다(양국 금리차에 따른 선물환 비용)&lt;/li&gt;
&lt;li&gt;&quot;완전히 없앤다&quot;가 아니라 &quot;목표로 한다&quot;에 가깝습니다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-2. (UH) 또는 표기 없음 &amp;mdash; 환노출(Unhedged)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환율 변동이 수익률에 그대로 반영됩니다. 국내 자산 ETF는 애초에 원화 거래라 이 표기가 없습니다.&lt;/p&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;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;(H)&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;/td&gt;
&lt;td&gt;(UH) 또는 무표기&lt;/td&gt;
&lt;td&gt;수익 +&amp;alpha;&lt;/td&gt;
&lt;td&gt;수익 -&amp;alpha;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-3. (합성) &amp;mdash; 스왑 방식&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운용사가 주식&amp;middot;채권을 직접 사서 담는 것(실물 복제)이 아니라, &lt;b&gt;증권사와 스왑 계약을 맺고 지수 수익률을 제공받는&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;장점: 직접 담기 어려운 해외자산&amp;middot;전략도 상품화 가능, 추적오차가 작음&lt;/li&gt;
&lt;li&gt;단점: 거래상대방(증권사) 신용위험 존재, 스왑 비용 발생&lt;/li&gt;
&lt;li&gt;표기: &lt;code&gt;(합성)&lt;/code&gt;, 환헤지까지 더하면 &lt;code&gt;(합성 H)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-4. 적격 / TDF20XX&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;ACE TDF2030액티브 적격&lt;/code&gt;처럼 붙는 &lt;b&gt;'적격'&lt;/b&gt;은 퇴직연금(DC&amp;middot;IRP) 계좌에서 &lt;b&gt;안전자산 비중 제한 없이 편입 가능한 요건&lt;/b&gt;을 충족했다는 표시입니다. TDF 뒤의 숫자(2030, 2050)는 은퇴 예상 시점(빈티지)을 의미합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 수익 계산 방식: TR &amp;middot; PR &amp;middot; NTR&lt;/h2&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;PR&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Price Return&lt;/td&gt;
&lt;td&gt;배당&amp;middot;이자를 투자자에게 분배금으로 지급 (일반 ETF, 표기 없음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;TR&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Total Return&lt;/td&gt;
&lt;td&gt;배당&amp;middot;이자를 펀드 내부에서 자동 재투자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;NTR&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Net Total Return&lt;/td&gt;
&lt;td&gt;세금을 차감한 뒤 재투자&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TR의 매력은 &lt;b&gt;분배 시점 과세 없이 재투자되어 복리 효과와 과세이연&lt;/b&gt;을 누린다는 점이었습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-1. 2025년 세법 개정으로 달라진 점 (중요)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2025년 2월 28일 개정된 소득세법 시행령 제26조의2에 따라, TR 방식으로 운용되는 ETF는 2025년 7월 1일부터 발생하는 이자&amp;middot;배당소득을 연 1회 이상 분배해야 합니다. 다만 국내주식형 ETF는 이자&amp;middot;배당 분배를 유보하는 선택이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, &lt;b&gt;해외주식형&amp;middot;채권형 TR ETF의 과세이연 메리트는 사실상 사라졌고&lt;/b&gt;, 상당수 상품이 PR형으로 전환되거나 이름에서 TR이 떨어졌습니다. 지금 시점에서 &quot;TR이니까 무조건 유리&quot;라는 오래된 정보는 그대로 적용하면 안 됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 인컴(분배금) 관련 용어: 월배당과 커버드콜 계열&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 몇 년간 ETF 이름이 길어진 가장 큰 이유가 바로 이 커버드콜 계열입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-1. 커버드콜(Covered Call)이란?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기초자산을 보유한 상태에서 그 자산의 &lt;b&gt;콜옵션을 매도&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;얻는 것&lt;/b&gt;: 꾸준한 옵션 프리미엄 &amp;rarr; 높은 분배금 재원&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;즉 &lt;b&gt;&quot;상승은 제한, 하락은 그대로&quot;인 비대칭 구조&lt;/b&gt;라는 점이 핵심입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-2. 옵션 매도 '비중'을 나타내는 말: 타겟 / 고정&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;/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;보유 자산의 100%(또는 고정 비율)에 대해 콜옵션 매도. 분배금은 크지만 상방이 거의 막힘 (1세대)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;타겟(Target) 커버드콜&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;목표 프리미엄(예: 연 15%)만큼만 옵션을 매도하고, 나머지는 열어둠. 분배금과 주가 상승을 일부 동시에 추구 (2세대)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-3. 옵션 '만기 주기'를 나타내는 말: 데일리 / 위클리 / 먼슬리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데일리 커버드콜은 만기 1일 이내 옵션을, 위클리 커버드콜은 만기 1주일 이내 옵션을 매도합니다. 데일리는 매 영업일마다 프리미엄을 쌓기 때문에 위클리&amp;middot;먼슬리보다 더 많은 프리미엄을 확보할 수 있습니다. 이름에 기간 표기가 없다면 대부분 만기 1개월인 먼슬리 옵션 상품입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매도 빈도가 잦을수록 프리미엄은 커지지만, 거래비용과 NAV(순자산가치) 훼손 폭도 함께 커질 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-4. 행사가 위치: ATM / OTM&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ATM(At The Money)&lt;/b&gt;: 현재가 근처 행사가 &amp;rarr; 프리미엄 크고 상방 제한 강함&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OTM(Out of The Money)&lt;/b&gt;: 현재가보다 높은 행사가 &amp;rarr; 프리미엄 작고 상방 여유 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-5. 밸런스 / 채권혼합&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주식형 커버드콜에 채권을 섞어 변동성을 낮춘 유형입니다. 이름에 &lt;code&gt;밸런스&lt;/code&gt;, &lt;code&gt;채권혼합&lt;/code&gt;이 붙으면 순수 주식 노출이 아니라는 뜻입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-6. 이름 속 숫자(+15%, 타겟프리미엄)의 함정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;금융감독원은 소비자경보(2024-26호)를 통해 ETF 종목명에 기재된 목표분배율이 확정된 분배율이 아니라고 경고했습니다. 아울러 명칭에 쓰인 '프리미엄'이라는 표현도 추가 수익을 보장하는 우수 상품을 뜻하지 않으며, 커버드콜 ETF는 상방이 제한되는 비대칭 구조라는 점을 함께 안내했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분배금은 &lt;b&gt;내 원금에서 나올 수도 있습니다.&lt;/b&gt; 분배율만 보지 말고 반드시 &lt;b&gt;분배금률 + NAV(가격) 변화 + 세후 총수익률&lt;/b&gt; 세 가지를 함께 확인하세요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-7. 월배당&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분배금을 매월 지급한다는 뜻일 뿐, &lt;b&gt;수익률이 높다는 뜻이 아닙니다.&lt;/b&gt; 재원이 배당&amp;middot;이자인지(패스스루형), 옵션 프리미엄인지(커버드콜형)에 따라 성격이 완전히 다릅니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 방향성과 배수: 레버리지 &amp;middot; 인버스&lt;/h2&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;레버리지 / 2X&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;기초지수 &lt;b&gt;일간&lt;/b&gt; 수익률의 2배 추종&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;기초지수 일간 수익률의 -1배&lt;/td&gt;
&lt;td&gt;하락 베팅. 장기 보유 부적합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;인버스2X (곱버스)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;일간 -2배&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;일간(daily)&quot;이 핵심입니다.&lt;/b&gt; 2배 레버리지는 '1년 수익률의 2배'가 아니라 '하루 수익률의 2배'를 매일 새로 계산합니다. 등락을 반복하면 지수가 제자리로 와도 손실이 남습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6-1. 2026년 신설: 단일종목 레버리지&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026년 자본시장법 시행령 개정으로 국내 우량주식 하나의 가격에 연동하는 단일종목 레버리지 상품이 도입됐습니다. 다만 분산투자가 이뤄지지 않는다는 점을 투자자가 명확히 인지할 수 있도록 'ETF'라는 명칭 사용을 제한하고, '단일종목', '레버리지&amp;middot;인버스' 등 상품 특징을 명확히 표기하도록 했습니다. 또한 심화 교육 이수와 기본예탁금 1천만 원 요건도 적용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 이름에 &lt;b&gt;'단일종목'&lt;/b&gt;이 보이면 일반 ETF와 전혀 다른 위험군이라고 생각해야 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 채권&amp;middot;금리형 ETF 전용 용어&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-1. 존속기한형(만기매칭형)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름에 &lt;code&gt;24-10&lt;/code&gt;, &lt;code&gt;25-11&lt;/code&gt; 같은 &lt;b&gt;연-월 숫자&lt;/b&gt;가 들어간 상품입니다. 해당 시점에 만기가 도래하는 채권만 담아 운용하다가, &lt;b&gt;만기가 되면 원리금을 돌려주고 상장폐지&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;일반 채권 ETF: 만기 없이 목표 듀레이션을 계속 유지 (국채3년 ETF는 1년이 지나도 계속 3년)&lt;/li&gt;
&lt;li&gt;존속기한형: 정기예금처럼 만기가 정해져 있어 &lt;b&gt;매수 시점 YTM(만기수익률)을 기대&lt;/b&gt;할 수 있음&lt;/li&gt;
&lt;li&gt;예) &lt;code&gt;TIGER 24-10회사채(A+이상)액티브&lt;/code&gt; &amp;rarr; 2024년 10월 만기, A+ 이상 회사채, 액티브 운용&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-2. 금리형(파킹형)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단기 자금을 하루 단위로 굴리는 상품군입니다.&lt;/p&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;CD금리&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;양도성예금증서 91일물 금리&lt;/td&gt;
&lt;td&gt;은행 조달금리, 기준금리보다 소폭 높음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;KOFR&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;SOFR&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;단기채&amp;middot;CP&amp;middot;CD 등 고유동성 자산&lt;/td&gt;
&lt;td&gt;특정 금리 추종 아님&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-3. 기타 채권 용어&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;스트립(STRIP)&lt;/b&gt;: 이표(이자)를 분리한 원금 전용 채권. 듀레이션이 매우 김&lt;/li&gt;
&lt;li&gt;&lt;b&gt;울트라30년선물&lt;/b&gt;: 미국 초장기 국채 선물 기반&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AAA / A+이상&lt;/b&gt;: 편입 채권의 신용등급 하한&lt;/li&gt;
&lt;li&gt;&lt;b&gt;뱅크론 / 하이일드&lt;/b&gt;: 신용위험이 높은 대신 금리가 높은 자산&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 스타일&amp;middot;테마 관련 표기&lt;/h2&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;TOP10 / 톱텐&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;지수 내 상위 10종목 집중. 분산 효과가 낮아짐&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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;밸류 / 퀄리티 / 모멘텀 / 로우볼&lt;/b&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;배당 관련 지수. '다우존스'는 대개 Dow Jones U.S. Dividend 100 계열&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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;플러스 / 프리미엄&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;운용사 마케팅 명칭인 경우가 많으므로 구조 확인 필수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;TDF 20XX&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;은퇴 시점에 맞춰 주식&amp;middot;채권 비중을 자동 조정하는 자산배분형&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. 한눈에 보는 ETF 용어 사전&lt;/h2&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;액티브&lt;/td&gt;
&lt;td&gt;운용역 재량으로 비교지수 초과수익 추구 (상관계수 0.7 이상 유지 의무)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;패시브&lt;/td&gt;
&lt;td&gt;지수 그대로 복제 (상관계수 0.9 이상 유지 의무)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(H)&lt;/td&gt;
&lt;td&gt;환헤지, 환율 변동 영향 제거 목표&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(UH)&lt;/td&gt;
&lt;td&gt;환노출, 환율 변동이 수익률에 반영&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(합성)&lt;/td&gt;
&lt;td&gt;증권사와 스왑 계약으로 지수 수익률 수취&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TR&lt;/td&gt;
&lt;td&gt;배당&amp;middot;이자 내부 재투자형 (2025.7월 이후 대부분 분배 의무화)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PR&lt;/td&gt;
&lt;td&gt;배당&amp;middot;이자를 분배금으로 지급 (일반형)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NTR&lt;/td&gt;
&lt;td&gt;세후 기준 재투자형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;커버드콜&lt;/td&gt;
&lt;td&gt;콜옵션 매도로 프리미엄 확보, 상방 제한&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;타겟&lt;/td&gt;
&lt;td&gt;목표 프리미엄만큼만 옵션 매도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;데일리/위클리/먼슬리&lt;/td&gt;
&lt;td&gt;매도하는 옵션의 만기 주기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ATM / OTM&lt;/td&gt;
&lt;td&gt;옵션 행사가가 현재가 근처 / 현재가보다 위&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;레버리지 / 인버스&lt;/td&gt;
&lt;td&gt;일간 수익률의 배수 / 역방향 추종&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;선물&lt;/td&gt;
&lt;td&gt;현물이 아닌 선물 편입 (롤오버 비용)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;존속기한형&lt;/td&gt;
&lt;td&gt;만기가 정해져 있고 만기 시 상장폐지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CD금리 / KOFR&lt;/td&gt;
&lt;td&gt;단기금리 추종 파킹형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;적격&lt;/td&gt;
&lt;td&gt;퇴직연금 안전자산 편입 요건 충족&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;단일종목&lt;/td&gt;
&lt;td&gt;개별 종목 1개 기반. ETF 명칭 사용 제한 대상&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btt2Pl/dJMcaal93oE/OVyf9vf3JCQVWOWKjh1OK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btt2Pl/dJMcaal93oE/OVyf9vf3JCQVWOWKjh1OK1/img.png&quot; data-alt=&quot;주식 ETF 용어 최종정리 요약&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btt2Pl/dJMcaal93oE/OVyf9vf3JCQVWOWKjh1OK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtt2Pl%2FdJMcaal93oE%2FOVyf9vf3JCQVWOWKjh1OK1%2Fimg.png&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;1024&quot; height=&quot;1024&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주식 ETF 용어 최종정리 요약&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;10. 실전 해석 연습&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;① &lt;code&gt;KODEX 200타겟위클리커버드콜&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;삼성 / 코스피200 / 목표 프리미엄만큼만 / 주 단위 만기 옵션 / 커버드콜&lt;br /&gt;&amp;rarr; 코스피200을 담되 주간 옵션을 목표 비중까지만 팔아 월배당 재원을 만드는 상품&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;② &lt;code&gt;TIGER 미국나스닥100커버드콜(합성)&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;미래에셋 / 나스닥100 / 커버드콜 / 스왑 구조&lt;br /&gt;&amp;rarr; 실물이 아닌 스왑으로 구현, 거래상대방 위험 확인 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;③ &lt;code&gt;RISE 25-11회사채(A+이상)액티브&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;KB / 2025년 11월 만기 / A+ 이상 회사채 / 액티브&lt;br /&gt;&amp;rarr; 정기예금 대체 성격, 만기 시 상장폐지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;④ &lt;code&gt;ACE 미국30년국채액티브(H)&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;한국투자 / 미국 30년 국채 / 액티브 / 환헤지&lt;br /&gt;&amp;rarr; 금리 하락에 베팅하는 초장기 듀레이션, 환율 영향은 제거&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;11. 매수 버튼 누르기 전 체크리스트&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;이름을 다섯 칸으로 끊어 읽었는가&lt;/b&gt; (브랜드/자산/전략/운용방식/괄호)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;총보수 외 기타비용까지 확인했는가&lt;/b&gt; &amp;mdash; 합성&amp;middot;액티브&amp;middot;커버드콜&amp;middot;해외자산은 실부담비용이 표기보다 큰 경우가 많습니다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;분배율이 아니라 총수익률을 봤는가&lt;/b&gt; &amp;mdash; 분배금률, NAV 변화, 세후 총수익률 3가지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;괴리율과 거래량을 확인했는가&lt;/b&gt; &amp;mdash; 특히 해외자산 ETF는 시차 때문에 장 초반&amp;middot;마감 무렵 괴리가 커질 수 있습니다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;내 계좌에 맞는 상품인가&lt;/b&gt; &amp;mdash; 연금/ISA/일반계좌에 따라 세금과 유불리가 달라집니다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;12. 자주 묻는 질문(FAQ)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q. 액티브 ETF가 패시브보다 좋은 건가요?&lt;/b&gt;&lt;br /&gt;좋다기보다 다릅니다. 운용 재량이 들어가 초과수익 가능성이 있는 대신 보수가 높고, 상관계수 요건 미달 시 상장폐지 위험이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q. 이제 TR ETF는 의미가 없나요?&lt;/b&gt;&lt;br /&gt;국내주식형은 여전히 분배 유보가 가능하지만, 해외주식형&amp;middot;채권형은 2025년 7월 이후 연 1회 이상 분배가 의무화되어 과세이연 효과가 크게 줄었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q. (H)를 붙이는 게 유리한가요?&lt;/b&gt;&lt;br /&gt;환율 전망에 대한 선택의 문제입니다. 원화 약세를 예상하면 환노출, 환율 변동성을 배제하고 자산 자체의 성과만 취하고 싶다면 환헤지가 맞습니다. 다만 헤지 비용은 계속 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q. 이름에 붙은 '+15%'는 연 15% 수익을 준다는 뜻인가요?&lt;/b&gt;&lt;br /&gt;아닙니다. 목표 분배율일 뿐 확정 수익이 아니며, 분배금을 받은 만큼 NAV가 줄어들 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ETF 이름을 읽는 목적은 &lt;b&gt;좋은 상품을 고르는 것&lt;/b&gt;이라기보다, &lt;b&gt;내 목적과 맞지 않는 상품을 걸러내는 것&lt;/b&gt;에 가깝습니다. 상품명이 길다는 건 그만큼 구조가 복잡하다는 신호이기도 합니다. 이름에서 모르는 단어가 하나라도 보인다면, 매수 전에 투자설명서(간이투자설명서)를 한 번 여는 습관을 들이시길 권합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 게시글은 투자 참고용 정보이며 특정 종목에 대한 투자 권유가 아닙니다. 제도와 세법은 변경될 수 있으므로 투자 전 반드시 한국거래소(KRX), 각 운용사 공시 및 투자설명서를 확인하시기 바랍니다. 투자 결과에 대한 책임은 투자자 본인에게 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>잡학상식</category>
      <category>ETF</category>
      <category>ETF용어</category>
      <category>etf이름</category>
      <category>etf초보투자</category>
      <category>TR ETF</category>
      <category>레버리지인버스</category>
      <category>액티브ETF</category>
      <category>월배당</category>
      <category>커버드콜</category>
      <category>환헤지</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/3</guid>
      <comments>https://hero0309.tistory.com/3#entry3comment</comments>
      <pubDate>Sun, 30 Aug 2026 18:42:42 +0900</pubDate>
    </item>
    <item>
      <title>[MS-SQL/ SQL Server] 자주 발생하는 에러 원인 및 해결방법 정리</title>
      <link>https://hero0309.tistory.com/2</link>
      <description>&lt;h1&gt;[SQL Server]자주 발생하는 에러 코드별 원인과 즉시 해결 방법&lt;/h1&gt;
&lt;p&gt;MS SQL Server(T-SQL)로 쿼리를 작성하다 보면 구문 오류부터 데이터 변환 오류, 제약 조건 위반까지 다양한 에러를 만나게 됩니다.&lt;/p&gt;
&lt;p&gt;오라클과 달리 SQL Server는 &lt;code&gt;ORA-&lt;/code&gt; 형태가 아닌 &lt;strong&gt;메시지 번호(Msg)&lt;/strong&gt; 로 오류를 구분하며, 번호만 알면 원인 범위를 상당히 좁힐 수 있습니다. 이번 글에서는 실무에서 가장 빈번하게 마주치는 SQL Server 오류를 유형별로 정리하고, 즉시 적용 가능한 해결 방법을 코드와 함께 정리했습니다.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(예제는 SQL Server 2016 이상 기준이며, 2019 이상에서만 동작하는 항목은 별도로 표기했습니다.)&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;1. 먼저 알아야 할 것: SQL Server 에러 메시지 읽는 법&lt;/h2&gt;
&lt;p&gt;SQL Server의 오류는 항상 아래와 같은 형태로 출력됩니다. 이 구조만 이해해도 원인 파악 속도가 크게 달라집니다.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Msg 8120, Level 16, State 1, Line 3
Column &amp;#39;dbo.employees.job_id&amp;#39; is invalid in the select list because it is not
contained in either an aggregate function or the GROUP BY clause.&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;항목&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;의미&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Msg (메시지 번호)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;오류의 고유 번호. 검색과 예외 처리(&lt;code&gt;ERROR_NUMBER()&lt;/code&gt;)의 기준이 됩니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Level (심각도)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;오류의 등급. 아래 표 참고.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;State (상태)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;같은 오류 번호가 여러 지점에서 발생할 때 이를 구분하는 내부 코드.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;Line (줄 번호)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;오류가 발생한 줄. &lt;strong&gt;&lt;code&gt;GO&lt;/code&gt;로 구분되는 배치(batch) 단위&lt;/strong&gt;로 세어지므로, 스크립트 전체 줄 번호와 다를 수 있습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;심각도(Severity Level)별 대응&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;수준&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;성격&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;대응 방법&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;0 ~ 10&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;정보성 메시지 (오류 아님)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;확인만 하면 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;11 ~ 16&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;사용자가 수정 가능한 오류&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;strong&gt;쿼리나 데이터를 수정하면 해결&lt;/strong&gt; — 이 글에서 다루는 대부분이 여기에 해당&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;17 ~ 19&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;리소스 부족, 내부 오류&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;DBA 확인 필요 (메모리, 디스크, 로그 공간 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;20 ~ 24&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;치명적 오류&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;연결이 강제 종료됨. 하드웨어·DB 손상 점검 필요&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; 심각도 11~16 오류는 &lt;code&gt;TRY...CATCH&lt;/code&gt;로 잡을 수 있지만, &lt;strong&gt;20 이상의 치명적 오류나 컴파일 단계 오류는 잡히지 않습니다.&lt;/strong&gt; (자세한 내용은 6-2 참고)&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2&gt;2. 구문 및 객체 참조 오류&lt;/h2&gt;
&lt;h3&gt;2-1. Msg 156: Incorrect syntax near the keyword &amp;#39;xxx&amp;#39;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;예약어(Reserved Keyword)를 식별자로 사용&lt;/strong&gt;했을 때 가장 많이 발생합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- order, user, key, desc, percent 등은 모두 T-SQL 예약어
SELECT order, user, desc
FROM dbo.sales_order;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 대괄호로 감싸면 예약어도 식별자로 인식됨
SELECT [order], [user], [desc]
FROM dbo.sales_order;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;근본 해결책:&lt;/strong&gt; 대괄호는 임시방편입니다. 신규 설계 시에는 &lt;code&gt;order_no&lt;/code&gt;, &lt;code&gt;user_id&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;처럼 예약어를 피한 명명 규칙을 사용하는 편이 유지보수에 훨씬 유리합니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;이 밖에 &lt;code&gt;SELECT&lt;/code&gt; 절 컬럼 사이의 &lt;strong&gt;쉼표 누락&lt;/strong&gt;, &lt;code&gt;BEGIN&lt;/code&gt;에 대응하는 &lt;code&gt;END&lt;/code&gt; 누락, 문자열 내 홑따옴표 이스케이프(&lt;code&gt;&amp;#39;It&amp;#39;&amp;#39;s&amp;#39;&lt;/code&gt;) 누락도 Msg 156/102의 흔한 원인입니다.&lt;/p&gt;
&lt;h3&gt;2-2. Msg 102: Incorrect syntax near &amp;#39;xxx&amp;#39; — 타 DBMS 문법 혼용&lt;/h3&gt;
&lt;p&gt;MySQL의 &lt;code&gt;LIMIT&lt;/code&gt;이나 오라클의 &lt;code&gt;ROWNUM&lt;/code&gt;을 그대로 옮겨 쓰면 발생합니다. SQL Server는 두 구문 모두 지원하지 않습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT emp_name, salary
FROM dbo.employees
ORDER BY salary DESC
LIMIT 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 방법 1: TOP (모든 버전)
SELECT TOP (10) emp_name, salary
FROM dbo.employees
ORDER BY salary DESC;

-- 방법 2: OFFSET ... FETCH (SQL Server 2012 이상, 페이징에 적합)
SELECT emp_name, salary
FROM dbo.employees
ORDER BY salary DESC
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;code&gt;OFFSET ... FETCH&lt;/code&gt;는 반드시 &lt;code&gt;ORDER BY&lt;/code&gt;와 함께 사용해야 하며, &lt;code&gt;ORDER BY&lt;/code&gt; 없이 쓰면 구문 오류가 발생합니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;2-3. Msg 1033: 서브쿼리·뷰 안의 ORDER BY&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT *
FROM (
    SELECT employee_id, salary
    FROM dbo.employees
    ORDER BY salary DESC   -- 파생 테이블 내부에서는 정렬 불가
) AS t;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 정렬은 최종 결과 집합에서 수행
SELECT employee_id, salary
FROM (
    SELECT employee_id, salary
    FROM dbo.employees
) AS t
ORDER BY salary DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;주의:&lt;/strong&gt; &lt;code&gt;TOP (100) PERCENT&lt;/code&gt;를 붙여 에러를 회피하는 방법이 널리 알려져 있지만, &lt;strong&gt;옵티마이저가 해당 정렬을 제거할 수 있어 순서가 보장되지 않습니다.&lt;/strong&gt; 정렬은 항상 가장 바깥쪽 쿼리에서 수행하세요. 내부 정렬이 꼭 필요하다면 &lt;code&gt;ROW_NUMBER()&lt;/code&gt; 같은 순위 함수를 사용하는 것이 정석입니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;2-4. Msg 4104: The multi-part identifier &amp;quot;x.y&amp;quot; could not be bound&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;테이블 별칭이 잘못되었거나 정의되지 않은 경우&lt;/strong&gt; 발생합니다. 특히 테이블에 별칭을 부여하면 &lt;strong&gt;원래 테이블명으로는 더 이상 참조할 수 없다&lt;/strong&gt;는 점을 놓치기 쉽습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT e.emp_name, d.dept_name
FROM dbo.employees AS e
JOIN dbo.departments AS dept
  ON e.department_id = dept.department_id;   -- 별칭은 dept인데 SELECT에서는 d로 참조&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT e.emp_name, d.dept_name
FROM dbo.employees AS e
JOIN dbo.departments AS d
  ON e.department_id = d.department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;주요 발생 원인은 다음과 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SELECT&lt;/code&gt;/&lt;code&gt;WHERE&lt;/code&gt; 절의 별칭과 &lt;code&gt;FROM&lt;/code&gt; 절의 별칭이 불일치&lt;/li&gt;
&lt;li&gt;별칭을 부여한 뒤 &lt;code&gt;dbo.employees.emp_name&lt;/code&gt;처럼 전체 테이블명으로 참조&lt;/li&gt;
&lt;li&gt;&lt;code&gt;UPDATE&lt;/code&gt; 문에서 별칭 사용 위치 오류 (&lt;code&gt;UPDATE e SET ... FROM dbo.employees AS e&lt;/code&gt; 형태로 작성해야 함)&lt;/li&gt;
&lt;li&gt;컬럼명 오타 또는 해당 테이블에 존재하지 않는 컬럼 참조&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2-5. Msg 208: Invalid object name &amp;#39;xxx&amp;#39;&lt;/h3&gt;
&lt;p&gt;객체 자체를 찾지 못하는 오류로, 원인이 다양합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;데이터베이스 컨텍스트 불일치&lt;/strong&gt; — SSMS 상단의 DB 선택이 다른 경우. &lt;code&gt;USE [DB명];&lt;/code&gt;으로 명시&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;스키마 누락&lt;/strong&gt; — 기본 스키마가 &lt;code&gt;dbo&lt;/code&gt;가 아닌 계정에서 &lt;code&gt;SELECT * FROM employees&lt;/code&gt; 실행. 항상 &lt;code&gt;dbo.employees&lt;/code&gt;처럼 스키마를 명시&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;임시 테이블 범위 문제&lt;/strong&gt; — 로컬 임시 테이블(&lt;code&gt;#temp&lt;/code&gt;)은 생성한 세션·배치 내에서만 유효. 다른 세션에서 접근하려면 전역 임시 테이블(&lt;code&gt;##temp&lt;/code&gt;)이 필요&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;링크드 서버 참조 오류&lt;/strong&gt; — 4단계 명명(&lt;code&gt;[서버].[DB].[스키마].[테이블]&lt;/code&gt;) 중 일부 누락&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;개체 미배포&lt;/strong&gt; — 개발 서버에만 존재하고 운영 서버에는 배포되지 않은 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;존재 여부 확인 쿼리:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT OBJECT_ID(&amp;#39;dbo.employees&amp;#39;, &amp;#39;U&amp;#39;) AS object_id;   -- NULL이면 현재 DB에 없음

SELECT s.name AS schema_name, t.name AS table_name
FROM sys.tables AS t
JOIN sys.schemas AS s ON t.schema_id = s.schema_id
WHERE t.name LIKE &amp;#39;%employee%&amp;#39;;&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2&gt;3. 집계 및 GROUP BY 오류&lt;/h2&gt;
&lt;h3&gt;3-1. Msg 8120 / 8121: Column &amp;#39;x&amp;#39; is invalid in the select list...&lt;/h3&gt;
&lt;p&gt;집계 함수를 사용할 때 &lt;code&gt;GROUP BY&lt;/code&gt;에 없는 일반 컬럼을 조회하면 발생합니다. 오라클의 &lt;strong&gt;ORA-00979&lt;/strong&gt;에 대응하는 오류이며, &lt;strong&gt;SQL Server에는 MySQL의 &lt;code&gt;ONLY_FULL_GROUP_BY&lt;/code&gt;처럼 이 검사를 완화하는 옵션이 없습니다.&lt;/strong&gt; 항상 표준 규칙을 따라야 합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Msg 8120&lt;/strong&gt; — &lt;code&gt;SELECT&lt;/code&gt; 절에서 위반한 경우&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Msg 8121&lt;/strong&gt; — &lt;code&gt;HAVING&lt;/code&gt; 절에서 위반한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT department_id, job_id, AVG(salary) AS avg_salary
FROM dbo.employees
GROUP BY department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;해결 1 — 그룹 기준에 추가:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT department_id, job_id, AVG(salary) AS avg_salary
FROM dbo.employees
GROUP BY department_id, job_id;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;주의:&lt;/strong&gt; 에러는 사라지지만 &lt;strong&gt;집계 단위가 &amp;quot;부서별&amp;quot;에서 &amp;quot;부서+직무별&amp;quot;로 바뀝니다.&lt;/strong&gt; 원하는 집계 단위인지 먼저 확인하세요.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;해결 2 — 집계 함수로 축약 (부서별 단위 유지):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT department_id,
       MAX(job_id) AS sample_job_id,
       AVG(salary) AS avg_salary
FROM dbo.employees
GROUP BY department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;해결 3 — 윈도우 함수 사용 (원본 행을 모두 유지):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT department_id,
       job_id,
       salary,
       AVG(salary) OVER (PARTITION BY department_id) AS dept_avg_salary
FROM dbo.employees;&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2&gt;4. 데이터 변환 및 연산 오류&lt;/h2&gt;
&lt;h3&gt;4-1. Msg 245: Conversion failed when converting the varchar value &amp;#39;xxx&amp;#39; to data type int&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;암시적 형 변환(Implicit Conversion)&lt;/strong&gt; 때문에 발생합니다. SQL Server는 서로 다른 데이터 형식을 비교할 때 &lt;strong&gt;우선순위가 낮은 쪽을 높은 쪽으로 변환&lt;/strong&gt;하는데, &lt;code&gt;int&lt;/code&gt;가 &lt;code&gt;varchar&lt;/code&gt;보다 우선순위가 높기 때문에 문자열 컬럼 전체가 숫자로 변환되면서 실패합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- product_code는 VARCHAR(20). &amp;#39;A-1001&amp;#39; 같은 값이 있으면 변환 실패
SELECT * FROM dbo.products WHERE product_code = 1001;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 컬럼과 동일한 데이터 형식으로 비교
SELECT * FROM dbo.products WHERE product_code = &amp;#39;1001&amp;#39;;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;성능 관점의 중요 포인트:&lt;/strong&gt; 이 오류가 발생하지 않더라도, 컬럼 쪽에 암시적 변환이 걸리면 &lt;strong&gt;인덱스를 타지 못하고 테이블 스캔이 발생&lt;/strong&gt;합니다. 조회 조건의 데이터 형식은 항상 컬럼과 일치시키는 것이 원칙입니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;문자열을 숫자로 변환해야 할 때 (SQL Server 2012 이상):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 변환 실패 시 에러 대신 NULL을 반환
SELECT product_code,
       TRY_CAST(product_code AS INT) AS code_num
FROM dbo.products
WHERE TRY_CAST(product_code AS INT) &amp;gt; 1000;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;ISNUMERIC()&lt;/code&gt;은 신뢰하지 마세요.&lt;/strong&gt; &lt;code&gt;ISNUMERIC(&amp;#39;$&amp;#39;)&lt;/code&gt;, &lt;code&gt;ISNUMERIC(&amp;#39;1e5&amp;#39;)&lt;/code&gt;, &lt;code&gt;ISNUMERIC(&amp;#39;1,000&amp;#39;)&lt;/code&gt;은 모두 1을 반환하지만 &lt;code&gt;INT&lt;/code&gt; 변환은 실패합니다. 또한 &lt;code&gt;WHERE ISNUMERIC(col) = 1 AND CAST(col AS INT) &amp;gt; 10&lt;/code&gt; 형태는 &lt;strong&gt;조건 평가 순서가 보장되지 않아&lt;/strong&gt; 여전히 오류가 날 수 있습니다. &lt;code&gt;TRY_CAST&lt;/code&gt; / &lt;code&gt;TRY_CONVERT&lt;/code&gt;를 사용하세요.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;4-2. Msg 8115: Arithmetic overflow error converting expression to data type int&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;INT&lt;/code&gt;의 최대값(2,147,483,647)을 초과할 때 발생합니다. &lt;strong&gt;&lt;code&gt;SUM(INT 컬럼)&lt;/code&gt;의 결과 형식도 &lt;code&gt;INT&lt;/code&gt;&lt;/strong&gt; 라는 점이 함정입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- quantity가 INT일 때, 누적 합계가 21억을 넘으면 오류
SELECT SUM(quantity) AS total_qty
FROM dbo.order_detail;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 집계 전에 BIGINT로 변환
SELECT SUM(CAST(quantity AS BIGINT)) AS total_qty
FROM dbo.order_detail;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;곱셈에서도 동일합니다. &lt;code&gt;SELECT 100000 * 100000;&lt;/code&gt; 은 오류가 나지만, &lt;code&gt;SELECT CAST(100000 AS BIGINT) * 100000;&lt;/code&gt; 은 정상 동작합니다.&lt;/p&gt;
&lt;h3&gt;4-3. Msg 8134: Divide by zero error encountered&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT product_id, sales_amount / target_amount AS achievement_rate
FROM dbo.sales_summary;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;올바른 예시 (Fixed):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- NULLIF로 분모가 0이면 NULL로 치환 → 결과도 NULL
SELECT product_id,
       sales_amount / NULLIF(target_amount, 0) AS achievement_rate
FROM dbo.sales_summary;

-- 0으로 표시하고 싶다면 ISNULL로 한 번 더 감싸기
SELECT product_id,
       ISNULL(sales_amount / NULLIF(target_amount, 0), 0) AS achievement_rate
FROM dbo.sales_summary;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;code&gt;SET ARITHABORT OFF&lt;/code&gt; / &lt;code&gt;SET ANSI_WARNINGS OFF&lt;/code&gt;로도 오류를 억제할 수 있지만, 인덱싱된 뷰나 계산 열 사용에 제약이 생기고 실행 계획에도 영향을 주므로 &lt;strong&gt;권장하지 않습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;4-4. Msg 8152 / 2628: String or binary data would be truncated&lt;/h3&gt;
&lt;p&gt;정의된 길이보다 긴 문자열을 저장하려 할 때 발생합니다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- emp_name이 NVARCHAR(10)인 테이블
INSERT INTO dbo.employees (emp_name) VALUES (N&amp;#39;홍길동홍길동홍길동홍길동&amp;#39;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;과거 버전의 &lt;strong&gt;Msg 8152&lt;/strong&gt;는 어느 컬럼에서 문제가 생겼는지 알려주지 않아 원인 파악이 어려웠습니다. &lt;strong&gt;SQL Server 2019부터는 기본적으로 Msg 2628&lt;/strong&gt;이 출력되어 테이블명·컬럼명·잘린 값까지 함께 표시됩니다. (SQL Server 2016 SP2 / 2017 환경에서는 추적 플래그 &lt;strong&gt;460&lt;/strong&gt;을 활성화하면 동일한 메시지를 볼 수 있습니다.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;원인 컬럼을 찾는 방법:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 1. 컬럼 정의 길이 확인
SELECT c.name AS column_name, t.name AS data_type, c.max_length
FROM sys.columns AS c
JOIN sys.types  AS t ON c.user_type_id = t.user_type_id
WHERE c.object_id = OBJECT_ID(&amp;#39;dbo.employees&amp;#39;);

-- 2. 원본 데이터에서 초과 행 찾기
SELECT emp_name, LEN(emp_name) AS char_len, DATALENGTH(emp_name) AS byte_len
FROM dbo.staging_employees
WHERE LEN(emp_name) &amp;gt; 10;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;LEN&lt;/code&gt;과 &lt;code&gt;DATALENGTH&lt;/code&gt; 구분:&lt;/strong&gt; &lt;code&gt;LEN&lt;/code&gt;은 &lt;strong&gt;문자 수&lt;/strong&gt;(후행 공백 제외), &lt;code&gt;DATALENGTH&lt;/code&gt;는 &lt;strong&gt;바이트 수&lt;/strong&gt;를 반환합니다. &lt;code&gt;NVARCHAR&lt;/code&gt;는 한 문자당 2바이트, &lt;code&gt;VARCHAR&lt;/code&gt;에 한글을 저장하면 한 글자당 2바이트를 차지합니다. &lt;code&gt;VARCHAR(10)&lt;/code&gt; 컬럼에 한글은 5글자까지만 들어간다는 점을 놓치는 경우가 많습니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2&gt;5. 제약 조건 및 동시성 오류&lt;/h2&gt;
&lt;h3&gt;5-1. Msg 2627 / 2601: 키 중복 위반&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Msg 2627&lt;/strong&gt; — PRIMARY KEY 또는 UNIQUE &lt;strong&gt;제약 조건&lt;/strong&gt; 위반&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Msg 2601&lt;/strong&gt; — UNIQUE &lt;strong&gt;인덱스&lt;/strong&gt; 위반&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;두 오류 모두 중복된 키 값을 메시지에 함께 출력하므로, 어떤 값이 문제인지 바로 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;중복을 피하는 안전한 INSERT:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 존재하지 않을 때만 삽입
INSERT INTO dbo.employees (employee_id, emp_name)
SELECT s.employee_id, s.emp_name
FROM dbo.staging_employees AS s
WHERE NOT EXISTS (
    SELECT 1
    FROM dbo.employees AS e
    WHERE e.employee_id = s.employee_id
);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;동시 실행이 잦은 환경이라면 &lt;code&gt;WHERE NOT EXISTS&lt;/code&gt;만으로는 경합 구간이 남을 수 있으므로, 트랜잭션과 적절한 잠금 힌트를 함께 검토하거나 &lt;strong&gt;오류 2627을 &lt;code&gt;TRY...CATCH&lt;/code&gt;에서 처리하는 방식&lt;/strong&gt;을 병행하는 것이 안전합니다.&lt;/p&gt;
&lt;h3&gt;5-2. Msg 547: FOREIGN KEY 제약 조건 충돌&lt;/h3&gt;
&lt;p&gt;메시지에 어떤 동작에서 충돌했는지가 함께 표시되므로 방향을 먼저 확인해야 합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;INSERT/UPDATE 시 충돌&lt;/strong&gt; — 참조하려는 &lt;strong&gt;부모 행이 존재하지 않는&lt;/strong&gt; 경우 → 부모 테이블에 먼저 데이터를 입력&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DELETE 시 충돌&lt;/strong&gt; — 삭제하려는 행을 &lt;strong&gt;참조하는 자식 행이 남아 있는&lt;/strong&gt; 경우 → 자식 행을 먼저 삭제하거나 논리 삭제 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 어떤 자식 행이 막고 있는지 확인
SELECT * FROM dbo.order_detail WHERE order_id = 1001;

-- 제약 조건 정의 확인
SELECT fk.name AS fk_name,
       OBJECT_NAME(fk.parent_object_id)     AS child_table,
       OBJECT_NAME(fk.referenced_object_id) AS parent_table,
       fk.delete_referential_action_desc
FROM sys.foreign_keys AS fk
WHERE fk.referenced_object_id = OBJECT_ID(&amp;#39;dbo.orders&amp;#39;);&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;code&gt;ON DELETE CASCADE&lt;/code&gt;는 편리하지만, 대량 삭제 시 연쇄적으로 다수의 테이블이 잠기고 예상치 못한 데이터 손실로 이어질 수 있어 운영 환경에서는 신중히 적용해야 합니다.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;5-3. Msg 512: Subquery returned more than 1 value&lt;/h3&gt;
&lt;p&gt;단일 값을 기대하는 위치(스칼라 서브쿼리, &lt;code&gt;=&lt;/code&gt; 비교 등)에 여러 행이 반환될 때 발생합니다. &lt;strong&gt;대부분은 쿼리 문제가 아니라 데이터에 중복이 있다는 신호&lt;/strong&gt;이므로, 먼저 중복 여부를 확인하는 것이 중요합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잘못된 예시 (Error 발생):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT e.emp_name,
       (SELECT d.dept_name
        FROM dbo.departments AS d
        WHERE d.department_id = e.department_id) AS dept_name
FROM dbo.employees AS e;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;중복 확인:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT department_id, COUNT(*) AS cnt
FROM dbo.departments
GROUP BY department_id
HAVING COUNT(*) &amp;gt; 1;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;해결 방법:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;-- 방법 1: JOIN으로 전환 (권장)
SELECT e.emp_name, d.dept_name
FROM dbo.employees AS e
LEFT JOIN dbo.departments AS d
       ON d.department_id = e.department_id;

-- 방법 2: 여러 건 중 하나만 필요한 경우 OUTER APPLY + TOP
SELECT e.emp_name, d.dept_name
FROM dbo.employees AS e
OUTER APPLY (
    SELECT TOP (1) d2.dept_name
    FROM dbo.departments AS d2
    WHERE d2.department_id = e.department_id
    ORDER BY d2.updated_at DESC
) AS d;

-- 방법 3: 존재 여부만 확인하면 되는 경우 IN / EXISTS
SELECT e.emp_name
FROM dbo.employees AS e
WHERE e.department_id IN (SELECT department_id FROM dbo.departments);&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5-4. Msg 1205: 교착 상태(Deadlock)&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;Transaction (Process ID xx) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;두 개 이상의 세션이 서로가 점유한 자원을 기다리며 무한 대기에 빠지면, SQL Server가 한쪽을 &lt;strong&gt;희생자(victim)&lt;/strong&gt; 로 선정해 강제 롤백합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;예방 및 완화 방법&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;객체 접근 순서 통일&lt;/strong&gt; — 모든 프로시저에서 테이블을 동일한 순서로 접근하면 교착 발생 확률이 크게 줄어듭니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;트랜잭션 구간 최소화&lt;/strong&gt; — 트랜잭션 안에서 사용자 입력 대기, 외부 API 호출, 불필요한 조회를 하지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;인덱스 최적화&lt;/strong&gt; — 적절한 인덱스가 없으면 스캔 범위가 넓어지고 잠금 대상도 함께 늘어납니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;재시도 로직 구현&lt;/strong&gt; — 교착은 완전히 없앨 수 없으므로 애플리케이션 또는 프로시저에 재시도를 넣는 것이 현실적입니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;READ COMMITTED SNAPSHOT 검토&lt;/strong&gt; — 읽기와 쓰기 간 차단을 줄일 수 있으나, tempdb 사용량이 늘어나므로 사전 검증이 필요합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;재시도 패턴 예시:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;DECLARE @retry INT = 0;

WHILE @retry &amp;lt; 3
BEGIN
    BEGIN TRY
        BEGIN TRANSACTION;

        -- 실제 업무 로직
        UPDATE dbo.inventory
           SET qty = qty - 1
         WHERE item_id = &amp;#39;A001&amp;#39;;

        COMMIT TRANSACTION;
        BREAK;   -- 성공 시 반복 종료
    END TRY
    BEGIN CATCH
        IF XACT_STATE() &amp;lt;&amp;gt; 0 ROLLBACK TRANSACTION;

        IF ERROR_NUMBER() = 1205 AND @retry &amp;lt; 2
        BEGIN
            SET @retry += 1;
            WAITFOR DELAY &amp;#39;00:00:01&amp;#39;;   -- 1초 대기 후 재시도
        END
        ELSE
        BEGIN
            THROW;   -- 교착이 아니거나 재시도 초과 시 오류 전파
        END
    END CATCH
END&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;교착 상태 이력 확인 (system_health 세션 활용):&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT XEvent.query(&amp;#39;.&amp;#39;) AS deadlock_graph
FROM (
    SELECT CAST(target_data AS XML) AS TargetData
    FROM sys.dm_xe_session_targets AS st
    JOIN sys.dm_xe_sessions AS s ON s.address = st.event_session_address
    WHERE s.name = &amp;#39;system_health&amp;#39;
      AND st.target_name = &amp;#39;ring_buffer&amp;#39;
) AS Data
CROSS APPLY TargetData.nodes(&amp;#39;RingBufferTarget/event[@name=&amp;quot;xml_deadlock_report&amp;quot;]&amp;#39;) AS XEventData(XEvent);&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h2&gt;6. 오류를 줄이는 실무 팁&lt;/h2&gt;
&lt;h3&gt;6-1. 변환은 TRY_ 계열 함수로&lt;/h3&gt;
&lt;p&gt;SQL Server 2012부터 제공되는 아래 함수들은 변환 실패 시 오류 대신 &lt;code&gt;NULL&lt;/code&gt;을 반환합니다. 외부 데이터 적재나 정합성 검증 쿼리에서 특히 유용합니다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;함수&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;용도&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;TRY_CAST(값 AS 형식)&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;표준 형 변환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;TRY_CONVERT(형식, 값, 스타일)&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;날짜 스타일 코드 등 변환 옵션이 필요할 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;TRY_PARSE(값 AS 형식 USING &amp;#39;문화권&amp;#39;)&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;&amp;#39;2026년 8월 30일&amp;#39;&lt;/code&gt; 같은 문화권 의존 문자열 파싱 (비용이 높으므로 남용 금지)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;6-2. TRY...CATCH로 예외를 명시적으로 처리&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;BEGIN TRY
    -- 오류가 발생할 수 있는 구문
    INSERT INTO dbo.employees (employee_id, emp_name) VALUES (1, N&amp;#39;홍길동&amp;#39;);
END TRY
BEGIN CATCH
    SELECT ERROR_NUMBER()    AS error_number,     -- Msg 번호
           ERROR_SEVERITY()  AS error_severity,   -- Level
           ERROR_STATE()     AS error_state,      -- State
           ERROR_LINE()      AS error_line,       -- 줄 번호
           ERROR_PROCEDURE() AS error_procedure,  -- 프로시저명
           ERROR_MESSAGE()   AS error_message;

    THROW;   -- 원본 오류를 그대로 상위로 전파 (SQL Server 2012 이상)
END CATCH&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;TRY...CATCH&lt;/code&gt;가 잡지 못하는 오류가 있습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;구문 오류(Msg 102, 156 등)&lt;/strong&gt; — 배치 컴파일 단계에서 실패하므로 &lt;code&gt;TRY&lt;/code&gt; 블록에 도달하지 못합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;같은 배치 내의 개체 이름 확인 오류(Msg 208)&lt;/strong&gt; — 지연 해석되지 않으면 컴파일 단계에서 실패합니다. 동적 SQL(&lt;code&gt;sp_executesql&lt;/code&gt;)로 분리하면 잡을 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;심각도 20 이상의 치명적 오류&lt;/strong&gt; — 연결 자체가 종료됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3&gt;6-3. 트랜잭션에는 SET XACT_ABORT ON&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;XACT_ABORT&lt;/code&gt;가 &lt;code&gt;OFF&lt;/code&gt;(기본값)인 상태에서는 일부 런타임 오류 발생 시에도 트랜잭션이 그대로 열려 있어, 잠금이 유지되거나 일부만 반영되는 위험이 있습니다. 저장 프로시저 상단에 아래 구문을 두는 것을 권장합니다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SET NOCOUNT ON;      -- 불필요한 영향 행 수 메시지 억제 (네트워크 부하 감소)
SET XACT_ABORT ON;   -- 런타임 오류 발생 시 트랜잭션 전체 자동 롤백&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6-4. 오라클 ↔ SQL Server 구문 대응표&lt;/h3&gt;
&lt;p&gt;두 DBMS를 함께 다루는 환경에서 문법을 혼용해 발생하는 오류가 많습니다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;기능&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;Oracle&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;SQL Server&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;상위 N건 조회&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;ROWNUM&lt;/code&gt;, &lt;code&gt;FETCH FIRST n ROWS ONLY&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;TOP (n)&lt;/code&gt;, &lt;code&gt;OFFSET ... FETCH NEXT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;NULL 치환&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;NVL(a, b)&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;ISNULL(a, b)&lt;/code&gt; / &lt;code&gt;COALESCE(a, b)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;문자열 결합&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;a || b&lt;/code&gt;, &lt;code&gt;CONCAT&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;a + b&lt;/code&gt;, &lt;code&gt;CONCAT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;현재 시각&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;SYSDATE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;GETDATE()&lt;/code&gt; / &lt;code&gt;SYSDATETIME()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;형 변환&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;TO_CHAR&lt;/code&gt;, &lt;code&gt;TO_DATE&lt;/code&gt;, &lt;code&gt;TO_NUMBER&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;CONVERT&lt;/code&gt;, &lt;code&gt;CAST&lt;/code&gt;, &lt;code&gt;FORMAT&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;조건 분기&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;DECODE&lt;/code&gt;, &lt;code&gt;CASE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;CASE&lt;/code&gt;, &lt;code&gt;IIF&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;문자열 자르기&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;SUBSTR&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;SUBSTRING&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;더미 테이블&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;DUAL&lt;/code&gt; 필요&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;불필요 (&lt;code&gt;SELECT 1;&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;테이블 별칭 &lt;code&gt;AS&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;사용 불가&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;left&quot;&gt;빈 문자열&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;&amp;#39;&amp;#39;&lt;/code&gt;은 &lt;code&gt;NULL&lt;/code&gt;로 취급&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;&amp;#39;&amp;#39;&lt;/code&gt;과 &lt;code&gt;NULL&lt;/code&gt;은 서로 다름&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h2&gt;7. 빠른 참조: 에러 코드 요약&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;Msg&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;메시지 요약&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;주요 원인&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;대표 해결책&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;102 / 156&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Incorrect syntax near&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;예약어 사용, 타 DBMS 문법&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;대괄호 &lt;code&gt;[ ]&lt;/code&gt;, &lt;code&gt;TOP&lt;/code&gt;/&lt;code&gt;OFFSET FETCH&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;208&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Invalid object name&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;DB·스키마 불일치, 미배포&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;USE&lt;/code&gt; 명시, &lt;code&gt;dbo.&lt;/code&gt; 접두어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;245&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Conversion failed&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;암시적 형 변환 실패&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;형식 일치, &lt;code&gt;TRY_CAST&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;512&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Subquery returned more than 1 value&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;데이터 중복&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;JOIN&lt;/code&gt;, &lt;code&gt;OUTER APPLY&lt;/code&gt; + &lt;code&gt;TOP (1)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;547&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Constraint conflict&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;FK 부모 부재 / 자식 잔존&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;입력·삭제 순서 조정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;1033&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ORDER BY invalid in subqueries&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;파생 테이블 내부 정렬&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;최상위 쿼리에서 정렬&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;1205&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Deadlock victim&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;자원 접근 순서 불일치&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;접근 순서 통일, 재시도 로직&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;2601 / 2627&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Duplicate key&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;키 중복&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;NOT EXISTS&lt;/code&gt;, &lt;code&gt;MERGE&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;4104&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Multi-part identifier could not be bound&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;별칭 오류&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;별칭 일관성 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;8115&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Arithmetic overflow&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;INT 범위 초과&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;CAST(... AS BIGINT)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;8120 / 8121&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Invalid in the select/having list&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;GROUP BY 누락&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;그룹 기준 추가 또는 집계·윈도우 함수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;8134&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Divide by zero&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;분모 0&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;NULLIF(분모, 0)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;strong&gt;8152 / 2628&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Data would be truncated&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;길이 초과&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;길이 확인, 컬럼 확장&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;hr&gt;
&lt;h2&gt;마치며&lt;/h2&gt;
&lt;p&gt;SQL Server 오류 해결의 첫걸음은 &lt;strong&gt;메시지 번호를 확인하는 것&lt;/strong&gt;입니다. 번호 하나만으로도 구문 문제인지, 데이터 문제인지, 제약 조건이나 동시성 문제인지 즉시 구분할 수 있습니다.&lt;/p&gt;
&lt;p&gt;특히 실무에서는 &lt;code&gt;TRY_CAST&lt;/code&gt;로 변환 오류를, &lt;code&gt;NULLIF&lt;/code&gt;로 0 나눗셈을, &lt;code&gt;SET XACT_ABORT ON&lt;/code&gt;으로 트랜잭션 오류를 사전에 차단하는 습관만 들여도 장애 대응 시간이 크게 줄어듭니다. 위 참조표를 북마크해 두고 오류 발생 시 빠르게 대조해 보시기 바랍니다.&lt;/p&gt;</description>
      <category>SQL(Oracle,MSSQL,Postgre)</category>
      <category>dbms</category>
      <category>DB오류</category>
      <category>MS-SQL</category>
      <category>MSSQL 오류</category>
      <category>SQL Server</category>
      <category>Syntax error</category>
      <category>데이터베이스</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/2</guid>
      <comments>https://hero0309.tistory.com/2#entry2comment</comments>
      <pubDate>Sun, 30 Aug 2026 17:34:35 +0900</pubDate>
    </item>
    <item>
      <title>[SQL 에러 해결] ORA-00933 및 Group By 구문 오류 원인과 즉시 해결 방법</title>
      <link>https://hero0309.tistory.com/1</link>
      <description>&lt;h1&gt;[SQL 에러 해결] ORA-00933 및 Group By 구문 오류 원인과 해결 방법&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 쿼리를 작성하다 보면 가장 흔하게 마주치는 오류 중 하나가 구문 오류(Syntax Error)와 집계 함수 사용 시 발생하는 그룹화 오류입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 오라클(Oracle), MySQL 등 데이터베이스 환경에서 구문의 작성 순서를 혼동하거나, 다른 DBMS의 문법을 그대로 옮겨 쓰면서 에러가 자주 발생합니다. 이번 글에서는 실무 및 학습 중 가장 빈번하게 발생하는 대표적인 SQL 에러 코드의 원인과 즉각적인 해결 방법을 정리해 드립니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. ORA-00933: SQL command not properly ended 오류 해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오라클 데이터베이스에서 쿼리를 실행할 때 자주 나타나는 대표적인 구문 종료 오류입니다. 오라클이 문장을 끝까지 해석하지 못했을 때, 즉 예상하지 못한 위치에서 키워드나 토큰을 만났을 때 발생합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 주요 발생 원인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;ORDER BY&lt;/code&gt; 절 뒤에 &lt;code&gt;WHERE&lt;/code&gt; 절 등 다른 구문이 위치한 경우&lt;/li&gt;
&lt;li&gt;&lt;code&gt;JOIN&lt;/code&gt; 구문과 &lt;code&gt;WHERE&lt;/code&gt; 절의 순서가 뒤바뀐 경우&lt;/li&gt;
&lt;li&gt;&lt;b&gt;테이블 별칭에 &lt;code&gt;AS&lt;/code&gt;를 사용한 경우&lt;/b&gt; &amp;mdash; 오라클은 컬럼 별칭에는 &lt;code&gt;AS&lt;/code&gt;를 허용하지만 테이블 별칭에는 허용하지 않습니다.&lt;/li&gt;
&lt;li&gt;오라클이 지원하지 않는 타 DBMS 전용 구문을 사용한 경우 &amp;mdash; &lt;code&gt;LIMIT&lt;/code&gt;, &lt;code&gt;ON DUPLICATE KEY UPDATE&lt;/code&gt;, MySQL 식 &lt;code&gt;UPDATE ... JOIN&lt;/code&gt; 등&lt;/li&gt;
&lt;li&gt;문장 중간에 세미콜론(&lt;code&gt;;&lt;/code&gt;)이 들어간 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;참고:&lt;/b&gt; 괄호 짝이 맞지 않을 때는 ORA-00933이 아니라 &lt;b&gt;ORA-00907(missing right parenthesis)&lt;/b&gt;, 문장 중간 세미콜론은 도구에 따라 &lt;b&gt;ORA-00911(invalid character)&lt;/b&gt; 이 발생하기도 합니다. 에러 코드를 먼저 확인하면 원인 범위를 크게 줄일 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 해결 방법 및 코드 비교&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 표준 작성 순서에 맞게 구문 위치를 정렬해야 합니다. &lt;code&gt;WHERE&lt;/code&gt; 절은 반드시 &lt;code&gt;ORDER BY&lt;/code&gt; 절보다 앞에 와야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;잘못된 예시 (Error 발생):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT employee_id, emp_name, salary
FROM employees
ORDER BY salary DESC
WHERE department_id = 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;올바른 예시 (Fixed):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT employee_id, emp_name, salary
FROM employees
WHERE department_id = 10
ORDER BY salary DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;테이블 별칭 &lt;code&gt;AS&lt;/code&gt; 사용 (Error 발생):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;-- 오라클에서는 테이블 별칭 앞에 AS를 쓸 수 없음
SELECT e.emp_name, d.dept_name
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;올바른 예시 (Fixed):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT e.emp_name AS employee_name   -- 컬럼 별칭의 AS는 사용 가능
FROM employees e
JOIN departments d ON e.department_id = d.department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) 페이징 처리 시 주의사항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;ROWNUM&lt;/code&gt;을 사용할 때는 실행 순서에 주의해야 합니다. &lt;code&gt;ROWNUM&lt;/code&gt;은 &lt;code&gt;ORDER BY&lt;/code&gt;가 적용되기 &lt;b&gt;전에&lt;/b&gt; 부여되므로, 아래 쿼리는 &quot;급여 상위 10명&quot;이 아니라 &quot;임의의 10건을 뽑은 뒤 정렬한 결과&quot;를 반환합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;의도와 다르게 동작하는 예시:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT emp_name, salary
FROM employees
WHERE ROWNUM &amp;lt;= 10
ORDER BY salary DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;올바른 예시 (인라인 뷰로 정렬 후 제한):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT emp_name, salary
FROM (
    SELECT emp_name, salary
    FROM employees
    ORDER BY salary DESC
)
WHERE ROWNUM &amp;lt;= 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Oracle 12c 이상 (권장):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SELECT emp_name, salary
FROM employees
ORDER BY salary DESC
FETCH FIRST 10 ROWS ONLY;

-- 11번째부터 10건 조회
SELECT emp_name, salary
FROM employees
ORDER BY salary DESC
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. ORA-00979: not a GROUP BY expression / MySQL Group By 오류 해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SUM&lt;/code&gt;, &lt;code&gt;AVG&lt;/code&gt;, &lt;code&gt;COUNT&lt;/code&gt;, &lt;code&gt;MAX&lt;/code&gt;, &lt;code&gt;MIN&lt;/code&gt; 등의 집계 함수를 사용할 때, &lt;code&gt;GROUP BY&lt;/code&gt; 절에 포함되지 않은 일반 컬럼을 &lt;code&gt;SELECT&lt;/code&gt; 절에서 조회하면 발생하는 오류입니다. MySQL에서는 동일한 상황에서 &lt;b&gt;Error 1055 (ONLY_FULL_GROUP_BY)&lt;/b&gt; 가 발생합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 주요 발생 원인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;HAVING&lt;/code&gt;, &lt;code&gt;ORDER BY&lt;/code&gt; 절에 사용된 컬럼 중 집계 함수가 적용되지 않은 일반 컬럼이 &lt;code&gt;GROUP BY&lt;/code&gt; 절에 누락된 경우&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SELECT&lt;/code&gt; 절의 표현식과 &lt;code&gt;GROUP BY&lt;/code&gt; 절의 표현식이 정확히 일치하지 않는 경우 (예: &lt;code&gt;SELECT SUBSTR(job_id, 1, 2)&lt;/code&gt; &amp;harr; &lt;code&gt;GROUP BY job_id&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;MySQL 5.7 이상에서 기본 활성화된 &lt;code&gt;ONLY_FULL_GROUP_BY&lt;/code&gt; 모드가 표준 SQL 문법을 엄격히 검증하는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 해결 방법 및 코드 비교&lt;/h3&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;b&gt;잘못된 예시 (Error 발생):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;-- job_id 컬럼이 GROUP BY 절에 누락되어 에러 발생
SELECT department_id, job_id, AVG(salary)
FROM employees
GROUP BY department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 1 &amp;mdash; 그룹 기준에 추가:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT department_id, job_id, AVG(salary)
FROM employees
GROUP BY department_id, job_id;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주의:&lt;/b&gt; 이 방법은 에러는 사라지지만 &lt;b&gt;집계 단위 자체가 바뀝니다.&lt;/b&gt; 위 쿼리는 &quot;부서별 평균 급여&quot;가 아니라 &quot;부서+직무별 평균 급여&quot;를 반환합니다. 원하는 집계 단위가 무엇인지 먼저 확인하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 2 &amp;mdash; 집계 함수로 축약 (부서별 단위 유지):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;SELECT department_id, MAX(job_id) AS sample_job_id, AVG(salary)
FROM employees
GROUP BY department_id;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 3 &amp;mdash; 분석 함수 사용 (원본 행을 모두 유지):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;-- 행을 축약하지 않고, 각 행에 부서 평균을 함께 표시
SELECT department_id,
       job_id,
       salary,
       AVG(salary) OVER (PARTITION BY department_id) AS dept_avg_salary
FROM employees;&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. SQL 구문 오류를 방지하는 3가지 실무 팁&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1) 작성 순서와 실행 순서를 함께 기억하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL은 문법 작성 순서와 실제 내부 실행 순서가 다릅니다. 두 순서를 함께 기억해 두면 구문 에러뿐 아니라 논리 오류도 예방할 수 있습니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;작성 순서&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;키워드&lt;/th&gt;
&lt;th align=&quot;left&quot;&gt;역할&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;실행 순서&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;SELECT&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;조회할 컬럼 및 집계식 지정&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;FROM&lt;/code&gt; / &lt;code&gt;JOIN&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;조회 대상 테이블 및 조인&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;WHERE&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;행 단위 조건 필터링&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;GROUP BY&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;특정 컬럼 기준 그룹화&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;HAVING&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;그룹화 후 집계 조건 필터링&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;&lt;code&gt;ORDER BY&lt;/code&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;최종 결과 정렬&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SELECT&lt;/code&gt;가 &lt;code&gt;ORDER BY&lt;/code&gt;보다 먼저 실행되기 때문에 &lt;code&gt;ORDER BY&lt;/code&gt;에서는 컬럼 별칭을 쓸 수 있지만, &lt;code&gt;WHERE&lt;/code&gt;에서는 쓸 수 없다는 점도 이 순서로 설명됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2) 대소문자 규칙과 들여쓰기로 가독성 확보&lt;/h3&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;SQL 예약어(&lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;FROM&lt;/code&gt;, &lt;code&gt;WHERE&lt;/code&gt; 등)는 &lt;b&gt;대문자&lt;/b&gt;로 작성합니다.&lt;/li&gt;
&lt;li&gt;테이블명, 컬럼명 등 식별자는 &lt;b&gt;소문자&lt;/b&gt;로 일관되게 작성합니다. 오라클은 큰따옴표로 감싸지 않은 식별자를 내부적으로 대문자로 저장하므로, 어느 쪽으로 써도 동일하게 인식됩니다. 다만 &lt;code&gt;&quot;emp_name&quot;&lt;/code&gt; 처럼 따옴표로 감싸면 대소문자를 그대로 구분하므로 특별한 이유가 없다면 사용하지 않는 편이 안전합니다.&lt;/li&gt;
&lt;li&gt;절 단위로 줄바꿈(개행)과 2~4칸 들여쓰기를 적용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3) 서브쿼리 괄호 및 별칭(Alias) 검증&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;복잡한 중첩 쿼리를 작성할 때는 여는 괄호 &lt;code&gt;(&lt;/code&gt;와 닫는 괄호 &lt;code&gt;)&lt;/code&gt;의 쌍이 맞는지 단계별로 실행해 확인합니다. 짝이 맞지 않으면 &lt;b&gt;ORA-00907&lt;/b&gt;이 발생합니다.&lt;/li&gt;
&lt;li&gt;서브쿼리(인라인 뷰)에는 명확한 별칭을 부여하여 컬럼 모호성 에러(&lt;b&gt;ORA-00918: column ambiguously defined&lt;/b&gt;)를 예방합니다. 이때도 &lt;code&gt;AS&lt;/code&gt; 없이 &lt;code&gt;) t&lt;/code&gt; 형태로 작성해야 합니다.&lt;/li&gt;
&lt;li&gt;같은 컬럼명이 여러 테이블에 존재할 때는 항상 &lt;code&gt;테이블별칭.컬럼명&lt;/code&gt; 형태로 한정하여 작성합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 오류는 대부분 &lt;b&gt;문법 순서의 불일치&lt;/b&gt;, &lt;b&gt;집계 기준 컬럼의 누락&lt;/b&gt;, 그리고 &lt;b&gt;타 DBMS 문법의 혼용&lt;/b&gt;에서 비롯됩니다. 에러 코드는 원인 범위를 좁혀 주는 가장 빠른 단서이므로, 메시지를 먼저 확인한 뒤 위에서 정리한 작성 순서와 예시 코드를 참고하여 쿼리 구조를 점검해 보시기 바랍니다.&lt;/p&gt;</description>
      <category>SQL(Oracle,MSSQL,Postgre)</category>
      <category>Database</category>
      <category>Group by 오류</category>
      <category>Oracle</category>
      <category>Oracle 오류</category>
      <category>sql</category>
      <category>SQL 오류</category>
      <category>데이터베이스</category>
      <author>Hero0309</author>
      <guid isPermaLink="true">https://hero0309.tistory.com/1</guid>
      <comments>https://hero0309.tistory.com/1#entry1comment</comments>
      <pubDate>Sun, 30 Aug 2026 17:19:37 +0900</pubDate>
    </item>
  </channel>
</rss>