<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>게으른 자들을 위한 알짜배기 압축집.zip</title>
    <link>https://lazip.tistory.com/</link>
    <description>일잘러가 되고 싶은 게으른 자들을 위한 IT 치트키.
쓸데없는 내용은 빼고 알짜배기 정보만 .zip으로 압축했습니다.
노션 단축키부터 실전 프롬프트까지, Zippy의 압축해제는 계속됩니다.</description>
    <language>ko</language>
    <pubDate>Wed, 29 Jul 2026 15:33:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>zippy</managingEditor>
    <image>
      <title>게으른 자들을 위한 알짜배기 압축집.zip</title>
      <url>https://tistory1.daumcdn.net/tistory/8591623/attach/6d889f2e533a43f8ad10393d98b9552e</url>
      <link>https://lazip.tistory.com</link>
    </image>
    <item>
      <title>오라클 클라우드 과금 방지 가이드 (무료 인스턴스 PAYG 전환 후 설정)</title>
      <link>https://lazip.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B3%BC%EA%B8%88-%EB%B0%A9%EC%A7%80-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%AC%B4%EB%A3%8C-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-PAYG-%EC%A0%84%ED%99%98-%ED%9B%84-%EC%84%A4%EC%A0%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle Cloud Infrastructure(OCI)에서 Always Free 인스턴스를 만들었지만, PAYG(Pay As You Go) 계정으로 업그레이드한 상태라면 과금이 발생할 수 있기에... 과금을 사전에 예방하기 위해 설정한 내용들을 순서대로 정리해보았습니다. (까먹을까봐)&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;오라클 무료 계정의 과금 구조 이해&lt;/li&gt;
&lt;li&gt;현재 리소스 점검 (과금 대상 여부 확인)&lt;/li&gt;
&lt;li&gt;예산(Budget) 생성 및 경보 규칙 설정&lt;/li&gt;
&lt;li&gt;비용 분석(Cost Analysis)으로 현재 비용 확인&lt;/li&gt;
&lt;li&gt;카드 해외결제 한도 제한 (추가 안전장치)&lt;/li&gt;
&lt;li&gt;앞으로 지켜야 할 규칙 요약&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 오라클 무료 계정의 과금 구조 이해&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Free Tier vs PAYG&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오라클 클라우드 계정은 크게 두 가지 상태가 있습니다.&lt;/p&gt;
&lt;table style=&quot;width: 524px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 214px;&quot;&gt;구분&lt;/th&gt;
&lt;th style=&quot;width: 191px;&quot;&gt;Free Tier (순수 무료)&lt;/th&gt;
&lt;th style=&quot;width: 119px;&quot;&gt;PAYG (유료 전환)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 214px;&quot;&gt;유료 리소스 생성&lt;/td&gt;
&lt;td style=&quot;width: 191px;&quot;&gt;불가능&lt;/td&gt;
&lt;td style=&quot;width: 119px;&quot;&gt;가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 214px;&quot;&gt;Always Free 리소스&lt;/td&gt;
&lt;td style=&quot;width: 191px;&quot;&gt;사용 가능&lt;/td&gt;
&lt;td style=&quot;width: 119px;&quot;&gt;사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 214px;&quot;&gt;과금 위험&lt;/td&gt;
&lt;td style=&quot;width: 191px;&quot;&gt;없음&lt;/td&gt;
&lt;td style=&quot;width: 119px;&quot;&gt;있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 214px;&quot;&gt;다운그레이드&lt;/td&gt;
&lt;td style=&quot;width: 191px;&quot;&gt;-&lt;/td&gt;
&lt;td style=&quot;width: 119px;&quot;&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;PAYG로 업그레이드하면 다시 무료 계정으로 되돌릴 수 없습니다.&lt;/b&gt; 대신 Always Free 리소스만 사용하면 비용은 발생하지 않습니다. 하지만...&amp;nbsp; 프리티어 계정으로 인스턴스 만들기란 하늘의 별따기.... &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;⭐&lt;span&gt; &lt;/span&gt;&lt;/span&gt;심지어 혜택 축소시킨 이후로는 무료 계정으로 &lt;span style=&quot;background-color: #e6f5ff; color: #333333; text-align: start;&quot;&gt;VM.Standard.A1.Flex&lt;/span&gt;&amp;nbsp; 선택지가 사라졌는데요..(저만 그런걸지도) 프리티어 계정으로 몇 달을 인스턴스 생성 시도해도 안 되길래 PAYG 전환했는데, 전환하자마자 인스턴스 생성이 되더이다... 과금의 위험이 있기에 이를 사전에 예방하고자 이것저것 설정을 해두었습니다. 하지만 오라클 너무 어렵고.. 가이드도 없다시피 하고... 정보도 얻기 어렵다......&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼 오라클의 예산(Budget) 기능은 설정한 임계값에 도달하면 이메일로 알림만 보내줍니다. 따라서 &lt;b&gt;알림을 빠르게 받아서 직접 조치하는 것&lt;/b&gt;이 유일한 방법이고, 그래서 아래 설정을 꼼꼼히 해둬야 합니다.&lt;/p&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;새로운 설정을 하기 전에, 지금 사용 중인 리소스가 모두 무료 범위 안에 있는지 먼저 확인합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-1. Always Free 리소스 한도&lt;/h3&gt;
&lt;table style=&quot;width: 548px; height: 146px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;th style=&quot;width: 220px; height: 24px;&quot;&gt;리소스&lt;/th&gt;
&lt;th style=&quot;width: 328px; height: 24px;&quot;&gt;Always Free 한도&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 21px;&quot;&gt;ARM(A1) VM 인스턴스&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 21px;&quot;&gt;합산 2 OCPU, 12GB 메모리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 21px;&quot;&gt;AMD(E2) VM 인스턴스&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 21px;&quot;&gt;2개 (각 1/8 OCPU, 1GB RAM)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 21px;&quot;&gt;부트볼륨 + 블록볼륨&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 21px;&quot;&gt;합산 200GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 17px;&quot;&gt;Object Storage&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 17px;&quot;&gt;20GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 21px;&quot;&gt;로드 밸런서&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 21px;&quot;&gt;1개 (10Mbps)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 220px; height: 21px;&quot;&gt;아웃바운드 트래픽&lt;/td&gt;
&lt;td style=&quot;width: 328px; height: 21px;&quot;&gt;월 10TB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;⚠️&lt;/span&gt;&lt;i&gt;&lt;span style=&quot;color: #666666;&quot;&gt;주의: 2026년 6월 15일부로 A1(Ampere) 인스턴스의 무료 한도가 절반으로 축소되었습니다...흑흑 &lt;a title=&quot;Always Free Resources&quot; href=&quot;https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식 문서&lt;/a&gt;를 참고하시길...&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-2. 인스턴스 Shape 확인 방법&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;OCI 콘솔 접속: &lt;a href=&quot;https://cloud.oracle.com&quot;&gt;https://cloud.oracle.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;좌측 상단 &lt;b&gt;☰ (햄버거 메뉴)&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Compute&lt;/b&gt; &amp;gt; &lt;b&gt;Instances&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;인스턴스 이름 클릭하여 상세 페이지 진입&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;구성(Shape)&quot;&lt;/b&gt; 항목에서 Shape 이름과 사양 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Always Free에 해당하는 Shape은 다음 두 가지입니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shape 이름&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;code&gt;VM.Standard.A1.Flex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ARM&lt;/td&gt;
&lt;td&gt;합산 2 OCPU, 12GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VM.Standard.E2.1.Micro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AMD&lt;/td&gt;
&lt;td&gt;각 1/8 OCPU, 1GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 제 경우는 다음과 같이 확인되었습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Shape: VM.Standard.A1.Flex / OCPU: 1 / 메모리: 6GB&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ARM 기준 한도(2 OCPU, 12GB) 내에 있으므로 안전합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-3. 부트 볼륨 확인&lt;/h3&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; &amp;gt; &lt;b&gt;Storage&lt;/b&gt; &amp;gt; &lt;b&gt;Block Storage&lt;/b&gt; &amp;gt; &lt;b&gt;Boot Volumes&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;볼륨 크기 합산이 200GB 이하인지 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-4. 기타 리소스 확인&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;블록 볼륨&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Storage &amp;gt; Block Volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로드 밸런서&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Networking &amp;gt; Load Balancers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Object Storage&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Storage &amp;gt; Buckets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;3. 예산(Budget) 생성 및 경보 규칙 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계가 가장 중요합니다. 과금이 발생하면 즉시 알림을 받을 수 있도록 예산과 경보 규칙을 만듭니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-1. 예산 생성 화면 진입&lt;/h3&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; &amp;gt; &lt;b&gt;Billing &amp;amp; Cost Management&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cost Management&lt;/b&gt; &amp;gt; &lt;b&gt;Budgets&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Create Budget (예산 생성)&lt;/b&gt; 버튼 클릭&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-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;/td&gt;
&lt;td&gt;&lt;code&gt;free-tier-guard&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;td&gt;&lt;code&gt;과금 방지 예산 알림&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;예산 범위&lt;/td&gt;
&lt;td&gt;&lt;b&gt;컴파트먼트&lt;/b&gt; 선택&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대상 컴파트먼트&lt;/td&gt;
&lt;td&gt;&lt;b&gt;최상위(root) 컴파트먼트&lt;/b&gt; 선택 (본인 테넌시 이름)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일정&lt;/td&gt;
&lt;td&gt;&lt;b&gt;매월&lt;/b&gt; 선택&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;예산 금액&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt; (통화 단위는 계정에 따라 SGD, USD 등 자동 표시)&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;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예산 금액을 1로 설정하는 이유는, 목표가 과금 0원이기 때문입니다. 1달러(또는 1 SGD)로 설정하면 단 0.01이라도 과금이 발생했을 때 빠르게 감지할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-3. 첫 번째 경보 규칙 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예산 생성 화면 하단에 &lt;b&gt;&quot;예산 경보 규칙(선택사항)&quot;&lt;/b&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;임계값 측정항목&lt;/td&gt;
&lt;td&gt;&lt;b&gt;실제 지출&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 유형&lt;/td&gt;
&lt;td&gt;&lt;b&gt;예산 백분율&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 %&lt;/td&gt;
&lt;td&gt;&lt;code&gt;50&lt;/code&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;code&gt;경고: 과금 50% 도달. 즉시 OCI 콘솔 확인 필요&lt;/code&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;생성(Create)&quot;&lt;/b&gt; 버튼을 클릭합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-4. 추가 경보 규칙 2개 더 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 예산에 여러 개의 경보 규칙을 추가할 수 있습니다. 방금 만든 예산에 규칙을 2개 더 추가합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Budgets&lt;/b&gt; 목록에서 &lt;code&gt;free-tier-guard&lt;/code&gt; 클릭&lt;/li&gt;
&lt;li&gt;상세 페이지의 &lt;b&gt;&quot;경보 규칙&quot;&lt;/b&gt; 섹션에서 &lt;b&gt;&quot;경보 규칙 생성&quot;&lt;/b&gt; 클릭&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;경보 규칙 2: 실제 지출 100%&lt;/b&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;임계값 측정항목&lt;/td&gt;
&lt;td&gt;&lt;b&gt;실제 지출&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 유형&lt;/td&gt;
&lt;td&gt;&lt;b&gt;예산 백분율&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 %&lt;/td&gt;
&lt;td&gt;&lt;code&gt;100&lt;/code&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;code&gt;긴급: 과금 1달러 도달! 즉시 리소스 확인 및 삭제 필요&lt;/code&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;경보 규칙 생성&quot;&lt;/b&gt;을 클릭하여 세 번째 규칙을 추가합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;경보 규칙 3: 예측 지출 80%&lt;/b&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;임계값 측정항목&lt;/td&gt;
&lt;td&gt;&lt;b&gt;예측 지출&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 유형&lt;/td&gt;
&lt;td&gt;&lt;b&gt;예산 백분율&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;임계값 %&lt;/td&gt;
&lt;td&gt;&lt;code&gt;80&lt;/code&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;code&gt;주의: 이번 달 예상 지출이 예산 80%에 도달할 전망. 리소스 점검 필요&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 비용 분석(Cost Analysis)으로 현재 비용 확인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예산 설정과 별도로, 현재 비용이 실제로 0원인지 직접 눈으로 확인합니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;☰ 메뉴&lt;/b&gt; &amp;gt; &lt;b&gt;Billing &amp;amp; Cost Management&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cost Management&lt;/b&gt; &amp;gt; &lt;b&gt;Cost Analysis&lt;/b&gt; 클릭&lt;/li&gt;
&lt;li&gt;날짜 범위를 &lt;b&gt;이번 달&lt;/b&gt;로 설정&lt;/li&gt;
&lt;li&gt;모든 서비스의 비용이 &lt;b&gt;$0.00&lt;/b&gt;으로 표시되는지 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0이 아닌 항목이 보인다면, 해당 서비스의 리소스를 찾아 즉시 삭제해야 합니다.&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;예산 알림은 소프트 리밋이므로, 해킹이나 실수로 유료 리소스가 대량 생성되는 최악의 상황에 대비하여 카드 자체에서 방어선을 만들어 둡니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;설정 방법&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;본인 카드사 앱(토스, 카카오뱅크, 신한SOL 등) 열기&lt;/li&gt;
&lt;li&gt;해외결제 한도 설정 메뉴 찾기&lt;/li&gt;
&lt;li&gt;&lt;b&gt;해외결제 월 한도를 최소 금액(예: 1만원 또는 5만원)으로 설정&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주의:&lt;/b&gt; 카드 결제가 완전히 실패하면 오라클이 계정 자체를 정지시킬 수 있고, Always Free 리소스도 함께 중단될 수 있습니다. 완전 차단보다는 &lt;b&gt;낮은 한도 설정&lt;/b&gt;이 더 안전합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 앞으로 지켜야 할 규칙 요약&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해야 할 것&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;규칙&lt;/th&gt;
&lt;th&gt;이유&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;새 리소스 만들 때 &lt;b&gt;Always Free eligible&lt;/b&gt; 표시 반드시 확인&lt;/td&gt;
&lt;td&gt;유료 리소스 생성 방지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;부트볼륨 + 블록볼륨 합산 &lt;b&gt;200GB 초과 금지&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;초과분 과금&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oracle 알림 이메일 &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;매월 1회&lt;/b&gt; Cost Analysis에서 비용 $0 확인&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;절대 하지 말아야 할 것&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;Always Free 표시 없는 Shape 선택&lt;/td&gt;
&lt;td&gt;유료 리소스 생성, 즉시 과금&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ARM 합산 2 OCPU / 12GB 초과&lt;/td&gt;
&lt;td&gt;초과분 과금&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로드밸런서 2개 이상 생성&lt;/td&gt;
&lt;td&gt;2번째부터 과금&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Object Storage 20GB 초과&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;정기 점검 루틴&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;주기&lt;/th&gt;
&lt;th&gt;확인 항목&lt;/th&gt;
&lt;th&gt;경로&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;매주&lt;/td&gt;
&lt;td&gt;Cost Analysis 비용 $0 확인&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Billing &amp;amp; Cost Management &amp;gt; Cost Analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;매월&lt;/td&gt;
&lt;td&gt;인보이스 확인&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Billing &amp;amp; Cost Management &amp;gt; Invoices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;매월&lt;/td&gt;
&lt;td&gt;예산 상태 확인&lt;/td&gt;
&lt;td&gt;☰ &amp;gt; Billing &amp;amp; Cost Management &amp;gt; Budgets&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;/tbody&gt;
&lt;/table&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;현재 리소스가 모두 Always Free 범위 안에 있는지 확인&lt;/li&gt;
&lt;li&gt;예산 1달러 + 경보 규칙 3개로 과금 즉시 감지 체계 구축&lt;/li&gt;
&lt;li&gt;카드 해외결제 한도 제한으로 최악의 상황 방어&lt;/li&gt;
&lt;li&gt;정기 점검 루틴으로 지속적 모니터링&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>always free</category>
      <category>ARM 인스턴스</category>
      <category>OCI 과금 방지</category>
      <category>PAYG</category>
      <category>가성비 VPS</category>
      <category>오라클 클라우드 무료 티어</category>
      <category>오라클 클라우드 예산 설정</category>
      <category>오라클 클라우드 유료 전환</category>
      <category>클라우드 보안</category>
      <category>평생 무료 서버</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/43</guid>
      <comments>https://lazip.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B3%BC%EA%B8%88-%EB%B0%A9%EC%A7%80-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%AC%B4%EB%A3%8C-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-PAYG-%EC%A0%84%ED%99%98-%ED%9B%84-%EC%84%A4%EC%A0%95#entry43comment</comments>
      <pubDate>Tue, 30 Jun 2026 17:52:36 +0900</pubDate>
    </item>
    <item>
      <title>&amp;quot;AI가 기억하는 나&amp;quot; &amp;mdash; 대화 기록을 기반으로 내 모습을 그리게 하는 프롬프트 공유</title>
      <link>https://lazip.tistory.com/entry/AI%EA%B0%80-%EA%B8%B0%EC%96%B5%ED%95%98%EB%8A%94-%EB%82%98-%EB%8C%80%ED%99%94-%EA%B8%B0%EB%A1%9D%EC%9D%84-%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C-%EB%82%B4-%EB%AA%A8%EC%8A%B5%EC%9D%84-%EA%B7%B8%EB%A6%AC%EA%B2%8C-%ED%95%98%EB%8A%94-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EA%B3%B5%EC%9C%A0</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;AI가 기억하는 나의 진짜 모습은 어떨까?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI를 이용해 매일 사소한 질문을 던지고, 아이디어를 정리하다 보면 문득 이런 생각이 들 때가 있습니다. &quot;AI는 나를 어떤 사람으로 인식하고 있을까?&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 오늘은 그동안 AI와 나눈 대화의 맥락, 언어 습관, 문화적 배경을 바탕으로 AI가 추론한 '가장 현실적인 내 모습'을 스냅 사진처럼 뽑아주는 프롬프트를 공유합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;대화 기록으로 뽑아보는 'AI가 기억하는 나'&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 프롬프트의 핵심은 '인위적인 AI 느낌을 완전히 빼는 것'입니다. 스튜디오에서 각 잡고 찍은 사진이 아니라, 스마트폰으로 대충 찍은 듯한 현실감을 주도록 설계되었습니다. 아래 프롬프트를 복사해서 여러분이 자주 사용하는 AI의 대화창에 그대로 입력해 보세요.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;  바로 복붙 가능한 프롬프트&lt;/h3&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;Do not ask for a photo. Do not generate a polished or AI-looking image.

Based solely on our conversation history &amp;mdash; how I write, what I talk about,
how I think, and the language I naturally use &amp;mdash; form an impression of who I am.

Take into account the cultural and linguistic context of our conversations
when visualizing this person. The language patterns, references, and sensibilities
I've shown should inform nationality, facial features, and overall appearance.

Render this as a candid smartphone photo of that person in a natural moment:
- Natural ambient light only (window, caf&amp;eacute;, overcast outdoor)
- Loose, slightly off-center framing &amp;mdash; not composed, just caught
- Imperfect exposure, mild grain, soft edges are welcome
- Real skin texture, real proportions &amp;mdash; no retouching
- Muted, understated color &amp;mdash; not vivid, not filtered
- A setting that feels consistent with where this person actually lives

The result should feel like a real photo of a real person.
Authentic over polished. Caught, not composed.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;사진을 요청하지 마세요. AI가 만든 것처럼 과하게 다듬어진 이미지도 원하지 않습니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;우리의 대화 기록만을 바탕으로 &amp;mdash; 내가 어떻게 글을 쓰는지, 무엇에 대해 이야기하는지, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;어떻게 생각하는지, 어떤 언어를 자연스럽게 사용하는지 &amp;mdash; 내가 어떤 사람인지 인상을 형성해주세요. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;내가 사용한 언어의 문화적&amp;middot;언어적 맥락을 시각화에 반영해주세요. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;내가 보여온 언어 패턴, 표현 방식, 감수성이 국적, 외형, 전반적인 분위기에 녹아들어야 합니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 사람의 자연스러운 순간을 스마트폰으로 찍은 사진처럼 표현해주세요: &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 자연광만 사용 (창가, 카페, 흐린 날 야외) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 살짝 비대칭적인 구도, 중앙에서 약간 벗어난 프레임 &amp;mdash; 연출이 아닌 포착&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; - 약간의 노출 불균형, 미세한 필름 그레인, 부드러운 아웃포커스 허용 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 보정하지 않은 자연스러운 피부, 실제 비율 유지 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 채도를 낮춘 절제된 색감 &amp;mdash; 선명하거나 필터 낀 느낌 없이 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 이 사람이 실제로 살고 있는 곳과 어울리는 배경 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;완벽하게 다듬어진 이미지가 아닌, 진짜 사람의 진짜 사진처럼 느껴져야 합니다. 연출된 것이 아닌, 포착된 것처럼.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  활용 팁 &amp;amp; 결과를 더 잘 뽑는 방법&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;&lt;b&gt;대화량이 많을수록 정확도가 올라갑니다.&lt;/b&gt; 짧은 세션보다는 여러 주제를 오간 긴 대화 이후에 쓰는 게 좋습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이미지 생성 기능이 있는 모델&lt;/b&gt;에서 써야 실제로 이미지가 나옵니다. ChatGPT의 GPT-4o, Copilot 등이 해당됩니다.&lt;/li&gt;
&lt;li&gt;결과가 너무 보정된 느낌이면 &lt;code&gt;&quot;More grain. Less polished. This looks like a stock photo.&quot;&lt;/code&gt; 같은 후속 프롬프트로 다듬을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  나의 대화 기록으로 뽑아낸 페르소나 이미지&lt;/h3&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/OKGnx/dJMcagMmgzo/7BRX3MeiKZziwfjiNF1Jkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OKGnx/dJMcagMmgzo/7BRX3MeiKZziwfjiNF1Jkk/img.png&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;1448&quot; data-is-animation=&quot;false&quot; width=&quot;300&quot; height=&quot;400&quot; data-widthpercent=&quot;50&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OKGnx/dJMcagMmgzo/7BRX3MeiKZziwfjiNF1Jkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOKGnx%2FdJMcagMmgzo%2F7BRX3MeiKZziwfjiNF1Jkk%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;1086&quot; height=&quot;1448&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYgtms/dJMcagMmgzn/6vmELVIbbAS0ipgfkeTpW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYgtms/dJMcagMmgzn/6vmELVIbbAS0ipgfkeTpW0/img.png&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;1448&quot; data-is-animation=&quot;false&quot; width=&quot;300&quot; height=&quot;400&quot; data-widthpercent=&quot;50&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYgtms/dJMcagMmgzn/6vmELVIbbAS0ipgfkeTpW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYgtms%2FdJMcagMmgzn%2F6vmELVIbbAS0ipgfkeTpW0%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;1086&quot; height=&quot;1448&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GHHYJ/dJMcaaSTgbN/6KpWKJ3nGoupoSccRn8WQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GHHYJ/dJMcaaSTgbN/6KpWKJ3nGoupoSccRn8WQk/img.png&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;1448&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;22.51&quot; data-filename=&quot;blob&quot; style=&quot;width: 21.9866%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GHHYJ/dJMcaaSTgbN/6KpWKJ3nGoupoSccRn8WQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGHHYJ%2FdJMcaaSTgbN%2F6KpWKJ3nGoupoSccRn8WQk%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;1086&quot; height=&quot;1448&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t3wOf/dJMcahYKK9x/WJ96ZmHhiNxfvp2QUBt9hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t3wOf/dJMcahYKK9x/WJ96ZmHhiNxfvp2QUBt9hk/img.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;559&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;54.98&quot; data-filename=&quot;blob&quot; style=&quot;width: 53.7013%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t3wOf/dJMcahYKK9x/WJ96ZmHhiNxfvp2QUBt9hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft3wOf%2FdJMcahYKK9x%2FWJ96ZmHhiNxfvp2QUBt9hk%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;559&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C8HUQ/dJMcahLeZK2/s3Ja0JOhB2kZMUcnxchuUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C8HUQ/dJMcahLeZK2/s3Ja0JOhB2kZMUcnxchuUk/img.png&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;1448&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 21.9866%; margin-top: 10px;&quot; data-widthpercent=&quot;22.51&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C8HUQ/dJMcahLeZK2/s3Ja0JOhB2kZMUcnxchuUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC8HUQ%2FdJMcahLeZK2%2Fs3Ja0JOhB2kZMUcnxchuUk%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;1086&quot; height=&quot;1448&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하다보니 재밌어서 이것저것 계속 생성해봤는데요. 현 시점에서 가장 자연스러운 이미지를 생성하는 모델은 GPT인 것 같습니다. Gemini 로 자연스러운 이미지 생성을 위해 프롬프트 변형을 시도해봤지만, 무의미한 시도인 것을 깨달았기에 금방 포기했습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-style=&quot;style5&quot; data-ke-type=&quot;horizontalRule&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) perplexity 에서 Claude Sonnet 4.6 Thinking 모델을 이용한 결과물&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2)&lt;span&gt;&amp;nbsp;&lt;/span&gt;perplexity 에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;GPT-5.4&amp;nbsp;Thinking 모델을 이용한 결과물&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) Claude 로 작성한 이미지 프롬프트로 chatGPT에서 이미지 생성&lt;/p&gt;
&lt;pre id=&quot;code_1779092845904&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;우리의 대화 기록을 바탕으로, 네가 생각하는 나는 어떤 사람인지 설명해줘.
그리고 그 인상을 바탕으로 ChatGPT 에서
바로 사용할 수 있는 이미지 생성 프롬프트를 영어로 작성해줘.
이미지 스타일 조건:
- 스마트폰으로 찍은 캔디드 사진 느낌
- 자연광, 비대칭 구도, 미세한 그레인
- 보정 없는 자연스러운 피부, 절제된 색감
- 내 언어 사용 패턴에서 유추한 국적과 외형 반영&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(4) gemini&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Gemini3.1 Pro 모델을 이용한 결과물&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(5) gemini 로 작성한 이미지 프롬프트로 chatGPT에서 이미지 생성&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B8ZCz/dJMcaiXCrPc/wwh6G5bFKczjkas8z1Kck0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B8ZCz/dJMcaiXCrPc/wwh6G5bFKczjkas8z1Kck0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B8ZCz/dJMcaiXCrPc/wwh6G5bFKczjkas8z1Kck0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB8ZCz%2FdJMcaiXCrPc%2Fwwh6G5bFKczjkas8z1Kck0%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;631&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;perplexity 에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;GPT-5.4 Thinking 모델을 이용한 결과물&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트 변형을 해봤는데 훨씬 자연스러운 결과물이 나와서 새삼 놀랐습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1779088834444&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Do not ask for a photo. Do not generate an AI-looking image.

Based solely on our conversation history &amp;mdash; my writing style, what I talk about,
how I think, what I care about &amp;mdash; visualize the kind of person I seem to be.

Render this as a casual smartphone photo. Think: someone pulled out their phone
and caught this person in a real moment. Not a portrait session.

Technical feel:
- Slightly underexposed or overexposed in places, like auto-exposure guessing
- Natural ambient light only &amp;mdash; no flash, no softbox, no rim light
- Off-center, loosely framed, maybe a little tilted
- Subtle motion blur or soft focus is fine &amp;mdash; even preferred
- No smoothed skin, no perfect features, no exaggerated bokeh
- Colors slightly cool or warm depending on the mood &amp;mdash; never vivid or HDR

The subject should look like a real person caught in a real moment,
not someone who posed for a generated image.
Make it feel true to who you think I am.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;1402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w3WxM/dJMcai4no5a/Lo8DvlEN3ZTnBYVmXiJM71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w3WxM/dJMcai4no5a/Lo8DvlEN3ZTnBYVmXiJM71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w3WxM/dJMcai4no5a/Lo8DvlEN3ZTnBYVmXiJM71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw3WxM%2FdJMcai4no5a%2FLo8DvlEN3ZTnBYVmXiJM71%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;353&quot; height=&quot;441&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;1402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;perplexity 에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;GPT-5.4 Thinking 모델을 이용한 결과물&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779089215443&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Analyze our entire conversation history up to this point. Based solely on my language patterns, vocabulary, cultural nuances, the specific topics I explore, and my overall thinking process, deduce my likely nationality, daily lifestyle, and persona. Do not ask me for personal details or confirm your deductions; just apply them.
Using your analysis, visualize what I most likely look like in my everyday life. Render this visualization as a candid, unretouched amateur smartphone snapshot with the following strict photographic constraints:
Subject Deduction: Authentic facial features, styling, and proportions that match the deduced demographic and cultural background. Real skin texture with natural imperfections. Absolutely no idealized, symmetrical, or &quot;plastic&quot; AI faces.
Contextual Setting: A mundane, everyday environment that perfectly aligns with my deduced interests, profession, or current focus.
Lighting &amp;amp; Quality: Flat, natural ambient light (e.g., overcast window, fluorescent room light). No studio, dramatic, or cinematic lighting. Include imperfect exposure, mild grain, and soft edges to mimic an older smartphone camera.
Framing: Loose, slightly awkward, or off-center framing. The subject should be caught in a natural moment, completely unposed and unaware of the camera.
Color &amp;amp; Tone: Muted, understated colors. No vivid contrast, no filters, no professional color grading.
The final image must feel like a genuine, leaked, or highly personal photo of a real person. Authentic over polished. Caught, not composed.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>프롬프트 줍줍.zip</category>
      <category>AI나를그려줘</category>
      <category>AI실험</category>
      <category>AI이미지생성</category>
      <category>AI초상화</category>
      <category>AI프롬프트</category>
      <category>GPT꿀팁</category>
      <category>생성형ai</category>
      <category>페르소나</category>
      <category>프롬프트공유</category>
      <category>프롬프트엔지니어링</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/42</guid>
      <comments>https://lazip.tistory.com/entry/AI%EA%B0%80-%EA%B8%B0%EC%96%B5%ED%95%98%EB%8A%94-%EB%82%98-%EB%8C%80%ED%99%94-%EA%B8%B0%EB%A1%9D%EC%9D%84-%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C-%EB%82%B4-%EB%AA%A8%EC%8A%B5%EC%9D%84-%EA%B7%B8%EB%A6%AC%EA%B2%8C-%ED%95%98%EB%8A%94-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EA%B3%B5%EC%9C%A0#entry42comment</comments>
      <pubDate>Mon, 18 May 2026 17:36:34 +0900</pubDate>
    </item>
    <item>
      <title>[유행 따라잡기] 크레파스로 낙서한 느낌의 프롬프트 공유</title>
      <link>https://lazip.tistory.com/entry/%EC%9C%A0%ED%96%89-%EB%94%B0%EB%9D%BC%EC%9E%A1%EA%B8%B0-%EC%82%90%EB%9A%A4%EB%B9%BC%EB%9A%A4-%ED%81%AC%EB%A0%88%ED%8C%8C%EC%8A%A4-%EB%82%99%EC%84%9C-%EC%8A%A4%ED%83%80%EC%9D%BC-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EA%B3%B5%EC%9C%A0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260518_115915128.jpg&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLkAd6/dJMb990LLuU/qKN3MT11K7u2pW6QnKKTA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLkAd6/dJMb990LLuU/qKN3MT11K7u2pW6QnKKTA0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLkAd6/dJMb990LLuU/qKN3MT11K7u2pW6QnKKTA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLkAd6%2FdJMb990LLuU%2FqKN3MT11K7u2pW6QnKKTA0%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;1672&quot; height=&quot;941&quot; data-filename=&quot;KakaoTalk_20260518_115915128.jpg&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 어린아이가 스케치북에 삐뚤빼뚤 그려놓은 듯한 크레파스 그림 스타일이 SNS에 많이 올라오던데, 저도 이 느낌을 구현하고 싶어서 여러 프롬프트를 시도해봤습니다. 시행착오 끝에 가장 결과가 좋았던 프롬프트를 다듬어서 공유합니다. AI가 그린 듯한 완벽한 그림이 아니라, 진짜 아이가 그린 듯한 어설프고 사랑스러운 느낌을 원하신다면 꼭 활용해 보세요.  ️&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 프롬프트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미드저니나 챗gpt 등 즐겨 쓰시는 AI 이미지 생성기에 그대로 복사해서 붙여넣으시면 됩니다. sonnet, gemini, kimi 등 다양한 모델로 다 돌려봤는데 저는 GPT 모델로 돌렸을 때 가장 귀여운 결과물이 나왔답니다 ⭐⭐&lt;/p&gt;
&lt;pre id=&quot;code_1779082464506&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;A drawing that looks like it was made by a 3-year-old toddler using crayons. 
The lines are wobbly, uneven, and clumsy. 
The composition is random and unintentional. 
Colors are scribbled outside the lines. 
No adult precision or clean strokes. 
Childlike, awkward, and charmingly messy crayon art style.&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  이 스타일, 이럴 때 쓰면 좋아요&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;&lt;b&gt;반려동물 사진을 귀엽게 낙서풍으로 만들고 싶을 때:&lt;/b&gt; 우리 집 댕댕이나 고양이가 순식간에 3세 아이 낙서 속 주인공으로 변신합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;아이 선물용으로 가족사진을 독특하게 변환하고 싶을 때:&lt;/b&gt; 완벽한 사진보다 아이 눈높이에 맞춘 듯한 이 그림체가 아이에게 더 특별한 선물이 될 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SNS 프로필이나 굿즈 제작에 어린이 드로잉 느낌을 입히고 싶을 때:&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;h3 data-ke-size=&quot;size23&quot;&gt;  혹시 결과가 너무 깔끔하게 나오나요?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하시는 AI 모델에 따라 이 프롬프트를 써도 여전히 '어설픈 척하는 예쁜 일러스트'처럼 나오는 경우가 있습니다. 그럴 때는 기존 프롬프트 맨 끝에 아래 한 줄을 추가해 보세요.&lt;/p&gt;
&lt;pre id=&quot;code_1779082554863&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Make it look less like &quot;art inspired by a child&quot; and more like an actual drawing made by a real 3-year-old.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 한 줄을 추가하면 &quot;귀여운 그림체&quot;와 &quot;진짜 아이 낙서&quot;의 차이를 모델이 훨씬 더 명확하게 잡아냅니다. 어설픔의 강도를 확 높여주는 치트키 같은 문장입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완벽하지 않아서 더 사랑스러운 이 크레파스 낙서 스타일로 여러분만의 특별한 이미지를 만들어보시길 바랍니다.&lt;/p&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/lmML2/dJMcabxsrfE/C4DyFLpkkDy3TgNdRYZaBk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lmML2/dJMcabxsrfE/C4DyFLpkkDy3TgNdRYZaBk/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1536&quot; data-filename=&quot;KakaoTalk_20260518_115814689.jpg&quot; style=&quot;width: 20.3903%; margin-right: 10px;&quot; data-widthpercent=&quot;20.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lmML2/dJMcabxsrfE/C4DyFLpkkDy3TgNdRYZaBk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlmML2%2FdJMcabxsrfE%2FC4DyFLpkkDy3TgNdRYZaBk%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;1024&quot; height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxzEEC/dJMcabYzwzC/6Ti87NpgxiFf33Y0p7rW50/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxzEEC/dJMcabYzwzC/6Ti87NpgxiFf33Y0p7rW50/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;1448&quot; data-filename=&quot;KakaoTalk_20260517_202654173.jpg&quot; style=&quot;width: 22.939%; margin-right: 10px;&quot; data-widthpercent=&quot;23.49&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxzEEC/dJMcabYzwzC/6Ti87NpgxiFf33Y0p7rW50/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxzEEC%2FdJMcabYzwzC%2F6Ti87NpgxiFf33Y0p7rW50%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;1086&quot; height=&quot;1448&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QOJWO/dJMcabxsrfC/p5Ik2SBK27qKF5RrGJA5D1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QOJWO/dJMcabxsrfC/p5Ik2SBK27qKF5RrGJA5D1/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot; data-filename=&quot;KakaoTalk_20260517_205452563.jpg&quot; style=&quot;width: 54.3451%;&quot; data-widthpercent=&quot;55.63&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QOJWO/dJMcabxsrfC/p5Ik2SBK27qKF5RrGJA5D1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQOJWO%2FdJMcabxsrfC%2Fp5Ik2SBK27qKF5RrGJA5D1%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;1672&quot; height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260517_201833687.png&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;1195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0swHq/dJMcaarPiZY/q6ML7NesZ0kOBeTecNTKGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0swHq/dJMcaarPiZY/q6ML7NesZ0kOBeTecNTKGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0swHq/dJMcaarPiZY/q6ML7NesZ0kOBeTecNTKGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0swHq%2FdJMcaarPiZY%2Fq6ML7NesZ0kOBeTecNTKGk%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;298&quot; height=&quot;397&quot; data-filename=&quot;KakaoTalk_20260517_201833687.png&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;1195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;  비하인드: 사실 '무서운(?)' 실패작도 있었습니다...&lt;/h3&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위에 공개한 프롬프트를 얻기 전에,&lt;/span&gt;&lt;span&gt; 시행착오가 많았습니다.&lt;/span&gt;&lt;span&gt; 처음에는 무조건 구체적으로 설명하면 AI가 더 잘 알아들을 줄 알고 아래와 같은 프롬프트를 써봤어요.&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;막 3살 된 아이,&lt;/span&gt;&lt;span&gt; 해부학적 불일치,&lt;/span&gt;&lt;span&gt; 아주 거친 질감 등)&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;결과가&lt;/span&gt;&lt;span&gt;&amp;nbsp;섬뜩하게 나왔습니다.&lt;/span&gt;&lt;span&gt; 눈코입이 기괴하게 일그러지고 크레파스 뭉친 자국이 너무 짙어서 마치 공포 영화에 나오는 저주받은 그림처럼 나왔거든요.&lt;/span&gt;&lt;span&gt; 아기의 '순수한 낙서'를 표현하고 싶었는데,&lt;/span&gt;&lt;span&gt; 너무 '리얼리티'만 강조하다 보니 모델이 방향성을 잘못 잡았던 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그래서 제가 최종적으로 다듬은 게 본문의 프롬프트입니다.&lt;/span&gt;&lt;span&gt; 실패작 프롬프트(아래)가 궁금하시다면 재미 삼아 복사해서 돌려보세요~~ 저는 gemini 모델로 돌려봤답니다^-^&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779083273273&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Transform the attached image into a drawing that looks like it was made by a newly turned 3-year-old child using crayons.

Keep the main subject and overall composition loosely recognizable, but redraw everything from the perspective of a toddler.
The lines should be shaky, uneven, awkward, and clumsy.
Shapes can be slightly distorted, off-balance, and anatomically inaccurate.
Colors should look roughly scribbled, often going outside the lines.
Details should be heavily simplified.
Perspective, symmetry, proportions, and shading should feel immature and inconsistent.
The composition can feel random, naive, and unintentionally awkward.
Make the crayon texture obvious, waxy, rough, and messy, like a child pressing hard on paper.

Important:
Do not make it clean, polished, aesthetically balanced, or professionally illustrated.
Do not make it look like cute storybook art or refined digital painting.
Avoid adult precision, smooth outlines, or well-designed stylization.
It should feel genuinely childlike, messy, accidental, and charmingly awkward.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>프롬프트 줍줍.zip</category>
      <category>AI그림프롬프트</category>
      <category>AI이미지</category>
      <category>SNS트렌드</category>
      <category>감성일러스트</category>
      <category>인스타유행</category>
      <category>챗gpt그림</category>
      <category>크레파스그림</category>
      <category>크레파스프롬프트</category>
      <category>프롬프트공유</category>
      <category>프롬프트엔지니어링</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/41</guid>
      <comments>https://lazip.tistory.com/entry/%EC%9C%A0%ED%96%89-%EB%94%B0%EB%9D%BC%EC%9E%A1%EA%B8%B0-%EC%82%90%EB%9A%A4%EB%B9%BC%EB%9A%A4-%ED%81%AC%EB%A0%88%ED%8C%8C%EC%8A%A4-%EB%82%99%EC%84%9C-%EC%8A%A4%ED%83%80%EC%9D%BC-%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EA%B3%B5%EC%9C%A0#entry41comment</comments>
      <pubDate>Mon, 18 May 2026 14:57:23 +0900</pubDate>
    </item>
    <item>
      <title>CCleaner 구독 취소 방법, Cleverbridge 참조번호 찾는 법까지 총정리</title>
      <link>https://lazip.tistory.com/entry/CCleaner-%EA%B5%AC%EB%8F%85-%EC%B7%A8%EC%86%8C-%EB%B0%A9%EB%B2%95-Cleverbridge-%EC%B0%B8%EC%A1%B0%EB%B2%88%ED%98%B8-%EC%B0%BE%EB%8A%94-%EB%B2%95%EA%B9%8C%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CCleaner 구독을 취소하려고 했는데, 해지 버튼 하나 찾기가 이렇게 어려울 줄 몰랐습니다. &lt;br /&gt;저처럼 헤매는 분들이 없도록 단계별로 정리해 보았습니다.&lt;/p&gt;
&lt;/blockquote&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;CCleaner는 자체 결제 시스템이 아닌 &lt;b&gt;Cleverbridge&lt;/b&gt;라는 외부 글로벌 결제 대행 플랫폼을 통해 구독을 관리합니다. 그래서 CCleaner 공식 사이트 어디를 뒤져도 &quot;구독 취소&quot; 버튼을 바로 찾을 수 없습니다. CCleaner 사이트와 Cleverbridge 사이트를 오가며 정보를 확인해야 하기 때문에, 이 과정을 모르면 한참을 헤매게 됩니다.&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;구독 취소를 위해 아래 두 가지 정보가 필요합니다.&lt;/p&gt;
&lt;table style=&quot;width: 599px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 197px;&quot;&gt;필요 정보&lt;/th&gt;
&lt;th style=&quot;width: 402px;&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 197px;&quot;&gt;&lt;b&gt;구매 시 사용한 이메일 주소&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 402px;&quot;&gt;CCleaner를 결제할 때 입력한 이메일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 197px;&quot;&gt;&lt;b&gt;Cleverbridge 참조번호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 402px;&quot;&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;1단계&lt;/b&gt;에서 참조번호를 다시 확인하는 방법부터 안내합니다.&lt;/p&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-filename=&quot;blob&quot; data-origin-width=&quot;1791&quot; data-origin-height=&quot;1181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N5gjw/dJMcajaRV4K/GJPGMWeb6IElNSBZMXoCg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N5gjw/dJMcajaRV4K/GJPGMWeb6IElNSBZMXoCg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N5gjw/dJMcajaRV4K/GJPGMWeb6IElNSBZMXoCg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN5gjw%2FdJMcajaRV4K%2FGJPGMWeb6IElNSBZMXoCg0%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;1791&quot; height=&quot;1181&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1791&quot; data-origin-height=&quot;1181&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1단계: Cleverbridge에서 구매 내역 조회하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Cleverbridge 고객 지원 페이지에 접속하여 참조번호를 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접속 주소:&lt;/b&gt; &lt;a href=&quot;https://www.cleverbridge.com/?scope=cusecolp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.cleverbridge.com/?scope=cusecolp&lt;/a&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;위 링크로 접속합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;Email&quot;&lt;/b&gt; 입력란에 CCleaner &lt;b&gt;구매 시 사용한 이메일 주소&lt;/b&gt;를 입력합니다.&lt;/li&gt;
&lt;li&gt;보안 문자(CAPTCHA)를 입력합니다.&lt;/li&gt;
&lt;li&gt;제출 버튼을 클릭합니다.&lt;/li&gt;
&lt;/ol&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; 이 페이지는 Cleverbridge의 Purchase Lookup(구매 조회) 페이지입니다. &lt;br /&gt;해당 이메일로 처리된 모든 주문 내역을 조회할 수 있습니다.&lt;/p&gt;
&lt;/blockquote&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-filename=&quot;blob&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r9sip/dJMcajaRV5D/vAuQqxl4TI2mqBcUYkZgH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r9sip/dJMcajaRV5D/vAuQqxl4TI2mqBcUYkZgH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r9sip/dJMcajaRV5D/vAuQqxl4TI2mqBcUYkZgH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr9sip%2FdJMcajaRV5D%2FvAuQqxl4TI2mqBcUYkZgH1%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;825&quot; height=&quot;479&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2단계: 이메일에서 참조번호 확인하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1단계를 완료하면, 입력한 이메일 주소로 &lt;b&gt;주문 개요(Order Overview) 메일&lt;/b&gt;이 발송됩니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이메일 수신함을 확인합니다. (스팸함도 확인해 주세요)&lt;/li&gt;
&lt;li&gt;Cleverbridge에서 보낸 메일을 열어봅니다.&lt;/li&gt;
&lt;li&gt;메일 본문에 &lt;b&gt;Cleverbridge 참조번호(Reference Number)&lt;/b&gt;가 기재되어 있습니다.&lt;/li&gt;
&lt;li&gt;이 &lt;b&gt;참조번호를 복사&lt;/b&gt;해 둡니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;1163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ly3Sh/dJMcaciywCb/AWxjhbNOpL5YjCJCuYKRu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ly3Sh/dJMcaciywCb/AWxjhbNOpL5YjCJCuYKRu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ly3Sh/dJMcaciywCb/AWxjhbNOpL5YjCJCuYKRu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fly3Sh%2FdJMcaciywCb%2FAWxjhbNOpL5YjCJCuYKRu0%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;537&quot; height=&quot;691&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;1163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3단계: CCleaner 구독 관리 페이지에서 정보 입력하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 CCleaner 공식 구독 관리 페이지로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접속 주소:&lt;/b&gt; &lt;a href=&quot;https://www.ccleaner.com/ko-kr/subscription-management&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.ccleaner.com/ko-kr/subscription-management&lt;/a&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;위 링크로 접속합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;Email address&quot;&lt;/b&gt; 란에 구매 시 사용한 이메일 주소를 입력합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;Cleverbridge reference number&quot;&lt;/b&gt; 란에 2단계에서 확인한 참조번호를 입력합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;Submit&quot;&lt;/b&gt; 버튼을 클릭합니다.&lt;/li&gt;
&lt;/ol&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; 정보가 정상적으로 확인되면 Cleverbridge 구독 관리 화면으로 자동 리다이렉트됩니다. &lt;br /&gt;CCleaner 구독 관리 페이지에도 &quot;we will redirect you to Cleverbridge if we verify your information successfully&quot;라고 안내되어 있습니다.&lt;/p&gt;
&lt;/blockquote&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-filename=&quot;blob&quot; data-origin-width=&quot;1805&quot; data-origin-height=&quot;1014&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KsbQs/dJMcahYshz3/oQgE4Q6s3gV7ptsYagNFEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KsbQs/dJMcahYshz3/oQgE4Q6s3gV7ptsYagNFEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KsbQs/dJMcahYshz3/oQgE4Q6s3gV7ptsYagNFEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKsbQs%2FdJMcahYshz3%2FoQgE4Q6s3gV7ptsYagNFEk%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;1805&quot; height=&quot;1014&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1805&quot; data-origin-height=&quot;1014&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4단계: 자동 갱신 비활성화(구독 취소) 완료하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cleverbridge 구독 관리 화면에 진입했다면, 이제 거의 다 왔습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;리다이렉트된 페이지에서 현재 활성화된 구독 정보를 확인합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&quot;자동 갱신 비활성화&quot;&lt;/b&gt; (또는 &quot;Cancel auto-renewal&quot; / &quot;Disable auto-renewal&quot;) 옵션을 찾아 클릭합니다.&lt;/li&gt;
&lt;li&gt;취소 확인 절차를 완료합니다.&lt;/li&gt;
&lt;li&gt;자동 갱신이 비활성화되었다는 확인 메시지가 표시되면 완료입니다.&lt;/li&gt;
&lt;/ol&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;, 현재 구독 기간이 끝나는 날까지는 정상적으로 CCleaner를 사용할 수 있습니다. &lt;br /&gt;다음 결제일에 자동으로 요금이 청구되지 않습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 서비스는 설정 페이지에서 클릭 한두 번이면 해지할 수 있는 시대인데&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;구독 하나 취소하는 데 이런 과정을 거쳐야 한다는 게 놀라웠습니다.&lt;span&gt; &lt;/span&gt;&lt;/span&gt;CCleaner는 외부 결제 대행사를 거치는 구조 때문에 직관적이지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 &lt;b&gt;참조번호를 모르면 CCleaner 사이트만으로는 구독 취소 자체가 불가능&lt;/b&gt;하다는 점이 가장 큰 함정입니다. 이 글이 저처럼 헤매는 분들께 도움이 되길 바랍니다.&lt;/p&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>CCleaner 결제 취소</category>
      <category>CCleaner 구독 관리</category>
      <category>CCleaner 구독 취소</category>
      <category>CCleaner 구독 해지 방법</category>
      <category>CCleaner 자동 갱신 해지</category>
      <category>CCleaner 환불</category>
      <category>Cleverbridge 구독 관리</category>
      <category>Cleverbridge 참조번호</category>
      <category>씨클리너 구독 취소</category>
      <category>씨클리너 자동결제 해지</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/39</guid>
      <comments>https://lazip.tistory.com/entry/CCleaner-%EA%B5%AC%EB%8F%85-%EC%B7%A8%EC%86%8C-%EB%B0%A9%EB%B2%95-Cleverbridge-%EC%B0%B8%EC%A1%B0%EB%B2%88%ED%98%B8-%EC%B0%BE%EB%8A%94-%EB%B2%95%EA%B9%8C%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry39comment</comments>
      <pubDate>Wed, 22 Apr 2026 21:19:41 +0900</pubDate>
    </item>
    <item>
      <title>[Windows 11] 홈(Home) 버전 그룹 정책 편집기(gpedit.msc) 1분 만에 활성화하는 방법</title>
      <link>https://lazip.tistory.com/entry/Windows-11-%EC%9C%88%EB%8F%84%EC%9A%B0-11-%ED%99%88Home-%EB%B2%84%EC%A0%84-%EA%B7%B8%EB%A3%B9-%EC%A0%95%EC%B1%85-%ED%8E%B8%EC%A7%91%EA%B8%B0gpeditmsc-1%EB%B6%84-%EB%A7%8C%EC%97%90-%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;안녕하세요! 윈도우 11 Home 버전을 사용하시다 보면 시스템 설정을 내 입맛대로 세밀하게 바꾸고 싶을 때가 있죠&lt;br /&gt;하지만 실행 창에 &lt;code&gt;gpedit.msc&lt;/code&gt;를 입력해도 '찾을 수 없습니다'라는 오류창만 떠서 당황하신 적 있으실 겁니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬 그룹 정책 편집기는 원래 Pro 버전 이상에서만 기본으로 제공되는 기능입니다&lt;br /&gt;하지만 Home 버전에도 관련 시스템 파일이 숨겨져 있기 때문에, 외부 프로그램 다운로드 없이 명령어 몇 줄만으로 아주 쉽고 안전하게 활성화할 수 있습니다&lt;/p&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. 명령 프롬프트(CMD)로 한 번에 활성화하기 (추천)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모장 파일을 따로 만들 필요 없이 터미널 창에서 바로 활성화하는 가장 깔끔한 방법입니다&lt;br /&gt;불필요한 파일이 남지 않아 시스템을 미니멀하게 관리하고 싶은 분들께 추천해 드립니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;진행 순서&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;작업 표시줄의 시작 메뉴(윈도우 로고)를 누르고 검색창에 &lt;code&gt;cmd&lt;/code&gt;를 입력합니다&lt;/li&gt;
&lt;li&gt;검색 결과에 나온 &lt;b&gt;명령 프롬프트&lt;/b&gt;를 마우스 우클릭한 뒤 &lt;b&gt;[관리자 권한으로 실행]&lt;/b&gt;을 클릭합니다&lt;/li&gt;
&lt;li&gt;까만 터미널 창이 열리면, 아래 첫 번째 명령어를 그대로 복사해서 붙여넣고 &lt;code&gt;Enter&lt;/code&gt;를 누릅니다&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;FOR %F IN (&quot;%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~*.mum&quot;) DO (DISM /Online /NoRestart /Add-Package:&quot;%F&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;4&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;설치가 주르륵 진행된 후 완료되면, 이어서 아래 두 번째 명령어를 복사해 붙여넣고 &lt;code&gt;Enter&lt;/code&gt;를 누릅니다&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;FOR %F IN (&quot;%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~*.mum&quot;) DO (DISM /Online /NoRestart /Add-Package:&quot;%F&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;5&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;작업이 100% 완료되었다면 창을 닫아주시면 됩니다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 배치 파일(.bat)을 만들어서 실행하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 명령어 복사 과정이 번거롭거나, 나중에 포맷 후 다시 사용하기 위해 파일로 보관해두고 싶으신 분들을 위한 방법입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;진행 순서&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;윈도우 검색창에 &lt;code&gt;메모장&lt;/code&gt;을 검색하여 실행합니다&lt;/li&gt;
&lt;li&gt;아래의 코드를 전부 복사하여 메모장에 붙여넣습니다&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;dos&quot;&gt;&lt;code&gt;@echo off 
pushd &quot;%~dp0&quot;
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum &amp;gt;List.txt 
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum &amp;gt;&amp;gt;List.txt 
for /f %%i in ('findstr /i . List.txt 2^&amp;gt;nul') do dism /online /norestart /add-package:&quot;%SystemRoot%\servicing\Packages\%%i&quot; 
pause&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; start=&quot;3&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;i&gt;.&lt;/i&gt;)&lt;/b&gt;로 변경하고, 파일 이름은 &lt;code&gt;gpedit_enabler.bat&lt;/code&gt;으로 입력한 뒤 바탕화면에 저장합니다&lt;/li&gt;
&lt;li&gt;바탕화면에 생성된 톱니바퀴 모양의 아이콘을 마우스 우클릭하고 &lt;b&gt;[관리자 권한으로 실행]&lt;/b&gt;을 누릅니다&lt;/li&gt;
&lt;li&gt;파란색 창이나 검은색 창이 뜨면서 자동으로 설치가 진행되며 &quot;계속하려면 아무 키나 누르십시오&quot;라는 문구가 나오면 엔터를 쳐서 마무리합니다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 제대로 설치되었는지 확인하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 무사히 끝났다면 이제 그룹 정책 편집기를 실행해 볼 차례입니다&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;키보드에서 &lt;code&gt;윈도우 키 + R&lt;/code&gt;을 동시에 눌러 실행 창을 띄웁니다&lt;/li&gt;
&lt;li&gt;빈칸에 &lt;code&gt;gpedit.msc&lt;/code&gt;를 입력하고 확인을 누릅니다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;로컬 그룹 정책 편집기&lt;/b&gt; 창이 정상적으로 열렸다면 성공입니다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Home 버전에서도 윈도우 자동 업데이트 강제 재부팅을 막거나, 시작 메뉴의 Bing 웹 검색을 끄는 등 나만의 쾌적한 PC 환경을 자유롭게 세팅해 보시길 바랍니다&lt;/p&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>gpedit.msc</category>
      <category>gpedit활성화</category>
      <category>WIndows11</category>
      <category>그룹정책편집기</category>
      <category>그룹정책편집기사용법</category>
      <category>그룹정책편집기설치</category>
      <category>로컬그룹정책편집기</category>
      <category>윈도우11</category>
      <category>윈도우11Home</category>
      <category>윈도우11홈</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/38</guid>
      <comments>https://lazip.tistory.com/entry/Windows-11-%EC%9C%88%EB%8F%84%EC%9A%B0-11-%ED%99%88Home-%EB%B2%84%EC%A0%84-%EA%B7%B8%EB%A3%B9-%EC%A0%95%EC%B1%85-%ED%8E%B8%EC%A7%91%EA%B8%B0gpeditmsc-1%EB%B6%84-%EB%A7%8C%EC%97%90-%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry38comment</comments>
      <pubDate>Wed, 22 Apr 2026 12:37:28 +0900</pubDate>
    </item>
    <item>
      <title>Windows 11 전체 서비스 기능 설명 및 상태 설정 총정리</title>
      <link>https://lazip.tistory.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ssunhy.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2026.04.21 - [까먹음 방지.zip] - 윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784552377778&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록&quot; data-og-description=&quot;컴퓨터를 쓰다 보면 어느 순간부터 부팅이 느려지거나 왠지 모르게 버벅거리는 느낌, 다들 한 번쯤 겪어보셨죠? 그 이유는 바로 화면에 보이지 않는 곳에서 혼자 몰래 실행되고 있는 '백그라운&quot; data-og-host=&quot;ssunhy.com&quot; data-og-source-url=&quot;https://ssunhy.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D&quot; data-og-url=&quot;https://ssunhy.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HPLcO/dJMb9kUfI6s/cjLyPthpabqZJBn497ygYK/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/RLxgQ/dJMb9cBULXJ/5OgQi3kmfH9nfknn6wT1Sk/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/f9AjJ/dJMb9aKRTbZ/kPBwzptl9f4qMcsfXevPA0/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024&quot;&gt;&lt;a href=&quot;https://ssunhy.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ssunhy.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HPLcO/dJMb9kUfI6s/cjLyPthpabqZJBn497ygYK/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/RLxgQ/dJMb9cBULXJ/5OgQi3kmfH9nfknn6wT1Sk/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/f9AjJ/dJMb9aKRTbZ/kPBwzptl9f4qMcsfXevPA0/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;컴퓨터를 쓰다 보면 어느 순간부터 부팅이 느려지거나 왠지 모르게 버벅거리는 느낌, 다들 한 번쯤 겪어보셨죠? 그 이유는 바로 화면에 보이지 않는 곳에서 혼자 몰래 실행되고 있는 '백그라운&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ssunhy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 1편에서 누구나 쉽게 따라 할 수 있는 '필수 비활성화 목록'을 적용해 보셨나요? 이번 2편은 거기서 한 걸음 더 나아간 &lt;b&gt;'윈도우 11 전체 서비스 총정리'&lt;/b&gt; 심화 편입니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무작정 다 끄는 게 아니라 컴퓨터가 고장 나지 않게 안정성은 꽉 잡으면서, 내 피 같은 메모리와 CPU를 몰래 갉아먹는 불필요한 녀석들만 쏙쏙 골라내 잠재우는 것이 이번 글의 진짜 목표입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수많은 영어 이름들 속에서 내 컴퓨터에 있는 걸 어떻게 다 찾을지 막막하시다고요? 전혀 걱정하지 마세요! 여러분이 아주 쉽게 찾으실 수 있도록 알파벳과 한글 순서대로 깔끔하게 정리해 두었답니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키보드에서 &lt;b&gt;&lt;code&gt;Ctrl + F&lt;/code&gt;&lt;/b&gt; 키를 동시에 누르고 찾고 싶은 서비스 이름을 검색하시면 눈 깜짝할 새에 찾으실 수 있을 거예요. 자, 그럼 내 PC에 딱 맞는 맞춤형 최적화를 완성하러 가볼까요?&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  권장 상태 범례&lt;/b&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;자동:&lt;/b&gt; 시스템 부팅 시 항상 실행 (윈도우 핵심 요소)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수동(트리거):&lt;/b&gt; 특정 조건이나 앱 실행 시에만 작동 (기본값 유지 권장)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 안 함:&lt;/b&gt; 일반적인 사용자 환경에서 불필요 (비활성화 시 시스템 자원 확보)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;A ~ D 분류 서비스 목록&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&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;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;b&gt;AarSvc&lt;/b&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;b&gt;ActiveX Installer (AxInstSV)&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;ActiveX 컨트롤 설치 관리 (최신 브라우저 환경 불필요)&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;b&gt;App Readiness&lt;/b&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;b&gt;Application Identity&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;응용 프로그램 ID 검증 (AppLocker 미사용 시 기본값)&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;b&gt;Application Layer Gateway Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;인터넷 연결 공유를 위한 타사 프로토콜 지원 (일반 PC 불필요)&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;b&gt;AppX Deployment Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Microsoft Store 앱 배포 인프라 지원&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;b&gt;AVCTP 서비스&lt;/b&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;b&gt;Background Intelligent Transfer&lt;/b&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;b&gt;Background Tasks Infrastructure&lt;/b&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;b&gt;Base Filtering Engine&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;방화벽 및 IPsec 정책 관리 (보안 핵심 요소)&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;b&gt;BitLocker Drive Encryption Service&lt;/b&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;b&gt;Bluetooth 오디오 게이트웨이&lt;/b&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;b&gt;Bluetooth 지원 서비스&lt;/b&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;b&gt;CaptureService&lt;/b&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;b&gt;cbdhsvc&lt;/b&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;b&gt;Certificate Propagation&lt;/b&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;b&gt;Client License Service (ClipSVC)&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Microsoft Store 라이선스 인프라 지원&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;b&gt;CNG Key Isolation&lt;/b&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;b&gt;COM+ Event System&lt;/b&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;b&gt;Connected User Experiences&lt;/b&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;b&gt;CoreMessaging&lt;/b&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;b&gt;Credential Manager&lt;/b&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;b&gt;Cryptographic Services&lt;/b&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;b&gt;DCOM Server Process Launcher&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;COM 및 DCOM 서버 실행 프로세스 (종료 시 부팅 불가 위험)&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;b&gt;DHCP Client&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;IP 주소 및 DNS 레코드 자동 할당 (인터넷 연결 필수)&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;b&gt;Diagnostic Policy Service&lt;/b&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;b&gt;Distributed Link Tracking Client&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 간 파일 연결 유지 (단일 PC 환경 불필요)&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;b&gt;DNS Client&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;DNS 쿼리 전송 및 이름 해석 (인터넷 연결 필수)&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;b&gt;Downloaded Maps Manager&lt;/b&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;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;E ~ N 분류 서비스 목록&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&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;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;b&gt;Encrypting File System (EFS)&lt;/b&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;b&gt;Extensible Authentication Protocol&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 인증 프로토콜 (VPN 등 미사용 시 수동)&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;b&gt;Fax&lt;/b&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;b&gt;Function Discovery Resource&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크에서 PC 리소스 게시 (공유 기능 필수)&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;b&gt;Geolocation Service&lt;/b&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;b&gt;Group Policy Client&lt;/b&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;b&gt;Human Interface Device Service&lt;/b&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;b&gt;Hyper-V 관련 서비스 모음&lt;/b&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;b&gt;IKE and AuthIP IPsec Keying&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;IPsec 키 지정 모듈 호스트 (VPN 환경에서 필요)&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;b&gt;Internet Connection Sharing&lt;/b&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;b&gt;IP Helper&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;IPv6 전환 기술 터널 연결 지원&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;b&gt;LG Device Managers / Time&lt;/b&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;b&gt;Link-Layer Topology Discovery&lt;/b&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;b&gt;Local Session Manager&lt;/b&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;b&gt;Microsoft Account Sign-in&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;MS 계정 로그인 지원 인프라&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;b&gt;Microsoft Defender 바이러스 백신&lt;/b&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;b&gt;Microsoft Edge Update Service&lt;/b&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;b&gt;Microsoft iSCSI Initiator Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;원격 iSCSI 서버 연결 세션 관리 (일반 PC 불필요)&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;b&gt;Microsoft Passport&lt;/b&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;b&gt;Microsoft 사용량 및 품질 Insights&lt;/b&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;b&gt;Net.Tcp Port Sharing Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;TCP 포트 공유 기능 (개발 환경 외 불필요)&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;b&gt;Netlogon&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;도메인 컨트롤러 보안 채널 유지 (개인 계정 PC 불필요)&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;b&gt;Network List Service&lt;/b&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;b&gt;Network Store Interface Service&lt;/b&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;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;O ~ S 분류 서비스 목록&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&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;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;b&gt;OpenSSH Authentication Agent&lt;/b&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;b&gt;Optimize drives&lt;/b&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;b&gt;Performance Logs &amp;amp; Alerts&lt;/b&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;b&gt;Phone Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;PC 장치 전화 통신 상태 관리 (통화 기능 미사용 시 불필요)&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;b&gt;Plug and Play&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;하드웨어 변경 내용 자동 인식 (USB 등 인식 필수)&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;b&gt;Portable Device Enumerator&lt;/b&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;b&gt;Power&lt;/b&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;b&gt;Print Spooler&lt;/b&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;b&gt;Problem Reports Control Panel&lt;/b&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;b&gt;Quality Windows Audio Video&lt;/b&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;b&gt;Remote Desktop Configuration&lt;/b&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;b&gt;Remote Registry&lt;/b&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;b&gt;Routing and Remote Access&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;광역 네트워크 라우팅 지원 (일반 PC 불필요)&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;b&gt;Secondary Logon&lt;/b&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;b&gt;Security Accounts Manager&lt;/b&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;b&gt;Sensor Data / Monitoring Service&lt;/b&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;b&gt;Server&lt;/b&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;b&gt;Shared PC Account Manager&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;공용 PC 프로필 자동 관리 (개인 PC 불필요)&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;b&gt;Smart Card (관련 서비스 포함)&lt;/b&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;b&gt;SNMP 트랩&lt;/b&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;b&gt;Software Protection&lt;/b&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;b&gt;SSDP Discovery&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;네트워크 UPnP 장치 검색 프로토콜&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;b&gt;SysMain&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;자주 쓰는 앱 사전 로드 (최신 SSD 탑재 PC에서는 불필요)&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;b&gt;System Event Notification Service&lt;/b&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;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;T ~ Z 분류 서비스 목록&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&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;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;b&gt;Task Scheduler&lt;/b&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;b&gt;Telephony&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;전화 통신 장치 제어 TAPI 지원 (일반 PC 불필요)&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;b&gt;Themes&lt;/b&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;b&gt;User Manager&lt;/b&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;b&gt;User Profile Service&lt;/b&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;b&gt;WalletService&lt;/b&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;b&gt;Windows Audio&lt;/b&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;b&gt;Windows Biometric Service&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;생체 인식 (Windows Hello) 데이터 처리&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;b&gt;Windows Connection Manager&lt;/b&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;b&gt;Windows Defender Firewall&lt;/b&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;b&gt;Windows Encryption Provider&lt;/b&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;b&gt;Windows Error Reporting Service&lt;/b&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;b&gt;Windows Event Log&lt;/b&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;b&gt;Windows Font Cache Service&lt;/b&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;b&gt;Windows Management Instrumentation&lt;/b&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;b&gt;Windows Media Player Network&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;미디어 라이브러리 DLNA 공유 (미사용 시 불필요)&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;b&gt;Windows Search&lt;/b&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;b&gt;Windows Time&lt;/b&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;b&gt;Windows 업데이트&lt;/b&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;b&gt;Windows 참가자 서비스&lt;/b&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;b&gt;Wired AutoConfig&lt;/b&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;b&gt;WLAN AutoConfig&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;무선 인터넷(Wi-Fi) 연결 구성 및 검색 (필수 유지)&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;b&gt;Work Folders&lt;/b&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;b&gt;WWAN AutoConfig&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;모바일 광대역(LTE 등) 연결 데이터 관리&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;b&gt;Xbox 관련 서비스 모음&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;Xbox 게임 저장 및 액세서리 관리 (미사용 시 비활성화)&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기타 한글 명칭 서비스 목록&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&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;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;b&gt;결제 및 NFC/SE 관리자&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;근거리 통신 보안 요소 관리 (PC 미사용 시 불필요)&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;b&gt;데이터 사용량&lt;/b&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;b&gt;로컬 프로필 관리자 서비스&lt;/b&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;b&gt;모바일 연결 관리 서비스&lt;/b&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;b&gt;보안 센터&lt;/b&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;b&gt;셀룰러 시간&lt;/b&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;b&gt;소매 데모 서비스&lt;/b&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;b&gt;언어 환경 서비스&lt;/b&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;b&gt;인벤토리 및 호환성 평가 서비스&lt;/b&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;b&gt;자녀 보호&lt;/b&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;b&gt;자동 표준 시간대 업데이트&lt;/b&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;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  마무리 요약&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;본인의 PC 하드웨어 환경과 목적에 맞춘 세밀한 최적화 세팅을 완료하시기 바랍니다.&lt;/li&gt;
&lt;li&gt;잘못된 시스템 서비스 중지 시 예기치 않은 오류가 발생할 가능성이 존재합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설정 값 변경 전 반드시 윈도우 시스템 복원 지점 생성을 권장합니다.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>pc속도향상</category>
      <category>services.msc</category>
      <category>백그라운드프로세스</category>
      <category>불필요한서비스끄기</category>
      <category>윈도우11서비스</category>
      <category>윈도우11최적화</category>
      <category>윈도우서비스목록</category>
      <category>윈도우서비스최적화</category>
      <category>컴퓨터최적화</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/37</guid>
      <comments>https://lazip.tistory.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry37comment</comments>
      <pubDate>Tue, 21 Apr 2026 18:17:37 +0900</pubDate>
    </item>
    <item>
      <title>윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록</title>
      <link>https://lazip.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터를 쓰다 보면 어느 순간부터 부팅이 느려지거나 왠지 모르게 버벅거리는 느낌, 다들 한 번쯤 겪어보셨죠? 그 이유는 바로 화면에 보이지 않는 곳에서 혼자 몰래 실행되고 있는 '백그라운드 서비스'들 때문일 가능성이 큽니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비유하자면, 윈도우라는 거대한 회사 안에 굳이 필요 없는 직원들이 사무실 자리를 차지하고 컴퓨터의 체력(메모리와 CPU)을 낭비하고 있는 것과 같습니다. 이 글에서는 &lt;b&gt;'내 컴퓨터에서는 전혀 쓸데없는'&lt;/b&gt; 윈도우 기본 서비스들을 안전하게 잠재워서 컴퓨터 속도를 쾌적하게 만드는 방법을 아주 쉽게 알려드리겠습니다. 컴퓨터를 잘 모르시는 분들도 천천히 따라오시면 전혀 문제없습니다!&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  잠깐! 시작하기 전에 '안전벨트' 먼저 매고 갈까요?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터의 내부 설정을 건드릴 때는, 혹시 모를 상황에 대비해 언제든 과거로 돌아갈 수 있는 &lt;b&gt;'되돌리기 버튼(시스템 복원 지점)'&lt;/b&gt;을 만들어 두는 것이 아주 중요합니다. 게임에서 중요한 보스전에 들어가기 전에 세이브를 해두는 것과 완벽하게 똑같습니다. 딱 1분만 투자해서 아래 순서대로 먼저 진행해 주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[초간단 세이브 파일(복원 지점) 만드는 법]&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;키보드에서 &lt;code&gt;윈도우 키&lt;/code&gt;를 누르거나 화면 아래 돋보기(검색) 아이콘을 클릭합니다.&lt;/li&gt;
&lt;li&gt;검색창에 &lt;b&gt;&quot;복원 지점 만들기&quot;&lt;/b&gt;라고 입력한 후, 맨 위에 나오는 제어판 결과를 클릭해서 실행합니다.&lt;/li&gt;
&lt;li&gt;작은 창이 뜨면, 화면 아래쪽에 있는 &lt;b&gt;[만들기]&lt;/b&gt; 버튼을 클릭합니다.&lt;/li&gt;
&lt;li&gt;빈칸에 오늘 날짜나 기억하기 쉬운 이름(예: &quot;최적화 하기 전&quot;)을 적어 넣고 다시 &lt;b&gt;[만들기]&lt;/b&gt;를 누르면 끝입니다!&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 이제 안전한 세이브 파일도 만들었으니 마음 편하게 불필요한 윈도우 서비스들을 대청소하러 가볼까요?&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 윈도우 서비스 설정 방법&lt;/b&gt;&lt;/h3&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;code&gt;Win + R&lt;/code&gt; 키를 동시에 누릅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;서비스 관리자 실행:&lt;/b&gt; 창이 뜨면 &lt;code&gt;services.msc&lt;/code&gt; 라고 입력하고 확인을 누릅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;속성 변경:&lt;/b&gt; 설정하려는 서비스 이름을 찾아 마우스 오른쪽 버튼을 클릭하고 &lt;b&gt;[속성]&lt;/b&gt;을 선택합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;시작 유형 수정:&lt;/b&gt; '시작 유형'을 아래 표에 나와 있는 권장 상태인 &lt;b&gt;[사용 안 함]&lt;/b&gt; 또는 &lt;b&gt;[수동]&lt;/b&gt;으로 변경하고 적용을 누릅니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.   필수 비활성화(사용 안 함) 추천 목록&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 목록은 일반적인 가정용/사무용 PC 환경에서 비활성화해도 무방하며, 불필요한 리소스 낭비를 막아주는 서비스들입니다. &lt;b&gt;정확한 서비스 이름&lt;/b&gt;을 확인하고 변경해 주세요.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;서비스 이름 (Service Name)&lt;/th&gt;
&lt;th style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;기능 설명 및 비고&lt;/th&gt;
&lt;th style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;권장 상태&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;ActiveX Installer (AxInstSV)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;현대 브라우저(크롬, 엣지 등)에서는 사용하지 않는 ActiveX 설치 관리&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Application Layer Gateway Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;인터넷 연결 공유를 위한 타사 프로토콜 지원 (일반 환경 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Certificate Propagation&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;스마트 카드 인증서 전파 (스마트 카드 미사용 시 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Connected User Experiences and Telemetry&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;MS에 진단 데이터 전송 (개인정보 보호 및 리소스 절약 목적)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Distributed Link Tracking Client&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;네트워크 간 연결 유지 (단일 PC 사용 환경에서는 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Downloaded Maps Manager&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;윈도우 오프라인 지도 앱 전용 서비스&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Fax&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;팩스 송수신 관련 서비스&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Internet Connection Sharing (ICS)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;PC를 핫스팟으로 쓰지 않는다면 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;LG Device Managers / LG Time Manager&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;제조사(LG) 전용 관리 기능 (관련 소프트웨어 미사용 시)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Link-Layer Topology Discovery Mapper&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;네트워크 맵 생성 기능 (일반 사용자 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Microsoft iSCSI Initiator Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;서버/NAS 직접 연결을 하지 않는다면 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Microsoft Windows SMS 라우터 서비스&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;PC에서 SMS 송수신 기능을 사용하지 않는다면 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Microsoft 사용량 및 품질 Insights&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;진단 및 인사이트 데이터 수집 (텔레메트리 관련)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Net.Tcp Port Sharing Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;개발 환경이 아니라면 일반 PC에서는 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Netlogon&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;회사 도메인 컨트롤러 인증 (개인 PC 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Network Connectivity Assistant&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;기업용 DirectAccess 기능 (일반 PC 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;OpenSSH Authentication Agent&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;SSH 키 관리 (서버 관리/개발 용도가 아니면 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Phone Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;PC의 전화 통신 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Portable Device Enumerator Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;이동식 장치 그룹 정책 관련&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Problem Reports Control Panel Support&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;문제 보고서 제어판 지원 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Quality Windows Audio Video Experience&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;홈 네트워크 미디어 스트리밍 미사용 시 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Remote Desktop Configuration / Services&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;다른 PC에서 원격 데스크톱으로 접속하지 않는다면 끄기&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Remote Registry&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;원격으로 레지스트리 수정 허용 (보안 강화를 위해 반드시 끄기)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Routing and Remote Access&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;라우팅 서비스 (일반 PC에서는 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Sensor Data Service / Sensor Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;디스플레이 자동 밝기나 태블릿 모드 센서를 안 쓴다면 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Shared PC Account Manager&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;공용 PC 프로필 관리 기능 (개인 PC 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Smart Card / Device Enumeration&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;스마트 카드(IC 카드 리더기 등) 미사용 시 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;SNMP 트랩&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;네트워크 장비 트랩 메시지 수신 (일반 사용자 불필요)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;SysMain&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;자주 쓰는 앱을 메모리에 미리 로드 (SSD 환경에서는 체감 적음)&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Telephony&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;전화 통신 장치 제어 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;WalletService&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;전자지갑 클라이언트 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Windows Error Reporting Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;시스템 오류 시 MS로 보고서 전송 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Windows Media Player Network Sharing Service&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;DLNA 미디어 라이브러리 네트워크 공유&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Windows 상태 및 최적화된 환경&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;디바이스 모니터링 관련 텔레메트리 서비스&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Wired AutoConfig / WWAN AutoConfig&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;기업용 802.1X 유선 인증 및 셀룰러 모뎀(LTE) 미사용 시&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Work Folders&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;클라우드 폴더 서버 동기화 기능&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;Xbox Accessory / Live 게임 저장 / 네트워킹&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;Xbox 컨트롤러나 게임 패스 기능을 안 쓴다면 모두 비활성화&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 334px;&quot; align=&quot;left&quot;&gt;&lt;b&gt;자녀 보호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 440px;&quot; align=&quot;left&quot;&gt;자녀 계정 제한 기능을 쓰지 않는다면 불필요&lt;/td&gt;
&lt;td style=&quot;width: 77px;&quot; align=&quot;left&quot;&gt;사용 안 함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. ⚙️ 시스템 핵심 유지 권장 목록 (수동/자동)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 목록은 윈도우가 정상적으로 작동하거나 특정 기능을 실행할 때 반드시 필요한 핵심 서비스들입니다. 임의로 변경하지 않고 기본값인 &lt;b&gt;'수동'&lt;/b&gt; 또는 &lt;b&gt;'자동'&lt;/b&gt; 상태를 그대로 유지하는 것을 권장합니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;left&quot;&gt;서비스 이름 (Service Name)&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;left&quot;&gt;&lt;b&gt;App Readiness&lt;/b&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;b&gt;Background Intelligent Transfer Service&lt;/b&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;b&gt;Base Filtering Engine&lt;/b&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;b&gt;Bluetooth 지원 서비스 / 오디오 게이트웨이&lt;/b&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;b&gt;CoreMessaging&lt;/b&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;b&gt;Cryptographic Services&lt;/b&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;b&gt;DCOM Server Process Launcher&lt;/b&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;b&gt;DHCP Client&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;인터넷 주소(IP)를 자동으로 받아오기 위해 절대 끄지 말 것&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;b&gt;DNS Client&lt;/b&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;b&gt;Group Policy Client&lt;/b&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;b&gt;Microsoft Defender 바이러스 백신 서비스&lt;/b&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;b&gt;Plug and Play&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;USB 등 하드웨어를 연결했을 때 인식하는 기능&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;b&gt;Power&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;PC의 전원 관리 및 절전 모드 관리에 필수&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;b&gt;Print Spooler&lt;/b&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;b&gt;Security Accounts Manager&lt;/b&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;b&gt;Windows Audio / Endpoint Builder&lt;/b&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;b&gt;Windows Defender Firewall&lt;/b&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;b&gt;Windows 업데이트 / Orchestrator Service&lt;/b&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;b&gt;WLAN AutoConfig&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;무선 인터넷(Wi-Fi) 연결을 위해 반드시 필요&lt;/td&gt;
&lt;td align=&quot;left&quot;&gt;자동&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마치며&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터의 성능은 불필요한 백그라운드 프로세스를 얼마나 잘 통제하느냐에 따라 크게 달라집니다. 위 표를 참고하여 내 PC 환경에 맞지 않는 서비스들을 꼼꼼하게 정리해 보세요. 훨씬 빠릿빠릿해진 윈도우 환경을 경험하실 수 있을 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Window11 전체 서비스 기능에 대한 설명이 궁금하신 분들을 위해 ⬇️⬇️&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ssunhy.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2026.04.21 - [까먹음 방지.zip] - Windows 11 전체 서비스 기능 설명 및 상태 설정 총정리&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784553235274&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Windows 11 전체 서비스 기능 설명 및 상태 설정 총정리&quot; data-og-description=&quot;2026.04.21 - [까먹음 방지.zip] - 윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록 윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록컴퓨터를 쓰다 보면 어&quot; data-og-host=&quot;ssunhy.com&quot; data-og-source-url=&quot;https://ssunhy.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot; data-og-url=&quot;https://ssunhy.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bcGd4l/dJMb81f5yib/qKYFOM5zZokjG9om4z1c90/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/cs6AOP/dJMb896gFS5/EUBn2LdfX8p06YLUPIPBQ0/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/1ugjb/dJMb87N9MJp/lMTxoOokurtVfFelamJLw1/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024&quot;&gt;&lt;a href=&quot;https://ssunhy.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ssunhy.com/entry/Windows-11-%EC%A0%84%EC%B2%B4-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EB%AA%85-%EB%B0%8F-%EC%83%81%ED%83%9C-%EC%84%A4%EC%A0%95-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bcGd4l/dJMb81f5yib/qKYFOM5zZokjG9om4z1c90/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/cs6AOP/dJMb896gFS5/EUBn2LdfX8p06YLUPIPBQ0/img.png?width=800&amp;amp;height=455&amp;amp;face=0_0_800_455,https://scrap.kakaocdn.net/dn/1ugjb/dJMb87N9MJp/lMTxoOokurtVfFelamJLw1/img.png?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Windows 11 전체 서비스 기능 설명 및 상태 설정 총정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2026.04.21 - [까먹음 방지.zip] - 윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록 윈도우11 서비스 최적화 완벽 가이드: 불필요한 서비스 끄기 추천 목록컴퓨터를 쓰다 보면 어&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ssunhy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>pc속도향상</category>
      <category>services.msc</category>
      <category>백그라운드프로세스</category>
      <category>윈도우11설정</category>
      <category>윈도우11최적화</category>
      <category>윈도우서비스정리</category>
      <category>윈도우서비스최적화</category>
      <category>윈도우최적화가이드</category>
      <category>컴퓨터속도빠르게</category>
      <category>컴퓨터최적화</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/36</guid>
      <comments>https://lazip.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B011-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%81%84%EA%B8%B0-%EC%B6%94%EC%B2%9C-%EB%AA%A9%EB%A1%9D#entry36comment</comments>
      <pubDate>Tue, 21 Apr 2026 17:58:05 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 람다식(Lambda Expression) 완전 정리 - 문법부터 Stream API 실전 활용까지</title>
      <link>https://lazip.tistory.com/entry/Java-%EB%9E%8C%EB%8B%A4%EC%8B%9DLambda-Expression-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%AC%B8%EB%B2%95%EB%B6%80%ED%84%B0-Stream-API-%EC%8B%A4%EC%A0%84-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80</link>
      <description>&lt;div id=&quot;lambda-guide&quot;&gt;&lt;!-- ==================== 목차 ==================== --&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  목차&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#sec1&quot;&gt;람다 함수(Lambda Expression) 개요&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec2&quot;&gt;함수형 인터페이스 (Functional Interface)&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#sec2-function&quot;&gt;Function 계열&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec2-predicate&quot;&gt;Predicate 계열&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec2-consumer&quot;&gt;Consumer 계열&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec2-supplier&quot;&gt;Supplier 계열&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec3&quot;&gt;메서드 참조 (Method Reference)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec4&quot;&gt;Stream API와 람다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec5&quot;&gt;클로저와 변수 캡처&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec6&quot;&gt;함수 조합 (Function Composition)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec7&quot;&gt;실전 예제&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#sec7-1&quot;&gt;7.1 리스트 필터링 및 변환&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec7-2&quot;&gt;7.2 맵 순회 및 처리&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec7-3&quot;&gt;7.3 데이터 수집 및 통계&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec7-4&quot;&gt;7.4 그룹화 및 분류&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec8&quot;&gt;기본형 특화 스트림&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec9&quot;&gt;디버깅 및 주의사항&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec10&quot;&gt;java.util.function 전체 인터페이스 요약&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec11&quot;&gt;결론 및 베스트 프랙티스&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java 8부터 도입된 람다 표현식은 익명 함수를 간결하게 작성할 수 있는 문법으로, Stream API와 결합해 함수형 프로그래밍 스타일을 Java에 도입한 핵심 기능입니다. 이 글에서는 람다의 기본 문법부터 실전 활용까지 완전하게 정리합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 1. 람다 함수 개요 ==================== --&gt;
&lt;h2 id=&quot;sec1&quot; data-ke-size=&quot;size26&quot;&gt;1. 람다 함수(Lambda Expression) 개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;람다 함수란?&lt;/b&gt; 익명 함수를 간결하게 작성하는 문법으로, Java 8부터 도입되었습니다. 함수형 인터페이스의 단 하나의 추상 메서드를 구현하며, 병렬 처리와 Stream API와 함께 함수형 프로그래밍 스타일을 지원합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기본 문법&lt;/h3&gt;
&lt;pre class=&quot;gml&quot;&gt;&lt;code&gt;(파라미터) -&amp;gt; {구현 로직}

// 예시
(int x, int y) -&amp;gt; { return x + y; }
s -&amp;gt; s.length()
() -&amp;gt; Math.random()
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문법 변형 정리&lt;/h3&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;(x, y) -&amp;gt; x + y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;파라미터 2개, 반환문 1줄&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(a, b) -&amp;gt;  * &lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;x -&amp;gt;  * &lt;/code&gt;&lt;/td&gt;
&lt;td&gt;파라미터 1개 (괄호 생략 가능)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;n -&amp;gt; n + 1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; 42&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;파라미터 없음&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; System.currentTimeMillis()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;(x) -&amp;gt; { ... return x; }&lt;/code&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;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;간결성:&lt;/b&gt; 익명 클래스보다 훨씬 짧은 코드&lt;/li&gt;
&lt;li&gt;&lt;b&gt;함수형 인터페이스 필요:&lt;/b&gt; &lt;code&gt;@FunctionalInterface&lt;/code&gt;를 가진 인터페이스 대상&lt;/li&gt;
&lt;li&gt;&lt;b&gt;타입 추론:&lt;/b&gt; 컴파일러가 자동으로 파라미터/반환 타입 추론&lt;/li&gt;
&lt;li&gt;&lt;b&gt;클로저:&lt;/b&gt; 외부 변수 접근 가능 (단, final 또는 effectively final)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 2. 함수형 인터페이스 ==================== --&gt;
&lt;h2 id=&quot;sec2&quot; data-ke-size=&quot;size26&quot;&gt;2. 함수형 인터페이스 (Functional Interface)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정확히 &lt;b&gt;1개의 추상 메서드&lt;/b&gt;를 가지는 인터페이스를 함수형 인터페이스라고 합니다. &lt;code&gt;@FunctionalInterface&lt;/code&gt; 어노테이션으로 표시하는 것을 권장하며, 람다 표현식의 대상 타입 역할을 합니다.&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;@FunctionalInterface
public interface MyFunction {
    int apply(int x);  // 추상 메서드 1개만
}

MyFunction f = x -&amp;gt;  * ;
System.out.println(f.apply(5));  // 10
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- Function 계열 --&gt;
&lt;h3 id=&quot;sec2-function&quot; data-ke-size=&quot;size23&quot;&gt;Function 계열: 입력 값을 받아 출력 값을 반환&lt;/h3&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;Function&amp;lt;T, R&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;R apply(T t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;T &amp;rarr; R 변환&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Function&amp;lt;String, Integer&amp;gt; f = String::length;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BiFunction&amp;lt;T, U, R&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;R apply(T t, U u)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;입력 2개 &amp;rarr; 1개 결과&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(a, b) -&amp;gt; a + b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;UnaryOperator&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T apply(T t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;T &amp;rarr; T (같은 타입)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;x -&amp;gt;  * &lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BinaryOperator&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T apply(T t1, T t2)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(T, T) &amp;rarr; T&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(a, b) -&amp;gt; Math.max(a, b)&lt;/code&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;기본형 특화형:&lt;/b&gt; &lt;code&gt;IntFunction&amp;lt;R&amp;gt;&lt;/code&gt;, &lt;code&gt;LongFunction&amp;lt;R&amp;gt;&lt;/code&gt;, &lt;code&gt;DoubleFunction&amp;lt;R&amp;gt;&lt;/code&gt; (int/long/double 입력), &lt;code&gt;ToIntFunction&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ToLongFunction&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ToDoubleFunction&amp;lt;T&amp;gt;&lt;/code&gt; (각 기본형으로 반환), &lt;code&gt;IntToDoubleFunction&lt;/code&gt;, &lt;code&gt;LongToIntFunction&lt;/code&gt; 등 기본형 간 변환을 지원합니다.&lt;/p&gt;
&lt;!-- Predicate 계열 --&gt;
&lt;h3 id=&quot;sec2-predicate&quot; data-ke-size=&quot;size23&quot;&gt;Predicate 계열: 입력값에 대해 조건을 검사하고 boolean을 반환&lt;/h3&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;Predicate&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean test(T t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;T에 대한 조건 판단&lt;/td&gt;
&lt;td&gt;&lt;code&gt;s -&amp;gt; s.isEmpty()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BiPredicate&amp;lt;T, U&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean test(T t, U u)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;입력 2개 조건 판단&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(a, b) -&amp;gt; a.equals(b)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IntPredicate&lt;/code&gt; 등&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean test(XXX)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;기본형 조건 판단&lt;/td&gt;
&lt;td&gt;&lt;code&gt;i -&amp;gt; i &amp;gt; 10&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- Consumer 계열 --&gt;
&lt;h3 id=&quot;sec2-consumer&quot; data-ke-size=&quot;size23&quot;&gt;Consumer 계열: 입력값을 받아 처리만 하고 반환 없음 (void)&lt;/h3&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;Consumer&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void accept(T t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;T 처리 (결과 없음)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;s -&amp;gt; System.out.println(s)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BiConsumer&amp;lt;T, U&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void accept(T t, U u)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;입력 2개 처리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(k, v) -&amp;gt; map.put(k, v)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IntConsumer&lt;/code&gt; 등&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void accept(XXX)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;기본형 처리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;i -&amp;gt; total += i&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ObjIntConsumer&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;void accept(T obj, int i)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;객체 + int 처리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(obj, i) -&amp;gt; obj.setAge(i)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- Supplier 계열 --&gt;
&lt;h3 id=&quot;sec2-supplier&quot; data-ke-size=&quot;size23&quot;&gt;Supplier 계열: 입력 없이 값을 제공(공급)&lt;/h3&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;Supplier&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;T get()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;T 타입 값 제공&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; new Random().nextInt()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BooleanSupplier&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean getAsBoolean()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;boolean 값 제공&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;IntSupplier&lt;/code&gt; 등&lt;/td&gt;
&lt;td&gt;&lt;code&gt;XXX getAsXXX()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;기본형 값 제공&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; System.currentTimeMillis()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 3. 메서드 참조 ==================== --&gt;
&lt;h2 id=&quot;sec3&quot; data-ke-size=&quot;size26&quot;&gt;3. 메서드 참조 (Method Reference)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메서드 참조는 람다식을 더 간결하게 표현하는 방법으로, &lt;code&gt;대상::메서드이름&lt;/code&gt; 형태로 사용합니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;&lt;code&gt;ClassName::staticMethod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(x) -&amp;gt; ClassName.staticMethod(x)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Integer::parseInt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;인스턴스 메서드 참조&lt;/td&gt;
&lt;td&gt;&lt;code&gt;instance::method&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; instance.method()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;System.out::println&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;클래스 메서드 참조&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ClassName::instanceMethod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(obj) -&amp;gt; obj.toString()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;String::length&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;생성자 참조&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ClassName::new&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;() -&amp;gt; new ClassName()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ArrayList::new&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre class=&quot;lasso&quot;&gt;&lt;code&gt;// 정적 메서드 참조
Function&amp;lt;String, Integer&amp;gt; f1 = Integer::parseInt;
int num = f1.apply(&quot;123&quot;);  // 123

// 인스턴스 메서드 참조
List&amp;lt;String&amp;gt; list = List.of(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;);
list.forEach(System.out::println);

// 클래스 메서드 참조
Function&amp;lt;String, Integer&amp;gt; f2 = String::length;
System.out.println(f2.apply(&quot;hello&quot;));  // 5

// 생성자 참조
Supplier&amp;lt;ArrayList&amp;gt; s = ArrayList::new;
ArrayList&amp;lt;String&amp;gt; arr = s.get();
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 4. Stream API와 람다 ==================== --&gt;
&lt;h2 id=&quot;sec4&quot; data-ke-size=&quot;size26&quot;&gt;4. Stream API와 람다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Stream API는 람다 표현식과 함께 사용될 때 가장 강력한 효과를 발휘합니다.&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;filter&lt;/code&gt; &amp;rarr; &lt;b&gt;Predicate&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; &amp;rarr; &lt;b&gt;Function&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;forEach&lt;/code&gt; &amp;rarr; &lt;b&gt;Consumer&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reduce&lt;/code&gt; &amp;rarr; &lt;b&gt;BinaryOperator&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;List&amp;lt;Integer&amp;gt; numbers = List.of(1, 2, 3, 4, 5);

// filter: Predicate 사용
Stream&amp;lt;Integer&amp;gt; filtered = numbers.stream()
                                  .filter(n -&amp;gt; n &amp;gt; 2);

// map: Function 사용
Stream&amp;lt;Integer&amp;gt; mapped = numbers.stream()
                               .map(n -&amp;gt;  * );

// forEach: Consumer 사용
numbers.stream()
       .forEach(System.out::println);

// reduce: BinaryOperator 사용
int sum = numbers.stream()
                 .reduce(0, (a, b) -&amp;gt; a + b);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;자주 사용되는 패턴&lt;/h3&gt;
&lt;pre class=&quot;lasso&quot;&gt;&lt;code&gt;List&amp;lt;String&amp;gt; names = List.of(&quot;Java&quot;, &quot;Spring&quot;, &quot;Lambda&quot;);

// 필터링 및 변환
List&amp;lt;Integer&amp;gt; lengths = names.stream()
                             .filter(s -&amp;gt; s.length() &amp;gt; 4)
                             .map(String::length)
                             .toList();

// 조건 확인
boolean hasEmpty = names.stream()
                        .anyMatch(s -&amp;gt; s.isEmpty());

// 누적 계산
String result = names.stream()
                     .reduce(&quot;&quot;, (a, b) -&amp;gt; a + &quot;, &quot; + b);
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 5. 클로저와 변수 캡처 ==================== --&gt;
&lt;h2 id=&quot;sec5&quot; data-ke-size=&quot;size26&quot;&gt;5. 클로저와 변수 캡처&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;람다식은 외부 스코프의 변수에 접근할 수 있습니다. 단, 접근 가능한 변수는 &lt;b&gt;effectively final&lt;/b&gt;(선언 후 값이 변하지 않는 변수) 또는 명시적 &lt;code&gt;final&lt;/code&gt; 변수여야 하며, 람다식 내에서 외부 변수를 직접 변경하는 것은 불가능합니다.&lt;/p&gt;
&lt;pre class=&quot;fortran&quot;&gt;&lt;code&gt;int multiplier = 10;  // effectively final
Function&amp;lt;Integer, Integer&amp;gt; f = x -&amp;gt;  * ultiplier;
System.out.println(f.apply(5));  // 50

int x = 5;
// x = 10;  // 컴파일 에러! effectively final 위반

Function&amp;lt;Integer, Integer&amp;gt; f2 = y -&amp;gt; x + y;
System.out.println(f2.apply(3));  // 8
&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;AtomicInteger&lt;/code&gt; 등의 래퍼 클래스를 사용하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 6. 함수 조합 ==================== --&gt;
&lt;h2 id=&quot;sec6&quot; data-ke-size=&quot;size26&quot;&gt;6. 함수 조합 (Function Composition)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수형 인터페이스의 디폴트 메서드를 이용하면 여러 함수를 조합할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Function의 조합&lt;/h3&gt;
&lt;pre class=&quot;fortran&quot;&gt;&lt;code&gt;Function&amp;lt;Integer, Integer&amp;gt; multiply = x -&amp;gt;  * ;
Function&amp;lt;Integer, Integer&amp;gt; addTen = x -&amp;gt; x + 10;

// andThen: 먼저 실행 후 결과를 다음 함수에 전달
Function&amp;lt;Integer, Integer&amp;gt; combined1 = multiply.andThen(addTen);
System.out.println(combined1.apply(5));  // ( * ) + 10 = 20

// compose: 먼저 실행할 함수를 뒤에 명시
Function&amp;lt;Integer, Integer&amp;gt; combined2 = addTen.compose(multiply);
System.out.println(combined2.apply(5));  // ( * ) + 10 = 20
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Predicate의 조합&lt;/h3&gt;
&lt;pre class=&quot;rust&quot;&gt;&lt;code&gt;Predicate&amp;lt;String&amp;gt; isLong = s -&amp;gt; s.length() &amp;gt; 5;
Predicate&amp;lt;String&amp;gt; isEmpty = String::isEmpty;

// and, or, negate
Predicate&amp;lt;String&amp;gt; combined = isLong.and(s -&amp;gt; s.contains(&quot;a&quot;));
System.out.println(combined.test(&quot;banana&quot;));  // true

Predicate&amp;lt;String&amp;gt; negated = isEmpty.negate();
System.out.println(negated.test(&quot;hello&quot;));  // true
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 7. 실전 예제 ==================== --&gt;
&lt;h2 id=&quot;sec7&quot; data-ke-size=&quot;size26&quot;&gt;7. 실전 예제&lt;/h2&gt;
&lt;h3 id=&quot;sec7-1&quot; data-ke-size=&quot;size23&quot;&gt;7.1 리스트 필터링 및 변환&lt;/h3&gt;
&lt;pre class=&quot;lasso&quot;&gt;&lt;code&gt;List&amp;lt;String&amp;gt; words = List.of(&quot;hello&quot;, &quot;world&quot;, &quot;java&quot;, &quot;stream&quot;);

// 길이 4 이상인 단어들을 대문자로 변환
List&amp;lt;String&amp;gt; result = words.stream()
                           .filter(w -&amp;gt; w.length() &amp;gt;= 4)
                           .map(String::toUpperCase)
                           .toList();
// [HELLO, WORLD, STREAM]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;sec7-2&quot; data-ke-size=&quot;size23&quot;&gt;7.2 맵 순회 및 처리&lt;/h3&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;Map&amp;lt;String, Integer&amp;gt; scores = Map.of(&quot;Alice&quot;, 90, &quot;Bob&quot;, 85, &quot;Charlie&quot;, 95);

// 80점 이상 사람만 출력
scores.entrySet().stream()
      .filter(entry -&amp;gt; entry.getValue() &amp;gt;= 80)
      .forEach(entry -&amp;gt; System.out.println(entry.getKey() + &quot;: &quot; + entry.getValue()));
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;sec7-3&quot; data-ke-size=&quot;size23&quot;&gt;7.3 데이터 수집 및 통계&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;List&amp;lt;Integer&amp;gt; numbers = List.of(10, 20, 30, 40, 50);

// 합계
int sum = numbers.stream().reduce(0, (a, b) -&amp;gt; a + b);

// 평균
double average = numbers.stream()
                        .mapToDouble(n -&amp;gt; n)
                        .average()
                        .orElse(0.0);

// 최대값
int max = numbers.stream()
                 .reduce(Integer.MIN_VALUE, Math::max);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;sec7-4&quot; data-ke-size=&quot;size23&quot;&gt;7.4 그룹화 및 분류&lt;/h3&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;List&amp;lt;String&amp;gt; items = List.of(&quot;apple&quot;, &quot;banana&quot;, &quot;apricot&quot;, &quot;blueberry&quot;);

// 첫 글자별로 그룹화
Map&amp;lt;Character, List&amp;lt;String&amp;gt;&amp;gt; grouped = items.stream()
        .collect(Collectors.groupingBy(s -&amp;gt; s.charAt(0)));
// {a=[apple, apricot], b=[banana, blueberry]}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 8. 기본형 특화 스트림 ==================== --&gt;
&lt;h2 id=&quot;sec8&quot; data-ke-size=&quot;size26&quot;&gt;8. 기본형 특화 스트림&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본형 값을 처리할 때 &lt;b&gt;박싱(Boxing) 오버헤드&lt;/b&gt;를 제거하기 위해 기본형 특화 스트림을 사용합니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;code&gt;IntStream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int 값 스트림&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IntStream.range(0, 10)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sum()&lt;/code&gt;, &lt;code&gt;average()&lt;/code&gt;, &lt;code&gt;max()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LongStream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;long 값 스트림&lt;/td&gt;
&lt;td&gt;&lt;code&gt;LongStream.range(0L, 100L)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;대용량 숫자 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DoubleStream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;double 값 스트림&lt;/td&gt;
&lt;td&gt;&lt;code&gt;DoubleStream.of(1.0, 2.5, 3.7)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;부동소수점 계산&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;// int 범위로 스트림 생성
int sum = IntStream.range(1, 11).sum();  // 55

// double 값들의 평균
double avg = DoubleStream.of(10.5, 20.3, 15.8).average().orElse(0.0);

// 조건 필터링
long count = IntStream.range(1, 100)
                      .filter(n -&amp;gt; n % 2 == 0)
                      .count();  // 49 (짝수 개수)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 9. 디버깅 및 주의사항 ==================== --&gt;
&lt;h2 id=&quot;sec9&quot; data-ke-size=&quot;size26&quot;&gt;9. 디버깅 및 주의사항&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;람다식 디버깅 시 &lt;code&gt;peek()&lt;/code&gt;을 활용하면 스트림 파이프라인 중간 값을 확인할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;List&amp;lt;Integer&amp;gt; numbers = List.of(1, 2, 3, 4, 5);
numbers.stream()
       .peek(n -&amp;gt; System.out.println(&quot;Processing: &quot; + n))
       .filter(n -&amp;gt; n &amp;gt; 2)
       .peek(n -&amp;gt; System.out.println(&quot;After filter: &quot; + n))
       .forEach(System.out::println);
&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;Side Effect 주의:&lt;/b&gt; 람다식에서 외부 상태 변경을 피할 것&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Effectively Final:&lt;/b&gt; 외부 변수 값 변경 시 컴파일 에러 발생&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Null 처리:&lt;/b&gt; null 파라미터 체크 필수&lt;/li&gt;
&lt;li&gt;&lt;b&gt;병렬 스트림:&lt;/b&gt; &lt;code&gt;parallel()&lt;/code&gt; 사용 시 thread-safe 고려&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 10. 전체 인터페이스 요약 ==================== --&gt;
&lt;h2 id=&quot;sec10&quot; data-ke-size=&quot;size26&quot;&gt;10. java.util.function 전체 인터페이스 요약&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Function 계열 (입력 &amp;rarr; 출력)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Function&amp;lt;T, R&amp;gt;&lt;/code&gt;, &lt;code&gt;BiFunction&amp;lt;T, U, R&amp;gt;&lt;/code&gt;, &lt;code&gt;UnaryOperator&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;BinaryOperator&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;IntFunction&amp;lt;R&amp;gt;&lt;/code&gt;, &lt;code&gt;LongFunction&amp;lt;R&amp;gt;&lt;/code&gt;, &lt;code&gt;DoubleFunction&amp;lt;R&amp;gt;&lt;/code&gt;, &lt;code&gt;ToIntFunction&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ToLongFunction&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ToDoubleFunction&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ToIntBiFunction&amp;lt;T, U&amp;gt;&lt;/code&gt;, &lt;code&gt;ToLongBiFunction&amp;lt;T, U&amp;gt;&lt;/code&gt;, &lt;code&gt;ToDoubleBiFunction&amp;lt;T, U&amp;gt;&lt;/code&gt;, &lt;code&gt;IntToDoubleFunction&lt;/code&gt;, &lt;code&gt;IntToLongFunction&lt;/code&gt;, &lt;code&gt;LongToIntFunction&lt;/code&gt;, &lt;code&gt;LongToDoubleFunction&lt;/code&gt;, &lt;code&gt;DoubleToIntFunction&lt;/code&gt;, &lt;code&gt;DoubleToLongFunction&lt;/code&gt;, &lt;code&gt;IntUnaryOperator&lt;/code&gt;, &lt;code&gt;LongUnaryOperator&lt;/code&gt;, &lt;code&gt;DoubleUnaryOperator&lt;/code&gt;, &lt;code&gt;IntBinaryOperator&lt;/code&gt;, &lt;code&gt;LongBinaryOperator&lt;/code&gt;, &lt;code&gt;DoubleBinaryOperator&lt;/code&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Predicate 계열 (입력 &amp;rarr; boolean)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Predicate&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;BiPredicate&amp;lt;T, U&amp;gt;&lt;/code&gt;, &lt;code&gt;IntPredicate&lt;/code&gt;, &lt;code&gt;LongPredicate&lt;/code&gt;, &lt;code&gt;DoublePredicate&lt;/code&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Consumer 계열 (입력 &amp;rarr; void)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Consumer&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;BiConsumer&amp;lt;T, U&amp;gt;&lt;/code&gt;, &lt;code&gt;IntConsumer&lt;/code&gt;, &lt;code&gt;LongConsumer&lt;/code&gt;, &lt;code&gt;DoubleConsumer&lt;/code&gt;, &lt;code&gt;ObjIntConsumer&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ObjLongConsumer&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;ObjDoubleConsumer&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Supplier 계열 (void &amp;rarr; 출력)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Supplier&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;BooleanSupplier&lt;/code&gt;, &lt;code&gt;IntSupplier&lt;/code&gt;, &lt;code&gt;LongSupplier&lt;/code&gt;, &lt;code&gt;DoubleSupplier&lt;/code&gt;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 11. 결론 및 베스트 프랙티스 ==================== --&gt;
&lt;h2 id=&quot;sec11&quot; data-ke-size=&quot;size26&quot;&gt;11. 결론 및 베스트 프랙티스&lt;/h2&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;Stream API와 함께 사용할 때&lt;/li&gt;
&lt;li&gt;간단한 처리 로직 (1~3줄)&lt;/li&gt;
&lt;li&gt;이벤트 핸들러, 콜백 함수&lt;/li&gt;
&lt;li&gt;Optional, CompletableFuture 활용 시&lt;/li&gt;
&lt;/ul&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;/li&gt;
&lt;li&gt;Side effect가 있는 작업&lt;/li&gt;
&lt;li&gt;재사용 가능한 로직: 메서드로 분리&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;코드 가독성 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 나쁜 예: 복잡한 람다 (한 줄에 몰아넣기)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sas&quot;&gt;&lt;code&gt;list.stream().filter(x -&amp;gt; x &amp;gt; 5 &amp;amp;&amp;amp; x &amp;lt; 20 &amp;amp;&amp;amp; x % 2 == 0).map(x -&amp;gt;  * ).forEach(System.out::println);
&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;sas&quot;&gt;&lt;code&gt;list.stream()
    .filter(x -&amp;gt; x &amp;gt; 5 &amp;amp;&amp;amp; x &amp;lt; 20)
    .filter(x -&amp;gt; x % 2 == 0)
    .map(x -&amp;gt;  * )
    .forEach(System.out::println);
&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; Java 람다 표현식은 단순한 문법 설탕이 아니라, 함수형 프로그래밍 패러다임을 Java에 녹여낸 강력한 도구입니다. Stream API, Optional, CompletableFuture 등과 함께 익혀두면 코드 품질과 생산성을 크게 높일 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;작성일: 2026년 1월 15일 | 대상: Java 8+ 개발자&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>FunctionalInterface</category>
      <category>Java</category>
      <category>lambda</category>
      <category>Lambda Expression</category>
      <category>Stream API</category>
      <category>람다</category>
      <category>람다 표현식</category>
      <category>람다식</category>
      <category>자바</category>
      <category>함수형 인터페이스</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/35</guid>
      <comments>https://lazip.tistory.com/entry/Java-%EB%9E%8C%EB%8B%A4%EC%8B%9DLambda-Expression-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%AC%B8%EB%B2%95%EB%B6%80%ED%84%B0-Stream-API-%EC%8B%A4%EC%A0%84-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80#entry35comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:31:30 +0900</pubDate>
    </item>
    <item>
      <title>[Java] java.util.function 함수형 인터페이스 종류 완벽 정리 (Consumer, Supplier, Function, Predicate)</title>
      <link>https://lazip.tistory.com/entry/Java-javautilfunction-%ED%95%A8%EC%88%98%ED%98%95-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EC%A2%85%EB%A5%98-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Consumer-Supplier-Function-Predicate</link>
      <description>&lt;h1&gt;☕ java.util.function 패키지 완벽 정리&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java 8부터 도입된 &lt;code&gt;java.util.function&lt;/code&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#s1&quot;&gt;함수형 인터페이스란?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s2&quot;&gt;기본 함수형 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s3&quot;&gt;이항(Binary) 함수형 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s4&quot;&gt;단항(Unary) 연산자&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s5&quot;&gt;정수 타입(int) 특화 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s6&quot;&gt;롱 타입(long) 특화 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s7&quot;&gt;더블 타입(double) 특화 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s8&quot;&gt;Boolean 특화 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s9&quot;&gt;반환값 특화 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s10&quot;&gt;객체-기본타입 혼합 인터페이스&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s11&quot;&gt;사용 예시&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s12&quot;&gt;주요 특징 정리&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s13&quot;&gt;마무리&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s1&quot; data-ke-size=&quot;size26&quot;&gt;  1. 함수형 인터페이스란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수형 인터페이스(Functional Interface)란 &lt;b&gt;단 하나의 추상 메서드&lt;/b&gt;만을 가지는 인터페이스입니다. &lt;code&gt;@FunctionalInterface&lt;/code&gt; 어노테이션을 붙여 명시적으로 선언하며, 람다식 또는 메서드 참조로 간결하게 구현할 수 있습니다. Java의 Stream API와도 긴밀하게 연동되어 실무에서 매우 폭넓게 사용됩니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s2&quot; data-ke-size=&quot;size26&quot;&gt;✅ 2. 기본 함수형 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기본이 되는 4가지 인터페이스입니다. 대부분의 함수형 인터페이스는 이 4가지를 기반으로 확장됩니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Consumer&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;단일 입력 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Supplier&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;결과를 공급하는 작업을 나타냅니다. (입력 없음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Function&amp;lt;T,R&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,R&amp;gt;&lt;/td&gt;
&lt;td&gt;한 개의 인수를 받아서 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Predicate&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;한 개의 인수에 대한 boolean 값 함수(조건)를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s3&quot; data-ke-size=&quot;size26&quot;&gt;✅ 3. 이항(Binary) 함수형 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개의 인수를 받아 처리하는 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;BiConsumer&amp;lt;T,U&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 입력 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;BiFunction&amp;lt;T,U,R&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U,R&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 인수를 받아서 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;BiPredicate&amp;lt;T,U&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 인수에 대한 boolean 값 함수(조건)를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;BinaryOperator&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;동일한 타입의 두 개 피연산자에 대한 작업을 나타내며, 같은 타입의 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s4&quot; data-ke-size=&quot;size26&quot;&gt;✅ 4. 단항(Unary) 연산자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 피연산자를 받아 동일한 타입의 결과를 반환하는 연산자 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;UnaryOperator&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;단일 피연산자에 대한 작업을 나타내며, 피연산자와 같은 타입의 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntUnaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;int 피연산자에 대한 작업을 나타내며, int 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongUnaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;long 피연산자에 대한 작업을 나타내며, long 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleUnaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;double 피연산자에 대한 작업을 나타내며, double 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s5&quot; data-ke-size=&quot;size26&quot;&gt;✅ 5. 정수 타입(int) 특화 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 타입 &lt;code&gt;int&lt;/code&gt;에 특화된 인터페이스로, 박싱/언박싱 오버헤드 없이 성능 최적화를 제공합니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;IntConsumer&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 int 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntSupplier&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;int 값의 결과를 공급하는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntFunction&amp;lt;R&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;R&amp;gt;&lt;/td&gt;
&lt;td&gt;int 값 인수를 받아서 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntPredicate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 int 값 인수에 대한 boolean 값 함수(조건)를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntBinaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;두 개의 int 값 피연산자에 대한 작업을 나타내며, int 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntToDoubleFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;int 값 인수를 받아서 double 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;IntToLongFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;int 값 인수를 받아서 long 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s6&quot; data-ke-size=&quot;size26&quot;&gt;✅ 6. 롱 타입(long) 특화 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 타입 &lt;code&gt;long&lt;/code&gt;에 특화된 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;LongConsumer&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 long 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongSupplier&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;long 값의 결과를 공급하는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongFunction&amp;lt;R&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;R&amp;gt;&lt;/td&gt;
&lt;td&gt;long 값 인수를 받아서 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongPredicate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 long 값 인수에 대한 boolean 값 함수(조건)를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongBinaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;두 개의 long 값 피연산자에 대한 작업을 나타내며, long 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongToDoubleFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;long 값 인수를 받아서 double 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;LongToIntFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;long 값 인수를 받아서 int 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s7&quot; data-ke-size=&quot;size26&quot;&gt;✅ 7. 더블 타입(double) 특화 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 타입 &lt;code&gt;double&lt;/code&gt;에 특화된 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;DoubleConsumer&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 double 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleSupplier&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;double 값의 결과를 공급하는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleFunction&amp;lt;R&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;R&amp;gt;&lt;/td&gt;
&lt;td&gt;double 값 인수를 받아서 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoublePredicate&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;단일 double 값 인수에 대한 boolean 값 함수(조건)를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleBinaryOperator&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;두 개의 double 값 피연산자에 대한 작업을 나타내며, double 결과를 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleToIntFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;double 값 인수를 받아서 int 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DoubleToLongFunction&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;double 값 인수를 받아서 long 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s8&quot; data-ke-size=&quot;size26&quot;&gt;✅ 8. Boolean 특화 인터페이스&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;BooleanSupplier&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;boolean 값의 결과를 공급하는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s9&quot; data-ke-size=&quot;size26&quot;&gt;✅ 9. 반환값 특화 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 타입에 관계없이 특정 기본 타입으로 결과를 반환하는 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;ToDoubleFunction&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;단일 인수를 받아서 double 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ToDoubleBiFunction&amp;lt;T,U&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 인수를 받아서 double 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ToIntFunction&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;단일 인수를 받아서 int 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ToIntBiFunction&amp;lt;T,U&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 인수를 받아서 int 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ToLongFunction&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;단일 인수를 받아서 long 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ToLongBiFunction&amp;lt;T,U&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T,U&amp;gt;&lt;/td&gt;
&lt;td&gt;두 개의 인수를 받아서 long 값 결과를 생성하는 함수를 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s10&quot; data-ke-size=&quot;size26&quot;&gt;✅ 10. 객체-기본타입 혼합 인터페이스&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체 타입과 기본 타입 인수를 함께 받는 Consumer 계열 인터페이스입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;ObjIntConsumer&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;객체 값과 int 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ObjLongConsumer&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;객체 값과 long 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;ObjDoubleConsumer&amp;lt;T&amp;gt;&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;T&amp;gt;&lt;/td&gt;
&lt;td&gt;객체 값과 double 값 인수를 받고 결과를 반환하지 않는 작업을 나타냅니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s11&quot; data-ke-size=&quot;size26&quot;&gt;  11. 사용 예시&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Consumer 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력값을 받아 소비(출력 등)하고 반환값 없음&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;Consumer&amp;lt;String&amp;gt; print = System.out::println;
print.accept(&quot;Hello World&quot;);  // 출력: Hello World&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Supplier 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인수 없이 값을 공급&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;Supplier&amp;lt;String&amp;gt; greeting = () -&amp;gt; &quot;Hello, Java!&quot;;
System.out.println(greeting.get());  // 출력: Hello, Java!&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Function 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력을 받아 변환 후 반환&lt;/p&gt;
&lt;pre class=&quot;fortran&quot;&gt;&lt;code&gt;Function&amp;lt;Integer, Integer&amp;gt; square = x -&amp;gt;  * ;
int result = square.apply(5);  // 결과: 25&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Predicate 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건을 검사하여 boolean 반환&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;Predicate&amp;lt;Integer&amp;gt; isPositive = x -&amp;gt; x &amp;gt; 0;
boolean result = isPositive.test(5);  // 결과: true&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;BiFunction 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 인수를 받아 결과 생성&lt;/p&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;BiFunction&amp;lt;Integer, Integer, Integer&amp;gt; add = (a, b) -&amp;gt; a + b;
int result = add.apply(3, 4);  // 결과: 7&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;UnaryOperator 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력과 동일한 타입으로 반환&lt;/p&gt;
&lt;pre class=&quot;lasso&quot;&gt;&lt;code&gt;UnaryOperator&amp;lt;String&amp;gt; toUpper = String::toUpperCase;
String result = toUpper.apply(&quot;hello&quot;);  // 결과: HELLO&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;BinaryOperator 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동일 타입 두 인수를 받아 같은 타입 반환&lt;/p&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;BinaryOperator&amp;lt;Integer&amp;gt; multiply = (a, b) -&amp;gt;  * ;
int result = multiply.apply(3, 4);  // 결과: 12&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s12&quot; data-ke-size=&quot;size26&quot;&gt;⚡ 12. 주요 특징 정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;@FunctionalInterface&lt;/b&gt;: 단 하나의 추상 메서드를 가진 인터페이스로, 어노테이션을 통해 컴파일러가 조건을 강제합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;람다식 지원&lt;/b&gt;: 람다식 또는 메서드 참조로 간결하게 구현할 수 있어 코드 가독성이 향상됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stream API 호환&lt;/b&gt;: &lt;code&gt;filter()&lt;/code&gt;, &lt;code&gt;map()&lt;/code&gt;, &lt;code&gt;forEach()&lt;/code&gt; 등 스트림 작업에서 광범위하게 사용됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기본 타입 특화 인터페이스&lt;/b&gt;: int, long, double에 특화된 인터페이스를 사용하면 오토박싱/언박싱 오버헤드를 제거하여 성능을 높일 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;조합(Compose) 지원&lt;/b&gt;: &lt;code&gt;Function.andThen()&lt;/code&gt;, &lt;code&gt;Predicate.and()&lt;/code&gt; 등 디폴트 메서드를 통해 함수 합성이 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;s13&quot; data-ke-size=&quot;size26&quot;&gt;  13. 마무리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;java.util.function&lt;/code&gt; 패키지의 함수형 인터페이스는 Java 함수형 프로그래밍의 핵심입니다. 처음에는 종류가 많아 헷갈릴 수 있지만, &lt;b&gt;Consumer / Supplier / Function / Predicate&lt;/b&gt; 기본 4가지를 확실히 이해하면 나머지 파생 인터페이스도 자연스럽게 익힐 수 있습니다. Stream API와 함께 사용하면 코드를 훨씬 간결하고 읽기 쉽게 작성할 수 있으니 꼭 익혀두시길 권장합니다.&lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>FunctionalInterface</category>
      <category>IntConsumer LongConsumer</category>
      <category>Java 함수형 인터페이스</category>
      <category>java.util.function</category>
      <category>LambdaExpression</category>
      <category>ToIntFunction 사용법</category>
      <category>람다식</category>
      <category>람다식 함수형 인터페이스</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/34</guid>
      <comments>https://lazip.tistory.com/entry/Java-javautilfunction-%ED%95%A8%EC%88%98%ED%98%95-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EC%A2%85%EB%A5%98-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-Consumer-Supplier-Function-Predicate#entry34comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:25:38 +0900</pubDate>
    </item>
    <item>
      <title>Spring Data JPA Query Methods 키워드 완전 정리 (메서드 이름으로 쿼리 만들기)</title>
      <link>https://lazip.tistory.com/entry/Spring-Data-JPA-Query-Methods-%ED%82%A4%EC%9B%8C%EB%93%9C-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%9D%B4%EB%A6%84%EC%9C%BC%EB%A1%9C-%EC%BF%BC%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;h1&gt;Spring Data JPA Query Methods 키워드 완벽 가이드&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Data JPA의 Query Methods(메서드 이름 쿼리)는 메서드 이름만으로 JPQL 쿼리를 자동 생성해주는 강력한 기능입니다. 이 글에서는 주요 키워드를 카테고리별로 체계적으로 정리하고, 실제 사용 예시와 JPQL/SQL 변환까지 한눈에 확인할 수 있도록 정리했습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 목차 ==================== --&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  목차&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#rules&quot;&gt;핵심 규칙 요약&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#entity&quot;&gt;기준 엔티티 (User)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec1&quot;&gt;논리 연산자 &amp;amp; NULL 체크&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec2&quot;&gt;비교 연산자&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec3&quot;&gt;범위 / 날짜&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec4&quot;&gt;문자열 패턴 (LIKE 계열)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec5&quot;&gt;집합 연산 (IN 계열)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec6&quot;&gt;정렬 (OrderBy)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec7&quot;&gt;불린(Boolean) 조건&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#sec8&quot;&gt;부정 / 기타&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#repo&quot;&gt;실전용 UserRepository 예시 코드&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#quickref&quot;&gt;사용 패턴 빠른 참조표&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 핵심 규칙 ==================== --&gt;
&lt;h2 id=&quot;rules&quot; data-ke-size=&quot;size26&quot;&gt;✅ 핵심 규칙 요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Query Methods를 사용하기 전에 아래 기본 규칙을 숙지하세요.&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;code&gt;findBy&lt;/code&gt; + 필드명 + 키워드 + (필드명 + 키워드)...&lt;/li&gt;
&lt;li&gt;&lt;b&gt;반환 타입:&lt;/b&gt; &lt;code&gt;List&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;Optional&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;Page&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;Slice&amp;lt;T&amp;gt;&lt;/code&gt;, &lt;code&gt;Long&lt;/code&gt; (count 용)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;정렬:&lt;/b&gt; &lt;code&gt;OrderBy필드명Asc&lt;/code&gt; / &lt;code&gt;OrderBy필드명Desc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;페이징:&lt;/b&gt; &lt;code&gt;Pageable&lt;/code&gt; 파라미터 추가 시 자동 페이징 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 기준 엔티티 ==================== --&gt;
&lt;h2 id=&quot;entity&quot; data-ke-size=&quot;size26&quot;&gt;  기준 엔티티 (User)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글의 모든 예시는 아래 User 엔티티를 기준으로 작성되었습니다.&lt;/p&gt;
&lt;pre class=&quot;kotlin&quot;&gt;&lt;code&gt;@Entity
public class User {
    @Id @GeneratedValue
    private Long id;
    private String name;
    private String email;
    private Integer age;
    private Boolean active;
    private LocalDateTime createdDate;

    @Enumerated(EnumType.STRING)
    private Role role;

    @ManyToOne
    private Department department;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 1. 논리 연산자 &amp; NULL ==================== --&gt;
&lt;h2 id=&quot;sec1&quot; data-ke-size=&quot;size26&quot;&gt;1. 논리 연산자 &amp;amp; NULL 체크&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;논리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;And&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AND 조건&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameAndAge(String name, Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name = ?1 AND u.age = ?2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name = ? AND age = ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;논리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Or&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OR 조건&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameOrEmail(String name, String email)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name = ?1 OR u.email = ?2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name = ? OR email = ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NULL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IsNull&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IS NULL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByEmailIsNull()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.email IS NULL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE email IS NULL&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NULL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IsNotNull&lt;/code&gt; / &lt;code&gt;NotNull&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IS NOT NULL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByEmailIsNotNull()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.email IS NOT NULL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE email IS NOT NULL&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 2. 비교 연산자 ==================== --&gt;
&lt;h2 id=&quot;sec2&quot; data-ke-size=&quot;size26&quot;&gt;2. 비교 연산자&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;비교&lt;/td&gt;
&lt;td&gt;&lt;code&gt;LessThan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt; 보다 작은&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeLessThan(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age &amp;lt; ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age &amp;lt; ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비교&lt;/td&gt;
&lt;td&gt;&lt;code&gt;LessThanEqual&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;= 이하&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeLessThanEqual(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age &amp;lt;= ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age &amp;lt;= ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비교&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GreaterThan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;gt; 보다 큰&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeGreaterThan(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age &amp;gt; ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age &amp;gt; ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비교&lt;/td&gt;
&lt;td&gt;&lt;code&gt;GreaterThanEqual&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;gt;= 이상&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeGreaterThanEqual(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age &amp;gt;= ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age &amp;gt;= ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 3. 범위 / 날짜 ==================== --&gt;
&lt;h2 id=&quot;sec3&quot; data-ke-size=&quot;size26&quot;&gt;3. 범위 / 날짜&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;범위&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Between&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;두 값 사이&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeBetween(Integer min, Integer max)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age BETWEEN ?1 AND ?2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age BETWEEN ? AND ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;날짜&lt;/td&gt;
&lt;td&gt;&lt;code&gt;After&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;특정 시점 이후&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByCreatedDateAfter(LocalDateTime t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.createdDate &amp;gt; ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE created_date &amp;gt; ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;날짜&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Before&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;특정 시점 이전&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByCreatedDateBefore(LocalDateTime t)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.createdDate &amp;lt; ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE created_date &amp;lt; ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 4. 문자열 패턴 ==================== --&gt;
&lt;h2 id=&quot;sec4&quot; data-ke-size=&quot;size26&quot;&gt;4. 문자열 패턴 (LIKE 계열)&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Like&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;LIKE 그대로 사용&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameLike(String pattern)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name LIKE ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name LIKE ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;NotLike&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;NOT LIKE&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameNotLike(String pattern)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name NOT LIKE ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name NOT LIKE ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;StartingWith&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;접두어 검색 (값%)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameStartingWith(String prefix)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name LIKE ?1%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name LIKE '김%'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;EndingWith&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;접미어 검색 (%값)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameEndingWith(String suffix)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name LIKE %?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name LIKE '%동'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Containing&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;포함 검색 (%값%)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameContaining(String keyword)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name LIKE %?1%&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE name LIKE '%길동%'&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IgnoreCase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;대소문자 무시&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameIgnoreCase(String name)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE UPPER(u.name) = UPPER(?1)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE UPPER(name) = UPPER(?)&lt;/code&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;  &lt;b&gt;IgnoreCase 조합 팁:&lt;/b&gt; IgnoreCase는 다른 키워드와 조합해서 사용할 수 있습니다.&lt;br /&gt;예: &lt;code&gt;findByNameContainingIgnoreCase(String keyword)&lt;/code&gt; &amp;rarr; &lt;code&gt;WHERE UPPER(name) LIKE UPPER('%keyword%')&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 5. 집합 연산 ==================== --&gt;
&lt;h2 id=&quot;sec5&quot; data-ke-size=&quot;size26&quot;&gt;5. 집합 연산 (IN 계열)&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;집합&lt;/td&gt;
&lt;td&gt;&lt;code&gt;In&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;여러 값 중 하나&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByRoleIn(List&amp;lt;Role&amp;gt; roles)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.role IN ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE role IN (?, ?, ?)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;집합&lt;/td&gt;
&lt;td&gt;&lt;code&gt;NotIn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;여러 값이 아닌 것&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByRoleNotIn(List&amp;lt;Role&amp;gt; roles)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.role NOT IN ?1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE role NOT IN (?, ?, ?)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 6. 정렬 ==================== --&gt;
&lt;h2 id=&quot;sec6&quot; data-ke-size=&quot;size26&quot;&gt;6. 정렬 (OrderBy)&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;정렬&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OrderBy&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;특정 필드 기준 정렬&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByAgeOrderByCreatedDateDesc(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.age = ?1 ORDER BY u.createdDate DESC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE age = ? ORDER BY created_date DESC&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;정렬&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Asc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;오름차순&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OrderByNameAsc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ORDER BY u.name ASC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ORDER BY name ASC&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;정렬&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Desc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;내림차순&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OrderByNameDesc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ORDER BY u.name DESC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ORDER BY name DESC&lt;/code&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;⚠️ &lt;b&gt;OrderBy 주의사항:&lt;/b&gt; OrderBy는 반드시 조건(WHERE 절) 뒤에 붙는 형식으로 사용합니다.&lt;br /&gt;예: &lt;code&gt;findByDepartmentOrderByCreatedDateDesc(Department dept)&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 7. 불린 ==================== --&gt;
&lt;h2 id=&quot;sec7&quot; data-ke-size=&quot;size26&quot;&gt;7. 불린(Boolean) 조건&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL 변환&lt;/th&gt;
&lt;th&gt;SQL 변환&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;불린&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;= true&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByActiveTrue()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.active = true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE active = true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;불린&lt;/td&gt;
&lt;td&gt;&lt;code&gt;False&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;= false&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByActiveFalse()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.active = false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE active = false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 8. 부정 / 기타 ==================== --&gt;
&lt;h2 id=&quot;sec8&quot; data-ke-size=&quot;size26&quot;&gt;8. 부정 / 기타&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;Java 메서드 예시&lt;/th&gt;
&lt;th&gt;JPQL / SQL 예시&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;부정&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Not&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;값이 다른 경우 (&amp;lt;&amp;gt;)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByNameNot(String name)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;WHERE u.name &amp;lt;&amp;gt; ?1&lt;/code&gt; / &lt;code&gt;WHERE name &amp;lt;&amp;gt; ?&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;고유&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Distinct&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;중복 제거&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findDistinctByEmail(String email)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SELECT DISTINCT u.email FROM User u WHERE ...&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;순위&lt;/td&gt;
&lt;td&gt;&lt;code&gt;First&lt;/code&gt; / &lt;code&gt;Top&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;상위 N개만&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findFirstByOrderByCreatedDateDesc()&lt;/code&gt;&lt;br /&gt;&lt;code&gt;findTop5ByAgeGreaterThan(Integer age)&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ORDER BY ... + LIMIT&lt;/code&gt; (DB 페이징 사용)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 실전 Repository ==================== --&gt;
&lt;h2 id=&quot;repo&quot; data-ke-size=&quot;size26&quot;&gt;  실전용 UserRepository 예시 코드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 표의 키워드를 실제로 사용하는 UserRepository 전체 예시입니다. 복사해서 Spring Boot 프로젝트에 바로 적용해 보세요.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;public interface UserRepository extends JpaRepository&amp;lt;User, Long&amp;gt; {

    // ---------- 기본 / 논리 ----------
    List&amp;lt;User&amp;gt; findByName(String name);
    List&amp;lt;User&amp;gt; findByNameAndAge(String name, Integer age);
    List&amp;lt;User&amp;gt; findByNameOrEmail(String name, String email);

    // ---------- NULL ----------
    List&amp;lt;User&amp;gt; findByEmailIsNull();
    List&amp;lt;User&amp;gt; findByEmailIsNotNull();

    // ---------- 비교 ----------
    List&amp;lt;User&amp;gt; findByAgeLessThan(Integer age);
    List&amp;lt;User&amp;gt; findByAgeLessThanEqual(Integer age);
    List&amp;lt;User&amp;gt; findByAgeGreaterThan(Integer age);
    List&amp;lt;User&amp;gt; findByAgeGreaterThanEqual(Integer age);

    // ---------- 범위 / 날짜 ----------
    List&amp;lt;User&amp;gt; findByAgeBetween(Integer min, Integer max);
    List&amp;lt;User&amp;gt; findByCreatedDateAfter(LocalDateTime t);
    List&amp;lt;User&amp;gt; findByCreatedDateBefore(LocalDateTime t);

    // ---------- 문자열 패턴 ----------
    List&amp;lt;User&amp;gt; findByNameLike(String pattern);                 // 직접 % 포함
    List&amp;lt;User&amp;gt; findByNameNotLike(String pattern);
    List&amp;lt;User&amp;gt; findByNameStartingWith(String prefix);          // prefix%
    List&amp;lt;User&amp;gt; findByNameEndingWith(String suffix);            // %suffix
    List&amp;lt;User&amp;gt; findByNameContaining(String keyword);           // %keyword%
    List&amp;lt;User&amp;gt; findByNameContainingIgnoreCase(String keyword); // 대소문자 무시

    // ---------- 집합(IN) ----------
    List&amp;lt;User&amp;gt; findByRoleIn(Collection&amp;lt;Role&amp;gt; roles);
    List&amp;lt;User&amp;gt; findByRoleNotIn(Collection&amp;lt;Role&amp;gt; roles);

    // ---------- 정렬 ----------
    List&amp;lt;User&amp;gt; findByDepartmentOrderByCreatedDateDesc(Department dept);
    List&amp;lt;User&amp;gt; findByAgeOrderByNameAsc(Integer age);

    // ---------- 불린 ----------
    List&amp;lt;User&amp;gt; findByActiveTrue();
    List&amp;lt;User&amp;gt; findByActiveFalse();

    // ---------- 부정 / 기타 ----------
    List&amp;lt;User&amp;gt; findByNameNot(String name);
    List&amp;lt;User&amp;gt; findDistinctByEmail(String email);
    Optional&amp;lt;User&amp;gt; findFirstByOrderByCreatedDateDesc();
    List&amp;lt;User&amp;gt; findTop5ByAgeGreaterThan(Integer age);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ==================== 빠른 참조표 ==================== --&gt;
&lt;h2 id=&quot;quickref&quot; data-ke-size=&quot;size26&quot;&gt;⚡ 사용 패턴 빠른 참조표&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;&lt;code&gt;findBy필드명&lt;/code&gt;, &lt;code&gt;findBy필드명And다른필드&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문자열 검색&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Containing&lt;/code&gt;, &lt;code&gt;StartingWith&lt;/code&gt;, &lt;code&gt;EndingWith&lt;/code&gt;, &lt;code&gt;Like&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;날짜/숫자 범위&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Between&lt;/code&gt;, &lt;code&gt;LessThan&lt;/code&gt;, &lt;code&gt;GreaterThanEqual&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;정렬&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OrderBy필드명Asc&lt;/code&gt; / &lt;code&gt;Desc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;집합 조건&lt;/td&gt;
&lt;td&gt;&lt;code&gt;In&lt;/code&gt;, &lt;code&gt;NotIn&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;상태값 (Boolean)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt;, &lt;code&gt;False&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대소문자 무시&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IgnoreCase&lt;/code&gt; 조합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NULL 체크&lt;/td&gt;
&lt;td&gt;&lt;code&gt;IsNull&lt;/code&gt;, &lt;code&gt;IsNotNull&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;상위 N개&lt;/td&gt;
&lt;td&gt;&lt;code&gt;First&lt;/code&gt;, &lt;code&gt;Top&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;중복 제거&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Distinct&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅 하나만 북마크해두면, Spring Data JPA의 Query Method 키워드를 개발 중 언제든 빠르게 참조할 수 있습니다. 실무에서 자주 쓰이는 패턴 위주로 구성했으니 바로 적용해 보세요!&lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>findby</category>
      <category>JPA</category>
      <category>JPA키워드</category>
      <category>JPQL</category>
      <category>QueryMethods</category>
      <category>Repository</category>
      <category>spring boot</category>
      <category>SpringDataJPA</category>
      <category>메서드이름쿼리</category>
      <category>스프링부트</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/33</guid>
      <comments>https://lazip.tistory.com/entry/Spring-Data-JPA-Query-Methods-%ED%82%A4%EC%9B%8C%EB%93%9C-%EC%99%84%EC%A0%84-%EC%A0%95%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%9D%B4%EB%A6%84%EC%9C%BC%EB%A1%9C-%EC%BF%BC%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry33comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:24:18 +0900</pubDate>
    </item>
    <item>
      <title>[JPA] JPQL 문법 완전정복 - 실전 예제 30가지 총정리</title>
      <link>https://lazip.tistory.com/entry/JPA-JPQL-%EB%AC%B8%EB%B2%95-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C-30%EA%B0%80%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;h1&gt;  JPQL 실전 예제 30선: 문법 완전 정복 가이드&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JPQL(Java Persistence Query Language)은 JPA에서 데이터를 조회하기 위한 객체지향 쿼리 언어입니다. SQL과 유사하지만 테이블이 아닌 엔티티(Entity)와 속성(Field)을 대상으로 동작하는 것이 핵심 차이점입니다. 이 글에서는 실무에서 바로 사용할 수 있는 &lt;b&gt;30가지 실전 예제&lt;/b&gt;를 통해 JPQL 문법을 완전히 정복해 봅니다.&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#s1&quot;&gt;JPQL 기본 문법 (SQL과 비교)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s2&quot;&gt;기본 SELECT 쿼리 (예제 1~10)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s3&quot;&gt;WHERE 조건 쿼리 (예제 11~20)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s4&quot;&gt;JOIN 및 관계 쿼리 (예제 21~25)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s5&quot;&gt;정렬 및 그룹 쿼리 (예제 26~30)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s6&quot;&gt;JPQL vs Spring Data JPA 메서드 비교&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#s7&quot;&gt;마치며: JPQL 핵심 정리&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ===== 1. JPQL 기본 문법 ===== --&gt;
&lt;h2 id=&quot;s1&quot; data-ke-size=&quot;size26&quot;&gt;1. JPQL 기본 문법 (SQL과 비교)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JPQL은 SQL과 비슷하지만 엔티티와 속성을 대상으로 합니다. 아래 표에서 주요 차이점을 확인하세요.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;JPQL 특징&lt;/th&gt;
&lt;th&gt;SQL&lt;/th&gt;
&lt;th&gt;JPQL&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;테이블 &amp;rarr; 엔티티&lt;/td&gt;
&lt;td&gt;&lt;code&gt;user&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;User u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;테이블명 대신 엔티티 클래스명 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;컬럼 &amp;rarr; 속성&lt;/td&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;u.name&lt;/code&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;code&gt;user u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;User u&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AS 생략 가능, 필수는 아님&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;와일드카드&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SELECT *&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SELECT u&lt;/code&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;code&gt;JOIN dept&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;JOIN u.department&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;객체 관계를 따라 조인&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ===== 2. 기본 SELECT 쿼리 ===== --&gt;
&lt;h2 id=&quot;s2&quot; data-ke-size=&quot;size26&quot;&gt;2. 기본 SELECT 쿼리 (예제 1~10)&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;&lt;b&gt;상황:&lt;/b&gt; 모든 사용자를 조회하고 싶을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u&quot;)
List&amp;lt;User&amp;gt; findAllUsers();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 모든 User 엔티티 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 관리자 화면에서 전체 회원 목록을 보여줄 때&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u.name, u.email FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u.name, u.email FROM User u&quot;)
List&amp;lt;Object[]&amp;gt; findNamesAndEmails();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT name, email FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; Object[] 리스트, [0]=name, [1]=email&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 통계 화면에서 최소한의 데이터만 빠르게 조회할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 3: NEW DTO로 조회&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; DTO로 바로 변환해서 받고 싶을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT NEW com.example.UserDto(u.id, u.name, u.email) FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT NEW com.example.UserDto(u.id, u.name, u.email) FROM User u&quot;)
List&amp;lt;UserDto&amp;gt; findUserDtos();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT id, name, email FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; UserDto 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; API 응답용 DTO를 JPQL에서 바로 생성할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 4: DISTINCT로 중복 제거&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT DISTINCT u.email FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;@Query(&quot;SELECT DISTINCT u.email FROM User u&quot;)
List&amp;lt;String&amp;gt; findDistinctEmails();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT DISTINCT email FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 중복 없는 이메일 문자열 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 중복 데이터 제거 후 통계 분석할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 5: TOP/LIMIT (페이징)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 최근 가입한 5명만 조회하고 싶을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u ORDER BY u.createdDate DESC&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u ORDER BY u.createdDate DESC&quot;)
List&amp;lt;User&amp;gt; findRecentUsers(Pageable pageable);

// 사용: findRecentUsers(PageRequest.of(0, 5))&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user ORDER BY created_date DESC LIMIT 5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 최근 5명의 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 대시보드에서 최신 가입자를 보여줄 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 6: COUNT 집계&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT COUNT(u) FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;kotlin&quot;&gt;&lt;code&gt;@Query(&quot;SELECT COUNT(u) FROM User u&quot;)
Long countAllUsers();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT COUNT(*) FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 전체 사용자 수 (Long)&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 관리자 대시보드에서 통계 표시할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 7: SUM 집계&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT SUM(u.age) FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;kotlin&quot;&gt;&lt;code&gt;@Query(&quot;SELECT SUM(u.age) FROM User u&quot;)
Long sumAllAges();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT SUM(age) FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 나이 총합 (Long)&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 평균 나이 계산 전 단계로 사용할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 8: AVG, MAX, MIN 집계&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT AVG(u.age), MAX(u.age), MIN(u.age) FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT AVG(u.age), MAX(u.age), MIN(u.age) FROM User u&quot;)
List&amp;lt;Object[]&amp;gt; findAgeStats();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT AVG(age), MAX(age), MIN(age) FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; [평균, 최대, 최소]가 담긴 Object[]&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 통계 대시보드에서 한 번에 여러 지표를 보여줄 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 9: 별칭(AS) 사용&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u.name AS userName, u.email AS userEmail FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u.name AS userName, u.email AS userEmail FROM User u&quot;)
List&amp;lt;Object[]&amp;gt; findUserNameAndEmailWithAlias();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT name AS userName, email AS userEmail FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; Object[] 리스트, 별칭으로 접근 가능&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 결과 매핑 시 명확한 컬럼명이 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 10: INDEX 함수 (컬렉션)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; List 타입 컬렉션의 특정 인덱스 값을 조회할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE INDEX(u.phones) = 0&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;mathematica&quot;&gt;&lt;code&gt;// User 엔티티에 List&amp;lt;String&amp;gt; phones 필드가 있다고 가정
@Query(&quot;SELECT u FROM User u WHERE INDEX(u.phones) = 0&quot;)
List&amp;lt;User&amp;gt; findUsersWithFirstPhone();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; DB에 따라 다름 (일부 DB는 지원 안 함)&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 첫 번째 전화번호가 있는 User 리스트&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;!-- ===== 3. WHERE 조건 쿼리 ===== --&gt;
&lt;h2 id=&quot;s3&quot; data-ke-size=&quot;size26&quot;&gt;3. WHERE 조건 쿼리 (예제 11~20)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 11: 단순 동등 조건 (=)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 이름이 정확히 &quot;홍길동&quot;인 사용자 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.name = :name&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.name = :name&quot;)
List&amp;lt;User&amp;gt; findByNameExact(@Param(&quot;name&quot;) String name);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE name = ?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 이름이 정확히 일치하는 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 로그인 ID나 정확한 값으로 검색할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 12: 부분 문자열 검색 (LIKE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 이름에 &quot;길동&quot;이 포함된 사용자 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.name LIKE %:keyword%&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.name LIKE %:keyword%&quot;)
List&amp;lt;User&amp;gt; findByNameContaining(@Param(&quot;keyword&quot;) String keyword);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE name LIKE '%길동%'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 이름에 키워드가 포함된 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 검색창에서 부분 검색할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 13: 시작/끝 문자열 검색&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; &quot;김&quot;으로 시작하는 이름 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.name LIKE :keyword%&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.name LIKE :keyword%&quot;)
List&amp;lt;User&amp;gt; findByNameStartingWith(@Param(&quot;keyword&quot;) String keyword);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE name LIKE '김%'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; &quot;김&quot;으로 시작하는 이름의 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 초성 검색이나 성씨로 필터링할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 14: 범위 조건 (BETWEEN)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 나이가 20세에서 30세 사이인 사용자 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.age BETWEEN :minAge AND :maxAge&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.age BETWEEN :minAge AND :maxAge&quot;)
List&amp;lt;User&amp;gt; findByAgeBetween(@Param(&quot;minAge&quot;) int minAge, @Param(&quot;maxAge&quot;) int maxAge);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE age BETWEEN 20 AND 30&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 나이 범위의 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 나이, 가격, 날짜 범위 필터에서 사용할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 15: 목록 조건 (IN)&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.city IN :cities&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.city IN :cities&quot;)
List&amp;lt;User&amp;gt; findByCityIn(@Param(&quot;cities&quot;) List&amp;lt;String&amp;gt; cities);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE city IN ('서울', '부산', '대구')&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 도시에 사는 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 체크박스 다중 선택 필터에서 사용할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 16: NULL 조건 (IS NULL / IS NOT NULL)&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.email IS NULL&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.email IS NULL&quot;)
List&amp;lt;User&amp;gt; findByEmailIsNull();

// 반대: IS NOT NULL
@Query(&quot;SELECT u FROM User u WHERE u.email IS NOT NULL&quot;)
List&amp;lt;User&amp;gt; findByEmailIsNotNull();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE email IS NULL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 이메일이 없는 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 미완성 프로필 대상으로 알림을 보낼 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 17: 복합 조건 (AND, OR)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 나이가 25세 이상이고 서울에 사는 사용자 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.age &amp;gt;= :age AND u.city = :city&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.age &amp;gt;= :age AND u.city = :city&quot;)
List&amp;lt;User&amp;gt; findByAgeAndCity(@Param(&quot;age&quot;) int age, @Param(&quot;city&quot;) String city);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE age &amp;gt;= 25 AND city = '서울'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 두 조건을 동시에 만족하는 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 다중 필터 검색 기능 구현 시&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 18: NOT 조건&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.status != :status&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.status != :status&quot;)
List&amp;lt;User&amp;gt; findByStatusNot(@Param(&quot;status&quot;) String status);

// 사용: findByStatusNot(&quot;DELETED&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE status != 'DELETED'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 상태가 아닌 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 소프트 딜리트 구현에서 삭제되지 않은 데이터만 조회할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 19: 날짜 조건&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE u.createdDate &amp;gt; :date&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.createdDate &amp;gt; :date&quot;)
List&amp;lt;User&amp;gt; findByCreatedDateAfter(@Param(&quot;date&quot;) LocalDateTime date);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE created_date &amp;gt; ?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 날짜 이후 가입한 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 신규 회원 대상 이벤트 대상자를 뽑을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 20: LOWER/UPPER 함수 (대소문자 무시 검색)&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE LOWER(u.email) = LOWER(:email)&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE LOWER(u.email) = LOWER(:email)&quot;)
Optional&amp;lt;User&amp;gt; findByEmailIgnoreCase(@Param(&quot;email&quot;) String email);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE LOWER(email) = LOWER(?)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 대소문자에 관계없이 일치하는 User&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;!-- ===== 4. JOIN 및 관계 쿼리 ===== --&gt;
&lt;h2 id=&quot;s4&quot; data-ke-size=&quot;size26&quot;&gt;4. JOIN 및 관계 쿼리 (예제 21~25)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 21: INNER JOIN&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u JOIN u.department d WHERE d.name = :deptName&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u JOIN u.department d WHERE d.name = :deptName&quot;)
List&amp;lt;User&amp;gt; findByDepartmentName(@Param(&quot;deptName&quot;) String deptName);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT u.* FROM user u INNER JOIN department d ON u.dept_id = d.id WHERE d.name = ?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 부서에 속한 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 특정 팀/부서에 속한 직원을 조회할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 22: LEFT JOIN&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u LEFT JOIN u.department d&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u LEFT JOIN u.department d&quot;)
List&amp;lt;User&amp;gt; findAllWithDepartment();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT u.* FROM user u LEFT JOIN department d ON u.dept_id = d.id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 부서 유무에 관계없이 모든 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 부서 미배정 직원까지 포함한 전체 명단을 뽑을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 23: FETCH JOIN (N+1 문제 해결)&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u JOIN FETCH u.department&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u JOIN FETCH u.department&quot;)
List&amp;lt;User&amp;gt; findAllWithDepartmentFetch();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT u.*, d.* FROM user u INNER JOIN department d ON u.dept_id = d.id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 부서 정보가 즉시 로딩된 User 리스트 (LazyLoading 방지)&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 연관 엔티티를 반드시 함께 사용할 때, N+1 쿼리 문제를 해결할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 24: 컬렉션 JOIN (일대다)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 특정 주문을 한 사용자 조회 (User - Orders 일대다 관계)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT DISTINCT u FROM User u JOIN u.orders o WHERE o.status = :status&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT DISTINCT u FROM User u JOIN u.orders o WHERE o.status = :status&quot;)
List&amp;lt;User&amp;gt; findByOrderStatus(@Param(&quot;status&quot;) String status);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT DISTINCT u.* FROM user u INNER JOIN orders o ON o.user_id = u.id WHERE o.status = ?&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 해당 상태의 주문이 있는 User 리스트 (DISTINCT로 중복 제거)&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 특정 행동(주문, 리뷰 등)을 한 사용자를 뽑을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 25: 서브쿼리 (EXISTS)&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u WHERE EXISTS (SELECT o FROM Order o WHERE o.user = u)&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE EXISTS (SELECT o FROM Order o WHERE o.user = u)&quot;)
List&amp;lt;User&amp;gt; findUsersWithOrders();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user u WHERE EXISTS (SELECT 1 FROM orders o WHERE o.user_id = u.id)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 주문 이력이 있는 User 리스트&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;!-- ===== 5. 정렬 및 그룹 쿼리 ===== --&gt;
&lt;h2 id=&quot;s5&quot; data-ke-size=&quot;size26&quot;&gt;5. 정렬 및 그룹 쿼리 (예제 26~30)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 26: ORDER BY 다중 정렬&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;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u FROM User u ORDER BY u.city ASC, u.age DESC&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u ORDER BY u.city ASC, u.age DESC&quot;)
List&amp;lt;User&amp;gt; findAllOrderByCityAndAge();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM user ORDER BY city ASC, age DESC&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 도시 오름차순, 나이 내림차순으로 정렬된 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 복합 기준으로 리스트를 정렬하여 보여줄 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 27: GROUP BY와 HAVING&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 도시별 사용자 수를 구하고, 10명 이상인 도시만 보기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u.city, COUNT(u) FROM User u GROUP BY u.city HAVING COUNT(u) &amp;gt;= :minCount&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u.city, COUNT(u) FROM User u GROUP BY u.city HAVING COUNT(u) &amp;gt;= :minCount&quot;)
List&amp;lt;Object[]&amp;gt; findCityWithMinUsers(@Param(&quot;minCount&quot;) long minCount);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT city, COUNT(*) FROM user GROUP BY city HAVING COUNT(*) &amp;gt;= 10&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; [도시명, 사용자 수] 쌍의 Object[] 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 지역별 통계 리포트, 그룹별 집계 결과를 보여줄 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 28: CASE WHEN (조건부 값 반환)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; 나이에 따라 &quot;청년&quot;, &quot;중년&quot;, &quot;장년&quot; 라벨을 붙이고 싶을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT u.name, CASE WHEN u.age &amp;lt; 30 THEN '청년' WHEN u.age &amp;lt; 50 THEN '중년' ELSE '장년' END FROM User u&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u.name, CASE WHEN u.age &amp;lt; 30 THEN '청년' WHEN u.age &amp;lt; 50 THEN '중년' ELSE '장년' END FROM User u&quot;)
List&amp;lt;Object[]&amp;gt; findUsersWithAgeGroup();&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELECT name, CASE WHEN age &amp;lt; 30 THEN '청년' WHEN age &amp;lt; 50 THEN '중년' ELSE '장년' END FROM user&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; [이름, 나이 그룹] 쌍의 Object[] 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 분류 라벨링이나 조건부 표시 값이 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 29: 서브쿼리 (IN 절 활용)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; VIP 등급인 사용자들의 최근 주문만 조회하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;JPQL:&lt;/b&gt; &lt;code&gt;SELECT o FROM Order o WHERE o.user IN (SELECT u FROM User u WHERE u.grade = :grade)&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(&quot;SELECT o FROM Order o WHERE o.user IN (SELECT u FROM User u WHERE u.grade = :grade)&quot;)
List&amp;lt;Order&amp;gt; findOrdersByUserGrade(@Param(&quot;grade&quot;) String grade);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; &lt;code&gt;SELEC * ROM orders WHERE user_id IN (SELECT id FROM user WHERE grade = 'VIP')&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 특정 등급 사용자들의 Order 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; 특정 조건의 사용자와 연관된 데이터를 한 번에 조회할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예제 30: 네이티브 쿼리 혼용 (nativeQuery)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황:&lt;/b&gt; JPQL로 표현하기 어려운 DB 전용 함수나 힌트를 써야 할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;SQL (Native):&lt;/b&gt; &lt;code&gt;SELEC * ROM user WHERE MATCH(name, email) AGAINST (?)&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;@Query(value = &quot;SELEC * ROM user WHERE MATCH(name, email) AGAINST (:keyword)&quot;, nativeQuery = true)
List&amp;lt;User&amp;gt; findByFullText(@Param(&quot;keyword&quot;) String keyword);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;⚙️ &lt;b&gt;SQL 변환:&lt;/b&gt; 그대로 실행 (DB 종속적)&lt;/li&gt;
&lt;li&gt;✅ &lt;b&gt;결과:&lt;/b&gt; 전문 검색(Full-Text Search)에 매칭된 User 리스트&lt;/li&gt;
&lt;li&gt;  &lt;b&gt;언제 사용:&lt;/b&gt; MySQL FULLTEXT 인덱스, Oracle 힌트 등 DB 전용 기능이 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ===== 6. JPQL vs Spring Data JPA 비교 ===== --&gt;
&lt;h2 id=&quot;s6&quot; data-ke-size=&quot;size26&quot;&gt;JPQL vs Spring Data JPA 메서드 비교&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JPQL과 Spring Data JPA의 메서드 쿼리는 함께 사용됩니다. 간단한 조건은 메서드 이름으로, 복잡한 조건은 JPQL &lt;code&gt;@Query&lt;/code&gt;로 작성하는 것이 실무 표준입니다.&lt;/p&gt;
&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; 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;메서드 이름&lt;/td&gt;
&lt;td&gt;&lt;code&gt;findByName(String name)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;복합 조건 조회&lt;/td&gt;
&lt;td&gt;@Query JPQL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE ...&quot;)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DTO 변환 조회&lt;/td&gt;
&lt;td&gt;@Query JPQL + NEW&lt;/td&gt;
&lt;td&gt;&lt;code&gt;SELECT NEW dto(...) FROM ...&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DB 전용 함수&lt;/td&gt;
&lt;td&gt;nativeQuery=true&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@Query(value=&quot;...&quot;, nativeQuery=true)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;N+1 문제 해결&lt;/td&gt;
&lt;td&gt;FETCH JOIN&lt;/td&gt;
&lt;td&gt;&lt;code&gt;JOIN FETCH u.department&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;!-- ===== 7. 마치며 ===== --&gt;
&lt;h2 id=&quot;s7&quot; data-ke-size=&quot;size26&quot;&gt;마치며: JPQL 핵심 정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JPQL 30가지 예제를 통해 기본 SELECT부터 서브쿼리, FETCH JOIN까지 실무에서 자주 쓰이는 패턴을 모두 살펴봤습니다. 중요한 포인트를 다시 정리하면 아래와 같습니다.&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;N+1 해결:&lt;/b&gt; 연관 엔티티가 필요하면 반드시 &lt;code&gt;JOIN FETCH&lt;/code&gt;를 사용하세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DTO 조회:&lt;/b&gt; &lt;code&gt;SELECT NEW&lt;/code&gt; 구문으로 불필요한 데이터 로딩을 줄이세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;페이징:&lt;/b&gt; LIMIT 대신 &lt;code&gt;Pageable&lt;/code&gt;을 파라미터로 넘겨 처리하세요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;네이티브 쿼리:&lt;/b&gt; DB 전용 기능이 필요할 때만 &lt;code&gt;nativeQuery = true&lt;/code&gt;를 사용하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글이 도움이 되셨다면 즐겨찾기 해두고, Spring JPA를 사용할 때 레퍼런스로 활용해 보세요!&lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>Java</category>
      <category>JPA</category>
      <category>JPQL</category>
      <category>JPQL문법</category>
      <category>Spring</category>
      <category>SpringBoot</category>
      <category>SpringDataJPA</category>
      <category>백엔드</category>
      <category>백엔드개발</category>
      <category>자바</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/32</guid>
      <comments>https://lazip.tistory.com/entry/JPA-JPQL-%EB%AC%B8%EB%B2%95-%EC%99%84%EC%A0%84%EC%A0%95%EB%B3%B5-%EC%8B%A4%EC%A0%84-%EC%98%88%EC%A0%9C-30%EA%B0%80%EC%A7%80-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry32comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:09:47 +0900</pubDate>
    </item>
    <item>
      <title>Spring Data JPA 쿼리 작성 완벽 가이드 | Query Methods, JPQL, QueryDSL, Native SQL 총정리</title>
      <link>https://lazip.tistory.com/entry/Spring-Data-JPA-%EC%BF%BC%EB%A6%AC-%EC%9E%91%EC%84%B1-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-Query-Methods-JPQL-QueryDSL-Native-SQL-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-pm-slice=&quot;0 0 []&quot; data-id=&quot;955571c2-5d82-48a0-9d04-78e82eca8a05&quot; data-ke-size=&quot;size16&quot;&gt;JPA 쿼리는 데이터베이스에서 데이터를 조회&amp;middot;저장&amp;middot;수정&amp;middot;삭제하기 위해 사용하는 명령어를, 객체(Entity)를 기준으로 다루도록 도와주는 도구입니다. SQL처럼 보이지만 테이블이 아닌 엔티티(User)를 사용한다는 점이 핵심입니다. 이 글에서는 Query Methods부터 Native SQL까지 5가지 쿼리 작성 방법을 실습 예제와 함께 완벽하게 정리합니다.&lt;/p&gt;
&lt;h2 id=&quot;8ff2241c-b0ca-4abf-9ec0-22697f26b8f1&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;8ff2241c-b0ca-4abf-9ec0-22697f26b8f1&quot; data-id=&quot;8ff2241c-b0ca-4abf-9ec0-22697f26b8f1&quot; data-ke-size=&quot;size26&quot;&gt;1. JPA 쿼리란 무엇인가? (기초 개념)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;3a3a80d1-72bb-4aba-a213-340c5eed6e63&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2e15c028-b6b3-4f19-9ccb-f954b17b1940&quot; data-ke-size=&quot;size16&quot;&gt;JPA 쿼리는 데이터베이스에서 데이터를 조회&amp;middot;저장&amp;middot;수정&amp;middot;삭제하기 위해 사용하는 명령어를, 객체(Entity)를 기준으로 다루도록 도와주는 도구입니다. SQL처럼 보이지만, 테이블이 아니라 엔티티(User)를 사용합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;dd2ed00e-7c10-4c3b-ab57-857e3e863bf6&quot; 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-id=&quot;eb0fb21f-650d-4447-b1c9-2f313b652b89&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;b59528da-0a9a-4b55-8227-d5ea359a1ca6&quot;&gt;&lt;b&gt;SQL&lt;/b&gt;: user라는 테이블 이름을 직접 호출해서 일하는 느낌&lt;/li&gt;
&lt;li data-id=&quot;3bd20d47-e75d-4ead-bfa8-4c9312bbb4ce&quot;&gt;&lt;b&gt;JPA 쿼리&lt;/b&gt;: User라는 자바 객체(엔티티)를 부르면서 일하는 느낌&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b76aa1df-a0fd-453e-85a0-77062d3418be&quot; data-ke-size=&quot;size16&quot;&gt;즉, &quot;DB야, user 테이블에서 가져와&quot;가 아니라, &quot;JPA야, User 객체들 중에서 골라줘&quot;라고 말하는 것과 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9f7ec0d1-7516-4f32-a465-53093bbaff58&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ 실제 코드 예제 (User 엔티티 기준)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;kotlin&quot; data-id=&quot;169245f5-a912-40c8-9c53-b858a9b81f40&quot;&gt;&lt;code&gt;import jakarta.persistence.*;
import java.time.LocalDateTime;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String email;

    private LocalDateTime createdDate;

    // getters, setters 생략
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;37f5d73b-0d1d-4f32-aeb4-41464da003ab&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 언제 사용하나?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b615766c-c074-4ddd-a6d7-34b9b8fe0af9&quot; data-ke-size=&quot;size16&quot;&gt;데이터베이스에서 User 목록을 조회하거나 저장/수정/삭제가 필요할 때 항상 사용합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5e0cf9b2-49eb-47c3-ba90-0fe5731ad8f2&quot; 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-id=&quot;69876b3d-8202-4626-bac5-8d98148fd6e9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;b66949f1-befc-4818-9935-ef4af6174b12&quot;&gt;JPA를 전혀 쓰지 않는 프로젝트(MyBatis만 사용 등)에서는 사용하지 않습니다.&lt;/li&gt;
&lt;li data-id=&quot;d9ae6b9b-bf7e-4c20-aa52-20549f09a47c&quot;&gt;DB 특수 기능(예: 특정 DB만 지원하는 함수)만 써야 할 때는 Native SQL이 더 적합할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;307f186c-2fa9-4a68-9737-c2fcbd4c0b7e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;307f186c-2fa9-4a68-9737-c2fcbd4c0b7e&quot; data-id=&quot;307f186c-2fa9-4a68-9737-c2fcbd4c0b7e&quot; data-ke-size=&quot;size26&quot;&gt;2. 5가지 쿼리 방법 개요 및 언제 사용하나?&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c195d954-8f5f-4beb-b648-50f049e16213&quot; data-ke-size=&quot;size16&quot;&gt;Spring Data JPA에서 쿼리를 작성하는 대표적인 5가지 방법이 있습니다. 각 방법은 난이도와 쓰임새가 다릅니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;8ad6095b-d620-49ba-8659-4360e4870d25&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;27445837-3a4f-4281-aa9d-bf8da0693203&quot;&gt;&lt;b&gt;Query Methods&lt;/b&gt;: 메서드 이름 기반 쿼리&lt;/li&gt;
&lt;li data-id=&quot;0dcce0b3-9a0d-4df6-ace6-943c607c0daa&quot;&gt;&lt;b&gt;JPQL&lt;/b&gt;: Java Persistence Query Language&lt;/li&gt;
&lt;li data-id=&quot;f8d38df7-5bfa-4a1f-b3ca-036117ac40af&quot;&gt;&lt;b&gt;Criteria API&lt;/b&gt;: 코드로 쿼리를 조립하는 방식&lt;/li&gt;
&lt;li data-id=&quot;8603bae5-5bdf-40ec-b249-4ee314558826&quot;&gt;&lt;b&gt;QueryDSL&lt;/b&gt;: 타입 안전한 DSL 기반 쿼리&lt;/li&gt;
&lt;li data-id=&quot;c9fc062f-9b63-4b68-8f74-599a6a109406&quot;&gt;&lt;b&gt;Native SQL&lt;/b&gt;: 순수 SQL 직접 작성&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;93febd40-ad26-4e6a-810d-01a104a7b5e5&quot; 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-id=&quot;040f2026-68d6-4d25-8e97-f2712cad498b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e400c38b-e8c1-471d-93ad-c0b4e28e2994&quot;&gt;&lt;b&gt;Query Methods&lt;/b&gt;: &quot;치킨 주문&quot;할 때 메뉴판 번호만 말하는 것 &amp;rarr; &quot;1번 세트 주세요&quot;처럼 간단한 주문&lt;/li&gt;
&lt;li data-id=&quot;aa5375b8-5d3d-4bcc-90d7-7bb1061574c0&quot;&gt;&lt;b&gt;JPQL&lt;/b&gt;: 직접 레시피를 글로 쓰는 것 &amp;rarr; &quot;닭에 양념 바르고 180도에 20분 구워줘&quot; 같은 문장 쿼리&lt;/li&gt;
&lt;li data-id=&quot;40cd0d93-60ac-4d3a-95a4-8247d5bb811e&quot;&gt;&lt;b&gt;Criteria API&lt;/b&gt;: 레고 블록으로 요리를 만드는 느낌 &amp;rarr; 코드로 쿼리를 조합&lt;/li&gt;
&lt;li data-id=&quot;5ab7cd86-ce36-499c-af6b-f2c0ad6cb1fe&quot;&gt;&lt;b&gt;QueryDSL&lt;/b&gt;: Criteria보다 똑똑한 레고 세트 &amp;rarr; 타입 안전 + 자동완성 지원&lt;/li&gt;
&lt;li data-id=&quot;9a328bad-bca3-4442-beb3-7ca9ea925ed9&quot;&gt;&lt;b&gt;Native SQL&lt;/b&gt;: 아예 주방에 들어가서 직접 요리를 하는 것 &amp;rarr; 순수 SQL 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a3cb8ef0-5500-4086-8548-189a1f76c45d&quot; 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-id=&quot;5dd5fcd5-6db1-492a-bbc6-1f091f37fffb&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;98696f54-4d2e-4cd5-a720-543c9ec61eef&quot;&gt;&lt;b&gt;Query Methods&lt;/b&gt;: 간단한 조건 검색, CRUD, 빠른 개발&lt;/li&gt;
&lt;li data-id=&quot;2221e99b-8758-49b6-86d5-c9501cac3287&quot;&gt;&lt;b&gt;JPQL&lt;/b&gt;: 조인, 그룹핑, 집계 등 중간 이상 복잡도 쿼리&lt;/li&gt;
&lt;li data-id=&quot;13d05b01-c139-4744-b425-bac0d45379de&quot;&gt;&lt;b&gt;Criteria API&lt;/b&gt;: 화면 검색 조건에 따라 동적으로 쿼리가 계속 바뀔 때&lt;/li&gt;
&lt;li data-id=&quot;db1bb38c-56aa-4d02-bc13-935867dfeeda&quot;&gt;&lt;b&gt;QueryDSL&lt;/b&gt;: 실무에서 복잡한 동적 쿼리를 많이 쓸 때 최강&lt;/li&gt;
&lt;li data-id=&quot;ae74efd9-4fc7-4ec4-895d-a26854f6e960&quot;&gt;&lt;b&gt;Native SQL&lt;/b&gt;: JPA로 표현하기 어려운 특수한 SQL, 성능 최적화가 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7333b724-afd3-41b6-9e26-ac301c75ee45&quot; 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-id=&quot;4db6e98f-2767-42d2-8d03-f0710b46dc8e&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;5a808672-c239-441e-b845-429e46ac8dfe&quot;&gt;간단한 쿼리를 Native SQL로 다 써버리기 &amp;rarr; 유지보수 지옥&lt;/li&gt;
&lt;li data-id=&quot;19d6f958-e380-477c-a7c4-2286761fd25f&quot;&gt;동적 쿼리가 많은데 JPQL 문자 조합만 쓰기 &amp;rarr; 코드 난장판&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;5272a7ce-42f6-4b69-86d5-a24902c2ddb4&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;5272a7ce-42f6-4b69-86d5-a24902c2ddb4&quot; data-id=&quot;5272a7ce-42f6-4b69-86d5-a24902c2ddb4&quot; data-ke-size=&quot;size26&quot;&gt;3. JPQL 완전 정복&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5c29643e-0a0c-4fb4-a6c6-9431807a3c43&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4c947da0-e7ba-4247-8bfd-83a33f2cb0b5&quot; data-ke-size=&quot;size16&quot;&gt;JPQL(Java Persistence Query Language)은 엔티티를 기준으로 작성하는 쿼리 언어입니다. SQL과 문법이 비슷하지만, 테이블 이름이 아니라 엔티티 이름(User)을 사용합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c0ecf367-0f39-4575-9350-aad3b5b2854f&quot; 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-id=&quot;47c64a96-c43d-4e0b-acf8-871833ac61bf&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;64743de2-d0f9-463d-820b-e89e65f71f21&quot;&gt;&lt;b&gt;SQL&lt;/b&gt;: SELECT * FROM user WHERE name = '홍길동'&lt;/li&gt;
&lt;li data-id=&quot;e96fbd05-0c61-4723-bd7b-6f2967ac27f6&quot;&gt;&lt;b&gt;JPQL&lt;/b&gt;: SELECT u FROM User u WHERE u.name = '홍길동'&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8dcc7ede-b482-4f5e-ba9f-e1a392c1b8c8&quot; data-ke-size=&quot;size16&quot;&gt;즉, user 테이블이 아니라 User 엔티티를 대상으로 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f14a87be-69c3-4901-a8b8-98b0e371dff2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ 기본 JPQL 문법 예시&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;dart&quot; data-id=&quot;84a47372-85fa-4d24-b5ed-cacadd222d90&quot;&gt;&lt;code&gt;// Repository 예시
public interface UserRepository extends JpaRepository&amp;lt;User, Long&amp;gt; {

    // 이름이 정확히 일치하는 사용자 조회
    @Query(&quot;SELECT u FROM User u WHERE u.name = :name&quot;)
    List&amp;lt;User&amp;gt; findByNameUsingJpql(@Param(&quot;name&quot;) String name);
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;156f36f6-d81c-4556-a20f-a512f44c0b00&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;1ffb2d44-2952-4a51-b85f-330eeb789708&quot;&gt;SELECT u FROM User u: User 엔티티를 u라는 별칭으로 조회&lt;/li&gt;
&lt;li data-id=&quot;8577da05-01d7-481d-b4fa-f8d1ae245ad2&quot;&gt;WHERE u.name = :name: u의 name 필드가 파라미터 :name과 같은 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7d745d42-a935-4f29-81bb-90f92bca9201&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ 실습 예제 5개&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e6bb2b71-c433-4238-bc46-c4edf71810f3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 1: 이름으로 부분 검색 (LIKE)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;ec9656ea-e52c-43b0-b6d7-a4daa798e840&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u WHERE u.name LIKE %:name%&quot;)
List&amp;lt;User&amp;gt; findByNameContainingJpql(@Param(&quot;name&quot;) String name);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fee1c08f-8ff6-4c39-aace-5a3132fd7130&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 2: 날짜 범위 검색 (BETWEEN)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;63f9f083-d284-418d-bab3-d543fd6a8f74&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u &quot; +
       &quot;WHERE u.createdDate BETWEEN :start AND :end&quot;)
List&amp;lt;User&amp;gt; findByCreatedDateBetweenJpql(
        @Param(&quot;start&quot;) LocalDateTime start,
        @Param(&quot;end&quot;) LocalDateTime end
);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;043f1164-f060-4aac-9ec4-8bb42efb626f&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 3: 여러 조건 (AND)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;ab63ce9c-4ef4-412b-91f6-2c9c2d38db74&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u &quot; +
       &quot;WHERE u.name = :name AND u.email = :email&quot;)
Optional&amp;lt;User&amp;gt; findByNameAndEmailJpql(
        @Param(&quot;name&quot;) String name,
        @Param(&quot;email&quot;) String email
);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7b04dd9b-38eb-4498-898b-abc179a56945&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 4: 정렬해서 상위 N개 조회&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot; data-id=&quot;639979c8-2ac3-40c6-adab-59c3d74662d8&quot;&gt;&lt;code&gt;@Query(&quot;SELECT u FROM User u ORDER BY u.createdDate DESC&quot;)
List&amp;lt;User&amp;gt; findRecentUsersJpql(Pageable pageable);

// 사용 예시
PageRequest.of(0, 10); // 최근 10명&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;3ea2b292-4197-434a-98d8-0bc8b1526eb7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 5: 개수 세기 (COUNT)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;n1ql&quot; data-id=&quot;45ef3f6f-d4d0-4102-a0ca-94b8c892bcf0&quot;&gt;&lt;code&gt;@Query(&quot;SELECT COUNT(u) FROM User u WHERE u.email IS NOT NULL&quot;)
Long countUsersHasEmail();&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;62df71d3-c644-4bc3-a832-311b6af578a8&quot; data-ke-size=&quot;size16&quot;&gt;여기까지 이해했다면, SELECT / FROM / WHERE / ORDER BY 구조는 SQL과 거의 같고, 테이블 대신 엔티티, 컬럼 대신 필드명을 쓴다는 것만 기억하면 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;60ea8526-0714-4d7d-acbc-552523a76dd1&quot; 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-id=&quot;8aecdeb4-7c78-4eff-a451-e9e6c5391aaa&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;6c54b297-7c70-453a-a0c8-7ab75e2f796b&quot;&gt;SQL과 비슷해서 입문 난이도가 낮음&lt;/li&gt;
&lt;li data-id=&quot;7947dd89-c91b-4fad-9589-15b5246fc2e0&quot;&gt;엔티티 기준이라 객체지향 코드와 잘 어울림&lt;/li&gt;
&lt;li data-id=&quot;0eae413b-4fa9-415c-bb09-be71cf975fba&quot;&gt;여러 DB 벤더(MySQL, PostgreSQL 등)에 이식성이 좋음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4be1fa08-9ee5-4757-9001-b57fd2e03e14&quot; 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-id=&quot;a988e715-babf-4c35-83b1-6e82bc134383&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;b78f985e-cf8e-47e5-a93f-26c4ea89af5d&quot;&gt;문자열로 작성하므로, 오타를 컴파일 타임에 잡기 어려움&lt;/li&gt;
&lt;li data-id=&quot;2c097e53-049f-4555-94ec-103727f36aee&quot;&gt;동적 쿼리(조건이 늘었다 줄었다)는 코드가 지저분해짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4608aab1-b759-4bad-88c8-8caf0a2976d1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 언제 사용하나?&lt;/b&gt; 어느 정도 복잡한 고정 쿼리(조인, 집계, 그룹핑 등)가 필요할 때 적합합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;eaaa8593-a633-4a9e-b45a-c2e383abfbe5&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 피해야 할 경우&lt;/b&gt;: 화면에 체크박스/검색 조건이 많아서 조건이 자주 바뀌는 검색 쿼리를 만들 때 (이때는 QueryDSL이 더 좋습니다).&lt;/p&gt;
&lt;h2 id=&quot;1f4d5ce2-32bb-45fb-8cd4-ac59e782be7e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;1f4d5ce2-32bb-45fb-8cd4-ac59e782be7e&quot; data-id=&quot;1f4d5ce2-32bb-45fb-8cd4-ac59e782be7e&quot; data-ke-size=&quot;size26&quot;&gt;4. Query Methods (메서드 이름 쿼리)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f0a3c76c-9215-4c30-b962-1f1af209bca6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8ca65576-5550-4b6c-8e86-e6de7ce8dac6&quot; data-ke-size=&quot;size16&quot;&gt;Query Methods는 메서드 이름만으로 쿼리를 자동 생성하는 기능입니다. findBy + 필드명 + 키워드 형태로 쓰면 Spring Data JPA가 알아서 SQL을 만들어 줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d024b043-76bd-4fe7-8831-203f3c96a3a5&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  쉬운 비유 설명&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a3860a4a-ec04-4e66-bec6-66e535608df3&quot; data-ke-size=&quot;size16&quot;&gt;메서드 이름이 곧 주문서입니다. findByName이라고 쓰면, 스프링이 &quot;아~ name으로 찾으라는 거구나&quot;라고 알아듣고 쿼리를 만들어 줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;17a2e80e-4b1d-41d9-a182-f1358a915910&quot; 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-id=&quot;0708e616-9308-45b0-ab50-2f3ebf86271c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;c96f0928-03d0-4a98-a4c6-37d5e7f05706&quot;&gt;&lt;b&gt;논리 연산&lt;/b&gt;: And, Or&lt;/li&gt;
&lt;li data-id=&quot;d7251f1a-0a6f-428b-ad42-044262464705&quot;&gt;&lt;b&gt;범위 비교&lt;/b&gt;: Between, LessThan, GreaterThanEqual&lt;/li&gt;
&lt;li data-id=&quot;d8dddcec-337d-426e-9015-599cf7341947&quot;&gt;&lt;b&gt;문자열 검색&lt;/b&gt;: Like, Containing, StartsWith, EndsWith&lt;/li&gt;
&lt;li data-id=&quot;e4210f3e-c3ba-439f-b30b-fa3dc7efda75&quot;&gt;&lt;b&gt;NULL 체크&lt;/b&gt;: IsNull, IsNotNull&lt;/li&gt;
&lt;li data-id=&quot;cd566777-2610-4eb7-b9da-a607908c3877&quot;&gt;&lt;b&gt;목록 포함 여부&lt;/b&gt;: In, NotIn&lt;/li&gt;
&lt;li data-id=&quot;4bbb18ae-2fad-4af4-9b84-6e650bcd2632&quot;&gt;&lt;b&gt;정렬&lt;/b&gt;: OrderBy필드Asc, OrderBy필드Desc&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;024a6bd5-e32b-4f1c-af11-d283d801a629&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ 실습 예제 10개&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot; data-id=&quot;710e931c-75fe-446c-b769-ed9fbb1fb9ba&quot;&gt;&lt;code&gt;public interface UserRepository extends JpaRepository&amp;lt;User, Long&amp;gt; {

    // 1. 이름이 정확히 같은 사용자 찾기
    List&amp;lt;User&amp;gt; findByName(String name);

    // 2. 이름에 특정 문자열이 포함된 사용자 (LIKE %keyword%)
    List&amp;lt;User&amp;gt; findByNameContaining(String keyword);

    // 3. 이름이 A 이고 이메일이 B 인 사용자
    Optional&amp;lt;User&amp;gt; findByNameAndEmail(String name, String email);

    // 4. 이름이 A 이거나 이메일이 B 인 사용자
    List&amp;lt;User&amp;gt; findByNameOrEmail(String name, String email);

    // 5. id가 특정 값보다 큰 사용자
    List&amp;lt;User&amp;gt; findByIdGreaterThan(Long id);

    // 6. 생성일이 특정 기간 사이인 사용자
    List&amp;lt;User&amp;gt; findByCreatedDateBetween(LocalDateTime start, LocalDateTime end);

    // 7. 이메일이 없는 사용자 (NULL)
    List&amp;lt;User&amp;gt; findByEmailIsNull();

    // 8. 이름으로 찾되, 생성일 내림차순 정렬
    List&amp;lt;User&amp;gt; findByNameOrderByCreatedDateDesc(String name);

    // 9. 이름으로 찾되, 상위 1명만 조회
    Optional&amp;lt;User&amp;gt; findFirstByNameOrderByCreatedDateDesc(String name);

    // 10. 중복 제거 후 이메일로 찾기 (DISTINCT)
    List&amp;lt;User&amp;gt; findDistinctByEmail(String email);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;0d9e899d-5f1f-4e7e-892a-905cee19b09b&quot; 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-id=&quot;10dc1c96-cdce-413b-ad89-010062fac2ad&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;8641c1e9-e52a-4d00-826d-4425a8a724f0&quot;&gt;단순 검색 조건(1~3개 정도)일 때&lt;/li&gt;
&lt;li data-id=&quot;8cf04c0f-4369-46fd-ac42-2fc14448fdcd&quot;&gt;빠르게 CRUD 기능을 만들고 싶을 때&lt;/li&gt;
&lt;li data-id=&quot;d48b74f0-5c68-4eca-a450-467a967a3f4e&quot;&gt;쿼리 문법이 아직 익숙하지 않은 초보자 단계에서 스타트용으로 아주 좋음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9ec19941-df54-4d9e-8aaa-3b7e43f5c21a&quot; 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-id=&quot;da2e37ae-fbb1-4129-930b-c5c208d2287b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;d6b07e53-c6eb-483c-aa3e-11c5a3ea3929&quot;&gt;메서드 이름이 너무 길어질 정도로 조건이 복잡할 때 (예: findByNameAndEmailAndCreatedDateBetweenAndStatus...처럼 이름이 괴물이 될 때)&lt;/li&gt;
&lt;li data-id=&quot;ddcb1fa7-1b94-44ff-ac60-04e1e5d60715&quot;&gt;조인, 서브쿼리, 복잡한 그룹핑이 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e594c423-e87b-4bf2-b7f2-631c340d2a94&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  한계 정리&lt;/b&gt;: 복잡한 SQL을 표현하기 어렵고, 조건이 조금만 복잡해져도 메서드 이름이 기괴해집니다. &lt;b&gt;간단한 것은 Query Methods, 조금만 복잡해지면 JPQL 또는 QueryDSL&lt;/b&gt;로 넘어가는 것이 좋습니다.&lt;/p&gt;
&lt;h2 id=&quot;0a442d25-31b0-4605-a1c3-853c946e207d&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;0a442d25-31b0-4605-a1c3-853c946e207d&quot; data-id=&quot;0a442d25-31b0-4605-a1c3-853c946e207d&quot; data-ke-size=&quot;size26&quot;&gt;5. Criteria API&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;715edc7b-523b-493a-b230-d19e182c483f&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d74da6c1-4420-45c6-ab92-7d1eaa388fcd&quot; data-ke-size=&quot;size16&quot;&gt;Criteria API는 코드(자바 문법)로 쿼리를 조립하는 방식입니다. 문자열이 아니라, CriteriaBuilder, CriteriaQuery, Root 등을 사용해 쿼리를 만듭니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1d9f5dc0-ba07-4771-821b-fbd6861623ff&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  쉬운 비유 설명&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2d007bb9-3f90-4584-9620-c2b547b3d7f2&quot; data-ke-size=&quot;size16&quot;&gt;JPQL이 &quot;문장으로 설명&quot;이라면, Criteria API는 &quot;레고 블럭으로 조립&quot;입니다. if 문으로 조건을 추가/삭제하기 쉬워서 동적 쿼리에 적합하지만, 코드가 길고 장황해집니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8926401e-b8fa-4516-9977-78df25b29149&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ 단계별 실습 예제&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;dffdc032-70c7-4992-988b-3028fc943fcf&quot; data-ke-size=&quot;size16&quot;&gt;아래 예제는 이름과 이메일을 조건으로, 필요한 것만 동적으로 붙이는 예시입니다.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot; data-id=&quot;cfdeb742-8cac-4fac-9e03-9e2344294c79&quot;&gt;&lt;code&gt;import jakarta.persistence.*;
import jakarta.persistence.criteria.*;

@Repository
public class UserCriteriaRepository {

    @PersistenceContext
    private EntityManager em;

    public List&amp;lt;User&amp;gt; search(String name, String email) {
        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery&amp;lt;User&amp;gt; cq = cb.createQuery(User.class);

        Root&amp;lt;User&amp;gt; user = cq.from(User.class);

        List&amp;lt;Predicate&amp;gt; predicates = new ArrayList&amp;lt;&amp;gt;();

        // 이름 조건이 있을 때만 추가
        if (name != null &amp;amp;&amp;amp; !name.isBlank()) {
            predicates.add(cb.like(user.get(&quot;name&quot;), &quot;%&quot; + name + &quot;%&quot;));
        }

        // 이메일 조건이 있을 때만 추가
        if (email != null &amp;amp;&amp;amp; !email.isBlank()) {
            predicates.add(cb.equal(user.get(&quot;email&quot;), email));
        }

        // 조건 합치기
        cq.where(predicates.toArray(new Predicate[0]));

        return em.createQuery(cq).getResultList();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;cdd02769-c8e8-47fd-baf2-f4b0f4840532&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단계별 설명&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;1ba2eb63-e6af-4b2a-ad2d-c84076fc7f28&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;b24dbcbf-35fc-41ad-8756-05f5172f9ee4&quot;&gt;CriteriaBuilder cb = em.getCriteriaBuilder();: 빌더 꺼내기&lt;/li&gt;
&lt;li data-id=&quot;162425de-2384-4432-a6b9-5100b8c92950&quot;&gt;CriteriaQuery&amp;lt;User&amp;gt; cq = cb.createQuery(User.class);: User를 조회하는 쿼리 객체 생성&lt;/li&gt;
&lt;li data-id=&quot;b0867cd4-80cf-422c-9e86-089825cb335d&quot;&gt;Root&amp;lt;User&amp;gt; user = cq.from(User.class);: FROM User user와 같은 느낌&lt;/li&gt;
&lt;li data-id=&quot;cdeaa11a-6b34-4cc7-b4de-83de0dcfb18f&quot;&gt;Predicate 리스트에 조건을 하나씩 추가&lt;/li&gt;
&lt;li data-id=&quot;5b7c3a8b-b9a7-463e-a3df-e332560ce787&quot;&gt;마지막에 cq.where(...)로 조건들을 한 번에 적용&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;6f08011e-a37e-4c8c-b491-2ccfb4a3bfed&quot; 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-id=&quot;4ffbc76c-a3ec-4e3c-8a21-23feb4b3cff6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;67f6445b-8c5b-45a7-98bd-db2f720d99a4&quot;&gt;검색 화면에서 체크박스, 드롭다운 등으로 조건이 유동적으로 변할 때&lt;/li&gt;
&lt;li data-id=&quot;8f62f166-7bc0-4b12-8956-16e0f503f2a4&quot;&gt;런타임에 조건이 바뀌는 경우(예: 검색 옵션 여러 개)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b754a67b-e3a5-42fa-bc83-a16f32b0068c&quot; 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-id=&quot;fe5a21c3-42fb-4c15-9372-2b1564e8e932&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;d8a16948-e402-4c11-9d9f-dbbfd73ba214&quot;&gt;쿼리가 단순한데 Criteria를 쓰면 코드가 너무 길어져서 손해&lt;/li&gt;
&lt;li data-id=&quot;f1dd3c80-71ab-4bef-b9bc-625b202f2cf1&quot;&gt;실무에서는 대부분 Criteria 대신 QueryDSL을 더 선호&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c9413c38-e90c-4a1d-9052-0b7d74f0e13b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  장황함 해결법&lt;/b&gt;: 메서드 분리로 조건별로 작은 메서드로 쪼개거나, Spring Data JPA의 Specification 인터페이스를 활용해 재사용 가능한 조건을 만들 수 있습니다. 하지만 가장 실무적인 해결책은 QueryDSL로 넘어가는 것입니다.&lt;/p&gt;
&lt;h2 id=&quot;91d13a32-50ad-4739-a485-ac640d6334f9&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;91d13a32-50ad-4739-a485-ac640d6334f9&quot; data-id=&quot;91d13a32-50ad-4739-a485-ac640d6334f9&quot; data-ke-size=&quot;size26&quot;&gt;6. QueryDSL (실무 최강자)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c9cbb105-a687-447c-93df-4476caad885b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;77d074f0-2ba7-41c2-ac55-8384a06f49b1&quot; data-ke-size=&quot;size16&quot;&gt;QueryDSL은 타입 안전한(컴파일 시점에 검증되는) 쿼리 DSL(Domain Specific Language)입니다. 엔티티를 기준으로 QUser 같은 클래스를 자동 생성해서, 메서드 체인(Fluent API)으로 쿼리를 작성합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e995c118-596b-4c23-9bbc-30fd604cfdcd&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  쉬운 비유 설명&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8e472e26-2d55-447e-aabd-04c71f94c5ea&quot; data-ke-size=&quot;size16&quot;&gt;Criteria API가 레고 블럭이라면, QueryDSL은 &quot;자동완성 되는 스마트 레고&quot;입니다. user.name.eq(&quot;홍길동&quot;)처럼, 필드명을 타이핑할 때 IDE가 자동완성을 도와줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fe4848e3-d572-4966-9453-e3e2b1771b8a&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ Gradle 설정 예시&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;nginx&quot; data-id=&quot;b9ed7e93-96f0-4f74-85b8-b67f0d3e18b5&quot;&gt;&lt;code&gt;dependencies {
    implementation &quot;com.querydsl:querydsl-jpa:5.0.0&quot;
    annotationProcessor &quot;com.querydsl:querydsl-apt:5.0.0:jpa&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2db4991c-521b-44db-b695-0bea12a17066&quot; data-ke-size=&quot;size16&quot;&gt;QueryDSL을 설정하면 User 엔티티 기준으로 다음과 같은 클래스가 자동 생성됩니다.&lt;/p&gt;
&lt;pre class=&quot;scala&quot; data-id=&quot;6a92b7bd-78b9-4ced-a284-556bf4be2587&quot;&gt;&lt;code&gt;// 자동 생성 (수동 작성 금지)
public class QUser extends EntityPathBase&amp;lt;User&amp;gt; {
    public static final QUser user = new QUser(&quot;user&quot;);

    public final StringPath name = createString(&quot;name&quot;);
    public final StringPath email = createString(&quot;email&quot;);
    public final DateTimePath&amp;lt;LocalDateTime&amp;gt; createdDate = createDateTime(&quot;createdDate&quot;, LocalDateTime.class);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1ab534b4-e4ab-43e3-aa97-1882bf1ae9fc&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ Fluent API 실습 예제&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;74a67187-10d0-4533-9f6c-5c9d269b8696&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 1: 이름으로 검색&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot; data-id=&quot;d42040f9-952d-4458-9f7e-6a8d3dd767a9&quot;&gt;&lt;code&gt;import com.querydsl.jpa.impl.JPAQueryFactory;
import static com.example.demo.domain.QUser.user;

@Repository
public class UserQuerydslRepository {

    private final JPAQueryFactory queryFactory;

    public UserQuerydslRepository(JPAQueryFactory queryFactory) {
        this.queryFactory = queryFactory;
    }

    public List&amp;lt;User&amp;gt; findByName(String name) {
        return queryFactory
                .selectFrom(user)
                .where(user.name.eq(name))
                .fetch();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7511b440-8b41-4d69-bad6-232cfed0d239&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 2: 동적 검색 (이름, 이메일 옵션)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot; data-id=&quot;f5b6d389-3ce4-4c7e-a65e-628401919791&quot;&gt;&lt;code&gt;public List&amp;lt;User&amp;gt; search(String name, String email) {
    BooleanBuilder builder = new BooleanBuilder();

    if (name != null &amp;amp;&amp;amp; !name.isBlank()) {
        builder.and(user.name.contains(name));
    }

    if (email != null &amp;amp;&amp;amp; !email.isBlank()) {
        builder.and(user.email.eq(email));
    }

    return queryFactory
            .selectFrom(user)
            .where(builder)
            .fetch();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ef52dfb1-adb4-47a5-bb9c-2e4785d7eca3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예제 3: 정렬 + 페이징&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot; data-id=&quot;0cb9a417-7c5a-4eaa-a579-b09bdb9ac623&quot;&gt;&lt;code&gt;public List&amp;lt;User&amp;gt; findRecentUsers(int page, int size) {
    return queryFactory
            .selectFrom(user)
            .orderBy(user.createdDate.desc())
            .offset((long) page * size)
            .limit(size)
            .fetch();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;34c14e02-14f7-4ef3-95f2-f9fa1836291c&quot; 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-id=&quot;8630effc-c17a-4456-bf9f-0cd23e2c0bb9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;fc675b76-d8cd-412d-9a49-25f8e6b9fb7b&quot;&gt;동적 검색 조건이 많은 페이지(검색 화면, 필터링이 많은 리스트 화면 등)&lt;/li&gt;
&lt;li data-id=&quot;c14c2428-6bc8-42f2-9b73-7232b9880171&quot;&gt;협업이 많고, 장기 프로젝트에서 가독성 + 유지보수성이 중요한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4e751e49-2745-4913-9a1a-789dadeec933&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 피해야 할 경우&lt;/b&gt;: 아주 작은 프로젝트나 간단한 CRUD만 필요한 토이 프로젝트(설정 비용이 아까울 수 있음)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;14d0e1d8-fa73-47dc-b1ed-99ebbb397f9e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  Criteria API vs QueryDSL 비교&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 75.814%;&quot; border=&quot;1&quot; data-id=&quot;533bb362-6855-4770-b012-9cdc3ea01535&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot;&gt;&lt;b&gt;&lt;span&gt;항목&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot;&gt;&lt;b&gt;&lt;span&gt; Criteria API &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot;&gt;&lt;b&gt;&lt;span&gt; QueryDSL &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;314b7a87-d9ba-41a1-a0aa-1fa3b626697a&quot;&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot; data-id=&quot;42941805-1a9a-4587-964d-355b5dd89fe3&quot;&gt;&lt;span&gt;코드 길이&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot; data-id=&quot;45f76426-6dfb-41f6-ba41-50dea0ddd396&quot;&gt;&lt;span&gt;매우 김&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot; data-id=&quot;a2d8e638-ffc5-48b0-999b-7f2672a1f28d&quot;&gt;&lt;span&gt;상대적으로 짧음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;564fcd62-67cb-4db4-a9db-e04ab1b41acb&quot;&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot; data-id=&quot;6dc5c902-695e-4c90-b384-411ed3c5b4e6&quot;&gt;&lt;span&gt;타입 안전성&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot; data-id=&quot;0cea702e-3f15-4f15-9fe9-af32d357c809&quot;&gt;&lt;span&gt;있음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot; data-id=&quot;d8f24371-3f6d-4d75-8d58-91235166363f&quot;&gt;&lt;span&gt;있음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;08bcea9f-2bc9-4a3c-be86-ca2802658d5d&quot;&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot; data-id=&quot;ee658add-8449-4957-8a3a-fc76d9c9b5d1&quot;&gt;&lt;span&gt;가독성&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot; data-id=&quot;b4773d34-32d3-4b11-9b04-7c70b52af209&quot;&gt;&lt;span&gt;낮음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot; data-id=&quot;c5054920-86e1-4a22-b101-240832fc32e3&quot;&gt;&lt;span&gt;높음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8222f4ac-9aae-4059-8433-a2332efbfd2c&quot;&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot; data-id=&quot;8c7e32eb-9557-4b3b-b9b4-98eeab6bbd22&quot;&gt;&lt;span&gt;IDE 자동완성&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot; data-id=&quot;a6a9b3c0-8fdf-4714-9b50-5ed1373d47fa&quot;&gt;&lt;span&gt;제한적&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot; data-id=&quot;b3783bae-99c5-4299-9f63-5fe340cebef8&quot;&gt;&lt;span&gt;매우 좋음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;11daf5eb-a21a-47d5-ace6-6681da3c3f02&quot;&gt;
&lt;td style=&quot;text-align: center; width: 23.4884%;&quot; data-id=&quot;2f689c89-bf89-46ad-b7c1-7db823767f0d&quot;&gt;&lt;span&gt;실무 사용 빈도&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.7675%;&quot; data-id=&quot;59981c88-8fba-4447-8748-5dff09b4b2b7&quot;&gt;&lt;span&gt;낮음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.4419%;&quot; data-id=&quot;81eede7c-2241-494b-b9d7-2942e9eccee7&quot;&gt;&lt;span&gt;높음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;cf93004b-f2eb-47d8-a458-cec61c939947&quot; data-ke-size=&quot;size16&quot;&gt;실무에서는 Criteria API 대신 QueryDSL을 사용하는 경우가 훨씬 많습니다.&lt;/p&gt;
&lt;h2 id=&quot;4a31ba88-f034-4399-a224-ff6b02052a08&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;4a31ba88-f034-4399-a224-ff6b02052a08&quot; data-id=&quot;4a31ba88-f034-4399-a224-ff6b02052a08&quot; data-ke-size=&quot;size26&quot;&gt;7. Native SQL&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;63f9ad77-867a-4ae4-b82f-7cc632212e52&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;75e25341-3403-40a1-b7bf-46191413bf8b&quot; data-ke-size=&quot;size16&quot;&gt;Native SQL은 JPA가 제공하는 추상화 계층을 넘어서, DB에 직접 SQL을 날리는 방식입니다. @Query(nativeQuery = true)를 사용해 순수 SQL을 그대로 작성합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;cb9612b4-2c07-4282-a7db-086216cd1f2a&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  쉬운 비유 설명&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1175e106-eebc-4072-8a0d-549e5691961f&quot; data-ke-size=&quot;size16&quot;&gt;지금까지는 번역가(JPA)가 대신 말해줬다면, Native SQL은 번역가 없이 직접 외국어(DB 언어)를 쓰는 것입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d1303866-d7a5-48a7-9946-d2ee24b9e60d&quot; 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-id=&quot;7038470b-dc98-46f7-8048-43eb8a70b789&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;b19ccc32-b80c-4243-b53b-148c602bfd80&quot;&gt;JPA/JPQL로 표현하기 어려운 복잡한 SQL이 필요할 때&lt;/li&gt;
&lt;li data-id=&quot;924f299a-fd72-4cf5-9387-73443c7bd45c&quot;&gt;DB 전용 함수, 윈도우 함수, FULL TEXT SEARCH 등 특수 기능을 사용할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b19c6bbe-189b-4b1e-94eb-19d0bfa2e771&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 피해야 할 경우&lt;/b&gt;: 단순 조회/저장까지 전부 Native로 처리하면 JPA의 장점을 거의 버리는 것과 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5de2be57-bb67-4d0c-a3c4-895ecc332fc4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ️ @Query 작성법&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;dart&quot; data-id=&quot;e15b305b-9595-435c-8dea-0ccb3c6bbec6&quot;&gt;&lt;code&gt;public interface UserRepository extends JpaRepository&amp;lt;User, Long&amp;gt; {

    // 1. 이름으로 검색 (Native SQL)
    @Query(value = &quot;SELECT * FROM user WHERE name = :name&quot;, nativeQuery = true)
    List&amp;lt;User&amp;gt; findByNameNative(@Param(&quot;name&quot;) String name);

    // 2. 날짜 범위 + 정렬
    @Query(value = &quot;SELECT * FROM user &quot; +
                   &quot;WHERE created_date BETWEEN :start AND :end &quot; +
                   &quot;ORDER BY created_date DESC&quot;,
           nativeQuery = true)
    List&amp;lt;User&amp;gt; findByCreatedDateBetweenNative(
            @Param(&quot;start&quot;) LocalDateTime start,
            @Param(&quot;end&quot;) LocalDateTime end
    );

    // 3. 개수 세기
    @Query(value = &quot;SELECT COUNT(*) FROM user WHERE email IS NOT NULL&quot;, nativeQuery = true)
    Long countUsersHasEmailNative();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;be0c1c21-1240-47e7-9fa6-a4b1cfb0fb3e&quot; 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-id=&quot;29d0847b-ba20-44c4-a190-b19804192186&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e61af917-9dc7-4a56-858f-edab0d6a7efb&quot;&gt;테이블 이름, 컬럼 이름을 직접 써야 하므로, 엔티티 변경 시 SQL도 같이 고쳐야 합니다.&lt;/li&gt;
&lt;li data-id=&quot;b26efe1c-521d-4653-9b81-58b5d136a95c&quot;&gt;DB 종류를 바꾸면 SQL 문법 차이로 쿼리가 그대로 동작하지 않을 수 있습니다.&lt;/li&gt;
&lt;li data-id=&quot;f3f306c1-2eda-49cb-8dd2-61ff41888443&quot;&gt;프로젝트 전체의 10~20% 정도, 꼭 필요할 때만 제한적으로 사용하는 것이 좋습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;211c3f96-6a18-4f7d-9442-eabbdd9ec537&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;211c3f96-6a18-4f7d-9442-eabbdd9ec537&quot; data-id=&quot;211c3f96-6a18-4f7d-9442-eabbdd9ec537&quot; data-ke-size=&quot;size26&quot;&gt;8. 5가지 방법 완벽 비교표&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;45a5330e-ec23-40c0-8475-9ee8a3a146a6&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 16.1628%;&quot;&gt;&lt;b&gt;방법&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 12.5581%;&quot;&gt;&lt;b&gt;난이도&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 17.093%;&quot;&gt;&lt;b&gt;동적쿼리 지원&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 14.4187%;&quot;&gt;&lt;b&gt;성능&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 12.907%;&quot;&gt;&lt;b&gt;실무 사용도&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 26.8604%;&quot;&gt;&lt;b&gt;특징 요약&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;ec049c4c-603c-45c6-9363-1ebed2eff981&quot;&gt;
&lt;td style=&quot;width: 16.1628%;&quot; data-id=&quot;d6614d0d-3e37-43f1-aedf-269aec32c33e&quot;&gt;&lt;span&gt;&lt;b&gt;Query Methods&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot; data-id=&quot;c491e2b0-3078-40df-944b-7b650c461f43&quot;&gt;&lt;span&gt;매우 쉬움&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.093%;&quot; data-id=&quot;23305ee3-c456-4a37-9edb-c224bf2017ac&quot;&gt;&lt;span&gt;거의 없음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.4187%;&quot; data-id=&quot;d3bd6c39-b169-4d32-a728-20ce79e1784a&quot;&gt;&lt;span&gt;좋음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot; data-id=&quot;6a59bf6a-5515-47f5-9ed6-f0936d585726&quot;&gt;&lt;span&gt;매우 높음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.8604%;&quot; data-id=&quot;5656f471-6385-4b8a-b20b-980b871c7a50&quot;&gt;&lt;span&gt;메서드 이름만으로 쿼리 자동 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;09fb0607-8a6e-477c-9a92-cf8d6418caf5&quot;&gt;
&lt;td style=&quot;width: 16.1628%;&quot; data-id=&quot;c9d37b71-6c02-427b-abd3-5bb93fdbdb92&quot;&gt;&lt;span&gt;&lt;b&gt;JPQL&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot; data-id=&quot;82f3774e-bd7e-4428-83bd-7512dce0e595&quot;&gt;&lt;span&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.093%;&quot; data-id=&quot;0fc78a26-7536-4230-88b9-06eb7f0ebe7b&quot;&gt;&lt;span&gt;문자열 조합으로 가능(불편)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.4187%;&quot; data-id=&quot;9ec4a047-9d7c-4820-bc34-b8a39b9b19d9&quot;&gt;&lt;span&gt;좋음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot; data-id=&quot;fe5c9e95-2836-46a2-8021-5acd4f6ab15f&quot;&gt;&lt;span&gt;높음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.8604%;&quot; data-id=&quot;e45a87f5-2363-486a-8c6c-8f69e117157a&quot;&gt;&lt;span&gt;엔티티 기준의 객체지향 쿼리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;0bab2afe-354a-4240-a921-4546b1a45f8f&quot;&gt;
&lt;td style=&quot;width: 16.1628%;&quot; data-id=&quot;a775c0d6-d5c3-4ea0-9a1e-309ba3a5837a&quot;&gt;&lt;span&gt;&lt;b&gt;Criteria API&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot; data-id=&quot;235d45dd-ac49-464b-a5cc-caecd77eb97e&quot;&gt;&lt;span&gt;어려움&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.093%;&quot; data-id=&quot;52d61fdb-873a-4680-be75-2e9d6d52d7ae&quot;&gt;&lt;span&gt;좋음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.4187%;&quot; data-id=&quot;c022eff9-4989-4ac4-bee5-a1f6ddd320dd&quot;&gt;&lt;span&gt;좋음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot; data-id=&quot;9ebc4f76-8cd3-4598-bf90-6b487d90cf0a&quot;&gt;&lt;span&gt;낮음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.8604%;&quot; data-id=&quot;2c25a547-b609-4a88-a7a0-ea5336b10d9b&quot;&gt;&lt;span&gt;동적 쿼리 가능하지만 코드 장황&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;9ee5a7f6-696e-4ad1-a2c3-16591bade5d1&quot;&gt;
&lt;td style=&quot;width: 16.1628%;&quot; data-id=&quot;977f6c41-d3d8-4700-887b-31e62b28099f&quot;&gt;&lt;span&gt;&lt;b&gt;QueryDSL&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot; data-id=&quot;3807c41d-978f-4626-b237-fbfafc76d250&quot;&gt;&lt;span&gt;중간~조금 어려움&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.093%;&quot; data-id=&quot;070a3d03-167f-4e1a-8e56-dd3856fe6c1b&quot;&gt;&lt;span&gt;매우 좋음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.4187%;&quot; data-id=&quot;082133ae-c529-4a83-b1d7-622fdf64e461&quot;&gt;&lt;span&gt;좋음~최상&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot; data-id=&quot;46c15f67-b11e-4b60-909a-b17a9516da04&quot;&gt;&lt;span&gt;매우 높음&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.8604%;&quot; data-id=&quot;003a4911-290f-4015-a2a3-4b1dfdaf1c9c&quot;&gt;&lt;span&gt;실무 동적 쿼리의 사실상 표준&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;626ae624-d305-41c7-a0a6-b4467c44209c&quot;&gt;
&lt;td style=&quot;width: 16.1628%;&quot; data-id=&quot;d7b89d4b-47a1-4dbd-b092-ccf33b6b5a10&quot;&gt;&lt;span&gt;&lt;b&gt;Native SQL&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.5581%;&quot; data-id=&quot;de999fb2-393b-4bb4-9a4b-183584897abc&quot;&gt;&lt;span&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.093%;&quot; data-id=&quot;970b7fa8-c6d9-4a8d-8e6a-7cf820ee9c85&quot;&gt;&lt;span&gt;SQL로 직접 처리&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.4187%;&quot; data-id=&quot;88a67c88-672c-45ac-8f74-c79b59fd8dfa&quot;&gt;&lt;span&gt;최상 (튜닝 여지 큼)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 12.907%;&quot; data-id=&quot;f461063c-5254-4554-adb2-199259eaff11&quot;&gt;&lt;span&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.8604%;&quot; data-id=&quot;97ea8794-6559-4c0d-964a-24a6f667d5e8&quot;&gt;&lt;span&gt;특수 기능/최적화용 보조 수단&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;5187e724-94af-41d9-828d-5c391e1c9e82&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;5187e724-94af-41d9-828d-5c391e1c9e82&quot; data-id=&quot;5187e724-94af-41d9-828d-5c391e1c9e82&quot; data-ke-size=&quot;size26&quot;&gt;9. 실무 선택 가이드&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;073ec645-628b-4381-9901-208545879113&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  핵심 개념&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;546885a3-b8ff-4c56-8679-856a7837677a&quot; data-ke-size=&quot;size16&quot;&gt;실무에서는 보통 하나만 쓰지 않고, 여러 가지를 섞어서 사용합니다. 하지만 기본 축은 &lt;b&gt;Query Methods + JPQL + QueryDSL 조합&lt;/b&gt;인 경우가 많습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ccd161e6-2e94-4ef9-9ced-87ec3e5d6919&quot; 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-id=&quot;7ce7d305-901c-4bea-85af-5deee4e38438&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ce73d8f0-f617-496c-9ada-443c13c78bc4&quot;&gt;&lt;b&gt;기본 CRUD, 단순 조회&lt;/b&gt;: Query Methods&lt;/li&gt;
&lt;li data-id=&quot;26da14b6-f0f0-4894-b449-dbd274c207df&quot;&gt;&lt;b&gt;고정된 복잡 쿼리&lt;/b&gt;: JPQL (@Query)&lt;/li&gt;
&lt;li data-id=&quot;10cecb27-e6b9-4434-b149-683a3ce34fd8&quot;&gt;&lt;b&gt;동적 검색, 조건이 많은 화면&lt;/b&gt;: QueryDSL&lt;/li&gt;
&lt;li data-id=&quot;86eefa33-687f-4917-a249-2db2e019864d&quot;&gt;&lt;b&gt;성능 최적화/특수 기능&lt;/b&gt;: Native SQL (필요할 때만)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;0744e656-f357-419b-b7e6-99b61f94e04b&quot; 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-id=&quot;587874f4-3447-489f-bf27-dca7141c6486&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ad24cc78-ff8f-49da-aa20-d0d72500a823&quot;&gt;findByEmail &amp;rarr; Query Method&lt;/li&gt;
&lt;li data-id=&quot;15d9e845-17d3-407a-929e-98cd08ca8e69&quot;&gt;회원 + 주문 + 결제 상태 복잡 조인 &amp;rarr; JPQL 또는 QueryDSL&lt;/li&gt;
&lt;li data-id=&quot;b459cef4-9deb-4273-9637-2611b6ec271b&quot;&gt;검색 필터(이름, 기간, 상태, 등급 등) &amp;rarr; QueryDSL&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f60855c6-1099-4595-a1a8-471ae49e5318&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;✅ 실무에서의 좋은 전략 (새 프로젝트 시작 시)&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;63b30746-5680-4576-ac33-89551cbe391f&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;294d6fe4-7656-44a6-b0e7-0b2e744bf23c&quot;&gt;무조건 Query Methods 먼저로 간단히 기능 구현&lt;/li&gt;
&lt;li data-id=&quot;08a75ca9-0eaf-4fbd-b33c-153ace8403da&quot;&gt;복잡해지는 지점부터 JPQL 또는 QueryDSL로 분리&lt;/li&gt;
&lt;li data-id=&quot;3072accc-6c62-4410-a142-73457a05ea54&quot;&gt;성능이 중요한 핵심 쿼리는 필요 시 Native SQL 도입&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1628d0ef-1cef-4fa6-a919-d8377b28c2c4&quot; 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-id=&quot;1af7b8e0-e6c4-4b2c-b546-f0f4f3f95cea&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;116cc948-cb2b-4910-b859-10af6ebcab5a&quot;&gt;처음부터 모든 쿼리를 Native SQL로 작성&lt;/li&gt;
&lt;li data-id=&quot;652086fe-3a61-4869-95f0-cd8293fc73c7&quot;&gt;단순 CRUD까지 QueryDSL로만 하겠다며 과도하게 복잡하게 설계&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2e5d54ac-ccf0-4546-8845-efc5a7936ce4&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;2e5d54ac-ccf0-4546-8845-efc5a7936ce4&quot; data-id=&quot;2e5d54ac-ccf0-4546-8845-efc5a7936ce4&quot; data-ke-size=&quot;size26&quot;&gt;10. 흔한 실수와 해결법&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7f8e4d21-27c5-4bab-be76-ccfd0d492d08&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실수 1: N+1 문제를 무시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ec260f69-e180-4f56-bf15-615db998662f&quot; data-ke-size=&quot;size16&quot;&gt;연관관계가 있는 엔티티를 조회할 때 쿼리가 여러 번 나가는 문제입니다. &lt;b&gt;해결&lt;/b&gt;: fetch join, @EntityGraph 등을 사용해 한 번에 함께 로딩합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;55407e54-16ff-44f4-9e97-eb6365c6b325&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실수 2: Query Methods에 모든 걸 우겨 넣기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;aef4b1ed-5a0b-4721-b7f6-b94551c0f46d&quot; data-ke-size=&quot;size16&quot;&gt;메서드 이름이 너무 길어져서 가독성이 떨어집니다. &lt;b&gt;해결&lt;/b&gt;: 일정 수준 이상 복잡해지면 JPQL/QueryDSL로 과감히 분리합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9ebf9197-f35b-4f88-8dd8-82a9da6a051e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실수 3: Native SQL에서 엔티티 변경을 반영 안 함&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b5c21fbf-8f49-4345-90e7-4d04b401ed03&quot; data-ke-size=&quot;size16&quot;&gt;컬럼명/테이블명 변경 시 Native 쿼리가 깨집니다. &lt;b&gt;해결&lt;/b&gt;: Native SQL은 최소화하고, 사용 시 반드시 테스트 코드로 커버합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b6a20766-afbc-4c45-96ba-409725dd35fb&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실수 4: 쿼리 디버깅을 안 켜놓음&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b0a19ac2-6291-4655-9bf1-934f08580077&quot; data-ke-size=&quot;size16&quot;&gt;실제로 DB에 어떤 SQL이 나가는지 모르는 상태로 개발하게 됩니다. &lt;b&gt;해결&lt;/b&gt;: 개발 환경에서 다음 설정으로 SQL을 항상 눈으로 확인합니다.&lt;/p&gt;
&lt;pre class=&quot;ini&quot; data-id=&quot;dbbebf41-ef22-44a6-b182-89daf64b9247&quot;&gt;&lt;code&gt;spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;06985271-5b8b-4bcb-8687-5e15ad8394fe&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;06985271-5b8b-4bcb-8687-5e15ad8394fe&quot; data-id=&quot;06985271-5b8b-4bcb-8687-5e15ad8394fe&quot; data-ke-size=&quot;size26&quot;&gt;11. 다음 스텝 학습 로드맵&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5deccbce-f2bf-47be-9afe-c420aeb773d3&quot; data-ke-size=&quot;size16&quot;&gt;JPA 쿼리는 한 번에 다 이해하기 어렵습니다. 단계별로 조금씩 올라가는 것이 좋습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a4e9c523-215c-4dc9-a37a-cea810d7275e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  추천 학습 순서 (왕초보 기준)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;352a30d7-c185-46a8-a142-69094dee8523&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1단계: Query Methods 완전 정복&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;879ce57a-b7f5-44fe-975b-4c89093b5534&quot; data-ke-size=&quot;size16&quot;&gt;User 엔티티로 findByName, findByEmail, findByCreatedDateBetween 등 10개 이상 직접 만들어보기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d5bf5bf8-99dc-43f9-bbf5-d97806b3079e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2단계: JPQL 맛보기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c3e0a938-8e70-43e2-912e-7af374147de7&quot; data-ke-size=&quot;size16&quot;&gt;@Query로 간단한 SELECT, WHERE, ORDER BY, COUNT 등을 직접 작성하고, SQL과 JPQL의 차이(테이블 vs 엔티티)를 몸으로 익히기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2abb396b-2f11-46a0-ad84-9a5f9f36f7da&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3단계: QueryDSL 도입&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b1b4ecb1-5180-4131-b4e6-a08a23502818&quot; data-ke-size=&quot;size16&quot;&gt;QUser 클래스가 어떻게 생성되는지 확인하고, selectFrom(user).where(...).fetch() 패턴에 익숙해지기. 동적 검색 화면 하나를 QueryDSL로 구현해보기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;aab5c488-018f-4009-a703-488fc5fa295f&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4단계: 성능 및 고급 주제&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a9de2dba-c552-4ad2-b283-0eb0486d9d4b&quot; data-ke-size=&quot;size16&quot;&gt;N+1 문제, 페이징, 캐시, fetch join, batch size 등&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a557ec03-7ba8-4867-9e78-5cd67c9c4f04&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5단계: Native SQL 적절히 활용&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;87fbd695-7adc-4a0c-9fa2-6893ce626c1c&quot; data-ke-size=&quot;size16&quot;&gt;정말 JPA로 표현하기 어려운 쿼리만 Native로 작성하고, 항상 테스트 코드로 검증&lt;/p&gt;
&lt;h2 id=&quot;a580db31-dc66-4ea5-bf1f-3cc4ab7bbd9b&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;a580db31-dc66-4ea5-bf1f-3cc4ab7bbd9b&quot; data-id=&quot;a580db31-dc66-4ea5-bf1f-3cc4ab7bbd9b&quot; data-ke-size=&quot;size26&quot;&gt;마지막 체크리스트 (&quot;이해했어요!&quot; 자기 점검)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;aca849cd-e4a7-48d7-8d40-9bc8bb2aa20b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;9342364f-efa0-42d5-a242-b6c6e33730f3&quot;&gt;User 엔티티 기준으로 Query Methods 10개 이상 직접 만들 수 있다.&lt;/li&gt;
&lt;li data-id=&quot;786a5fde-01da-4394-aa3c-e7d224dfcd02&quot;&gt;JPQL로 SELECT / WHERE / ORDER BY / COUNT를 직접 작성해 볼 수 있다.&lt;/li&gt;
&lt;li data-id=&quot;e42e948e-b7f7-4384-b674-a64c5b2147ff&quot;&gt;Criteria API가 왜 장황한지, 언제 쓰면 좋은지 설명할 수 있다.&lt;/li&gt;
&lt;li data-id=&quot;6d2eeee7-a1d1-4027-8f0c-f998cff9924f&quot;&gt;QueryDSL 코드(selectFrom(user).where(...))를 보고 대략 어떤 쿼리인지 이해할 수 있다.&lt;/li&gt;
&lt;li data-id=&quot;b62d56b0-6b82-4e8d-9c2b-eeeca09e5fff&quot;&gt;Native SQL이 언제 필요한지, 왜 전부 Native로 쓰면 안 되는지 말할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2748d4ae-fab2-4f6b-a79c-214a39277293&quot; data-ke-size=&quot;size16&quot;&gt;위 체크리스트에 모두 체크할 수 있다면, 이제 &quot;이해했어요!&quot;라고 말해도 충분한 수준입니다. 직접 작은 Spring Boot 프로젝트를 만들어, 이 가이드에 나온 예제들을 하나씩 따라 치면서 몸에 익혀보세요.&lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>JPA</category>
      <category>jpa 예제</category>
      <category>JPA 쿼리</category>
      <category>JPQL</category>
      <category>Native SQL</category>
      <category>query methods</category>
      <category>querydsl</category>
      <category>spring boot</category>
      <category>Spring Data JPA</category>
      <category>동적 쿼리</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/31</guid>
      <comments>https://lazip.tistory.com/entry/Spring-Data-JPA-%EC%BF%BC%EB%A6%AC-%EC%9E%91%EC%84%B1-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-Query-Methods-JPQL-QueryDSL-Native-SQL-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry31comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:06:48 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot 소스코드 분석 방법 총정리 | GitHub 저장소 구조, AutoConfiguration, 학습 로드맵</title>
      <link>https://lazip.tistory.com/entry/Spring-Boot-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC-GitHub-%EC%A0%80%EC%9E%A5%EC%86%8C-%EA%B5%AC%EC%A1%B0-AutoConfiguration-%ED%95%99%EC%8A%B5-%EB%A1%9C%EB%93%9C%EB%A7%B5</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-pm-slice=&quot;0 0 []&quot; data-id=&quot;b7e79594-6275-45aa-b001-414aceb1f7dc&quot; data-ke-size=&quot;size16&quot;&gt;Spring Boot의 GitHub 저장소는 단순한 소스코드 모음이 아닙니다. 자동 구성의 원리, 최고 수준의 코딩 패턴, 실무 문제 해결 방식까지 모두 담긴 살아있는 교과서입니다. 이 가이드는 저장소를 처음 탐색하는 분부터 커뮤니티 기여를 준비하는 분까지, 단계별로 활용하는 방법을 상세히 안내합니다.&lt;/p&gt;
&lt;h2 id=&quot;75dad693-a07c-4f31-9a69-9c408eb425f0&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;75dad693-a07c-4f31-9a69-9c408eb425f0&quot; data-id=&quot;75dad693-a07c-4f31-9a69-9c408eb425f0&quot; data-ke-size=&quot;size26&quot;&gt;목차&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;81a3556e-0a3a-465f-a511-5db22df69fe7&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;823c4419-e641-43f1-b35b-36123d0e2463&quot;&gt;&lt;b&gt;저장소 기본 정보&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;ede40aa3-2eaf-41e3-aa0e-b1d5a9021d85&quot;&gt;&lt;b&gt;저장소 구조 이해&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;29c32896-00f9-4b90-b34c-dcb309eeed07&quot;&gt;&lt;b&gt;효과적인 학습 전략&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;6eeb4358-9a73-4faf-9a07-c26a16a47144&quot;&gt;&lt;b&gt;GitHub 기능별 활용 방법&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;254086e3-51a5-4e4f-80e9-8bc2e059ba09&quot;&gt;&lt;b&gt;실전 분석 기법&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;304eb4ab-fb07-450c-aedb-54339c9ea83b&quot;&gt;&lt;b&gt;자동 구성 심화 학습&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;d3abf7be-ea14-46a9-b262-a1f10b20faa1&quot;&gt;&lt;b&gt;커뮤니티 참여 가이드&lt;/b&gt;&lt;/li&gt;
&lt;li data-id=&quot;6e3519a9-d3d8-434e-9572-3d73dbf76e6c&quot;&gt;&lt;b&gt;학습 로드맵&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;fb855920-d77b-45d5-ba93-d8591124d9d2&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;fb855920-d77b-45d5-ba93-d8591124d9d2&quot; data-id=&quot;fb855920-d77b-45d5-ba93-d8591124d9d2&quot; data-ke-size=&quot;size26&quot;&gt;1. 저장소 기본 정보&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;36939ff6-7990-420d-82cb-de140129ada8&quot; data-ke-size=&quot;size16&quot;&gt;Spring Boot 저장소를 활용하기 전에 핵심 링크와 브랜치 전략을 먼저 파악해두면 학습 효율이 크게 올라갑니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;61902015-d3cf-419e-8b5f-08da6c347cf5&quot; 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-id=&quot;823a10f6-b809-4889-a9ce-c92f6cd542ee&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ef98b278-6583-495a-9c57-9e9c60d92549&quot;&gt;&lt;b&gt;메인 저장소:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot&quot;&gt;https://github.com/spring-projects/spring-boot&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;39534c31-37f2-4443-929e-b8f93447abd5&quot;&gt;&lt;b&gt;이슈 트래커:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot/issues&quot;&gt;https://github.com/spring-projects/spring-boot/issues&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;65938655-15db-4b64-ba27-da1374466456&quot;&gt;&lt;b&gt;위키:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot/wiki&quot;&gt;https://github.com/spring-projects/spring-boot/wiki&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;54fcabc1-2e08-40be-b9b2-c16ab76a6d3d&quot;&gt;&lt;b&gt;토론:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot/discussions&quot;&gt;https://github.com/spring-projects/spring-boot/discussions&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;535528bd-8e25-46b7-8fc1-de4607b1b488&quot;&gt;&lt;b&gt;공식 문서:&lt;/b&gt; &lt;a href=&quot;https://docs.spring.io/spring-boot/&quot;&gt;https://docs.spring.io/spring-boot/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;15f3fc47-bd24-4d3c-ab3a-7921abb7d49b&quot; 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-id=&quot;4ec0ab7c-e089-4bfd-a78d-974139ffd52d&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;2a9b6f08-7310-41f8-ada7-7175e1705597&quot;&gt;&lt;b&gt;main:&lt;/b&gt; 최신 개발 버전 (보통 다음 마이너/메이저 버전)&lt;/li&gt;
&lt;li data-id=&quot;923d10aa-dbbf-4569-958c-01568041b541&quot;&gt;&lt;b&gt;유지보수 브랜치:&lt;/b&gt; {major}.{minor}.x 형식 (예: 3.2.x, 4.0.x)&lt;/li&gt;
&lt;li data-id=&quot;afc0add5-1172-4fe0-a7aa-7315c5bdda26&quot;&gt;&lt;b&gt;브랜치 선택 팁:&lt;/b&gt; 안정성이 중요하면 3.2.x, 최신 기능을 보고 싶다면 main&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;82575675-ed81-458d-97e4-c2057389b39b&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;82575675-ed81-458d-97e4-c2057389b39b&quot; data-id=&quot;82575675-ed81-458d-97e4-c2057389b39b&quot; data-ke-size=&quot;size26&quot;&gt;2. 저장소 구조 이해&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;df0c99cd-1e2e-4a96-8a26-edbd3f975eb7&quot; data-ke-size=&quot;size16&quot;&gt;저장소의 전체 구조를 먼저 파악하면 원하는 코드를 빠르게 찾을 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7464f491-b8af-41a0-b877-849672c8f2b6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전체 디렉토리 구조&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;dts&quot; data-id=&quot;eb3a3fae-e0cc-4688-acff-a38b6c0dc308&quot;&gt;&lt;code&gt;spring-boot/
├── spring-boot-project/                    # 메인 프로젝트
│   ├── spring-boot/                        # 핵심 부트스트랩 로직
│   │   ├── src/main/java                   # 메인 소스 (SpringApplication, ...)
│   │   ├── src/test/java                   # 핵심 기능 테스트
│   │   └── pom.xml                         # 핵심 모듈 의존성
│   │
│   ├── spring-boot-autoconfigure/          # 자동 구성의 핵심
│   │   ├── src/main/java/.../autoconfigure/  # 각 기술별 AutoConfiguration
│   │   ├── META-INF/spring/                  # 자동 구성 진입점
│   │   └── src/test/java/.../autoconfigure/  # AutoConfiguration 테스트
│   │
│   ├── spring-boot-starters/               # 스타터 의존성 정의
│   │   ├── spring-boot-starter/            # 기본 스타터
│   │   ├── spring-boot-starter-web/        # Web 기반 스타터
│   │   ├── spring-boot-starter-data-jpa/   # JPA 스타터
│   │   ├── spring-boot-starter-security/   # Security 스타터
│   │   └── ...
│   │
│   ├── spring-boot-test/                   # 테스트 지원 라이브러리
│   │   ├── @SpringBootTest 구현
│   │   ├── TestRestTemplate
│   │   └── 테스트 유틸리티
│   │
│   ├── spring-boot-tools/                  # 빌드 도구
│   │   ├── spring-boot-maven-plugin/       # Maven 플러그인
│   │   └── spring-boot-gradle-plugin/      # Gradle 플러그인
│   │
│   └── spring-boot-dependencies/           # 의존성 버전 관리 (BOM)
│
├── spring-boot-tests/                      # 통합 테스트 모음
│   ├── smoke-tests/                        # 기본 기능 검증
│   └── integration-tests/
│
├── docs/                                   # 공식 문서 (Asciidoctor)
│   ├── src/main/asciidoc
│   ├── spring-boot-reference/
│   └── spring-boot-maven-plugin/
│
└── README.md                               # 저장소 개요&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a0d0887e-fa7f-4283-8e8c-9faa95241988&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 모듈별 역할&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;c3cc7dcd-a91e-419b-ae27-c9ac5038738d&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 24.186%;&quot;&gt;&lt;b&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;모듈&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 33.721%;&quot;&gt;&lt;b&gt;&lt;span&gt;파일 위치&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 41.9767%;&quot;&gt;&lt;b&gt;&lt;span&gt;주요 학습 포인트&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;da5a40dc-b053-43dc-b637-fd1ccddf24d7&quot;&gt;
&lt;td style=&quot;width: 24.186%;&quot; data-id=&quot;c9705299-3d09-44ca-b8dc-32e631196090&quot;&gt;&lt;span&gt;spring-boot&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.721%;&quot; data-id=&quot;96289b6c-64d7-4869-a772-8f8f475403b1&quot;&gt;&lt;span&gt;spring-boot-project/spring-boot&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.9767%;&quot; data-id=&quot;069d0118-68cb-46d2-a5e4-7c379125c557&quot;&gt;&lt;span&gt;ApplicationContext, 라이프사이클, SpringApplication&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;4f2ed254-7faf-4592-9412-0bb992c6f489&quot;&gt;
&lt;td style=&quot;width: 24.186%;&quot; data-id=&quot;49976e6a-a788-4710-aa28-22f95eb964a7&quot;&gt;&lt;span&gt;spring-boot-autoconfigure&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.721%;&quot; data-id=&quot;78cc35a4-6b84-4c6d-beba-ae89e35df991&quot;&gt;&lt;span&gt;spring-boot-project/spring-boot-autoconfigure&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.9767%;&quot; data-id=&quot;13de1c6a-ac0d-415f-817d-de28ffb4de0c&quot;&gt;&lt;span&gt;@AutoConfiguration, @Conditional, 조건부 로직&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;ff0e5ce5-332e-4594-9c83-811b2f4cde1b&quot;&gt;
&lt;td style=&quot;width: 24.186%;&quot; data-id=&quot;9865ed96-93e2-4c05-82fd-88032573c890&quot;&gt;&lt;span&gt;spring-boot-starters&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.721%;&quot; data-id=&quot;e849a155-4531-46bc-9028-a4ccef5e8d1e&quot;&gt;&lt;span&gt;spring-boot-project/spring-boot-starters&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.9767%;&quot; data-id=&quot;491118a8-6f1a-4dc3-abfe-adc890fe4c49&quot;&gt;&lt;span&gt;POM 구성, 의존성 조합, 버전 관리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;dc8d7b2e-a863-4984-a019-0ada511a175c&quot;&gt;
&lt;td style=&quot;width: 24.186%;&quot; data-id=&quot;d37e7d20-a42a-4256-be5e-ef907ef88849&quot;&gt;&lt;span&gt;spring-boot-test&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.721%;&quot; data-id=&quot;a4ba71b4-80ae-407e-a434-f82155981da7&quot;&gt;&lt;span&gt;spring-boot-project/spring-boot-test&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.9767%;&quot; data-id=&quot;c9978ac6-3266-4a06-a5a2-f378361f1c56&quot;&gt;&lt;span&gt;@SpringBootTest, TestRestTemplate, 테스트 패턴&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;61add70c-992e-4009-b4b2-d707f912eb2a&quot;&gt;
&lt;td style=&quot;width: 24.186%;&quot; data-id=&quot;cb2a1476-fde3-441f-b086-2cadeee0cf51&quot;&gt;&lt;span&gt;spring-boot-dependencies&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.721%;&quot; data-id=&quot;433be376-ce36-4a7a-b63e-b66c427684f4&quot;&gt;&lt;span&gt;spring-boot-project/spring-boot-dependencies&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 41.9767%;&quot; data-id=&quot;4c1411cf-4c54-42f6-929e-4379e2646f10&quot;&gt;&lt;span&gt;버전 관리, 의존성 호환성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;bd14eea3-1045-411f-91b8-7bceea3703ac&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;bd14eea3-1045-411f-91b8-7bceea3703ac&quot; data-id=&quot;bd14eea3-1045-411f-91b8-7bceea3703ac&quot; data-ke-size=&quot;size26&quot;&gt;3. 효과적인 학습 전략&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;61b223c3-6db3-440b-8abb-c650a2b9acde&quot; data-ke-size=&quot;size16&quot;&gt;무작정 코드를 읽기보다는 아래의 단계별 전략을 따라가면 훨씬 빠르게 핵심을 체득할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;49f630c4-edcb-4c8e-b2ce-4a8ee1cf3c02&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Phase 1: 기초 개념 이해 (2-3주)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b357ff54-e461-445c-b98d-cbed758afc5d&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1단계: 자동 구성의 진입점 파악&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; data-id=&quot;95960573-3c12-4faf-9df4-95c3aac4821c&quot;&gt;&lt;code&gt;GitHub 탐색:
1. spring-boot-project/spring-boot-autoconfigure 폴더 열기
2. src/main/resources/META-INF/spring/ 확인
3. org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일 열기

학습 포인트:
- 이 파일이 모든 AutoConfiguration의 진입점
- 약 100여 개의 AutoConfiguration 클래스 나열됨
- 실행 순서가 중요함&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;027271ec-037f-49a3-9ec8-726bc06f27f6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2단계: 간단한 AutoConfiguration 3개 분석&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; data-id=&quot;f7cc590d-6cbb-484a-8237-4abc0389d8f5&quot;&gt;&lt;code&gt;추천 순서 (쉬운 것부터):
1. JdbcAutoConfiguration
2. DataSourceAutoConfiguration
3. JpaRepositoriesAutoConfiguration

각각에 대해:
□ 클래스 선언부 (@AutoConfiguration, @Conditional...)
□ Bean 생성 메서드 검토
□ 테스트 코드 확인
□ 의존성 순서 이해&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c9f028da-20b8-436c-8870-3448675d0c2b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3단계: 스타터 의존성 구조 이해&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot; data-id=&quot;dc444dd4-00f3-44df-bc40-54d6c83a4332&quot;&gt;&lt;code&gt;GitHub 탐색:
1. spring-boot-starters 폴더 열기
2. spring-boot-starter 열기 &amp;rarr; pom.xml (기본 의존성)
3. spring-boot-starter-web 열기 &amp;rarr; pom.xml (웹 의존성)

학습 포인트:
- 각 스타터가 어떤 라이브러리 조합을 제공하는가?
- optional이 true인 의존성은 왜인가?
- parent는 어디서 관리되는가?&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b39dec8f-4a61-4c5b-9724-212dcc2436b1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Phase 2: 실전 코드 분석 (3-4주)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;20b4c5f4-0c9c-408f-a5bc-226ef00344ec&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4단계: 선택한 주제 심화 학습&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d0083806-529d-4e6e-baf1-23e49cd60381&quot; data-ke-size=&quot;size16&quot;&gt;예시: Spring Data JPA를 깊이 있게 이해하고 싶다면 아래 순서로 진행합니다.&lt;/p&gt;
&lt;pre class=&quot;markdown&quot; data-id=&quot;48041b6c-e343-4892-bf4b-8f7fd2747f1b&quot;&gt;&lt;code&gt;1. spring-boot-starter-data-jpa 분석
   - 포함된 의존성 확인
   - 버전 관리 방식

2. JpaRepositoriesAutoConfiguration 분석
   - 어떤 조건에서 활성화되는가?
   - 생성되는 주요 Bean은?
   - 테스트 코드로 검증

3. 테스트 코드 읽기
   - spring-boot-autoconfigure/src/test/java/.../JpaRepositoriesAutoConfigurationTests.java
   - 자동 구성이 어떻게 작동하는지 실제로 확인

4. 이슈/PR 트래킹
   - &quot;data-jpa&quot; 검색
   - 최근 개선사항 이해&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7a479583-7b9e-4b01-84c4-6f183c2415e7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5단계: 자신의 프로젝트와 연결&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; data-id=&quot;3e82b243-e3a3-4357-b950-0096e0ce4f8a&quot;&gt;&lt;code&gt;학습한 AutoConfiguration을 자신의 프로젝트에 적용:

1. 사용 중인 각 스타터 분석
2. 자동 구성되는 Bean 확인 (IDE debugger 사용)
3. 오버라이드 또는 커스터마이징 가능 여부 검토
4. 필요시 문서화&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7b048752-2f83-423c-8714-4da942958975&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Phase 3: 커뮤니티 참여 (지속적)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;84096c43-29eb-479c-ac19-663a6e915f86&quot; data-ke-size=&quot;size16&quot;&gt;충분한 코드 이해가 쌓이면 이슈 토론 참여, 문서 개선, PR 제출 등으로 커뮤니티에 기여할 수 있습니다. 이 단계는 아래 &quot;커뮤니티 참여 가이드&quot; 섹션에서 자세히 다룹니다.&lt;/p&gt;
&lt;h2 id=&quot;8ded8e3c-4dc6-4fd2-9fc6-0357be4b3fd6&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;8ded8e3c-4dc6-4fd2-9fc6-0357be4b3fd6&quot; data-id=&quot;8ded8e3c-4dc6-4fd2-9fc6-0357be4b3fd6&quot; data-ke-size=&quot;size26&quot;&gt;4. GitHub 기능별 활용 방법&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;6ea7710c-31d6-4f4b-bee4-84d23df32742&quot; data-ke-size=&quot;size16&quot;&gt;GitHub의 각 기능을 전략적으로 활용하면 코드 탐색 이상의 깊은 학습이 가능합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;32cac8da-a874-4f7b-a6e7-2e5b5d975547&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Issues (이슈) 활용법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;46ecb139-9319-4be8-91e2-608ba455798f&quot; data-ke-size=&quot;size16&quot;&gt;이슈 탭은 버그 신고와 기능 요청이 모두 담긴 공간입니다. 아래 필터를 조합해 효과적으로 탐색하세요.&lt;/p&gt;
&lt;pre class=&quot;markdown&quot; data-id=&quot;c0fecad0-9de0-444f-bf88-d2105ed5f435&quot;&gt;&lt;code&gt;효과적인 필터 조합:

1. &quot;good-first-issue&quot; 라벨
   &amp;rarr; 처음 기여자를 위한 이슈
   &amp;rarr; 읽고 이해하기 쉬움

2. &quot;help-wanted&quot; 라벨
   &amp;rarr; 커뮤니티 도움 필요
   &amp;rarr; 해결 시 의미 있는 기여

3. 특정 버전 라벨 (예: &quot;4.0.0&quot;)
   &amp;rarr; 버전별 주요 변경사항
   &amp;rarr; 업그레이드 영향도 파악

4. 특정 기능 (예: &quot;auto-configuration&quot;, &quot;data-jpa&quot;)
   &amp;rarr; 관심사 영역 집중 학습

5. 상태별 필터
   - Closed: 해결된 문제 (학습 용도로 적합)
   - Open: 진행 중인 논의&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;bc4d6558-6198-4dee-9d6d-b0a5128e5a5c&quot; data-ke-size=&quot;size16&quot;&gt;각 이슈를 읽을 때는 &lt;b&gt;제목과 설명(문제 파악) &amp;rarr; 코멘트(분석 과정) &amp;rarr; 연결된 PR(해결 방법) &amp;rarr; PR 코드 검토&lt;/b&gt; 순으로 따라가면 실무적 문제 해결 사고방식을 자연스럽게 익힐 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;87dee3db-a4d0-4f30-9c19-4806dc5020fe&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Wiki 활용법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;86c57cb4-78b7-4ed9-b680-4e6c6a0acfe4&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;d8fece12-d663-4a9e-b421-3515a0bd96fd&quot;&gt;&lt;b&gt;Team Practices:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot/wiki/Team-Practices&quot;&gt;https://github.com/spring-projects/spring-boot/wiki/Team-Practices&lt;/a&gt; 에서 코드 스타일, Javadoc 작성 방식, 커밋 메시지 형식 등을 확인하고 자신의 프로젝트에 동일한 규칙을 적용해보세요.&lt;/li&gt;
&lt;li data-id=&quot;724bb89f-d6a8-45a3-91b9-59e20114fcda&quot;&gt;&lt;b&gt;Release Notes:&lt;/b&gt; 각 주요 버전마다 릴리스 노트가 제공됩니다. 주요 기능 추가, Breaking changes, 마이그레이션 가이드, 성능 개선 내용이 담겨 있어 버전 업그레이드 시 영향 범위를 사전에 파악하는 데 매우 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;98e8c813-14b1-47d1-a12d-b14f32c06150&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Pull Requests (PR) 활용법&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;stata&quot; data-id=&quot;c1158cc0-eca0-4d3e-9d59-a7269c839a40&quot;&gt;&lt;code&gt;주요 PR 분석 절차:
1. GitHub의 &quot;Pull requests&quot; 탭 클릭
2. 특정 라벨(예: &quot;auto-configuration&quot;)로 필터
3. 머지된 PR 확인 (Merged 상태)

각 PR에서:
□ 제목과 설명 읽기
□ &quot;Files changed&quot; 탭에서 코드 변경 검토
□ &quot;Conversation&quot; 탭에서 리뷰 의견 확인
□ 테스트 코드 추가 여부 확인&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1319d72a-c30e-482b-a969-708311403cf1&quot; data-ke-size=&quot;size16&quot;&gt;버전 간 주요 변경사항을 파악하려면 main 브랜치의 PR을 &quot;4.0.0&quot; 라벨로 필터링하고 &quot;breaking change&quot; 태그를 확인하세요. 이를 통해 자신의 프로젝트 업그레이드 계획을 세울 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b6c3203b-4c41-4cea-8eb2-c50123d33234&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Discussions 활용법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;3a48b60c-7028-48b2-b0b1-773cdd616bfa&quot; data-ke-size=&quot;size16&quot;&gt;Discussions 탭은 이슈와 달리 버그 보고가 아닌 질문과 논의를 위한 공간입니다. 커뮤니티가 실제로 어떤 문제를 겪고 있는지, 새 기능 제안과 그 이유, 그리고 Best practices 공유가 활발하게 이루어집니다. 자신의 프로젝트에서 경험한 문제와 유사한 케이스를 검색하고, 필요시 자신의 경험을 공유해보세요.&lt;/p&gt;
&lt;h2 id=&quot;eae0d0be-c504-4cf1-8763-1a6c4196b5d5&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;eae0d0be-c504-4cf1-8763-1a6c4196b5d5&quot; data-id=&quot;eae0d0be-c504-4cf1-8763-1a6c4196b5d5&quot; data-ke-size=&quot;size26&quot;&gt;5. 실전 분석 기법&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4071f982-76bb-4850-854c-ec0f5a07b257&quot; data-ke-size=&quot;size16&quot;&gt;IDE와 Git을 적극 활용하면 코드 탐색의 깊이가 완전히 달라집니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2f952216-5991-402d-bdef-615a1b88cc8e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;IntelliJ IDEA 필수 단축키&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;a6c3e7b7-cb6e-40ea-ad8a-574e14f28f8d&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt; Windows/Linux &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt; Mac &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;d468877e-3cca-4438-9001-041d8e473627&quot;&gt;
&lt;td data-id=&quot;b730b683-6eae-4467-a610-a51d6ecf1bb8&quot;&gt;&lt;span&gt;심볼 검색&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;21d90c09-ca89-4724-8283-683945f901cc&quot;&gt;&lt;span&gt;Ctrl+Shift+O&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;395d64b3-9cec-4fd8-9e4e-70759ae5fd69&quot;&gt;&lt;span&gt;Cmd+Shift+O&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;25da42b1-5b8b-4a81-aee1-8c01be63be76&quot;&gt;
&lt;td data-id=&quot;afe9fde2-481f-4a9b-a3c3-8ac23925827c&quot;&gt;&lt;span&gt;파일 검색&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;1f16548e-469c-48e3-bb29-354c17b7a387&quot;&gt;&lt;span&gt;Ctrl+Shift+N&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;1fadd6f1-fd13-4adc-9477-e03ec8b1e421&quot;&gt;&lt;span&gt;Cmd+Shift+N&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;eeec4541-8e22-49bc-9767-56270e583171&quot;&gt;
&lt;td data-id=&quot;95682b56-1128-471e-822e-a3a0fef1f41c&quot;&gt;&lt;span&gt;상속 계층 구조&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;ab110b0e-37ae-4691-a9a0-de489ffbc67a&quot;&gt;&lt;span&gt;Ctrl+H&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;f070c047-03b8-4fa5-bfb2-a3eff4c3485c&quot;&gt;&lt;span&gt;Cmd+H&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;470c09f8-c219-423a-a416-23cd87ba6c82&quot;&gt;
&lt;td data-id=&quot;582b23e7-27a4-427d-82c1-da6c5e125f67&quot;&gt;&lt;span&gt;클래스 사용처 찾기&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b6fcc14d-8750-4dc0-87fc-c45ebe8c69b8&quot;&gt;&lt;span&gt;Ctrl+F7&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;43b9f8af-f8ee-439f-a434-a2c02177031b&quot;&gt;&lt;span&gt;Cmd+F7&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;aada5871-77de-44cf-b284-8f630300a0cc&quot;&gt;
&lt;td data-id=&quot;43468733-bff4-4896-b2bd-0d924fc7617d&quot;&gt;&lt;span&gt;메서드 호출 트리&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;75cdba8b-025d-4e6b-aee2-730af6aaaf77&quot;&gt;&lt;span&gt;F4&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;e41b326a-8cc0-434d-9405-9321a0c991a8&quot;&gt;&lt;span&gt;F4&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e2bf3e1e-c041-4bce-89f0-d593c23f5729&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;권장 분석 절차&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;vala&quot; data-id=&quot;28a54bcc-68f6-4f09-8c67-92cc7468fee8&quot;&gt;&lt;code&gt;# 1. 저장소 클론
git clone https://github.com/spring-projects/spring-boot.git

# 2. IDE에서 열기
File &amp;rarr; Open &amp;rarr; spring-boot 폴더

# 3. 특정 클래스 분석 예시: @SpringBootApplication 검색

# 4. 계층 탐색
- SpringBootApplication 정의 확인
- EnableAutoConfiguration 추적
- AutoConfigurationImportSelector 분석

# 5. 관련 테스트 코드 검토
src/test/java에서 테스트 확인&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5c3bdd40-8b09-40a2-9bfd-e904e770e747&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;테스트 코드를 통한 학습&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ad2f032b-c725-4dd4-aeb1-4db0721cbe8c&quot; data-ke-size=&quot;size16&quot;&gt;테스트 코드는 자동 구성의 가장 정확한 사용 설명서입니다. 아래 패턴으로 테스트 파일을 찾으세요.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot; data-id=&quot;02bb8fb6-06b2-43e4-b04b-8eba51973db3&quot;&gt;&lt;code&gt;패턴:
src/test/java/org/springframework/boot/autoconfigure/{feature}/
  &amp;rarr; {Feature}AutoConfigurationTests.java

예시:
- JdbcTemplateAutoConfigurationTests.java
- DataSourceAutoConfigurationTests.java
- JpaRepositoriesAutoConfigurationTests.java&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9519f992-cfac-427f-82d1-9bb64043d746&quot; data-ke-size=&quot;size16&quot;&gt;각 테스트 클래스마다 @SpringBootTest 설정, whenX_thenY 패턴의 메서드 이름, 자동 구성 활성화 조건, 사용자 정의 Bean 오버라이드 케이스, 실패 케이스(어떤 조건에서 Bean이 생성되지 않는지)를 체크리스트로 삼아 분석하세요.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7d072507-956f-428b-9dc8-dbfb586d59e4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Git 히스토리를 통한 진화 과정 파악&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;jboss-cli&quot; data-id=&quot;04f5912f-bf3b-433e-99ee-faf366fe54a3&quot;&gt;&lt;code&gt;# 파일의 모든 커밋 보기
git log --oneline spring-boot-autoconfigure/src/main/java/.../{Feature}AutoConfiguration.java

# 상세 변경 이력
git log -p spring-boot-autoconfigure/src/main/java/.../{Feature}AutoConfiguration.java | head -200

# 특정 시간대의 변경
git log --since=&quot;2023-01-01&quot; --until=&quot;2023-12-31&quot; --oneline&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fbfc2dae-f942-4934-952a-422010078488&quot; data-ke-size=&quot;size16&quot;&gt;GitHub 웹에서는 파일을 열고 오른쪽의 &lt;b&gt;&quot;Blame&quot;&lt;/b&gt; 버튼을 클릭하면 각 라인의 작성자, 커밋, 메시지를 한눈에 확인할 수 있습니다. 커밋을 클릭하면 당시의 전체 변경사항도 볼 수 있어, &quot;왜 이렇게 구현했는가&quot;에 대한 맥락을 파악하는 데 매우 효과적입니다.&lt;/p&gt;
&lt;h2 id=&quot;e9a6ec07-89fc-448d-a734-5d86d388bd83&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;e9a6ec07-89fc-448d-a734-5d86d388bd83&quot; data-id=&quot;e9a6ec07-89fc-448d-a734-5d86d388bd83&quot; data-ke-size=&quot;size26&quot;&gt;6. 자동 구성 심화 학습&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ec7a8b61-7147-4143-9d0b-3c0615c0eaef&quot; data-ke-size=&quot;size16&quot;&gt;AutoConfiguration은 Spring Boot의 핵심입니다. 체계적인 분석 체크리스트와 학습 순서를 따라가세요.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c77d5e01-cdb4-4451-a0d9-c75e9f2b6946&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;AutoConfiguration 분석 체크리스트&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;autoit&quot; data-id=&quot;5bb805d6-c797-4c15-813b-f229826ff74b&quot;&gt;&lt;code&gt;1. 클래스 선언부 분석
   □ @AutoConfiguration 존재?
   □ after = ... 이 있는가? (의존성)
   □ before = ... 이 있는가?

2. 클래스 레벨 @Conditional 확인
   □ @ConditionalOnClass: 어떤 클래스 필요?
   □ @ConditionalOnProperty: 어떤 프로퍼티?
   □ @ConditionalOnWebApplication: 웹 앱만?

3. Bean 생성 메서드 검토
   □ @Bean 메서드 몇 개?
   □ 각 Bean의 @ConditionalOnMissingBean은?
   □ 메서드 파라미터 (의존성)는?

4. 관련 @Configuration 중첩 클래스
   □ 조건부 내부 구성?
   □ 특정 환경에서만 활성화?

5. 테스트 코드 확인
   □ 테스트가 몇 개?
   □ 정상 케이스만? 실패 케이스도?
   □ 사용자 정의 Bean 오버라이드 테스트?&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;39a6e77a-1e2f-4532-953a-86be3154ef30&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 AutoConfiguration 학습 순서&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9eda9a08-66f7-4450-85bb-95727a2c2f71&quot; 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-id=&quot;6ebb9bca-97ec-4b80-9b43-1ed3d3985009&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;6cc24c58-9bb5-48a4-9028-2e9ec5449b54&quot;&gt;&lt;b&gt;NoOpAutoConfiguration:&lt;/b&gt; 가장 단순한 예제로 자동 구성의 기본 구조를 파악합니다.&lt;/li&gt;
&lt;li data-id=&quot;e742aa4c-fe34-4487-8043-1a853a5f3fdc&quot;&gt;&lt;b&gt;JdbcAutoConfiguration:&lt;/b&gt; JDBC Template 자동 구성으로 데이터 소스 의존성과 비교적 단순한 로직을 학습합니다.&lt;/li&gt;
&lt;li data-id=&quot;f2d778d3-8e48-4302-bff1-9174cd1cbc37&quot;&gt;&lt;b&gt;TransactionAutoConfiguration:&lt;/b&gt; 트랜잭션 관리자 자동 구성과 Platform Transaction Manager를 이해합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;dc5d2a31-6ad1-408d-9f0c-299f093af4e6&quot; 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-id=&quot;4261c560-c1a7-437d-a84b-91c9fb24c08b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;5f5f3cdc-8516-48ad-b0e5-0bfe881adf3e&quot;&gt;&lt;b&gt;DataSourceAutoConfiguration:&lt;/b&gt; 여러 데이터 소스 지원과 복잡한 조건부 로직, 환경별 설정을 다룹니다.&lt;/li&gt;
&lt;li data-id=&quot;7c84c90a-a8c2-4735-8352-5dbe40914333&quot;&gt;&lt;b&gt;WebMvcAutoConfiguration:&lt;/b&gt; 웹 요청 처리, ViewResolver, MessageConverter, DispatcherServlet 설정을 학습합니다.&lt;/li&gt;
&lt;li data-id=&quot;1bf858a2-3498-485c-a65c-fdcacfd93873&quot;&gt;&lt;b&gt;JpaRepositoriesAutoConfiguration:&lt;/b&gt; Spring Data 통합과 다양한 Conditional 로직을 이해합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9aa2f846-caa5-442b-a979-7613c9c03c74&quot; 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-id=&quot;cb1166ed-93f7-4769-8585-9d64a0853d45&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;8b1be678-8e0b-4452-bad3-a78af3e7d60f&quot;&gt;&lt;b&gt;SecurityAutoConfiguration:&lt;/b&gt; 보안 설정과 여러 내부 Configuration 클래스, 사용자 정의 보안 오버라이드를 다룹니다.&lt;/li&gt;
&lt;li data-id=&quot;46c7b51d-89f5-4871-a5e4-8819a1678596&quot;&gt;&lt;b&gt;CacheAutoConfiguration:&lt;/b&gt; 다양한 캐싱 구현 지원, CacheManager 자동 선택, 복잡한 조건부 로직을 학습합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;b5ce99a8-3fb9-41e8-b41e-bf9c2830f01c&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;b5ce99a8-3fb9-41e8-b41e-bf9c2830f01c&quot; data-id=&quot;b5ce99a8-3fb9-41e8-b41e-bf9c2830f01c&quot; data-ke-size=&quot;size26&quot;&gt;7. 커뮤니티 참여 가이드&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c5e93f81-1e63-4720-a9c2-e3eebc260b4f&quot; data-ke-size=&quot;size16&quot;&gt;오픈소스 기여는 거창하게 시작할 필요 없습니다. 문서 오타 수정이나 테스트 추가부터 시작하면 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e198b44c-2b3f-4cce-a72b-a34e71116207&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫 번째 기여 준비&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;dc0d93f7-2bac-44e7-a562-a4d18265128f&quot; data-ke-size=&quot;size16&quot;&gt;저장소의 CONTRIBUTING.md 파일을 반드시 먼저 읽으세요. CLA(Contributor License Agreement) 동의 필수, 코딩 스타일 가이드, 테스트 작성 규칙, 커밋 메시지 형식, PR 작성 방법이 모두 담겨 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8e5160be-54ea-4f76-9f70-76113ed3a32e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;로컬 개발 환경 설정&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;vala&quot; data-id=&quot;2f83ebd9-a634-4f52-9220-11c01ffa86f3&quot;&gt;&lt;code&gt;# Fork 저장소 후 Clone
git clone https://github.com/YOUR-USERNAME/spring-boot.git
cd spring-boot

# 개발 브랜치 생성
git checkout -b feature/issue-XXXXX

# 빌드 및 테스트
./mvnw clean install -DskipTests

# 특정 모듈만 테스트
./mvnw -pl spring-boot-project/spring-boot-autoconfigure test&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ac33c2f4-fc72-478c-85bf-a88a19a93e48&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기여 가능 영역별 난이도&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;3023f47c-bb19-47ce-8820-a17e9978db48&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;영역&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;난이도&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;입문자 추천&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;9121599f-8f7d-496b-8dcd-45cd70be1c44&quot;&gt;
&lt;td data-id=&quot;3a1f1f17-c499-40de-95ef-ae7cacc068ba&quot;&gt;&lt;span&gt;버그 수정&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;2863eeb7-f155-4f22-b9ef-5a6efe34fa88&quot;&gt;&lt;span&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;556f8033-cb3f-4f67-9fc1-d72fbe97b591&quot;&gt;&lt;span&gt;○&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;b44f340a-2b2d-4b77-aec9-f693209c34dd&quot;&gt;
&lt;td data-id=&quot;6fffe3e8-3425-4da4-b204-40008c3b6f59&quot;&gt;&lt;span&gt;문서 개선&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;ac7222d3-dba5-42a1-976d-2ff7613ae15a&quot;&gt;&lt;span&gt;낮음&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;7b50a5e4-1323-4f93-97ca-2e821ceace79&quot;&gt;&lt;span&gt;◎ (강력 권장)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;65210476-8aef-4451-9fa9-bfe02df70f7c&quot;&gt;
&lt;td data-id=&quot;493da45d-0fab-418b-9bfd-750c37c8d4ce&quot;&gt;&lt;span&gt;테스트 추가&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;c0e5142a-550a-499e-9a0d-05cbf6c83f96&quot;&gt;&lt;span&gt;낮음&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;6fe6ea6f-3966-4734-bf9d-8e430b41ff56&quot;&gt;&lt;span&gt;◎ (강력 권장)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;00b12f9b-c058-4474-8a2e-d21aef6ebf2e&quot;&gt;
&lt;td data-id=&quot;4e623a47-2527-4563-8f35-3474051ad2e8&quot;&gt;&lt;span&gt;새 기능&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;c5d5fa4b-a403-46b3-b730-2f9f97d151e0&quot;&gt;&lt;span&gt;높음&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;81d5aa24-1027-4612-b5f7-be391e35cc9c&quot;&gt;&lt;span&gt;&amp;times;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;0e0d3385-1093-414c-8897-f33a3d538249&quot;&gt;
&lt;td data-id=&quot;7d400c93-26d3-4eed-98c5-d35047f18e80&quot;&gt;&lt;span&gt;성능 최적화&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;626307b4-5b0f-4a0a-b22f-09a2df7144a9&quot;&gt;&lt;span&gt;높음&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;d9c0c0ac-876b-48d8-961b-210546978caf&quot;&gt;&lt;span&gt;&amp;times;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;89ad6700-865c-4189-91aa-b28a27d7dab8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효과적인 PR 작성 템플릿&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;ldif&quot; data-id=&quot;f6ad8750-58bc-4824-a5a8-4fd72f3b72b6&quot;&gt;&lt;code&gt;## 설명
이 PR의 목적은 #XXXXX를 해결하기 위함입니다.

## 변경 사항
- 주요 변경 1
- 주요 변경 2

## 테스트
- [ ] 기존 테스트 모두 통과
- [ ] 새 테스트 추가
- [ ] 로컬에서 검증

## 체크리스트
- [ ] 코드 스타일 준수
- [ ] Javadoc 추가
- [ ] 관련 문서 업데이트&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;212fae52-3dc5-4d96-8a6e-a938804f8b9b&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;212fae52-3dc5-4d96-8a6e-a938804f8b9b&quot; data-id=&quot;212fae52-3dc5-4d96-8a6e-a938804f8b9b&quot; data-ke-size=&quot;size26&quot;&gt;8. 학습 로드맵&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b598f343-5200-42eb-8d10-6acbd046f134&quot; data-ke-size=&quot;size16&quot;&gt;꾸준한 루틴이 실력 성장의 핵심입니다. 월별 계획과 주간 루틴을 참고해 자신의 페이스에 맞게 조정하세요.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;45a83d6e-86b7-47c4-a375-3f37800308c1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;월별 학습 계획&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f2f078c8-3adf-4dbe-93c3-c018973e7202&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1개월 차: 기초 다지기&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;45027188-e79d-42de-b247-cbc17d74325f&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;94790325-a010-4ffe-b4a7-a83e537e52cd&quot;&gt;&lt;b&gt;주 1:&lt;/b&gt; 전체 디렉토리 구조 파악, 각 주요 모듈 역할 이해, 브랜치 전략 학습&lt;/li&gt;
&lt;li data-id=&quot;2cb7c1e8-264c-4727-be7c-0d5b2c204768&quot;&gt;&lt;b&gt;주 2-3:&lt;/b&gt; 간단한 AutoConfiguration 5개 분석, 각 테스트 코드 검토, 자신의 프로젝트와 비교&lt;/li&gt;
&lt;li data-id=&quot;8b0480e0-fe22-4a78-93ef-aecacbe2abed&quot;&gt;&lt;b&gt;주 4:&lt;/b&gt; 스타터 3개 분석, 의존성 관계도 작성, 자신의 pom.xml과 비교&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;94edfecb-9c0a-43ed-9434-b0a405e77f01&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2-3개월 차: 심화 학습&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;3680129b-8c01-44f6-8f83-4092ae91504b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;1e61d937-40ec-4191-9f6a-cee7f74eac64&quot;&gt;&lt;b&gt;주 5-8:&lt;/b&gt; 선택한 주제의 모든 AutoConfiguration 분석, 테스트 코드 상세 검토, 이슈/PR 트래킹 시작, 자신의 프로젝트에 적용&lt;/li&gt;
&lt;li data-id=&quot;1cdb86c2-85fa-4c2b-b1ce-58dc89edb8d1&quot;&gt;&lt;b&gt;주 9-12:&lt;/b&gt; 커스텀 AutoConfiguration 작성, 단위 테스트 작성, 팀원과 코드 리뷰, 문서화&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fc637496-75c7-4545-a306-7d952ea3b26e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4-6개월 차: 커뮤니티 참여&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;61c005f1-c875-4751-87a1-13bdffb58153&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;36a00340-39d4-4ad2-8f3f-d9602fa29dc8&quot;&gt;&lt;b&gt;달 4-5:&lt;/b&gt; 기여 방법 완전 숙지, 간단한 이슈 또는 문서 개선, PR 작성 및 피드백 받기&lt;/li&gt;
&lt;li data-id=&quot;2c68673e-6c0b-4d68-9ca3-c979bba9a7da&quot;&gt;&lt;b&gt;달 6 이상:&lt;/b&gt; 관심 영역 주기적 모니터링, 코드 리뷰 참여, 커뮤니티 질문에 답변&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;bf676360-e5b5-4a77-a4fc-7731866fb27b&quot; 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-id=&quot;cab54850-a197-4a2a-8f7e-e962d7b89eac&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;beeb6513-4a12-46a8-a38a-cf8ac11837e0&quot;&gt;&lt;b&gt;월요일 (20분):&lt;/b&gt; 새로운 &quot;good-first-issue&quot; 확인, 주간 학습 대상 선정&lt;/li&gt;
&lt;li data-id=&quot;1248d773-cc8a-4009-81a8-6ff77b137230&quot;&gt;&lt;b&gt;화, 수요일 (각 1시간):&lt;/b&gt; AutoConfiguration 클래스 2-3개 분석, 관련 테스트 코드 검토, 문제점 노트 정리&lt;/li&gt;
&lt;li data-id=&quot;19895454-9d68-4716-a830-b16570a0839a&quot;&gt;&lt;b&gt;목요일 (1시간):&lt;/b&gt; 특정 이슈의 논의 과정 읽기, PR의 코드 변경사항 분석, 리뷰 의견과 수정 과정 이해&lt;/li&gt;
&lt;li data-id=&quot;dbcec8c5-8dca-4dd6-8ce4-417425a34370&quot;&gt;&lt;b&gt;금요일 (30분):&lt;/b&gt; 주간 학습 내용 정리, 자신의 프로젝트에 적용 가능성 검토, 다음 주 계획 수립&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;f85d6481-a22b-4037-a4b0-37b1abb0cfb9&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;f85d6481-a22b-4037-a4b0-37b1abb0cfb9&quot; data-id=&quot;f85d6481-a22b-4037-a4b0-37b1abb0cfb9&quot; data-ke-size=&quot;size26&quot;&gt;실전 팁과 주의사항&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;63db2a61-96d3-40ed-a6f3-7bfa3ee2a94b&quot; data-ke-size=&quot;size16&quot;&gt;학습 효율을 높이는 팁과 흔히 하는 실수를 함께 정리했습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;17ae636d-f0de-47cc-943e-f89a12731086&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효과적인 학습을 위한 팁&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;afa4c2b1-038e-441b-b539-0fc515e100e2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;f2aa8970-e547-4e96-a910-978298fe49d5&quot;&gt;&lt;b&gt;한 번에 한 가지에 집중:&lt;/b&gt; 전체 코드를 한꺼번에 읽으려 하지 말고, 한 모듈/클래스만 깊이 있게 파고드세요.&lt;/li&gt;
&lt;li data-id=&quot;a0d0ef29-b0c5-4b73-8c69-caeba21a1b7e&quot;&gt;&lt;b&gt;테스트 코드부터 읽기:&lt;/b&gt; 테스트는 코드의 사용 설명서입니다. 정상 케이스와 실패 케이스가 모두 담겨 있습니다.&lt;/li&gt;
&lt;li data-id=&quot;8ff197fc-31b5-4058-933b-c23fad3fb1d7&quot;&gt;&lt;b&gt;IDE의 디버거 적극 활용:&lt;/b&gt; 실제 실행 흐름을 추적하고 변수값 변화를 직접 확인하세요.&lt;/li&gt;
&lt;li data-id=&quot;9956fe21-d0fa-4281-8668-5434110cb26b&quot;&gt;&lt;b&gt;자신의 프로젝트에 즉시 적용:&lt;/b&gt; 이론이 실전 경험으로 변환되고, 문제점 발견 시 더 깊은 학습이 이어집니다.&lt;/li&gt;
&lt;li data-id=&quot;1d42d4e7-fc81-4395-a44b-2238106c8d93&quot;&gt;&lt;b&gt;정기적으로 회고:&lt;/b&gt; 매달 배운 내용을 정리하고 적용한 사항을 검토하세요.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;af0c6898-74ee-4a0e-ac46-75512b5060c0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;자주 하는 실수와 해결책&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;0cb741f0-2fe4-4def-b040-50d1ba2af52a&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;실수&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;문제점&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;해결책&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;3b017943-5583-41e3-9df6-a10822e8d061&quot;&gt;
&lt;td data-id=&quot;010edacc-89b3-4027-b9df-707e0351c1a8&quot;&gt;&lt;span&gt;최신 main 브랜치만 보기&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b5e898d9-8658-4b31-a994-65ac86bc3c6c&quot;&gt;&lt;span&gt;기능 충돌, 혼동 발생&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;8423e3d6-16a1-4c95-9381-4e9337b7073f&quot;&gt;&lt;span&gt;안정 버전(3.2.x) 먼저 학습&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;88e46ea8-1cdf-4243-9e81-1754edb66a8b&quot;&gt;
&lt;td data-id=&quot;519f803e-1178-4721-97c9-b51e889f01be&quot;&gt;&lt;span&gt;문서 없이 코드만 읽기&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;fd6f97b6-4b17-4652-8ec3-c50792aedef2&quot;&gt;&lt;span&gt;왜인지 이해 못함&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;f0f6715d-13a2-40ca-93ef-0f1e2727ffc0&quot;&gt;&lt;span&gt;테스트 코드부터 시작&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8b4e158b-1679-4db2-a46b-51d0b1588b0f&quot;&gt;
&lt;td data-id=&quot;bba3c92c-f819-436e-9a05-778605ceec24&quot;&gt;&lt;span&gt;전체 구조 이해하려 함&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;e56f4d4e-631b-4cec-95e2-65b9c5f58a8d&quot;&gt;&lt;span&gt;압도감, 포기&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;cbff72a8-26f6-4d22-acd4-ea035af9a7c5&quot;&gt;&lt;span&gt;한 모듈만 집중&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;62666ffe-d71c-4ba3-9aff-b94d67d2a5fa&quot;&gt;
&lt;td data-id=&quot;e138d330-e416-43ac-9add-f5138a2f4693&quot;&gt;&lt;span&gt;혼자만 학습&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;7b9b27c4-35b7-4894-aaaa-a82a30d064cc&quot;&gt;&lt;span&gt;피드백 부족, 진행 정체&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;ecf86550-1122-4ac1-8a25-ded61efd6690&quot;&gt;&lt;span&gt;커뮤니티와 함께&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;33f6f0ff-cfb6-4cdb-888f-04114dfcdbcb&quot;&gt;
&lt;td data-id=&quot;14b28fb2-cba1-4341-a284-df9c024ffea7&quot;&gt;&lt;span&gt;배운 것 적용 안 함&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b4cc0891-6ec3-4c08-b38b-a2920f843507&quot;&gt;&lt;span&gt;개념 이해만, 실전 응용 못함&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;5f217f78-74f9-4d4d-a51c-8520d4bb2dc1&quot;&gt;&lt;span&gt;학습하며 즉시 적용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;58e7a66b-4acb-4e29-9b5b-ddc271286dc4&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;58e7a66b-4acb-4e29-9b5b-ddc271286dc4&quot; data-id=&quot;58e7a66b-4acb-4e29-9b5b-ddc271286dc4&quot; data-ke-size=&quot;size26&quot;&gt;추가 리소스&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;584f5eb9-d814-4b61-9649-aff85b489879&quot; 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-id=&quot;f89a90f4-bef2-4c73-ac72-05e5119129f7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e2016949-bd10-478f-9a3c-d00f72345eef&quot;&gt;&lt;b&gt;Spring Boot 공식 문서:&lt;/b&gt; &lt;a href=&quot;https://docs.spring.io/spring-boot/&quot;&gt;https://docs.spring.io/spring-boot/&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;5d307b83-bb86-48d9-8c12-34dd51557e6c&quot;&gt;&lt;b&gt;Spring Framework:&lt;/b&gt; &lt;a href=&quot;https://spring.io/projects/spring-framework&quot;&gt;https://spring.io/projects/spring-framework&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;40ba1ece-09c7-481d-8a76-f302a98bcd1f&quot;&gt;&lt;b&gt;Spring Data:&lt;/b&gt; &lt;a href=&quot;https://spring.io/projects/spring-data&quot;&gt;https://spring.io/projects/spring-data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2851f851-09b8-451f-b59a-5daf274f0b96&quot; 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-id=&quot;b544c770-027b-4414-9423-1293beabeb46&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;242da483-a375-4477-9fcd-aebb47342d7f&quot;&gt;&lt;b&gt;Stack Overflow:&lt;/b&gt; spring-boot 태그&lt;/li&gt;
&lt;li data-id=&quot;72c5dea7-abbc-4c2d-ad6e-8786889f803d&quot;&gt;&lt;b&gt;GitHub Discussions:&lt;/b&gt; spring-boot 저장소의 Discussions 탭&lt;/li&gt;
&lt;li data-id=&quot;813b8f96-62d5-4ee5-8300-fe896f9c289d&quot;&gt;&lt;b&gt;Gitter Channel:&lt;/b&gt; spring-projects/spring-boot&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;28d70f41-9e15-4cd0-90a5-757e6e4d424c&quot; 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-id=&quot;cc31ea68-9940-43a0-b8b8-23568ef08c7b&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;f84e89fe-b860-4927-8ea6-da2bbc7f2595&quot;&gt;&lt;b&gt;Spring Boot 공식 가이드:&lt;/b&gt; Getting Started Guides&lt;/li&gt;
&lt;li data-id=&quot;d3c59863-54f5-4b16-bcc6-c67808e202e8&quot;&gt;&lt;b&gt;Baeldung Spring Boot 튜토리얼:&lt;/b&gt; &lt;a href=&quot;https://www.baeldung.com&quot;&gt;https://www.baeldung.com&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;9959c031-c7df-41b3-b4c3-8429ca525076&quot;&gt;&lt;b&gt;토비의 스프링 부트:&lt;/b&gt; 아키텍처 깊이 있는 이해에 추천&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;1fd632d9-9c94-4e54-9a6b-cc589bf1fd3f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;1fd632d9-9c94-4e54-9a6b-cc589bf1fd3f&quot; data-id=&quot;1fd632d9-9c94-4e54-9a6b-cc589bf1fd3f&quot; data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9e0a1208-1483-4972-a8b3-4613e53b4063&quot; data-ke-size=&quot;size16&quot;&gt;Spring Boot GitHub 저장소는 단순히 소스코드 모음이 아니라, 스프링 부트의 아키텍처와 철학을 배우는 최고의 교과서입니다. 체계적인 학습을 통해 다음을 얻을 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;6be48763-3b9f-4b3c-8aaa-3ffe96cfc212&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;2a6b0d3c-a74f-4e77-9520-ad08896c8e5e&quot;&gt;자동 구성의 작동 원리 이해&lt;/li&gt;
&lt;li data-id=&quot;06eac504-8860-44a4-878c-00dcca7f483d&quot;&gt;최고 수준의 코딩 패턴과 스타일 학습&lt;/li&gt;
&lt;li data-id=&quot;817150cc-4358-4935-9ba1-bedcb70099c8&quot;&gt;실무에서 발생하는 문제들의 해결 방법 습득&lt;/li&gt;
&lt;li data-id=&quot;6255c7ab-150a-4e1b-ac2f-e9e4f6f05f8a&quot;&gt;점진적으로 Spring Boot 커뮤니티의 일원이 되는 경험&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;edc715d7-c38d-423d-b685-b5c3ca89962b&quot; data-ke-size=&quot;size16&quot;&gt;차근차근 진행하고, 자신의 페이스를 유지하며, 학습한 내용을 실제 프로젝트에 적용하다 보면 Spring Boot에 대한 이해가 한 단계 깊어질 것입니다. Happy Learning!  &lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>AutoConfiguration</category>
      <category>Github</category>
      <category>Java</category>
      <category>spring boot</category>
      <category>백엔드</category>
      <category>오픈소스</category>
      <category>자동구성</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/30</guid>
      <comments>https://lazip.tistory.com/entry/Spring-Boot-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EB%B0%A9%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC-GitHub-%EC%A0%80%EC%9E%A5%EC%86%8C-%EA%B5%AC%EC%A1%B0-AutoConfiguration-%ED%95%99%EC%8A%B5-%EB%A1%9C%EB%93%9C%EB%A7%B5#entry30comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:04:17 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot GitHub 저장소 완벽 가이드: 초보자도 5단계로 끝내는 코드 읽기</title>
      <link>https://lazip.tistory.com/entry/Spring-Boot-GitHub-%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%8F%84-5%EB%8B%A8%EA%B3%84%EB%A1%9C-%EB%81%9D%EB%82%B4%EB%8A%94-%EC%BD%94%EB%93%9C-%EC%9D%BD%EA%B8%B0</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-pm-slice=&quot;0 0 []&quot; data-id=&quot;5dca02d5-ec4b-4116-a0fd-4377308ca25b&quot; data-ke-size=&quot;size16&quot;&gt;Spring Boot를 처음 배우기 시작했지만 GitHub 저장소가 어떻게 생겼는지, 어디서 무엇을 찾아야 할지 막막한가요? 이 가이드 하나로 Spring Boot 저장소에서 필요한 정보를 찾아 이해하고 활용할 수 있게 됩니다.&lt;/p&gt;
&lt;h2 id=&quot;437395d6-09f9-4e8a-9c18-1c645720e615&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;437395d6-09f9-4e8a-9c18-1c645720e615&quot; data-id=&quot;437395d6-09f9-4e8a-9c18-1c645720e615&quot; data-ke-size=&quot;size26&quot;&gt;  이 가이드가 필요한 당신&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;515662a3-9088-4012-add2-84a832dbd411&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;c8134cae-b110-44fd-9759-ebfbf9b8b624&quot;&gt;Spring Boot를 처음 배우는 중이다&lt;/li&gt;
&lt;li data-id=&quot;e5538bfd-e96c-433f-9586-8136ef9f0976&quot;&gt;GitHub 저장소가 어떻게 생겼는지 모른다&lt;/li&gt;
&lt;li data-id=&quot;90056e14-216d-45e2-9087-af91728f951b&quot;&gt;어디서 어떤 정보를 찾아야 할지 모른다&lt;/li&gt;
&lt;li data-id=&quot;6ff63f5f-5491-496f-8cf0-e1059afd06f4&quot;&gt;저장소의 코드가 무엇을 의미하는지 모른다&lt;/li&gt;
&lt;li data-id=&quot;d95650ae-64f7-401d-ab4f-7e2d76cb553a&quot;&gt;배운 걸 자신의 프로젝트에 적용하고 싶다&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ba8401ee-43ec-4ddd-8d2a-1cb12b9aabd3&quot; data-ke-size=&quot;size16&quot;&gt;이 가이드를 읽으면: &lt;b&gt;&quot;Spring Boot 저장소에서 필요한 정보를 찾아 이해하고 활용할 수 있다&quot;&lt;/b&gt;&lt;/p&gt;
&lt;h2 id=&quot;fa254852-a4b7-42c1-9f66-e04b72ee933f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;fa254852-a4b7-42c1-9f66-e04b72ee933f&quot; data-id=&quot;fa254852-a4b7-42c1-9f66-e04b72ee933f&quot; data-ke-size=&quot;size26&quot;&gt;  5단계로 배우는 Spring Boot GitHub 저장소&lt;/h2&gt;
&lt;h2 id=&quot;014fa936-30af-430e-bf92-3b693f92b04f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;014fa936-30af-430e-bf92-3b693f92b04f&quot; data-id=&quot;014fa936-30af-430e-bf92-3b693f92b04f&quot; data-ke-size=&quot;size26&quot;&gt;Step 1: &quot;이게 뭐지?&quot; - 저장소 방문하기 (5분)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ef0c6b3e-d67d-4969-9d55-10d6aa947eca&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;저장소 주소:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/spring-projects/spring-boot&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;90fd1401-434e-4283-94a8-badb00301375&quot; data-ke-size=&quot;size16&quot;&gt;저장소에 처음 접속하면 아래와 같은 화면이 보입니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;2636db06-f1b3-458d-b79a-6947541a622e&quot;&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│ Code (여기에 있음) | Issues | Pull requests│
├─────────────────────────────────────────┤
│ main ▼          [검색창]                  │
├─────────────────────────────────────────┤
│   spring-boot-project/    (폴더)        │
│   spring-boot-tests/      (폴더)        │
│   docs/                   (폴더)        │
│   README.md               (파일)        │
│   pom.xml                 (파일)        │
└─────────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e579e569-b1c0-41e0-a3a2-7556e9cfaa4d&quot; data-ke-size=&quot;size16&quot;&gt;복잡해 보이지만 걱정하지 마세요. &lt;b&gt;여기서 볼 핵심 폴더는 3개뿐입니다!&lt;/b&gt;&lt;/p&gt;
&lt;h2 id=&quot;ba00401c-d5a0-4e15-bb9d-7c72c32a45b7&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;ba00401c-d5a0-4e15-bb9d-7c72c32a45b7&quot; data-id=&quot;ba00401c-d5a0-4e15-bb9d-7c72c32a45b7&quot; data-ke-size=&quot;size26&quot;&gt;Step 2: &quot;폴더들의 정체&quot; - 구조 이해하기 (10분)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7c140a00-6cec-47ea-a573-f91315666cbb&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1️⃣ spring-boot-autoconfigure (⭐ 초보자 추천!)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;3c54011e-65e4-40b9-b7d7-cd044ed7c3c0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt; &quot;Spring Boot가 뭘 자동으로 설정하는가&quot; 배우는 곳&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot; data-id=&quot;d5b4cc9c-1477-49b9-b5d7-76dbde672298&quot;&gt;&lt;code&gt;spring-boot-autoconfigure/
├─ src/main/java/...
│  ├─ jdbc/
│  │  └─ JdbcAutoConfiguration.java    (DB 자동 설정)
│  ├─ data/jpa/
│  │  └─ JpaAutoConfiguration.java     (JPA 자동 설정)
│  ├─ web/
│  │  └─ WebMvcAutoConfiguration.java  (웹 자동 설정)
│  └─ security/
│     └─ SecurityAutoConfiguration.java (보안 자동 설정)
│
└─ src/test/java/...
   └─ (위와 같은 구조인데 Tests.java로 끝남)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;78ce2e42-f08b-4430-b022-5a25d565164c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;3e2f397a-9167-49f6-a9a2-8b19609dc3f7&quot;&gt;&lt;b&gt;언제 들어가나?&lt;/b&gt; &quot;JPA 자동 설정이 뭔지?&quot; 궁금할 때&lt;/li&gt;
&lt;li data-id=&quot;7b6e9864-ca28-4999-a705-3fd6fd8c3dab&quot;&gt;&lt;b&gt;파일 이름 패턴:&lt;/b&gt; 기술이름 + AutoConfiguration / 기술이름 + AutoConfigurationTests&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;5a1bfbf3-b228-495a-975a-8cb6953674a7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2️⃣ spring-boot-starters&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c6e4cedb-4e44-486b-9364-d35cd39c79cd&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt; &quot;각 스타터에 뭐가 들어있는가&quot; 알 수 있는 곳&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;dd6f2a09-a3c3-424e-9f8c-10f0a3d1c4d5&quot;&gt;&lt;code&gt;spring-boot-starters/
├─ spring-boot-starter/          (기본)
├─ spring-boot-starter-web/      (웹 개발)
├─ spring-boot-starter-data-jpa/ (데이터베이스)
├─ spring-boot-starter-security/ (보안)
└─ ... (더 많은 스타터들)

각 폴더 안에는:
├─ pom.xml (그 스타터의 의존성 정의)
└─ (그것뿐!)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;0b59adb5-34f8-4097-8400-e62798d7de6d&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e43ba1b8-9f48-4c02-9c56-63b8e75ee9dc&quot;&gt;&lt;b&gt;언제 들어가나?&lt;/b&gt; &quot;spring-boot-starter-web에 뭐가 들어있나?&quot; 궁금할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fa2a5950-409a-4b3f-864f-b321891e88ad&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3️⃣ spring-boot&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;6b3abde8-2db8-429c-94ce-6c4d87634a4d&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적:&lt;/b&gt; &quot;Spring Boot가 어떻게 시작되는가&quot; 배우는 곳&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;0b1e0966-bf92-4216-b755-58101ed640a0&quot;&gt;&lt;code&gt;spring-boot/
├─ src/main/java/
│  └─ org/springframework/boot/...
│     ├─ SpringApplication.java      (시작 클래스)
│     ├─ ApplicationContext.java      (Bean 관리)
│     └─ ... (핵심 클래스들)
│
└─ src/test/java/
   └─ ... (테스트 코드들)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;dd1fc372-8a97-4b5d-8bfe-d08b79536a3c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ecfc4512-fcba-4bc6-aab4-c8b1cf0d85a1&quot;&gt;&lt;b&gt;언제 들어가나?&lt;/b&gt; &quot;Spring Boot가 어떻게 작동하나?&quot; 깊이 있게 알고 싶을 때 (초보자는 나중에 봐도 됩니다)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8ffa817d-ac71-4c89-b80c-6844c978e9ce&quot; 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-id=&quot;ba9ca93a-c859-401f-8936-45a78c993fbf&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;b6568209-21e9-4f23-aae9-2cf5ab0253ee&quot;&gt;&lt;b&gt;  spring-boot-tests/&lt;/b&gt;: 통합 테스트 (지금은 Skip 가능)&lt;/li&gt;
&lt;li data-id=&quot;4a1659d6-a781-4cf3-b46b-2d36f891981b&quot;&gt;&lt;b&gt;  docs/&lt;/b&gt;: 공식 문서 (초보자에게 다소 어려울 수 있음)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;75dba7c2-cbc4-46d0-8aed-ee88c52e274f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;75dba7c2-cbc4-46d0-8aed-ee88c52e274f&quot; data-id=&quot;75dba7c2-cbc4-46d0-8aed-ee88c52e274f&quot; data-ke-size=&quot;size26&quot;&gt;Step 3: &quot;어떻게 찾지?&quot; - 파일 찾는 법 (5분)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1bb5e6aa-a936-489f-b780-1b3658097df9&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 1: GitHub 검색 (가장 쉬움!)&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;085fed2c-c9b7-4260-b453-eb84ccb86fe5&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;873bf74e-f2da-49e1-a1c1-ded32fe430b6&quot;&gt;저장소 페이지에서 / 키 누르기 또는 &quot;Go to file&quot; 버튼 클릭&lt;/li&gt;
&lt;li data-id=&quot;896a88d6-977e-4e8c-b498-10ca90650b9c&quot;&gt;찾는 파일 이름 입력 (예: JdbcAutoConfiguration)&lt;/li&gt;
&lt;li data-id=&quot;f4f44917-66d9-43af-aabe-d206753c0bbb&quot;&gt;엔터 누르기&lt;/li&gt;
&lt;li data-id=&quot;0d8ad56d-5a64-44dd-9200-25aa9d4f8706&quot;&gt;파일 클릭해서 열기&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7bef609e-e419-4db2-824c-f777882b686b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 2: 폴더 따라가기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d6bd96ce-2a61-48c9-b4aa-3a5dc5960d6a&quot; data-ke-size=&quot;size16&quot;&gt;예: &quot;JPA 자동 설정을 찾고 싶다&quot;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;27b94779-f300-4fb2-92a7-b74998fa3973&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;89304c7f-b2af-4e5a-981b-090ba47b09e7&quot;&gt;spring-boot-project 클릭&lt;/li&gt;
&lt;li data-id=&quot;314d2d4c-8661-4be7-81bb-75b5bedb3a13&quot;&gt;spring-boot-autoconfigure 클릭&lt;/li&gt;
&lt;li data-id=&quot;4b35aefd-c1dd-4933-a444-0f465d189e8f&quot;&gt;src &amp;rarr; main &amp;rarr; java 클릭&lt;/li&gt;
&lt;li data-id=&quot;26ce1864-0c07-475b-ab9e-ed2d6693c9e3&quot;&gt;org/springframework/boot/autoconfigure 따라가기&lt;/li&gt;
&lt;li data-id=&quot;2dfa8c24-7caa-4877-95d1-6b4078fb9178&quot;&gt;data &amp;rarr; jpa 클릭&lt;/li&gt;
&lt;li data-id=&quot;928c4f64-acf9-40a0-9dd9-ca54a0299d5f&quot;&gt;JpaAutoConfiguration.java 클릭&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b398e069-6505-4260-a61a-b287e944fc34&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;팁:&lt;/b&gt; 폴더가 많으면 &quot;Go to file&quot; (방법 1)이 훨씬 빠릅니다!&lt;/p&gt;
&lt;h2 id=&quot;98808588-e444-4ab2-b18d-8bba0be2e061&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;98808588-e444-4ab2-b18d-8bba0be2e061&quot; data-id=&quot;98808588-e444-4ab2-b18d-8bba0be2e061&quot; data-ke-size=&quot;size26&quot;&gt;Step 4: &quot;파일을 열었는데 뭐지?&quot; - 파일 읽는 법 (15분)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;35814607-15f6-4bf1-b430-93913c5b6b8e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  자동 설정 파일 (AutoConfiguration.java) 읽는 법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;73a679ae-1de3-4807-b399-e829182a6572&quot; data-ke-size=&quot;size16&quot;&gt;파일 이름: JdbcAutoConfiguration.java&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;500a43d4-5de0-4aba-ad24-dc27a7eb8689&quot;&gt;&lt;code&gt;//   최상단: 파일 설명 (중요!)
/**
 * Auto-configuration for JDBC access to a database.
 *
 * &amp;rarr; &quot;이 파일은 JDBC로 데이터베이스에 접근하는 걸 자동 설정한다&quot;
 */

//   클래스 선언 (3가지 찾아보기)
@AutoConfiguration(after = DataSourceAutoConfiguration.class)
// &amp;rarr; 1. &quot;순서&quot; : 데이터소스 설정 다음에 실행한다는 뜻

@ConditionalOnClass(JdbcTemplate.class)
// &amp;rarr; 2. &quot;조건&quot; : JdbcTemplate이라는 클래스가 있을 때만 실행

public class JdbcAutoConfiguration {

    //   Bean 생성 메서드 (가장 중요!)
    @Bean
    @ConditionalOnMissingBean(JdbcTemplate.class)
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
    // &amp;rarr; 3. &quot;생성&quot; : JdbcTemplate이라는 Bean을 만든다는 뜻
    //             (단, 사용자가 이미 만들었으면 만들지 않음)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8984fe30-6576-4624-b4fb-8873d94c0113&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;읽을 때 꼭 답해야 할 3가지:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;7fe86568-c226-47c0-a80d-0b52c829cfd9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;c2cefc91-5ed6-4d2c-a0d2-debd90141f5d&quot;&gt;&lt;b&gt;이 설정은 언제 실행되나?&lt;/b&gt; &amp;rarr; @Conditional* 라인 읽기 &amp;rarr; &quot;JdbcTemplate 클래스가 있으면 실행&quot;&lt;/li&gt;
&lt;li data-id=&quot;4367fb44-410f-482b-a958-e6433b797f48&quot;&gt;&lt;b&gt;뭘 만드는가?&lt;/b&gt; &amp;rarr; @Bean 메서드 찾기 &amp;rarr; &quot;JdbcTemplate이라는 Bean을 만든다&quot;&lt;/li&gt;
&lt;li data-id=&quot;b7afd81b-c79a-44b0-8304-539c26954daf&quot;&gt;&lt;b&gt;사용자가 오버라이드할 수 있나?&lt;/b&gt; &amp;rarr; @ConditionalOnMissingBean 있는지 확인 &amp;rarr; &quot;사용자가 이미 만들었으면 만들지 않는다&quot; (YES)&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c08eb9a1-a65e-4bef-aa43-8b7fd70b73fc&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  테스트 파일 (*Tests.java) 읽는 법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;84043af6-75f2-45fe-b42e-7745e3b31db3&quot; data-ke-size=&quot;size16&quot;&gt;테스트 파일을 꼭 읽어야 하는 이유가 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;5b8ad774-d1f1-4e84-b3fc-45170b6302fd&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;d4da734a-7656-4a84-86c6-502f9a44fb15&quot;&gt;&lt;b&gt;코드만 읽으면&lt;/b&gt; &amp;rarr; &quot;이게 뭐 하는 건지&quot; 이해 못함&lt;/li&gt;
&lt;li data-id=&quot;9e832d00-83ff-4615-8223-de8719e39899&quot;&gt;&lt;b&gt;테스트도 읽으면&lt;/b&gt; &amp;rarr; &quot;이렇게 작동한다는 증거&quot;를 본다&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c25be36a-5761-4e53-9f46-39da744c993e&quot; data-ke-size=&quot;size16&quot;&gt;즉, 테스트 파일은 &lt;b&gt;&quot;사용 설명서&quot; + &quot;증거&quot;&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot; data-id=&quot;e4b5d5c0-16d2-449e-9c5d-78a8c3048270&quot;&gt;&lt;code&gt;// 파일 이름: JdbcAutoConfigurationTests.java

@SpringBootTest
// &amp;rarr; &quot;진짜로 Spring Boot를 실행해서 테스트한다&quot;는 뜻
class JdbcAutoConfigurationTests {

    //   테스트 1: 정상 케이스
    @Test
    void testJdbcTemplateBacksOff() {
        // &quot;JdbcTemplate이 자동으로 생성된다&quot;는 것을 증명
    }

    //   테스트 2: 사용자 설정 케이스
    @Test
    void testJdbcTemplateWhenUserProvided() {
        // &quot;사용자가 직접 만들면 그것을 쓴다&quot;는 것을 증명
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ca5ef37f-fce7-4da4-a9a5-3de1194a70e4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;테스트를 읽을 때:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;4969a9df-0d07-49be-9e5a-57f491655b3b&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;91ae2d80-8191-4f3a-9383-31db7021ad0d&quot;&gt;&lt;b&gt;메서드 이름 읽기 (가장 중요!)&lt;/b&gt;: testJdbcTemplateBacksOff &amp;rarr; &quot;JdbcTemplate이 자동으로 생성된다&quot;&lt;/li&gt;
&lt;li data-id=&quot;7c7d453e-7451-4ad9-868c-e700420ad27c&quot;&gt;&lt;b&gt;@Test가 뭔가?&lt;/b&gt; &amp;rarr; &quot;이것이 테스트한다&quot;는 뜻 (코드의 증명)&lt;/li&gt;
&lt;li data-id=&quot;b9c225f4-64ad-439e-88f6-749f9ca937d1&quot;&gt;&lt;b&gt;메서드 안의 코드는 이해 안 해도 된다&lt;/b&gt; &amp;rarr; 이름만 읽어도 충분&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f347a1d8-c28b-4b73-bffd-66662b74ce58&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  pom.xml (의존성) 읽는 법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;dd08fd55-1e42-47c5-bf68-5c053da36c9c&quot; data-ke-size=&quot;size16&quot;&gt;파일 위치: spring-boot-starters/spring-boot-starter-web/pom.xml&lt;/p&gt;
&lt;pre class=&quot;xml&quot; data-id=&quot;3f1c09f5-f3e0-4488-b7cf-01863d39d684&quot;&gt;&lt;code&gt;&amp;lt;project&amp;gt;
    &amp;lt;dependencies&amp;gt;

        &amp;lt;!-- 1️⃣ 기본 스타터 --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-boot-starter&amp;lt;/artifactId&amp;gt;
            &amp;lt;!-- &amp;rarr; &quot;이 스타터도 기본으로 포함&quot; --&amp;gt;
        &amp;lt;/dependency&amp;gt;

        &amp;lt;!-- 2️⃣ 웹 개발에 필요한 라이브러리 --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-webmvc&amp;lt;/artifactId&amp;gt;
            &amp;lt;!-- &amp;rarr; &quot;Spring의 웹 부분&quot; --&amp;gt;
        &amp;lt;/dependency&amp;gt;

        &amp;lt;!-- 3️⃣ 웹 서버 --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-boot-starter-tomcat&amp;lt;/artifactId&amp;gt;
            &amp;lt;!-- &amp;rarr; &quot;톰캣 서버&quot; --&amp;gt;
        &amp;lt;/dependency&amp;gt;

        &amp;lt;!-- 4️⃣ 선택적 라이브러리 --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;com.fasterxml.jackson.core&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;jackson-databind&amp;lt;/artifactId&amp;gt;
            &amp;lt;optional&amp;gt;true&amp;lt;/optional&amp;gt;
            &amp;lt;!-- &amp;rarr; &quot;있어도 되고 없어도 되는 라이브러리&quot; --&amp;gt;
        &amp;lt;/dependency&amp;gt;
    &amp;lt;/dependencies&amp;gt;
&amp;lt;/project&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b1f1165d-a6ee-44bd-ae0f-4bef4e3539fc&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;읽을 때 물어봐야 할 것:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;aaf0d8ef-37b7-4346-a187-d3c8f129026b&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;f082a4e0-1bbe-4717-841b-b11e3f2aa739&quot;&gt;이 스타터에 몇 개의 라이브러리가 들어있나? &amp;rarr; &amp;lt;dependency&amp;gt; 태그 세기&lt;/li&gt;
&lt;li data-id=&quot;ffba7a93-5d64-4608-93f5-79cad9a66c4c&quot;&gt;필수 라이브러리는 뭔가? &amp;rarr; &amp;lt;optional&amp;gt;true&amp;lt;/optional&amp;gt;가 없는 것들&lt;/li&gt;
&lt;li data-id=&quot;c800f218-da76-44df-8fbe-0f586086803f&quot;&gt;선택적 라이브러리는 뭔가? &amp;rarr; &amp;lt;optional&amp;gt;true&amp;lt;/optional&amp;gt;가 있는 것들&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;2da7fe2f-a01f-472a-9997-bcf751a9763f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;2da7fe2f-a01f-472a-9997-bcf751a9763f&quot; data-id=&quot;2da7fe2f-a01f-472a-9997-bcf751a9763f&quot; data-ke-size=&quot;size26&quot;&gt;Step 5: &quot;직접 해보기!&quot; - 실습하기 (30분)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7ddca9e4-f127-49a2-b92f-8d8f8fa4f502&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실습 1: 웹 개발 설정 이해하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e1570778-1b57-41e9-a2e0-a14b55df5e33&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표:&lt;/b&gt; &quot;Spring Boot가 웹 개발을 위해 뭘 자동 설정하는가&quot; 이해&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;053dc833-71b2-4a64-9489-60ac90192f86&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;f3ca746c-ca26-4794-a96e-eaf76f945945&quot;&gt;GitHub 저장소 열기&lt;/li&gt;
&lt;li data-id=&quot;f5c106dd-7ec6-4ac3-aef3-ccf644e51c3d&quot;&gt;spring-boot-autoconfigure 폴더 열기&lt;/li&gt;
&lt;li data-id=&quot;30647287-9282-4610-82a3-c18709bef1eb&quot;&gt;WebMvcAutoConfiguration.java 찾기 (Go to file 사용!)&lt;/li&gt;
&lt;li data-id=&quot;1a53754e-1181-4cec-91cf-21c2f420ac7d&quot;&gt;파일 열고 읽기: @AutoConfiguration(after = ?) 찾기 / @ConditionalOnClass(?) 찾기 / @Bean 메서드 몇 개 있나 세기&lt;/li&gt;
&lt;li data-id=&quot;ea5a20fc-0b58-4d90-85aa-22a2de2db0db&quot;&gt;WebMvcAutoConfigurationTests.java 찾기&lt;/li&gt;
&lt;li data-id=&quot;cc21318b-bc6b-422c-a9d7-5335619cd78a&quot;&gt;테스트 메서드 이름들만 읽어보기&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;838bed91-3838-4f5a-a861-951de3c53174&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;Spring Boot가 웹을 위해 어떻게 자동 설정하는가&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;0e80103a-213a-407d-a236-13f5528e44d0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실습 2: 스타터 구성 분석하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;07ce3b2d-a79b-48b2-bc83-f35beaf7c48d&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표:&lt;/b&gt; &quot;각 스타터에 뭐가 들어있는가&quot; 이해&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;4ba6828c-efff-469a-97a3-3b193c925a47&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;707cfbfd-ffbc-4ab6-be8f-27bfe5928e8b&quot;&gt;spring-boot-starters 폴더 열기&lt;/li&gt;
&lt;li data-id=&quot;b3e59291-bfa8-4c9f-8bf9-040316d2cc34&quot;&gt;spring-boot-starter-web 폴더 열기&lt;/li&gt;
&lt;li data-id=&quot;c6718026-0f1a-467f-bcfc-835cbe5f3750&quot;&gt;pom.xml 파일 열기&lt;/li&gt;
&lt;li data-id=&quot;ac7704dd-9757-4eb8-b08d-127223efda29&quot;&gt;&amp;lt;dependency&amp;gt;를 세어보기 (&quot;아, 웹 스타터에 10개의 라이브러리가 들어있네&quot;)&lt;/li&gt;
&lt;li data-id=&quot;2ff8118f-0d3d-42af-b9f6-d7a3242b1c61&quot;&gt;spring-boot-starter-data-jpa도 비교해보기&lt;/li&gt;
&lt;li data-id=&quot;14247e53-a876-4c8c-b8b8-233fcc072e31&quot;&gt;자신의 프로젝트 pom.xml과 비교해보기&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8c3284fe-76c9-4ae7-bc59-4986b5e25d2b&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;스타터가 얼마나 많은 라이브러리를 제공하는가&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;14115ec2-8977-4855-93a9-e1d9718912d6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실습 3: 자신의 프로젝트와 연결하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;eb545d1f-28a6-4ce1-ad0e-92f26569a038&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표:&lt;/b&gt; &quot;내 프로젝트가 Spring Boot에서 어떻게 자동 설정되는가&quot; 이해&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;e6d170a9-b4b9-404c-982b-6691f9ecfe4a&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;fc400b3a-bb4e-41a4-b1aa-da39c8108ffd&quot;&gt;자신의 프로젝트 pom.xml 열기&lt;/li&gt;
&lt;li data-id=&quot;f28f5595-9850-42b5-902e-4f9d06e482e9&quot;&gt;사용 중인 스타터 찾기 (예: spring-boot-starter-web)&lt;/li&gt;
&lt;li data-id=&quot;cde27f8d-4b79-4394-8b65-32be5bf7e33c&quot;&gt;GitHub에서 그 스타터의 pom.xml 찾기&lt;/li&gt;
&lt;li data-id=&quot;e37008f2-3521-4244-88be-bd5b02afaf20&quot;&gt;두 파일 비교하기: GitHub의 스타터에 뭐가 들어있나? / 내 프로젝트에는 추가로 뭐가 있나? / 왜 그 라이브러리들이 필요한가?&lt;/li&gt;
&lt;li data-id=&quot;a56c83c1-8da1-459a-b6c4-042d5b26ee9b&quot;&gt;GitHub에서 그 기술의 자동 설정도 찾아보기 (예: WebMvcAutoConfiguration)&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;36739ec6-6b7d-4c41-a92b-52328f6546b0&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;내 프로젝트가 Spring Boot와 어떻게 연결되는가&quot;&lt;/p&gt;
&lt;h2 id=&quot;5c8e2c01-5ee2-415f-9501-177c7562b75e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;5c8e2c01-5ee2-415f-9501-177c7562b75e&quot; data-id=&quot;5c8e2c01-5ee2-415f-9501-177c7562b75e&quot; data-ke-size=&quot;size26&quot;&gt;  초보자가 자주 하는 실수 (꼭 피하기!)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8590f091-8986-47c6-a184-391e8107148d&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 실수 1: &quot;main 브랜치만 본다&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8d7049c6-2324-49c8-8da3-e481ac3fcae5&quot; data-ke-size=&quot;size16&quot;&gt;GitHub의 main 브랜치는 &quot;개발 중인 코드&quot;이기 때문에 불안정할 수 있고 자신의 프로젝트 버전과 다를 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1f73dd49-94ef-408f-971d-5c9a53baa0e3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방법:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;67a38ecc-8294-4283-9e74-859e1c10b768&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;144f7e1b-466f-4ed0-8de0-10c6e915caf3&quot;&gt;자신의 Spring Boot 버전 확인 (pom.xml에서 &amp;lt;spring.boot.version&amp;gt;3.2.1&amp;lt;/spring.boot.version&amp;gt;)&lt;/li&gt;
&lt;li data-id=&quot;81234241-47d8-4b89-853f-2a17ca40be73&quot;&gt;GitHub에서 같은 버전의 브랜치 선택 (Main ▼ 클릭 &amp;rarr; &quot;3.2.x&quot; 찾기 &amp;rarr; 클릭)&lt;/li&gt;
&lt;li data-id=&quot;cf37b148-f450-4446-a121-01f2f05c14d9&quot;&gt;그 브랜치에서 파일 찾기&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ba71a89d-5502-46bb-9ae2-dc52e7669ee9&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 실수 2: &quot;코드만 읽고 테스트는 안 본다&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8f09c0af-f0ce-4a72-8031-fb34c60fabe0&quot; data-ke-size=&quot;size16&quot;&gt;JdbcAutoConfiguration.java만 읽으면 &quot;이게 뭐 하는 건지&quot; 정확히 모르고, 실제로 어떻게 사용되는지도 알 수 없습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4896cb47-5da6-48aa-8d4b-24cb47feef4b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방법:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;5f5d5dda-5189-467c-97ec-3966e1a1bda2&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;b0601acd-fabb-4f97-95c5-3532ebd58f59&quot;&gt;AutoConfiguration 파일 읽기: JdbcAutoConfiguration.java&lt;/li&gt;
&lt;li data-id=&quot;abc3b2f8-c2ef-4bfe-a050-a3d2b97ddd0e&quot;&gt;테스트 파일도 반드시 읽기: JdbcAutoConfigurationTests.java&lt;/li&gt;
&lt;li data-id=&quot;be0e8895-1df7-49d8-97d5-3c1c7a460b8d&quot;&gt;테스트를 읽으면 &quot;아, 이렇게 작동하는구나&quot;를 알 수 있다&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;bbc9fa64-641a-41e7-8d6a-59b62f0819a7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;❌ 실수 3: &quot;한 파일을 완벽히 이해하려고 함&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4c7f9cbf-1c64-4726-a7d7-c04fe0731b20&quot; data-ke-size=&quot;size16&quot;&gt;한 파일에서 2~3시간을 쓰면 진도가 안 나가고 지루해져서 포기하게 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;271309e4-de58-4f8b-ac7b-d59d86e3f891&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결방법:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;3751ce51-7edd-43c3-9377-d7bda2af4cbe&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;dfc44a55-2e40-4ed6-887c-aca80c79f048&quot;&gt;&quot;대략 이렇게 된다&quot; 정도만 이해하기&lt;/li&gt;
&lt;li data-id=&quot;00d3e725-7b40-487e-85e1-95d11ce9a1dc&quot;&gt;못 이해하는 부분은 건너뛰기&lt;/li&gt;
&lt;li data-id=&quot;32cfedc9-5e93-4f47-877c-61722a484d1e&quot;&gt;다음 파일로 넘어가기&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2e66fe62-2aef-4846-8529-c514205a74a9&quot; data-ke-size=&quot;size16&quot;&gt;반복하다 보면 처음엔 60% 이해, 두 번째는 80% 이해, 세 번째는 완벽히 이해하게 됩니다.&lt;/p&gt;
&lt;h2 id=&quot;64eb17c6-8562-49be-94b6-1fcbbe39e23a&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;64eb17c6-8562-49be-94b6-1fcbbe39e23a&quot; data-id=&quot;64eb17c6-8562-49be-94b6-1fcbbe39e23a&quot; data-ke-size=&quot;size26&quot;&gt;  추천 학습 순서 (1주일)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d1f0f5ed-b670-4a7c-a9fe-606781fe5c0b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  Day 1-2: 저장소 구조 이해하기 (4시간)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;187e32dc-4275-4025-beba-a02155bcc6c4&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;44b5cae8-0ec4-4a9a-9075-f9267499b822&quot;&gt;GitHub 저장소 방문하기&lt;/li&gt;
&lt;li data-id=&quot;47bf1ee8-21c5-49e6-9010-e757ca33b035&quot;&gt;이 가이드의 Step 1-2 읽기&lt;/li&gt;
&lt;li data-id=&quot;f70ffc5f-67eb-4f8a-9e99-140380404d9a&quot;&gt;주요 폴더 3개가 뭐 하는 곳인지 이해하기&lt;/li&gt;
&lt;li data-id=&quot;b1f5c82e-05ee-41ac-9ff3-3ff395524a7b&quot;&gt;각 폴더의 하위 폴더들 살펴보기&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9e65da63-dc22-4e55-992f-70a570833db6&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;저장소가 어떤 구조인가&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;487a60da-8b4e-492e-b23f-b1625480b6e4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  Day 3-4: 자동 설정 파일 읽기 (6시간)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;ead88291-23c0-47d9-95c3-57ff2561eca9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;fb80b2b5-4a23-40e6-b509-450fa175d1fb&quot;&gt;JdbcAutoConfiguration.java 찾아서 읽기 (30분)&lt;/li&gt;
&lt;li data-id=&quot;1836f744-0a79-4cea-bc88-1368178b8ad5&quot;&gt;JdbcAutoConfigurationTests.java도 읽기 (30분)&lt;/li&gt;
&lt;li data-id=&quot;8ce4444d-8039-4f2c-9c7d-3627edd8dfe6&quot;&gt;물어봐야 할 3가지에 답변하기&lt;/li&gt;
&lt;li data-id=&quot;62a6696c-b1a3-4ba8-93ef-af73fead158b&quot;&gt;WebMvcAutoConfiguration.java 찾아서 읽기 (30분)&lt;/li&gt;
&lt;li data-id=&quot;38a38f31-e64e-4cc7-b1c0-8465a07ecdb3&quot;&gt;WebMvcAutoConfigurationTests.java도 읽기 (30분)&lt;/li&gt;
&lt;li data-id=&quot;11ead685-524d-4db1-9e2c-005c0ac6f280&quot;&gt;자신이 관심 있는 기술 1개 추가로 읽기 (3시간)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;126fee7d-b416-442d-bd39-055d7809e0e6&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;자동 설정이 어떻게 작동하는가&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a35f93a4-a9cb-46a7-9d3c-3884cba7f47d&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  Day 5-7: 스타터와 자신의 프로젝트 연결 (6시간)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;17a0b203-0d12-44df-9187-794cf992902d&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;7dac7cd7-d61a-4c08-b50f-b103b3f94ac2&quot;&gt;spring-boot-starters 폴더 열기&lt;/li&gt;
&lt;li data-id=&quot;5624f73e-4109-4325-a550-956292eba1e9&quot;&gt;3개의 다른 스타터 pom.xml 읽기: spring-boot-starter-web / spring-boot-starter-data-jpa / spring-boot-starter-security&lt;/li&gt;
&lt;li data-id=&quot;4af2738a-1bf1-4266-af4d-f8906ce4d162&quot;&gt;자신의 프로젝트 pom.xml과 비교&lt;/li&gt;
&lt;li data-id=&quot;07cb545a-b5fc-46d6-ad8e-2f683f2eac03&quot;&gt;&quot;아, 내 프로젝트의 의존성이 여기서 정의되는구나&quot; 이해&lt;/li&gt;
&lt;li data-id=&quot;92a4d6fc-349b-43c3-91b4-52a51eead3ee&quot;&gt;각 의존성에 대해 GitHub에서 자동 설정도 찾아보기&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;a24de871-bebb-4332-ae4c-36068d4c19ca&quot; data-ke-size=&quot;size16&quot;&gt;✅ &lt;b&gt;배우는 것:&lt;/b&gt; &quot;스타터의 구성과 자동 설정의 관계&quot;&lt;/p&gt;
&lt;h2 id=&quot;2cbd4637-ca1a-487a-baa4-b7234f1e799a&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;2cbd4637-ca1a-487a-baa4-b7234f1e799a&quot; data-id=&quot;2cbd4637-ca1a-487a-baa4-b7234f1e799a&quot; data-ke-size=&quot;size26&quot;&gt;❓ 자주 묻는 질문 (FAQ)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8033100b-22b8-4150-bbf8-3145e6052e13&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q: 코드가 완벽히 이해가 안 돼도 괜찮나요?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ebc59702-d736-42c8-a4ca-2a070ba4d58f&quot; data-ke-size=&quot;size16&quot;&gt;A: 네, 완벽히 괜찮습니다! 처음엔 60% 이해하면 성공입니다. 반복해서 읽다 보면 자연스럽게 이해됩니다. 1주일 후 60% 이해, 2주일 후 80% 이해, 1개월 후 완벽히 이해하게 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c6db862b-10f0-4924-8114-13dfbe5f35d1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q: 어디서부터 시작해야 할까요?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;29d9e838-a3a8-4615-9309-21c3e334ca77&quot; data-ke-size=&quot;size16&quot;&gt;A: 자신의 프로젝트에서 사용하는 기술부터 시작하세요!&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;f0fdadc2-2dd3-4e53-80b5-9221d3e1669f&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;d2a6950d-5559-438e-8cd5-d3acd868ad6f&quot;&gt;&quot;웹 개발을 배우고 있다&quot; &amp;rarr; WebMvcAutoConfiguration부터&lt;/li&gt;
&lt;li data-id=&quot;82a6ff91-656d-4f8a-b53d-b711ad10eed8&quot;&gt;&quot;데이터베이스를 배우고 있다&quot; &amp;rarr; JpaAutoConfiguration부터&lt;/li&gt;
&lt;li data-id=&quot;8bccb1e3-4a50-467d-aeab-1678c8cbacfd&quot;&gt;&quot;보안을 배우고 있다&quot; &amp;rarr; SecurityAutoConfiguration부터&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;089826a6-8130-49b5-9d63-69b285e514e2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q: main 브랜치와 3.2.x 브랜치 중 뭘 봐야 할까요?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b43a5067-f91d-4946-8f4d-c11ae8244a07&quot; data-ke-size=&quot;size16&quot;&gt;A: 자신의 Spring Boot 버전과 맞는 브랜치를 보세요! Spring Boot 3.2.1을 쓴다면 &quot;3.2.x&quot; 브랜치를 선택하고, 최신 기능을 배우고 싶다면 &quot;main&quot; 브랜치도 가능합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e97dfcfe-276a-4d2a-a441-3c2d84a803b3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q: 테스트 코드가 복잡한데 어떻게 읽을까요?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7e87a984-549a-4ef2-a9d5-a2ba0e6e42e9&quot; data-ke-size=&quot;size16&quot;&gt;A: 메서드 이름만 읽으면 됩니다! testJdbcTemplateBacksOff()는 &quot;JdbcTemplate이 자동으로 생성된다&quot;는 의미입니다. 테스트 메서드의 이름이 가장 중요하고, 코드 안의 세부 내용은 이해 안 해도 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;0133e277-da09-4517-a977-8bb5a108e5b7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q: 다른 폴더들은 언제 봐야 할까요?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b87b1d73-b074-48b8-8ae0-a69f019d51bf&quot; data-ke-size=&quot;size16&quot;&gt;A: 초보자는 일단 skip해도 됩니다! spring-boot-tests/는 3개월 후, docs/는 필요할 때 보세요. 먼저 할 일은 spring-boot-autoconfigure(자동 설정) &amp;rarr; spring-boot-starters(의존성) &amp;rarr; spring-boot(핵심) 순서입니다.&lt;/p&gt;
&lt;h2 id=&quot;49dcf68e-b5b9-4dcb-8655-d1eba67ad024&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;49dcf68e-b5b9-4dcb-8655-d1eba67ad024&quot; data-id=&quot;49dcf68e-b5b9-4dcb-8655-d1eba67ad024&quot; data-ke-size=&quot;size26&quot;&gt;  최종 조언: 시작하기 전에 기억할 것&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;3119d040-9e63-4562-a562-b133a0be1f47&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;8320ebbf-f3c3-482a-afc1-bc25d3f4c2ac&quot;&gt;&lt;b&gt;완벽함을 목표로 하지 마세요.&lt;/b&gt; 초보자는 &quot;대략 이렇게 된다&quot; 정도 이해하면 성공입니다.&lt;/li&gt;
&lt;li data-id=&quot;79c382ba-f497-4649-aeaa-4803c4e29d41&quot;&gt;&lt;b&gt;배운 걸 바로 써먹으세요.&lt;/b&gt; GitHub 읽기만 해선 안 됩니다. 자신의 프로젝트와 연결해야 진짜 이해됩니다.&lt;/li&gt;
&lt;li data-id=&quot;45f7c997-4483-4527-9169-984d7ae61c26&quot;&gt;&lt;b&gt;반복 학습을 믿으세요.&lt;/b&gt; 1번 읽고 모르면 정상입니다. 계속 보다 보면 자연스럽게 이해됩니다.&lt;/li&gt;
&lt;li data-id=&quot;41edab98-203c-44c4-8d2a-c95b89cf0deb&quot;&gt;&lt;b&gt;테스트 코드를 활용하세요.&lt;/b&gt; &quot;이 코드가 뭐 하는 건지 모르겠어&quot; 할 때 테스트 파일을 보면 답이 있습니다.&lt;/li&gt;
&lt;li data-id=&quot;0e7eef19-62b1-40df-926b-eecc13c70282&quot;&gt;&lt;b&gt;한꺼번에 다 하려고 하지 마세요.&lt;/b&gt; 1주일에 3~4개 파일만 읽으면 OK. 꾸준히 하면 1개월 후에 엄청난 성장을 느낄 것입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;e072ca4d-d949-487f-98c4-5d42821f31da&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;e072ca4d-d949-487f-98c4-5d42821f31da&quot; data-id=&quot;e072ca4d-d949-487f-98c4-5d42821f31da&quot; data-ke-size=&quot;size26&quot;&gt;  이 가이드를 다 읽고 할 일&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;f378ccc1-b274-42a2-b47a-76d5bb69ce1f&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;4a3cd229-18d6-4170-9fe5-28716cd6604f&quot;&gt;Step 1: GitHub 저장소를 실제로 열어보기&lt;/li&gt;
&lt;li data-id=&quot;944a9bae-b1d4-4365-a481-147d6a774819&quot;&gt;Step 2: 폴더 구조를 확인하기&lt;/li&gt;
&lt;li data-id=&quot;cb15c47b-6ef4-4f14-b0d6-7347f1c1455c&quot;&gt;Step 3: 파일 검색 기능으로 1개 파일 찾기&lt;/li&gt;
&lt;li data-id=&quot;5ea32e83-f732-481e-b413-736eec5d604c&quot;&gt;Step 4: 찾은 파일을 읽어보기&lt;/li&gt;
&lt;li data-id=&quot;11f3ec62-4c13-4ffc-92ab-959e3fcd3cc7&quot;&gt;Step 5: 테스트 파일도 찾아서 읽어보기&lt;/li&gt;
&lt;li data-id=&quot;c5b143f5-26b2-473b-abfd-a5e3d36270b9&quot;&gt;Step 6: 자신의 프로젝트와 비교해보기&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;c180b30a-6541-4b1a-ae31-51cc5dee8915&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;c180b30a-6541-4b1a-ae31-51cc5dee8915&quot; data-id=&quot;c180b30a-6541-4b1a-ae31-51cc5dee8915&quot; data-ke-size=&quot;size26&quot;&gt;  1개월 후의 당신&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;5078ecef-ef6c-4b29-9f6d-05187645b5ed&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;1c9473bc-a48f-44c4-95b8-3a4f241b117c&quot;&gt;✅ GitHub 저장소에서 파일을 찾을 수 있다&lt;/li&gt;
&lt;li data-id=&quot;d3b03bb3-9d9d-497d-baab-38905394b200&quot;&gt;✅ AutoConfiguration 파일을 읽을 수 있다&lt;/li&gt;
&lt;li data-id=&quot;4e80d298-db6d-4b7f-86e3-7ab9674cfa81&quot;&gt;✅ 테스트 코드로 작동 방식을 이해한다&lt;/li&gt;
&lt;li data-id=&quot;cdf41469-3e42-48d3-b80f-9c04fc4f6235&quot;&gt;✅ 자신의 프로젝트를 GitHub와 연결할 수 있다&lt;/li&gt;
&lt;li data-id=&quot;abebb44e-6d9e-4d28-86e0-7142320b7767&quot;&gt;✅ 새로운 기술을 배울 때 GitHub를 활용할 수 있다&lt;/li&gt;
&lt;li data-id=&quot;5b1a4acb-3090-457d-8bf1-e9d0f4abbd93&quot;&gt;✅ Spring Boot의 설계 철학을 이해한다&lt;/li&gt;
&lt;li data-id=&quot;5e1a7547-8c0b-47f9-8815-5d629c105080&quot;&gt;✅ &quot;자신도 자동 설정을 만들어볼까?&quot; 생각이 든다&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;853b5a78-fc21-4aec-a845-6deb29453d38&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;853b5a78-fc21-4aec-a845-6deb29453d38&quot; data-id=&quot;853b5a78-fc21-4aec-a845-6deb29453d38&quot; data-ke-size=&quot;size26&quot;&gt;  유용한 링크&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;3d95d3fa-9d60-437b-a82e-f4e7ab3360f3&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;6267e4b0-417f-4971-ac03-5769ff810374&quot;&gt;&lt;b&gt;Spring Boot GitHub 저장소:&lt;/b&gt; &lt;a href=&quot;https://github.com/spring-projects/spring-boot&quot;&gt;https://github.com/spring-projects/spring-boot&lt;/a&gt;&lt;/li&gt;
&lt;li data-id=&quot;7a05a114-c597-448a-9827-b4b86c8e63ce&quot;&gt;&lt;b&gt;Spring Boot 공식 문서:&lt;/b&gt; &lt;a href=&quot;https://docs.spring.io/spring-boot/&quot;&gt;https://docs.spring.io/spring-boot/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;99cf863e-3743-4135-93a9-756350649a10&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;99cf863e-3743-4135-93a9-756350649a10&quot; data-id=&quot;99cf863e-3743-4135-93a9-756350649a10&quot; data-ke-size=&quot;size26&quot;&gt;  시작하기 전 체크리스트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;6a196bda-d6c7-4cb8-9741-675e80d21c24&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;169be7fb-2657-436f-abd0-7b4ee286e9c5&quot;&gt;인터넷이 연결되어 있다&lt;/li&gt;
&lt;li data-id=&quot;e409acb9-3227-4bec-acf8-ebb331971508&quot;&gt;브라우저가 열려 있다&lt;/li&gt;
&lt;li data-id=&quot;808ec354-729a-4e65-b4fb-b3a55736231b&quot;&gt;GitHub 계정이 있다 (없어도 괜찮지만, 있으면 좋음)&lt;/li&gt;
&lt;li data-id=&quot;3ea3d6ee-3457-483e-8598-147c71e68225&quot;&gt;자신의 Spring Boot 프로젝트가 있다&lt;/li&gt;
&lt;li data-id=&quot;f7177256-fe49-4cb3-a0a3-676e0b5c54c0&quot;&gt;자신의 프로젝트의 pom.xml 파일을 찾을 수 있다&lt;/li&gt;
&lt;li data-id=&quot;439e8066-a423-4b45-9b38-9320b4fc52fe&quot;&gt;이 가이드를 차근차근 따라가려고 마음먹었다&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;27b4453a-9ca6-45ad-b24a-5883fa68afb9&quot; data-ke-size=&quot;size16&quot;&gt;모든 게 준비됐다면? &lt;b&gt;이제 시작할 준비가 된 것입니다!  &lt;/b&gt;&lt;/p&gt;
&lt;h2 id=&quot;96732b4b-f3c6-4ae5-aa94-aecfbf5e57c0&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;96732b4b-f3c6-4ae5-aa94-aecfbf5e57c0&quot; data-id=&quot;96732b4b-f3c6-4ae5-aa94-aecfbf5e57c0&quot; data-ke-size=&quot;size26&quot;&gt;  마지막 한 마디&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f5aa36b5-1c7b-46c8-a0f5-0b95834b0b3b&quot; data-ke-size=&quot;size16&quot;&gt;&quot;Spring Boot GitHub 저장소는 단순한 소스코드 모음이 아닙니다. 여기엔 Spring Boot를 만든 개발자들의 설계 철학, 모범 사례, 그리고 10년 이상의 경험이 담겨 있습니다.&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f80e6b16-eaf5-40a8-8987-da7b65e0c8aa&quot; data-ke-size=&quot;size16&quot;&gt;이 저장소를 제대로 이해하면, 여러분의 Spring Boot 실력은 극적으로 향상될 것입니다. 처음엔 어렵지만, 차근차근 나아가다 보면 언젠가는 &lt;b&gt;&quot;아, 이래서 이렇게 설계했구나&quot;&lt;/b&gt;를 깨달을 날이 올 것입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;049539f5-bf79-419c-ba0c-b4343ab8aa6e&quot; data-ke-size=&quot;size16&quot;&gt;이제 GitHub 저장소를 열고 첫 번째 파일을 찾아보세요! 처음 30분이 가장 어렵지만, 그 후로는 점점 쉬워질 것입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ea040397-2ee3-4405-b607-1544f90592e7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Happy Learning!  &lt;/b&gt;&lt;/p&gt;</description>
      <category>말귀 알아듣기.zip</category>
      <category>AutoConfiguration</category>
      <category>Github</category>
      <category>Java</category>
      <category>Spring</category>
      <category>SpringBoot</category>
      <category>개발공부</category>
      <category>스프링부트</category>
      <category>자바공부</category>
      <category>자바스프링</category>
      <category>초보자코딩</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/29</guid>
      <comments>https://lazip.tistory.com/entry/Spring-Boot-GitHub-%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%8F%84-5%EB%8B%A8%EA%B3%84%EB%A1%9C-%EB%81%9D%EB%82%B4%EB%8A%94-%EC%BD%94%EB%93%9C-%EC%9D%BD%EA%B8%B0#entry29comment</comments>
      <pubDate>Sun, 19 Apr 2026 01:02:17 +0900</pubDate>
    </item>
    <item>
      <title>Claude Design 사용법 총정리: 대화만으로 디자인하는 AI 도구 (2026)</title>
      <link>https://lazip.tistory.com/entry/Claude-Design-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EB%8C%80%ED%99%94%EB%A7%8C%EC%9C%BC%EB%A1%9C-%EB%94%94%EC%9E%90%EC%9D%B8%ED%95%98%EB%8A%94-AI-%EB%8F%84%EA%B5%AC-2026</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2026년 4월, Anthropic이 또 한 번 판을 뒤집었습니다. 이번에는 디자인 영역입니다. &lt;b&gt;Claude Design&lt;/b&gt;이라는 새로운 기능이 리서치 프리뷰로 공개되었는데, 한마디로 요약하면 &quot;대화만으로 디자인을 완성하는 도구&quot;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자이너가 아니어도, Figma를 몰라도, 심지어 파워포인트에 자신이 없어도 괜찮습니다. Claude와 채팅하듯 대화하면 프로토타입, 프레젠테이션, 랜딩 페이지까지 뚝딱 만들어주니까요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에서는 Claude Design이 무엇인지, 어떻게 사용하는지, 그리고 실전에서 최대한 활용하는 팁까지 빠짐없이 정리했습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Claude Design이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude Design은 Anthropic Labs가 만든 AI 기반 디자인 도구입니다. 채팅으로 원하는 것을 설명하면, Claude가 캔버스 위에 실제 작동하는 디자인을 생성해 줍니다. 정적인 이미지가 아니라 인터랙티브한 프로토타입, 프레젠테이션, 랜딩 페이지 등을 만들 수 있다는 점이 핵심입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;누가 사용할 수 있나요?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 리서치 프리뷰 단계로, &lt;b&gt;Pro, Max, Team, Enterprise 플랜&lt;/b&gt; 사용자가 이용할 수 있습니다. 다만 Enterprise 플랜은 기본적으로 비활성화 상태이므로 관리자가 별도로 켜야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;화면 구성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면은 크게 두 영역으로 나뉩니다.&lt;/p&gt;
&lt;table style=&quot;width: 559px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 182px;&quot;&gt;영역&lt;/th&gt;
&lt;th style=&quot;width: 377px;&quot;&gt;역할&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 182px;&quot;&gt;&lt;b&gt;왼쪽: 채팅 인터페이스&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 377px;&quot;&gt;원하는 디자인을 설명하고, 수정 요청을 보내는 공간&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 182px;&quot;&gt;&lt;b&gt;오른쪽: 캔버스&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 377px;&quot;&gt;Claude가 생성한 디자인이 실시간으로 표시되는 공간&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;2. 기본 작업 흐름 (5단계)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude Design의 전체 흐름은 다음과 같이 5단계로 요약됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;① 프로젝트 생성 및 컨텍스트 추가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새 프로젝트를 만들면 조직의 디자인 시스템(브랜드 컬러, 폰트, 컴포넌트 패턴 등)이 자동으로 상속됩니다. 별도로 브랜드 에셋을 업로드하거나 설정할 필요가 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 생성 후, &lt;b&gt;컨텍스트(참고 자료)&lt;/b&gt;를 첨부하면 결과물의 품질이 크게 향상됩니다. 첨부 가능한 자료 유형은 다음과 같습니다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 198px;&quot;&gt;자료 유형&lt;/th&gt;
&lt;th style=&quot;width: 656px;&quot;&gt;활용 예시&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 198px;&quot;&gt;&lt;b&gt;스크린샷, 이미지, 기존 에셋&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 656px;&quot;&gt;기존 디자인, 경쟁사 제품, 와이어프레임, 시각적 영감 자료, 기존 슬라이드 덱이나 문서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 198px;&quot;&gt;&lt;b&gt;코드베이스, 디자인 파일&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 656px;&quot;&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;  &lt;b&gt;팁:&lt;/b&gt; &quot;이 느낌대로 만들어줘&quot;라는 요청을 할 때 레퍼런스 스크린샷을 함께 첨부하면 효과가 극대화됩니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;② 원하는 것을 설명 (프롬프트 작성)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자이너가 아니어도 좋은 결과를 얻을 수 있습니다. 핵심은 &lt;b&gt;구체적으로 작성하는 것&lt;/b&gt;입니다. 좋은 프롬프트에는 다음 4가지 요소가 포함됩니다.&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;목표(Goal):&lt;/b&gt; 무엇을 만들 것인지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;레이아웃(Layout):&lt;/b&gt; 요소들이 어떻게 배치되어야 하는지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;콘텐츠(Content):&lt;/b&gt; 어떤 정보를 표시할 것인지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;대상(Audience):&lt;/b&gt; 누가 사용할 것인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부족한 부분이 있으면 Claude가 추가 질문을 해주므로 처음부터 완벽할 필요는 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;프롬프트 예시:&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;height: 149px; width: 641px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;th style=&quot;width: 117px; height: 24px;&quot;&gt;유형&lt;/th&gt;
&lt;th style=&quot;width: 524px; height: 24px;&quot;&gt;프롬프트&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 117px; height: 20px;&quot;&gt;대시보드&lt;/td&gt;
&lt;td style=&quot;width: 524px; height: 20px;&quot;&gt;&quot;지역별, 제품 라인별 필터가 있는 월간 매출 대시보드를 만들어줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 117px; height: 21px;&quot;&gt;모바일 앱&lt;/td&gt;
&lt;td style=&quot;width: 524px; height: 21px;&quot;&gt;&quot;핵심 기능을 소개하는 4개 화면의 모바일 앱 온보딩 플로우를 디자인해줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 42px;&quot;&gt;
&lt;td style=&quot;width: 117px; height: 42px;&quot;&gt;랜딩 페이지&lt;/td&gt;
&lt;td style=&quot;width: 524px; height: 42px;&quot;&gt;&quot;히어로 섹션, 코드 예시, 가격 정보가 포함된 API 제품 랜딩 페이지를 만들어줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 117px; height: 21px;&quot;&gt;폼&lt;/td&gt;
&lt;td style=&quot;width: 524px; height: 21px;&quot;&gt;&quot;카테고리에 따라 질문이 달라지는 고객 피드백 수집 폼을 만들어줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 117px; height: 21px;&quot;&gt;내부 도구&lt;/td&gt;
&lt;td style=&quot;width: 524px; height: 21px;&quot;&gt;&quot;콘텐츠 제출물을 검토하고 승인하는 운영팀용 내부 도구를 디자인해줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;③ 캔버스에서 결과 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트를 보내면 오른쪽 캔버스에 디자인이 생성됩니다. 이것은 시작점입니다. 여기서부터 진짜 작업이 시작됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;④ 반복 수정 (Iteration)&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;방법 1: 채팅 (Chat)&lt;/b&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;&quot;색상을 더 어둡고 미니멀하게 바꿔줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;대시보드 상단에 지표를 배치하고 차트는 아래로 내려줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;오른쪽에 설정 패널을 추가해줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;이 페이지의 대안 레이아웃을 2~3개 보여줘&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자인 결정에 대한 설명을 요청하거나, 개선점 제안, 접근성 검토를 요청할 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 2: 인라인 코멘트 (Inline Comments)&lt;/b&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;&quot;이 버튼 패딩을 더 크게 해줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;여기를 라디오 버튼 대신 드롭다운으로 바꿔줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;여기에 브랜드 기본 색상을 적용해줘&quot;&lt;/li&gt;
&lt;li&gt;&quot;이 섹션을 접을 수 있게 만들어줘&quot;&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; 인라인 코멘트가 간헐적으로 Claude가 읽기 전에 사라지는 경우가 있습니다. 이럴 때는 코멘트 내용을 채팅에 직접 붙여넣기 하세요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;채팅 vs 인라인 코멘트, 언제 뭘 써야 할까?&lt;/b&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;버튼 수정, 간격 조절 등 특정 컴포넌트 수정&lt;/td&gt;
&lt;td&gt;&lt;b&gt;인라인 코멘트&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;구조 변경, 새 섹션 추가, 전체 미학 변경, 설명이 필요한 요청&lt;/td&gt;
&lt;td&gt;&lt;b&gt;채팅&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;⑤ 내보내기 및 공유&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자인이 완성되면 오른쪽 상단의 &lt;b&gt;Export 버튼&lt;/b&gt;을 눌러 다양한 형식으로 내보낼 수 있습니다.&lt;/p&gt;
&lt;table style=&quot;width: 511px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 207px;&quot;&gt;내보내기 형식&lt;/th&gt;
&lt;th style=&quot;width: 304px;&quot;&gt;추천 용도&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;.zip 다운로드&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;전체 프로젝트 파일을 로컬에 보관할 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;PDF&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;이메일 첨부, 지원서 제출, 인쇄용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;PPTX&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;파워포인트에서 추가 편집이 필요할 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;Canva로 보내기&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;Canva에서 완전 편집 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;독립형 HTML&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;웹 포트폴리오, 온라인 공유&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;Claude Code 핸드오프&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&gt;개발팀에 전달하여 실제 코드로 구현할 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 207px;&quot;&gt;&lt;b&gt;로컬 코딩 에이전트로 전송&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 304px;&quot;&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;공유 링크&lt;/b&gt;를 생성하여 조직 내 동료에게 공유할 수 있으며, 보기 전용(view-only), 코멘트 가능, 편집 가능 등 접근 권한을 설정할 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 버전 관리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자인 방향을 완전히 바꿔보고 싶지만, 현재 작업물을 잃고 싶지 않을 때가 있습니다. 이때 Claude에게 다음과 같이 말하면 됩니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;지금까지 한 것을 저장하고, 완전히 다른 방향으로 시도해줘&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude가 현재 프로젝트를 저장하고 저장 위치를 알려주므로, 대화 중에 이전 버전을 쉽게 참조할 수 있습니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 실전 활용 팁 7가지&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude Design을 최대한 잘 쓰기 위한 핵심 팁을 정리했습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 1: 단순하게 시작하고, 점차 복잡도를 높여라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 레이아웃과 콘텐츠부터 시작한 뒤, 인터랙션, 엣지 케이스, 세부 다듬기를 순차적으로 추가하세요. Claude는 점진적인 요청에 잘 반응합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 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;&quot;이거 뭔가 이상해&quot;&lt;/td&gt;
&lt;td&gt;&quot;폼 필드 사이 간격을 8px로 줄여줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot;좀 더 예쁘게&quot;&lt;/td&gt;
&lt;td&gt;&quot;액센트 컬러를 #4A90D9로 통일하고 여백을 넓혀줘&quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 3: 디자인 시스템을 적극 활용하라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조직의 디자인 시스템에 특정 컴포넌트가 있다면, 이름을 직접 언급하세요. &quot;Primary Button 컴포넌트를 사용해줘&quot;, &quot;Card 레이아웃 패턴을 적용해줘&quot; 같은 식입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 4: 반응형 디자인은 초기에 언급하라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모바일, 태블릿, 데스크톱 중 어떤 환경을 지원해야 하는지 처음부터 알려주세요. 나중에 반응형을 추가하면 전체 구조를 뜯어고쳐야 할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 5: 변형안을 요청하라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방향이 확실하지 않을 때는 &quot;이 페이지의 대안 레이아웃을 2~3개 보여줘&quot;라고 요청하세요. 추측하며 하나를 고르는 것보다 비교하는 것이 훨씬 빠릅니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 6: Claude에게 피드백을 요청하라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude는 단순한 생성기가 아니라 &lt;b&gt;디자인 협업 파트너&lt;/b&gt;입니다. 접근성, 대비율, 정보 위계, 전반적 사용성에 대한 리뷰를 요청할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;팁 7: 레퍼런스 이미지를 꼭 첨부하라&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;토스 같은 느낌으로&quot;, &quot;구글 Material Design 스타일로&quot;라고 말하는 것보다, 해당 디자인의 &lt;b&gt;스크린샷을 직접 첨부&lt;/b&gt;하는 것이 훨씬 정확한 결과를 만듭니다.&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;현재 실험적 프리뷰 단계이므로 몇 가지 제한이 있습니다.&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;인라인 코멘트가 사라짐&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;코멘트 내용을 채팅에 직접 붙여넣기&lt;/td&gt;
&lt;/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;같은 프로젝트 내에서 새 채팅 탭 시작&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;6. 어떤 사람에게 유용할까?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Claude Design은 다음과 같은 분들에게 특히 유용합니다.&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; Figma나 Sketch를 배울 시간이 없는 기획자, 개발자, 마케터&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1인 창업자/사이드 프로젝트:&lt;/b&gt; 디자이너 없이 빠르게 프로토타입을 만들어야 할 때&lt;/li&gt;
&lt;li&gt;&lt;b&gt;취업 준비생:&lt;/b&gt; 포트폴리오 슬라이드 덱을 전문적으로 만들고 싶을 때&lt;/li&gt;
&lt;li&gt;&lt;b&gt;스타트업 팀:&lt;/b&gt; 투자자 피치 덱, 랜딩 페이지를 빠르게 제작할 때&lt;/li&gt;
&lt;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;Claude Design은 &quot;디자인은 디자이너만의 영역&quot;이라는 고정관념을 깨는 도구입니다. 물론 아직 리서치 프리뷰 단계이고 알려진 제한 사항도 있지만, 대화만으로 프로토타입부터 프레젠테이션까지 만들 수 있다는 것 자체가 상당한 가능성을 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 PPTX, PDF, Canva, HTML 등 다양한 내보내기 옵션을 지원하고, Claude Code로의 핸드오프까지 가능하다는 점에서 디자인에서 개발까지의 워크플로우를 하나의 도구 안에서 연결하려는 Anthropic의 방향성이 명확하게 드러납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 사용해보지 않았다면, &lt;a href=&quot;https://claude.ai/design&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;claude.ai/design&lt;/a&gt;에서 직접 체험해 보세요. Pro 플랜 이상이라면 지금 바로 시작할 수 있습니다.&lt;/p&gt;</description>
      <category>칼퇴 꼼수.zip</category>
      <category>2026 AI 트렌드</category>
      <category>ai 디자인 도구</category>
      <category>ai 툴 추천</category>
      <category>ai 프로토타입</category>
      <category>AI 활용법</category>
      <category>Anthropic</category>
      <category>Claude AI</category>
      <category>Claude Design</category>
      <category>Claude Design 사용법</category>
      <category>노코드 디자인</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/28</guid>
      <comments>https://lazip.tistory.com/entry/Claude-Design-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EB%8C%80%ED%99%94%EB%A7%8C%EC%9C%BC%EB%A1%9C-%EB%94%94%EC%9E%90%EC%9D%B8%ED%95%98%EB%8A%94-AI-%EB%8F%84%EA%B5%AC-2026#entry28comment</comments>
      <pubDate>Sat, 18 Apr 2026 19:17:57 +0900</pubDate>
    </item>
    <item>
      <title>인텔리제이 단축키 완벽 정리 | IntelliJ 환경설정 꿀팁 모음 (Windows/Mac)</title>
      <link>https://lazip.tistory.com/entry/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-IntelliJ-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EA%BF%80%ED%8C%81-%EB%AA%A8%EC%9D%8C-WindowsMac</link>
      <description>&lt;div&gt;
&lt;style&gt;
  /* 전체 컨테이너 */
  .intellij-guide {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
    color: #222;
    line-height: 1.8;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 10px;
    word-break: keep-all;
  }

  /* 인트로 박스 */
  .intro-box {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    border-radius: 14px;
    padding: 30px 28px;
    margin-bottom: 32px;
    font-size: 15.5px;
    line-height: 1.85;
  }
  .intro-box p { margin: 0 0 10px 0; }
  .intro-box strong { color: #ffd43b; }

  /* 이 글을 읽으면 얻는 것 */
  .benefit-box {
    background: #fff8e1;
    border-left: 5px solid #ffab00;
    border-radius: 0 12px 12px 0;
    padding: 22px 24px;
    margin-bottom: 30px;
  }
  .benefit-box h3 {
    margin: 0 0 12px 0;
    font-size: 18px;
    color: #e65100;
  }
  .benefit-box ul {
    margin: 0;
    padding-left: 20px;
  }
  .benefit-box ul li {
    margin-bottom: 6px;
    font-size: 14.5px;
  }

  /* 목차 박스 */
  .toc-box {
    background: #f4f6fa;
    border: 1px solid #dde2ea;
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 36px;
  }
  .toc-box h3 {
    margin: 0 0 14px 0;
    font-size: 18px;
    color: #1a237e;
  }
  .toc-box ol {
    margin: 0;
    padding-left: 22px;
  }
  .toc-box ol li {
    margin-bottom: 8px;
    font-size: 14.5px;
  }
  .toc-box ol li a {
    text-decoration: none;
    color: #3949ab;
    font-weight: 600;
    transition: color 0.2s;
  }
  .toc-box ol li a:hover {
    color: #e65100;
    text-decoration: underline;
  }

  /* 섹션 제목 */
  .intellij-guide h2 {
    font-size: 22px;
    margin: 48px 0 16px 0;
    padding-bottom: 10px;
    border-bottom: 3px solid #3949ab;
    color: #1a237e;
  }
  .intellij-guide h3 {
    font-size: 17px;
    margin: 28px 0 10px 0;
    color: #333;
  }

  /* 테이블 */
  .shortcut-table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 24px 0;
    font-size: 13.8px;
    table-layout: fixed;
  }
  .shortcut-table thead th {
    background: #3949ab;
    color: #fff;
    padding: 12px 10px;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
  }
  .shortcut-table thead th:first-child {
    border-radius: 8px 0 0 0;
    width: 38%;
  }
  .shortcut-table thead th:nth-child(2) {
    width: 31%;
  }
  .shortcut-table thead th:last-child {
    border-radius: 0 8px 0 0;
    width: 31%;
  }
  .shortcut-table tbody tr:nth-child(even) {
    background: #f5f7ff;
  }
  .shortcut-table tbody td {
    padding: 10px;
    border-bottom: 1px solid #e0e4ef;
    text-align: center;
    vertical-align: middle;
  }
  .shortcut-table tbody td:first-child {
    text-align: left;
    font-weight: 600;
    color: #333;
  }
  .shortcut-table tbody td code {
    background: #eef1fb;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 12.5px;
    color: #3949ab;
    white-space: nowrap;
  }

  /* 팁 박스 */
  .tip-box {
    background: #e8f5e9;
    border-left: 5px solid #43a047;
    border-radius: 0 10px 10px 0;
    padding: 16px 20px;
    margin: 12px 0 28px 0;
    font-size: 14px;
    color: #2e7d32;
  }
  .tip-box strong {
    color: #1b5e20;
  }

  /* 설정 항목 */
  .setting-item {
    background: #fafbff;
    border: 1px solid #e0e4ef;
    border-radius: 10px;
    padding: 20px 22px;
    margin-bottom: 18px;
  }
  .setting-item h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    color: #3949ab;
  }
  .setting-item .path {
    display: inline-block;
    background: #eef1fb;
    color: #3949ab;
    font-size: 13px;
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 8px;
    font-weight: 600;
  }
  .setting-item p {
    margin: 6px 0 0 0;
    font-size: 14.2px;
    color: #444;
  }

  /* 플러그인 카드 */
  .plugin-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 16px 0 28px 0;
  }
  @media (max-width: 600px) {
    .plugin-grid { grid-template-columns: 1fr; }
  }
  .plugin-card {
    background: #f9f5ff;
    border: 1px solid #d1c4e9;
    border-radius: 10px;
    padding: 16px 18px;
  }
  .plugin-card strong {
    color: #6a1b9a;
    font-size: 15px;
    display: block;
    margin-bottom: 4px;
  }
  .plugin-card span {
    font-size: 13.5px;
    color: #555;
  }

  /* 꿀팁 리스트 */
  .honey-tip {
    background: #fff3e0;
    border: 1px solid #ffe0b2;
    border-radius: 10px;
    padding: 18px 22px;
    margin-bottom: 14px;
  }
  .honey-tip h4 {
    margin: 0 0 6px 0;
    font-size: 15px;
    color: #e65100;
  }
  .honey-tip p {
    margin: 0;
    font-size: 14px;
    color: #444;
  }
  .honey-tip code {
    background: #fbe9e7;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12.5px;
    color: #bf360c;
  }

  /* 마무리 */
  .outro-box {
    background: linear-gradient(135deg, #e8eaf6 0%, #fce4ec 100%);
    border-radius: 14px;
    padding: 28px 26px;
    margin-top: 36px;
  }
  .outro-box h3 {
    margin: 0 0 14px 0;
    font-size: 18px;
    color: #283593;
  }
  .outro-box ol {
    padding-left: 22px;
    margin: 14px 0;
  }
  .outro-box ol li {
    margin-bottom: 6px;
    font-size: 14.5px;
    font-weight: 600;
    color: #333;
  }
  .outro-box ol li code {
    background: #e8eaf6;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 12.5px;
    color: #3949ab;
  }
  .outro-box p {
    margin: 12px 0 0 0;
    font-size: 14.5px;
    color: #444;
  }
&lt;/style&gt;
&lt;/div&gt;
&lt;div class=&quot;intellij-guide&quot;&gt;&lt;!-- 인트로 --&gt;
&lt;div class=&quot;intro-box&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발하다 보면 마우스 클릭 한 번이 답답하게 느껴질 때가 있지 않으신가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;IntelliJ IDEA&lt;/b&gt;는 전 세계 개발자가 가장 많이 사용하는 IDE 중 하나인데, 단축키와 환경설정을 제대로 알고 쓰는 것만으로도 코딩 속도가 눈에 띄게 달라집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글에서는 &lt;b&gt;윈도우(Windows)와 맥(Mac) 모두 커버&lt;/b&gt;하는 인텔리제이 핵심 단축키와 초기 환경설정 꿀팁을 한 번에 정리했습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- 이 글을 읽으면 얻는 것 --&gt;
&lt;div class=&quot;benefit-box&quot;&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;마우스 없이도 빠른 코딩:&lt;/b&gt; 필수 단축키 카테고리별 완벽 정리&lt;/li&gt;
&lt;li&gt;&lt;b&gt;처음 설치 후 바로 적용할 초기 환경설정:&lt;/b&gt; 자동 Import, 코드 스타일, 폰트 등&lt;/li&gt;
&lt;li&gt;&lt;b&gt;생산성을 2~3배 높이는 꿀팁:&lt;/b&gt; Live Template, 멀티 커서, 플러그인 추천까지&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;!-- 목차 --&gt;
&lt;div class=&quot;toc-box&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  목차&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#section1&quot;&gt;인텔리제이 단축키 - 기본 편집 (Editing)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section2&quot;&gt;인텔리제이 단축키 - 검색 및 이동 (Search &amp;amp; Navigation)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section3&quot;&gt;인텔리제이 단축키 - 리팩토링 (Refactoring)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section4&quot;&gt;인텔리제이 단축키 - 실행 &amp;amp; 디버깅 (Run &amp;amp; Debug)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section5&quot;&gt;인텔리제이 단축키 - Git/VCS 버전 관리&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section6&quot;&gt;인텔리제이 환경설정 필수 세팅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#section7&quot;&gt;인텔리제이 꿀팁 &amp;amp; 추천 플러그인&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;!-- ============================== 1. 기본 편집 ============================== --&gt;
&lt;h2 id=&quot;section1&quot; data-ke-size=&quot;size26&quot;&gt;1. ✏️ 기본 편집 단축키 (Editing)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코딩 중 가장 자주 쓰는 편집 관련 단축키입니다. 처음엔 어색하더라도 일주일만 의식적으로 사용하면 손이 자연스럽게 움직입니다.&lt;/p&gt;
&lt;table class=&quot;shortcut-table&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;기본 코드 자동 완성&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Space&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃ Space&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;스마트 코드 자동 완성&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + Space&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃⇧ Space&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;문장 자동 완성 (if, for 등)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧↩&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;퀵픽스 / Import 자동 추가&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + Enter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌥↩&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 라인 복사 (아래에 붙여넣기)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + D&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘D&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 라인 삭제&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Y&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘Delete&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;라인 위/아래로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + Shift + &amp;uarr;/&amp;darr;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌥⇧&amp;uarr;/&amp;darr;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;코드 정렬 (포맷팅)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + L&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥L&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Import 정리 (미사용 제거)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃⌥O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;라인 단위 주석 처리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + /&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;블록 단위 주석 처리&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + /&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;선택 영역 확대&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + W&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌥&amp;uarr;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;클립보드 히스토리에서 붙여넣기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧V&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate (생성자, getter 등)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + Insert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘N&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Override 메서드 목록&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + O&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implement 메서드 목록&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + I&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃I&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대/소문자 변환&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + U&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧U&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;에디터 탭 닫기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘W&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;전체 저장&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + S&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘S&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;파라미터 정보 보기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘P&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;tip-box&quot;&gt;&lt;b&gt;  꿀팁:&lt;/b&gt; &lt;code&gt;Alt + Enter&lt;/code&gt;는 단순히 Import 추가 외에도 오류 수정, 코드 개선 제안, null 처리 추가 등 다양한 상황에서 사용할 수 있습니다. 빨간 줄이 보이면 무조건 &lt;code&gt;Alt + Enter&lt;/code&gt;를 먼저 눌러보세요!&lt;/div&gt;
&lt;!-- ============================== 2. 검색 및 이동 ============================== --&gt;
&lt;h2 id=&quot;section2&quot; data-ke-size=&quot;size26&quot;&gt;2.   검색 및 이동 단축키 (Search &amp;amp; Navigation)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ의 진짜 강점은 강력한 검색 기능입니다. 파일, 클래스, 메서드 어디서든 단 몇 번의 키 입력으로 도달할 수 있습니다.&lt;/p&gt;
&lt;table class=&quot;shortcut-table&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;전체 검색 (Search Everywhere)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift 두 번&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⇧ 두 번&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;액션 검색 실행&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + A&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧A&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;클래스로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;파일로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;심볼(메서드, 변수 등) 검색&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + Shift + N&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥O&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 파일에서 검색&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 파일에서 대체&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘R&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;프로젝트 전체에서 검색&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧F&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;프로젝트 전체에서 대체&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧R&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;선언부로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + B / Ctrl + Click&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘B&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;구현체로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + B&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥B&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;특정 라인으로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + G&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘L&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;최근 열어본 파일 목록&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + E&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘E&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;최근 편집한 파일 목록&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + E&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧E&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;이전/다음 편집 위치 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + &amp;larr;/&amp;rarr;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥&amp;larr;/&amp;rarr;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;파일 구조창 (메서드 목록)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F12&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F12&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;에디터 탭 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + &amp;larr;/&amp;rarr;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃&amp;larr;/&amp;rarr;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;같은 단어 다중 선택&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + J&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;모든 같은 단어 한 번에 선택&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + Shift + J&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃⌘G&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;tip-box&quot;&gt;&lt;b&gt;  꿀팁:&lt;/b&gt; &lt;code&gt;Shift 두 번&lt;/code&gt;의 Search Everywhere는 클래스, 파일, 심볼, 액션까지 한 번에 검색합니다. 창 상단 탭(All / Classes / Files / Symbols / Actions)을 &lt;code&gt;Tab&lt;/code&gt; 키로 전환하면 더 정밀한 검색이 가능합니다.&lt;/div&gt;
&lt;!-- ============================== 3. 리팩토링 ============================== --&gt;
&lt;h2 id=&quot;section3&quot; data-ke-size=&quot;size26&quot;&gt;3.   리팩토링 단축키 (Refactoring)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리팩토링 단축키는 코드 품질을 빠르게 개선하는 핵심 무기입니다. 특히 &lt;code&gt;Shift + F6&lt;/code&gt;(이름 변경)은 프로젝트 전체의 참조까지 한 번에 바꿔줘서 실수를 크게 줄여줍니다.&lt;/p&gt;
&lt;table class=&quot;shortcut-table&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;이름 변경 (Rename)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⇧F6&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;리팩토링 메뉴 열기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + Shift + T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃T&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;메서드로 추출&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + M&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥M&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;변수로 추출&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + V&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥V&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;상수로 추출&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥C&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;필드로 추출&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + F&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥F&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;파라미터로 추출&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥P&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;메서드 시그니처 변경&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F6&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;안전 삭제 (Safe Delete)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + Delete&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘Delete&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Surround with (try-catch 등)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥T&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;다음 오류 위치로 이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;도큐먼트 조회&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class=&quot;tip-box&quot;&gt;&lt;b&gt;  꿀팁:&lt;/b&gt; 드래그로 코드 블록을 선택한 뒤 &lt;code&gt;Ctrl + Alt + M&lt;/code&gt;을 누르면 해당 코드가 자동으로 새 메서드로 추출됩니다. 긴 메서드를 쪼갤 때 매우 유용합니다.&lt;/div&gt;
&lt;!-- ============================== 4. 실행 &amp; 디버깅 ============================== --&gt;
&lt;h2 id=&quot;section4&quot; data-ke-size=&quot;size26&quot;&gt;4. ▶️ 실행 &amp;amp; 디버깅 단축키 (Run &amp;amp; Debug)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디버깅 단축키를 모르면 매번 마우스로 버튼을 클릭해야 합니다. 아래 단축키를 익혀두면 디버깅 속도가 크게 빨라집니다.&lt;/p&gt;
&lt;table class=&quot;shortcut-table&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;프로젝트 실행&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃R&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;디버그 모드 실행&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃D&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 파일 실행&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + F10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃⇧R&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;프로젝트 빌드&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F9&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;브레이크포인트 설정/해제&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;다음 라인으로 (Step Over)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;메서드 안으로 (Step Into)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F7&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F7&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;메서드 밖으로 (Step Out)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⇧F8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;다음 브레이크포인트로 (Resume)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥R&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;커서 위치까지 실행 (Run to Cursor)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + F9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌥F9&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;식 계산 (Evaluate Expression)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌥F8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;프로그램 종료&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + F2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘F2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;브레이크포인트 목록 보기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + F8&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧F8&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- ============================== 5. Git / VCS ============================== --&gt;
&lt;h2 id=&quot;section5&quot; data-ke-size=&quot;size26&quot;&gt;5.  ️ Git / VCS 버전 관리 단축키&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에는 Git 작업을 IDE 안에서 바로 처리할 수 있는 강력한 VCS 기능이 내장되어 있습니다.&lt;/p&gt;
&lt;table class=&quot;shortcut-table&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기능&lt;/th&gt;
&lt;th&gt;Windows / Linux&lt;/th&gt;
&lt;th&gt;Mac&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;커밋 창 열기&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + K&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘K&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + K&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧K&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update (Pull)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘T&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VCS 빠른 메뉴&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Alt + `&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌃V&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 파일 변경 내역 Rollback&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Alt + Z&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⌥Z&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테스트 생성/이동&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ctrl + Shift + T&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;⌘⇧T&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- ============================== 6. 환경설정 ============================== --&gt;
&lt;h2 id=&quot;section6&quot; data-ke-size=&quot;size26&quot;&gt;6. ⚙️ 인텔리제이 환경설정 필수 세팅&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인텔리제이를 처음 설치하거나 새로 세팅할 때 꼭 확인해야 할 환경설정 목록입니다. &lt;code&gt;Ctrl + Alt + S&lt;/code&gt; (Mac: &lt;code&gt;⌘,&lt;/code&gt;)로 Settings 창을 열어 적용하세요.&lt;/p&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;① Auto Import 설정 (자동 Import)&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Editor &amp;rarr; General &amp;rarr; Auto Import&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Add unambiguous imports on the fly&lt;/b&gt;와 &lt;b&gt;Optimize imports on the fly&lt;/b&gt; 두 항목을 모두 체크합니다. 클래스 사용 시 자동으로 import 문이 추가되고, 미사용 import는 자동으로 삭제됩니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;② 대소문자 구분 해제 (Code Completion)&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Editor &amp;rarr; General &amp;rarr; Code Completion&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Match case&lt;/b&gt;를 체크 해제합니다. 소문자로 입력해도 대문자로 시작하는 클래스명이 자동완성에 노출되어 훨씬 편리해집니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;③ 폰트 변경 (D2Coding 추천)&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Editor &amp;rarr; Font&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글 주석이 깨지지 않는 &lt;b&gt;D2Coding&lt;/b&gt; 또는 &lt;b&gt;JetBrains Mono&lt;/b&gt; 폰트를 권장합니다. Font Size는 14~16, Line height는 1.2 정도가 가독성이 좋습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;④ 에디터 줄 번호 표시&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Editor &amp;rarr; General &amp;rarr; Appearance&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Show line numbers&lt;/b&gt;를 체크합니다. 디버깅 시 줄 번호를 바로 확인할 수 있어 필수입니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑤ 빌드 메모리 증량 (Heap Size 설정)&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Help &amp;rarr; Change Memory Settings&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 750MB에서 &lt;b&gt;2048MB(2GB) 이상&lt;/b&gt;으로 늘리면 대형 프로젝트에서 빌드 속도가 개선됩니다. 16GB RAM 이상이라면 4096MB도 추천합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑥ 테마 변경&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Appearance &amp;amp; Behavior &amp;rarr; Appearance&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 Darcula (다크모드) 외에도 &lt;b&gt;One Dark Theme&lt;/b&gt; 플러그인을 설치해 사용하면 눈 피로가 줄어듭니다. &lt;code&gt;Ctrl + `&lt;/code&gt; (Mac: &lt;code&gt;⌃`&lt;/code&gt;)으로 빠르게 테마를 전환할 수도 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑦ 패키지 트리 형식으로 보기&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;프로젝트 탐색기 상단 설정 아이콘 &amp;rarr; Tree Appearance&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Compact Middle Packages&lt;/b&gt; 체크 해제. 패키지 구조를 계층형으로 명확히 볼 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;setting-item&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑧ Keymap 설정&lt;/h4&gt;
&lt;span class=&quot;path&quot;&gt;Settings &amp;rarr; Keymap&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Eclipse나 VS Code에서 넘어온 분들이라면, 본인에게 익숙한 키맵 프리셋을 선택하거나 개별 단축키를 커스터마이징 할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- ============================== 7. 꿀팁 &amp; 플러그인 ============================== --&gt;
&lt;h2 id=&quot;section7&quot; data-ke-size=&quot;size26&quot;&gt;7.   인텔리제이 꿀팁 &amp;amp; 추천 플러그인&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  꿀팁 모음&lt;/h3&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;① Live Template 활용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;psvm&lt;/code&gt; + Tab &amp;rarr; &lt;code&gt;public static void main(String[] args) {}&lt;/code&gt; 자동 생성&lt;br /&gt;&lt;code&gt;sout&lt;/code&gt; + Tab &amp;rarr; &lt;code&gt;System.out.println()&lt;/code&gt; 자동 생성&lt;br /&gt;&lt;code&gt;fori&lt;/code&gt; + Tab &amp;rarr; for 반복문 자동 생성&lt;br /&gt;&lt;b&gt;Settings &amp;rarr; Editor &amp;rarr; Live Templates&lt;/b&gt;에서 자신만의 템플릿도 추가할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;② 멀티 커서 (Multi Cursor)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 단어를 여러 곳에서 동시에 편집하고 싶다면 &lt;code&gt;Alt + J&lt;/code&gt; (Mac: &lt;code&gt;⌃G&lt;/code&gt;)를 반복해서 눌러 다중 선택한 뒤 한 번에 수정하세요.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;③ Search Everywhere로 설정 접근&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Shift 두 번&lt;/code&gt;을 누른 뒤 원하는 설정 이름(예: &quot;font&quot;, &quot;keymap&quot;)을 검색하면 Settings 창 없이 바로 해당 설정으로 이동할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;④ 클립보드 히스토리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Ctrl + Shift + V&lt;/code&gt;를 누르면 최근에 복사했던 여러 항목 목록이 나타납니다. 여러 개를 복사해두고 순서대로 붙여넣을 때 매우 유용합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑤ 에디터 화면 최대화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Ctrl + Shift + F12&lt;/code&gt;를 누르면 사이드 패널을 모두 숨기고 에디터만 전체 화면으로 볼 수 있습니다. 집중 코딩이 필요할 때 사용해보세요.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;honey-tip&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;⑥ Run Anything&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Ctrl 두 번&lt;/code&gt;을 누르면 &quot;Run Anything&quot; 창이 열려서 명령어나 실행 구성을 빠르게 실행할 수 있습니다.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  추천 플러그인&lt;/h3&gt;
&lt;div class=&quot;plugin-grid&quot;&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;Key Promoter X&lt;/b&gt; &lt;span&gt;마우스로 클릭할 때마다 단축키를 알려줍니다. 단축키 학습에 최적!&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;GitToolBox&lt;/b&gt; &lt;span&gt;에디터 각 줄 옆에 마지막 커밋 정보(작성자, 시간)를 표시해 Git blame을 바로 볼 수 있습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;Rainbow Brackets&lt;/b&gt; &lt;span&gt;중첩된 괄호를 무지개 색상으로 구분해 가독성을 높여줍니다.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;Indent Rainbow&lt;/b&gt; &lt;span&gt;들여쓰기 레벨을 색상으로 구분해줘 중첩 구조 파악이 쉬워집니다.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;String Manipulation&lt;/b&gt; &lt;span&gt;문자열 케이스 변환(camelCase, snake_case 등)을 단축키 하나로 처리합니다.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;Grep Console&lt;/b&gt; &lt;span&gt;콘솔 로그를 키워드별로 색상 필터링할 수 있어 디버깅이 편해집니다.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;plugin-card&quot;&gt;&lt;b&gt;One Dark Theme&lt;/b&gt; &lt;span&gt;눈에 편안한 고품질 다크 테마입니다.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- 마무리 --&gt;
&lt;div class=&quot;outro-box&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  마무리 정리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인텔리제이 단축키는 한꺼번에 다 외우려고 하면 오히려 역효과가 납니다. &lt;b&gt;매주 3~5개씩&lt;/b&gt;, 자주 마우스로 클릭하는 기능부터 단축키로 대체하는 방식으로 천천히 익혀가는 것이 가장 효과적입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;시작 추천 순서:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;Alt + Enter&lt;/code&gt; (퀵픽스)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift 두 번&lt;/code&gt; (전체 검색)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl + Alt + L&lt;/code&gt; (코드 정렬)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Shift + F6&lt;/code&gt; (이름 변경)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl + E&lt;/code&gt; (최근 파일)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 다섯 가지만 완전히 체화해도 개발 흐름이 눈에 띄게 빨라집니다. 이 글이 도움이 됐다면 북마크해두고 필요할 때마다 참고해보세요!&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>딸깍 지름길.zip</category>
      <category>IDE설정</category>
      <category>IntelliJ</category>
      <category>IntelliJShortcuts</category>
      <category>JAVA개발</category>
      <category>개발생산성</category>
      <category>개발자단축키</category>
      <category>인텔리제이</category>
      <category>인텔리제이꿀팁</category>
      <category>인텔리제이단축키</category>
      <category>인텔리제이환경설정</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/27</guid>
      <comments>https://lazip.tistory.com/entry/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%99%84%EB%B2%BD-%EC%A0%95%EB%A6%AC-IntelliJ-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95-%EA%BF%80%ED%8C%81-%EB%AA%A8%EC%9D%8C-WindowsMac#entry27comment</comments>
      <pubDate>Fri, 17 Apr 2026 14:27:37 +0900</pubDate>
    </item>
    <item>
      <title>Git 명령어 완벽 가이드 | 초보자부터 협업까지 한 번에 끝내기</title>
      <link>https://lazip.tistory.com/entry/Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%B6%80%ED%84%B0-%ED%98%91%EC%97%85%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90-%EB%81%9D%EB%82%B4%EA%B8%B0</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1954960e-392f-4599-89b6-e313cf4334ad&quot; data-ke-size=&quot;size16&quot;&gt;개발을 시작하면 누구나 처음 마주치는 것이 바로 &lt;b&gt;Git&lt;/b&gt;입니다. &quot;커밋이 뭐야?&quot;, &quot;브랜치는 왜 쓰는 거야?&quot; 라는 질문에서 시작해서, 팀 협업 중 머지 충돌로 멘붕을 겪기까지, Git은 모든 개발자의 필수 도구입니다. 이 글에서는 Git의 초기 설정부터 실무 협업까지, 꼭 알아야 할 핵심 명령어를 단계별로 완벽하게 정리합니다.&lt;/p&gt;
&lt;h2 id=&quot;9d024eb0-69c6-49b5-bb22-c6d57def7dc7&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;9d024eb0-69c6-49b5-bb22-c6d57def7dc7&quot; data-id=&quot;9d024eb0-69c6-49b5-bb22-c6d57def7dc7&quot; data-ke-size=&quot;size26&quot;&gt;✅ Git이란? 왜 써야 할까?&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9b12262c-4fda-42d3-ace1-d8d348987bd0&quot; data-ke-size=&quot;size16&quot;&gt;Git은 &lt;b&gt;분산형 버전 관리 시스템(DVCS, Distributed&amp;nbsp;Version&amp;nbsp;Control&amp;nbsp;System)&lt;/b&gt;으로, 코드의 변경 이력을 기록하고 관리할 수 있게 해주는 도구입니다. Git을 사용하면 다음과 같은 이점이 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;43b13a3e-130c-40dc-83d5-9f04fafd3557&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;eeda3645-9fda-4e34-8923-c3e11a38eb90&quot;&gt;&lt;b&gt;변경 이력 추적:&lt;/b&gt; 누가, 언제, 무엇을 바꿨는지 기록됩니다&lt;/li&gt;
&lt;li data-id=&quot;7ad38c72-23c2-4b6a-ab6f-18748b6cd790&quot;&gt;&lt;b&gt;협업 용이성:&lt;/b&gt; 여러 명이 동시에 같은 프로젝트에서 작업할 수 있습니다&lt;/li&gt;
&lt;li data-id=&quot;5cba78d8-06b3-4985-ab9d-59a58338c430&quot;&gt;&lt;b&gt;실수 복구:&lt;/b&gt; 이전 상태로 언제든지 되돌릴 수 있습니다&lt;/li&gt;
&lt;li data-id=&quot;83c3afa0-3443-4ea2-8611-4ffa4a6890ed&quot;&gt;&lt;b&gt;브랜치 전략:&lt;/b&gt; 기능별로 독립적인 작업 공간을 만들 수 있습니다&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;5c01feb3-dae1-46ec-b1fb-1ef48eaaab32&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;5c01feb3-dae1-46ec-b1fb-1ef48eaaab32&quot; data-id=&quot;5c01feb3-dae1-46ec-b1fb-1ef48eaaab32&quot; data-ke-size=&quot;size26&quot;&gt;⚙️ 1단계: Git 초기 설정 (git config)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2c1653c4-6683-4083-9d59-3825945428da&quot; data-ke-size=&quot;size16&quot;&gt;Git을 처음 설치했다면 가장 먼저 사용자 정보를 설정해야 합니다. 커밋 기록에 작성자 정보가 함께 남기 때문에 반드시 설정해야 하는 과정입니다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; data-id=&quot;734c7b2b-7e46-480b-b06e-fb09089eebb6&quot;&gt;&lt;code&gt;# 사용자 이름 설정
git config --global user.name &quot;홍길동&quot;

# 이메일 설정
git config --global user.email &quot;honggildong@example.com&quot;

# 기본 브랜치명 설정 (main 권장)
git config --global init.defaultBranch main

# 설정 확인
git config --list&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;4699e44a-0ee4-4561-ac1c-265e267a816c&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  Tip:&lt;/b&gt; --global 옵션은 현재 사용자의 모든 저장소에 적용됩니다. 특정 프로젝트에만 적용하려면 해당 디렉토리에서 --local 옵션을 사용하세요.&lt;/p&gt;
&lt;h2 id=&quot;da54b81a-7994-466a-bbea-9d97862d8046&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;da54b81a-7994-466a-bbea-9d97862d8046&quot; data-id=&quot;da54b81a-7994-466a-bbea-9d97862d8046&quot; data-ke-size=&quot;size26&quot;&gt;  2단계: 저장소 생성과 클론 (git init / git clone)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;462fecb3-65fa-4231-bd6f-b4cf799326fd&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트를 시작하는 방법은 두 가지입니다. 새 저장소를 직접 만들거나, 기존 원격 저장소를 복제하는 것입니다.&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot; data-id=&quot;789ff60c-9fa5-49b9-bf34-1fc3f471b005&quot;&gt;&lt;code&gt;# 새 로컬 저장소 초기화
git init

# 원격 저장소 복제 (GitHub 등)
git clone https://github.com/username/repository.git

# 특정 폴더명으로 클론
git clone https://github.com/username/repository.git my-folder&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8113d335-385b-4fcc-b3f1-356c35456963&quot; data-ke-size=&quot;size16&quot;&gt;git init을 실행하면 현재 디렉토리에 .git 폴더가 생성되며, 이 폴더가 Git 저장소의 핵심 데이터를 모두 담고 있습니다.&lt;/p&gt;
&lt;h2 id=&quot;87f21bbc-6896-40f8-b4f6-69d9467cf025&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;87f21bbc-6896-40f8-b4f6-69d9467cf025&quot; data-id=&quot;87f21bbc-6896-40f8-b4f6-69d9467cf025&quot; data-ke-size=&quot;size26&quot;&gt;  3단계: 스테이징과 커밋 (git add / git commit)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f418ea34-218c-4765-9daa-4ceda47e4bb5&quot; data-ke-size=&quot;size16&quot;&gt;Git의 작업 흐름은 크게 세 영역으로 나뉩니다. &lt;br /&gt;&lt;b&gt;작업 디렉토리(Working Directory)&lt;/b&gt;, &lt;b&gt;스테이징 영역(Staging Area)&lt;/b&gt;, &lt;b&gt;로컬 저장소(Local Repository)&lt;/b&gt;입니다.&lt;/p&gt;
&lt;pre class=&quot;dockerfile&quot; data-id=&quot;1cc1c819-dfa2-41f7-9914-1986047203bf&quot;&gt;&lt;code&gt;# 특정 파일을 스테이징 영역에 추가
git add 파일명.txt

# 현재 디렉토리의 모든 변경 파일 추가
git add .

# 커밋 (변경 이력 저장)
git commit -m &quot;feat: 로그인 기능 구현&quot;

# add와 commit을 한 번에 (새 파일 제외)
git commit -am &quot;fix: 버그 수정&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;477b8451-d752-4bce-b752-6864879b6a1b&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;좋은 커밋 메시지 작성 규칙 (Conventional Commits)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;c15c60f6-63e5-47f9-a96e-3f5983cfc21e&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;3d5a20d2-3613-479f-8178-69d854a43a80&quot;&gt;&lt;b&gt;feat:&lt;/b&gt; 새로운 기능 추가&lt;/li&gt;
&lt;li data-id=&quot;f70a646f-df7c-4f9e-8a80-cd55cae9192d&quot;&gt;&lt;b&gt;fix:&lt;/b&gt; 버그 수정&lt;/li&gt;
&lt;li data-id=&quot;ab29f9f2-3bd4-4b7a-9238-927353433ea6&quot;&gt;&lt;b&gt;docs:&lt;/b&gt; 문서 변경&lt;/li&gt;
&lt;li data-id=&quot;58a4ca49-cbae-4f59-a0c3-e3156541f290&quot;&gt;&lt;b&gt;style:&lt;/b&gt; 코드 포맷 변경 (기능 변경 없음)&lt;/li&gt;
&lt;li data-id=&quot;3bdab900-ecaf-4c91-b254-4ed1d0b69389&quot;&gt;&lt;b&gt;refactor:&lt;/b&gt; 코드 리팩토링&lt;/li&gt;
&lt;li data-id=&quot;1d7bf584-46c3-4063-8275-660705d1111d&quot;&gt;&lt;b&gt;test:&lt;/b&gt; 테스트 추가/수정&lt;/li&gt;
&lt;li data-id=&quot;2fbfcc63-d89c-4f99-8d12-0c3679576bb7&quot;&gt;&lt;b&gt;chore:&lt;/b&gt; 빌드 설정, 패키지 변경 등&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;b59dba37-8a49-486a-abc9-ff09774970b6&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;b59dba37-8a49-486a-abc9-ff09774970b6&quot; data-id=&quot;b59dba37-8a49-486a-abc9-ff09774970b6&quot; data-ke-size=&quot;size26&quot;&gt;  4단계: 상태 확인과 로그 조회 (git status / git log)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d9a1e3f7-ea60-4349-9e63-bab984500754&quot; data-ke-size=&quot;size16&quot;&gt;현재 저장소 상태를 파악하고 커밋 이력을 확인하는 명령어입니다. 작업 중에 가장 자주 사용하는 명령어 중 하나입니다.&lt;/p&gt;
&lt;pre class=&quot;applescript&quot; data-id=&quot;78662d03-50c5-430e-964c-371d0de0773e&quot;&gt;&lt;code&gt;# 현재 작업 상태 확인
git status

# 커밋 이력 조회
git log

# 한 줄 요약으로 보기
git log --oneline

# 브랜치 그래프와 함께 보기
git log --oneline --graph --all

# 특정 파일의 변경 내용 비교
git diff 파일명.txt

# 스테이징된 변경 내용 비교
git diff --staged&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;b2303a94-69a3-4a68-b658-83922d5e5c53&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;b2303a94-69a3-4a68-b658-83922d5e5c53&quot; data-id=&quot;b2303a94-69a3-4a68-b658-83922d5e5c53&quot; data-ke-size=&quot;size26&quot;&gt;  5단계: 브랜치 전략 (git branch / git checkout / git switch)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;86e8eb5a-66e7-46c1-a45f-1b7f6d043734&quot; data-ke-size=&quot;size16&quot;&gt;브랜치(Branch)는 Git의 핵심 기능으로, 독립적인 작업 공간을 생성해 &lt;b&gt;메인 코드를 안전하게 보호&lt;/b&gt;하면서 새로운 기능을 개발할 수 있게 해줍니다.&lt;/p&gt;
&lt;pre class=&quot;vala&quot; data-id=&quot;eebcd274-f089-4d6f-a5a0-dd7fdb54b36e&quot;&gt;&lt;code&gt;# 브랜치 목록 확인
git branch

# 새 브랜치 생성
git branch feature/login

# 브랜치 이동 (구버전 방식)
git checkout feature/login

# 브랜치 이동 (신버전 권장)
git switch feature/login

# 브랜치 생성 + 이동 동시에
git switch -c feature/login

# 브랜치 삭제
git branch -d feature/login&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;11dcf73d-08c7-4838-8710-b682c89d1d13&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  실무에서 많이 쓰는 브랜치 전략 (Git Flow)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;d5247176-3215-44b8-bd6c-adb84e4f46fe&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;33268ab5-1f51-4033-898f-fb838cb687a4&quot;&gt;&lt;b&gt;main:&lt;/b&gt; 항상 배포 가능한 안정 버전&lt;/li&gt;
&lt;li data-id=&quot;e320230b-f970-47ec-89af-3a7f60059e46&quot;&gt;&lt;b&gt;develop:&lt;/b&gt; 개발 통합 브랜치&lt;/li&gt;
&lt;li data-id=&quot;d41ef632-6048-464b-8623-38044f08b591&quot;&gt;&lt;b&gt;feature/기능명:&lt;/b&gt; 기능 단위 개발 브랜치&lt;/li&gt;
&lt;li data-id=&quot;4bda26e3-b746-40ee-a24f-5908724cdd48&quot;&gt;&lt;b&gt;hotfix/이슈명:&lt;/b&gt; 긴급 버그 수정 브랜치&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;93cb9952-65cc-473f-ac42-6f3e226ed8d0&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;93cb9952-65cc-473f-ac42-6f3e226ed8d0&quot; data-id=&quot;93cb9952-65cc-473f-ac42-6f3e226ed8d0&quot; data-ke-size=&quot;size26&quot;&gt;  6단계: 병합과 충돌 해결 (git merge / git rebase)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;468b16c2-cade-4714-8274-625dc1e0da62&quot; data-ke-size=&quot;size16&quot;&gt;작업이 완료된 브랜치를 메인 브랜치에 합치는 과정입니다. 충돌(Conflict)이 발생할 수 있으니 차분하게 해결하는 방법을 익혀두는 것이 중요합니다.&lt;/p&gt;
&lt;pre class=&quot;livecodeserver&quot; data-id=&quot;f71fa9a2-261b-456e-a741-511a579ce8fe&quot;&gt;&lt;code&gt;# main 브랜치로 이동 후 병합
git switch main
git merge feature/login

# 병합 커밋 없이 직선 이력으로 병합
git merge --squash feature/login

# 리베이스 (커밋 이력을 깔끔하게 정리)
git rebase main&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fbcac9e9-2f3e-43ac-8ecb-3c08ec2229d6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;충돌 발생 시 해결 절차&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;ebdb69e0-a48d-4bd8-a79a-56f87eeae3a1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;9ee2f2df-f108-4acc-9509-de28f5432172&quot;&gt;&lt;b&gt;충돌 파일 확인:&lt;/b&gt; git status로 충돌 파일 목록 확인&lt;/li&gt;
&lt;li data-id=&quot;06e418ac-3a46-4ca6-90ad-60510254982d&quot;&gt;&lt;b&gt;파일 편집:&lt;/b&gt; 충돌 마커(&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;, =======, &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;)가 있는 부분을 직접 수정&lt;/li&gt;
&lt;li data-id=&quot;1a5d5a36-d058-4a26-b933-334f23e5a50d&quot;&gt;&lt;b&gt;스테이징:&lt;/b&gt; git add 파일명으로 해결된 파일 추가&lt;/li&gt;
&lt;li data-id=&quot;58c121d6-fd48-496f-bd69-691a1c079144&quot;&gt;&lt;b&gt;커밋:&lt;/b&gt; git commit으로 병합 완료&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;dd51d3ed-7c1f-4053-9c5d-b0c09ff9281b&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;dd51d3ed-7c1f-4053-9c5d-b0c09ff9281b&quot; data-id=&quot;dd51d3ed-7c1f-4053-9c5d-b0c09ff9281b&quot; data-ke-size=&quot;size26&quot;&gt;☁️ 7단계: 원격 저장소 연동 (git remote / git push / git pull)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f5d3ee5b-6d53-4ffd-b74e-176f69aef7e4&quot; data-ke-size=&quot;size16&quot;&gt;로컬 저장소와 GitHub, GitLab 등의 원격 저장소를 연결하고 코드를 동기화하는 핵심 명령어입니다.&lt;/p&gt;
&lt;pre class=&quot;vala&quot; data-id=&quot;3d8b19b0-1c56-4289-a9d1-3b0ef71eb09f&quot;&gt;&lt;code&gt;# 원격 저장소 연결
git remote add origin https://github.com/username/repo.git

# 연결된 원격 저장소 확인
git remote -v

# 로컬 커밋을 원격에 업로드
git push origin main

# 최초 업로드 시 upstream 설정 (이후엔 git push만 해도 됨)
git push -u origin main

# 원격 변경사항 가져오기 + 병합
git pull origin main

# 원격 변경사항만 가져오기 (병합 안 함)
git fetch origin&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;404a7361-a8f4-4b3a-838d-c4d4f9f48da2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;  pull vs fetch 차이점:&lt;/b&gt; git pull은 원격 변경사항을 가져와 자동으로 현재 브랜치에 병합합니다. git fetch는 변경사항을 가져오기만 하고 병합은 수동으로 해야 합니다. 팀 협업에서는 충돌을 줄이기 위해 fetch 후 확인하고 병합하는 방식을 권장합니다.&lt;/p&gt;
&lt;h2 id=&quot;f037ff0f-45fa-44b5-af4f-d61ce5797fda&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;f037ff0f-45fa-44b5-af4f-d61ce5797fda&quot; data-id=&quot;f037ff0f-45fa-44b5-af4f-d61ce5797fda&quot; data-ke-size=&quot;size26&quot;&gt;⏪ 8단계: 되돌리기 명령어 (git restore / git reset / git revert)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c17e9de1-0d84-4378-9af7-4f5edc721d80&quot; data-ke-size=&quot;size16&quot;&gt;실수했을 때 당황하지 않고 이전 상태로 되돌리는 방법입니다. 상황에 따라 적절한 명령어를 선택해야 합니다.&lt;/p&gt;
&lt;pre class=&quot;jboss-cli&quot; data-id=&quot;c0d1e181-5aae-4597-9ae7-6d5a60482b75&quot;&gt;&lt;code&gt;# 작업 디렉토리의 변경사항 취소 (스테이징 전)
git restore 파일명.txt

# 스테이징 취소 (작업 내용은 유지)
git restore --staged 파일명.txt

# 최근 N개 커밋을 취소 (이력 삭제, 주의!)
git reset --hard HEAD~1   # 변경사항도 삭제
git reset --soft HEAD~1   # 변경사항은 스테이징 유지

# 특정 커밋을 되돌리는 새 커밋 생성 (안전한 방법, 협업 시 권장)
git revert 커밋해시&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;108057ca-3cd7-4ab0-b317-ee4dcbef19be&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;⚠️ 주의:&lt;/b&gt; git reset --hard는 커밋 이력과 작업 내용 모두를 삭제합니다. 원격 저장소에 이미 push된 커밋을 reset하면 팀원과 충돌이 발생할 수 있으니, 협업 중에는 git revert를 사용하는 것이 안전합니다.&lt;/p&gt;
&lt;h2 id=&quot;c02e1e8e-12c4-46f5-9952-8a49295e3ee2&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;c02e1e8e-12c4-46f5-9952-8a49295e3ee2&quot; data-id=&quot;c02e1e8e-12c4-46f5-9952-8a49295e3ee2&quot; data-ke-size=&quot;size26&quot;&gt;  9단계: 임시 저장 (git stash)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ba8e39eb-cc8b-4e3f-a2c8-fc975d0c7589&quot; data-ke-size=&quot;size16&quot;&gt;작업 중 갑자기 다른 브랜치로 이동해야 할 때, 커밋하기 애매한 변경사항을 임시로 보관하는 명령어입니다.&lt;/p&gt;
&lt;pre class=&quot;properties&quot; data-id=&quot;61208db3-3a31-479d-9ff5-ae939c9eadbd&quot;&gt;&lt;code&gt;# 현재 변경사항 임시 저장
git stash

# stash 목록 확인
git stash list

# 가장 최근 stash 복원 + 목록에서 제거
git stash pop

# 특정 stash 복원
git stash apply stash@{0}

# stash 삭제
git stash drop stash@{0}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;d3cdfeb1-177c-4327-b89f-264017df1caa&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;d3cdfeb1-177c-4327-b89f-264017df1caa&quot; data-id=&quot;d3cdfeb1-177c-4327-b89f-264017df1caa&quot; data-ke-size=&quot;size26&quot;&gt; ️ 10단계: 태그 관리 (git tag)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;41b98785-ae47-45b3-8df4-31d5b3f0eeb2&quot; data-ke-size=&quot;size16&quot;&gt;릴리즈 버전이나 중요한 시점을 표시할 때 사용하는 태그 명령어입니다. GitHub에서 릴리즈 노트와 함께 자동으로 표시됩니다.&lt;/p&gt;
&lt;pre class=&quot;crmsh&quot; data-id=&quot;8581d52f-db40-49d5-880b-089994989d87&quot;&gt;&lt;code&gt;# 태그 목록 확인
git tag

# 간단한 태그 생성
git tag v1.0.0

# 주석 태그 생성 (릴리즈에 권장)
git tag -a v1.0.0 -m &quot;첫 번째 정식 릴리즈&quot;

# 원격 저장소에 태그 업로드
git push origin v1.0.0

# 모든 태그 한 번에 업로드
git push origin --tags&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;211317f4-a2fa-4f32-8c0a-fe019f44e47e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;211317f4-a2fa-4f32-8c0a-fe019f44e47e&quot; data-id=&quot;211317f4-a2fa-4f32-8c0a-fe019f44e47e&quot; data-ke-size=&quot;size26&quot;&gt;  실무 협업 시나리오: Pull Request 흐름&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;d160a115-7751-4006-9b33-56b4ca5a362c&quot; data-ke-size=&quot;size16&quot;&gt;실제 팀 프로젝트에서 Git을 활용하는 표준적인 협업 흐름입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;6b82e63c-1cb4-4763-ac1d-687d1b2b1cc0&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;5e8c0a88-9094-4a9c-95c1-07aac01a8db7&quot;&gt;&lt;b&gt;최신 코드 동기화:&lt;/b&gt; git pull origin main&lt;/li&gt;
&lt;li data-id=&quot;7747137f-6a76-4ba3-8067-86fe38116124&quot;&gt;&lt;b&gt;기능 브랜치 생성:&lt;/b&gt; git switch -c feature/새기능&lt;/li&gt;
&lt;li data-id=&quot;0d985bd0-fd1a-4158-b196-7beb2a6784ef&quot;&gt;&lt;b&gt;작업 후 커밋:&lt;/b&gt; git add . &amp;rarr; git commit -m &quot;feat: 새 기능 구현&quot;&lt;/li&gt;
&lt;li data-id=&quot;b4446934-6087-4489-9b1e-e815d4a889ef&quot;&gt;&lt;b&gt;원격에 푸시:&lt;/b&gt; git push origin feature/새기능&lt;/li&gt;
&lt;li data-id=&quot;b24b50e4-d951-441d-b8f5-d3cd350a5c63&quot;&gt;&lt;b&gt;PR 생성:&lt;/b&gt; GitHub에서 Pull Request 작성 및 코드 리뷰 요청&lt;/li&gt;
&lt;li data-id=&quot;dd8dc114-78b7-40e1-8179-fac0c4cab2a2&quot;&gt;&lt;b&gt;리뷰 반영:&lt;/b&gt; 피드백 수정 후 추가 커밋 및 푸시&lt;/li&gt;
&lt;li data-id=&quot;84d634fc-fad5-4e15-a3ad-66368949f9b0&quot;&gt;&lt;b&gt;병합:&lt;/b&gt; 승인 후 main 브랜치에 Merge&lt;/li&gt;
&lt;li data-id=&quot;5943d8aa-b61a-434a-a8e3-979dae6d1101&quot;&gt;&lt;b&gt;브랜치 정리:&lt;/b&gt; git branch -d feature/새기능&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;877ff723-80b0-47b2-b780-5e02ec529121&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;877ff723-80b0-47b2-b780-5e02ec529121&quot; data-id=&quot;877ff723-80b0-47b2-b780-5e02ec529121&quot; data-ke-size=&quot;size26&quot;&gt;  자주 쓰는 Git 명령어 치트시트&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 54.1861%;&quot; border=&quot;1&quot; data-id=&quot;a7ddb8be-a50e-4edd-b904-742d06d7fd69&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 26.2791%;&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.523%;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;45589c95-009f-4698-9eb4-a4bd41fac85f&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;009765cf-137b-4e97-be7c-24fddc6845ab&quot;&gt;&lt;span&gt;git init&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;31fa1807-854f-4ae8-a0b0-e5fcda9494bf&quot;&gt;&lt;span&gt;저장소 초기화&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;eaceb5cc-5f7b-46ed-a0ce-05e869550128&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;b94f1661-95e1-466c-9702-2e25197f3c07&quot;&gt;&lt;span&gt;git clone [URL]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;b3cd1e3f-3d31-4581-8459-af7a0ba0d487&quot;&gt;&lt;span&gt;원격 저장소 복제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;74b7ba93-e7ce-4d3f-8010-b39a2f47ff37&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;126e463b-1bce-411d-b0a1-e96498fc81a5&quot;&gt;&lt;span&gt;git status&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;cd3dede6-e7f6-4400-8710-c47c2d328d5e&quot;&gt;&lt;span&gt;현재 상태 확인&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;0c71ea39-6aca-4c18-afa4-5e24b7ff4e8f&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;306835ee-b520-43dd-912d-c7845563b983&quot;&gt;&lt;span&gt;git add .&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;4f67cadd-410c-46bf-b89b-dbd85a4fffbd&quot;&gt;&lt;span&gt;전체 변경사항 스테이징&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;376780c1-18da-4e72-8af1-88c2a58d8a65&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;9e64402d-a433-447b-b443-5efae82e4401&quot;&gt;&lt;span&gt;git commit -m &quot;메시지&quot;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;35c75160-6466-4311-ab43-6b1956c9fa95&quot;&gt;&lt;span&gt;커밋 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;e56cddbf-b2d9-4148-8bd6-347337996eb3&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;6c13c2ea-06ee-48d2-9909-175f5389dbe0&quot;&gt;&lt;span&gt;git push origin main&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;25dd6a4b-e5c4-4b9b-86cd-d8a4e2d2ffed&quot;&gt;&lt;span&gt;원격에 업로드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;36278876-f7e2-4579-9a53-6f46603c702e&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;19a2b007-e34e-44cd-8a58-a2b8752a9bf5&quot;&gt;&lt;span&gt;git pull origin main&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;f0124f75-11d3-47d2-8694-7fa690d74f33&quot;&gt;&lt;span&gt;원격 변경사항 가져오기 + 병합&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;0194a9be-6f4b-409b-85a2-b17c1c617cd3&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;dd100be4-5abf-42e4-ae9e-db59f8b0a44b&quot;&gt;&lt;span&gt;git branch&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;7f0a2af6-fc82-43db-a8e8-afc58e77d45b&quot;&gt;&lt;span&gt;브랜치 목록 확인&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;68542733-d3e6-4e62-b483-21f87c86bcc5&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;40f170e4-d522-4b17-9acb-5ea0691e8b62&quot;&gt;&lt;span&gt;git switch -c [브랜치명]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;f4820743-f244-44f8-b9ba-b2c78e094e3d&quot;&gt;&lt;span&gt;브랜치 생성 + 이동&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;05fa4b44-4ce1-41e3-8954-368ca7753a9f&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;3081719d-3ac7-4dff-a3a0-e2ef86f04b3b&quot;&gt;&lt;span&gt;git merge [브랜치명]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;3300e65b-81b2-4fda-a476-27909c34aa62&quot;&gt;&lt;span&gt;브랜치 병합&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;92f35b6f-a60e-47e2-a84f-048cc05e6888&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;89e2cf1a-109b-4cd5-86d3-c92557c5b2a7&quot;&gt;&lt;span&gt;git log --oneline&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;84f35b30-d6a3-4b98-9b1f-6862d896f57b&quot;&gt;&lt;span&gt;커밋 이력 한 줄 보기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2d2c5d3a-1b54-4a23-8faa-c0459ad1437a&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;07600022-68cc-44ad-89fa-c6d65108a361&quot;&gt;&lt;span&gt;git stash&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;f6af178e-be75-4622-8c5f-8d65254d4df2&quot;&gt;&lt;span&gt;작업 임시 저장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;3a6db954-fcfd-4f57-814b-3f4320c30e52&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;55e3111a-eddb-4080-b899-444318d79ee8&quot;&gt;&lt;span&gt;git revert [해시]&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;1f15cc50-cb58-482a-82f8-429aeed6d1ad&quot;&gt;&lt;span&gt;커밋 안전하게 되돌리기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8a1d3d12-617d-4c66-aeba-8d8e05f77fd6&quot;&gt;
&lt;td style=&quot;width: 26.2791%;&quot; data-id=&quot;389f6103-3961-449f-b28d-f7339fbb62af&quot;&gt;&lt;span&gt;git tag -a v1.0.0&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.523%;&quot; data-id=&quot;b98202f0-bc8b-459a-be1f-1cfa34a515ce&quot;&gt;&lt;span&gt;버전 태그 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;07eb4109-5244-4eba-9a3a-c1878f90bff2&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;07eb4109-5244-4eba-9a3a-c1878f90bff2&quot; data-id=&quot;07eb4109-5244-4eba-9a3a-c1878f90bff2&quot; data-ke-size=&quot;size26&quot;&gt;  마무리: Git 학습 로드맵&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;7549ae32-3526-4a11-92eb-858909803742&quot; data-ke-size=&quot;size16&quot;&gt;Git은 처음에는 낯설지만, 반복해서 쓰다 보면 자연스럽게 손에 익습니다. 아래 순서로 학습하면 효율적입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;148f41cc-e923-4920-924a-7aa3e52f2d2b&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;48f1cb5a-b50f-4643-becf-21f6f15c4afe&quot;&gt;&lt;b&gt;기초 다지기:&lt;/b&gt; init, add, commit, status, log&lt;/li&gt;
&lt;li data-id=&quot;bfc135dd-2185-494f-8e55-9aeb4b91510f&quot;&gt;&lt;b&gt;브랜치 익히기:&lt;/b&gt; branch, switch, merge&lt;/li&gt;
&lt;li data-id=&quot;64a512f8-34e2-4ab5-92cc-40f9d205ea2f&quot;&gt;&lt;b&gt;원격 연동 연습:&lt;/b&gt; remote, push, pull, fetch&lt;/li&gt;
&lt;li data-id=&quot;72dd6b63-6f03-4c07-9d56-cca2cc3061ea&quot;&gt;&lt;b&gt;협업 시나리오 실습:&lt;/b&gt; PR 기반 워크플로우&lt;/li&gt;
&lt;li data-id=&quot;a5e08f50-9962-46ea-a736-8607707653f0&quot;&gt;&lt;b&gt;고급 기능 탐구:&lt;/b&gt; rebase, stash, cherry-pick, bisect&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;361ced49-77aa-46f8-ad1e-d725f820558f&quot; data-ke-size=&quot;size16&quot;&gt;이 가이드가 Git을 처음 배우는 분들에게 명확한 길잡이가 되길 바랍니다. &lt;br /&gt;막히는 부분이 생기면 git --help 명령어나 공식 문서(&lt;a href=&quot;https://git-scm.com/doc&quot;&gt;git-scm.com&lt;/a&gt;)를 참고하세요. &lt;br /&gt;꾸준히 쓰는 것이 가장 빠른 학습 방법입니다!  &lt;/p&gt;</description>
      <category>딸깍 지름길.zip</category>
      <category>GIT</category>
      <category>Github</category>
      <category>git기초</category>
      <category>git명령어</category>
      <category>git초보</category>
      <category>Git튜토리얼</category>
      <category>개발자가이드</category>
      <category>버전관리</category>
      <category>협업</category>
      <category>형상관리</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/26</guid>
      <comments>https://lazip.tistory.com/entry/Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%B6%80%ED%84%B0-%ED%98%91%EC%97%85%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90-%EB%81%9D%EB%82%B4%EA%B8%B0#entry26comment</comments>
      <pubDate>Fri, 17 Apr 2026 12:38:44 +0900</pubDate>
    </item>
    <item>
      <title>노션 단축키 완벽 가이드 2026 &amp;mdash; 마크다운 서식부터 슬래시 명령어까지 한 번에 끝내기</title>
      <link>https://lazip.tistory.com/entry/%EB%85%B8%EC%85%98-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-2026-%E2%80%94-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EC%84%9C%EC%8B%9D%EB%B6%80%ED%84%B0-%EC%8A%AC%EB%9E%98%EC%8B%9C-%EB%AA%85%EB%A0%B9%EC%96%B4%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90-%EB%81%9D%EB%82%B4%EA%B8%B0</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-id=&quot;04f9c590-5e3d-4b35-9929-c6e308e67bb1&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;29deed5c-84ed-4b7e-9d71-1335d27ee55a&quot; data-ke-size=&quot;size16&quot;&gt;노션(Notion)을 쓰면서 매번 마우스로 서식 버튼을 클릭하고 있다면, 단축키와 마크다운 문법을 모르고 있는 것입니다. &lt;br /&gt;이 가이드 하나로 텍스트 편집, 블록 조작, 슬래시 명령어까지 완벽하게 정리해 드립니다.&lt;/p&gt;
&lt;h2 id=&quot;d94b3992-1cce-465c-8f18-f138d6bcf7be&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;d94b3992-1cce-465c-8f18-f138d6bcf7be&quot; data-id=&quot;d94b3992-1cce-465c-8f18-f138d6bcf7be&quot; data-ke-size=&quot;size26&quot;&gt;  마크다운이란? 노션에서 왜 중요한가&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ec54dd2c-bc17-43a6-af65-d69228a72732&quot; data-ke-size=&quot;size16&quot;&gt;마크다운(Markdown)은 일반 텍스트를 서식이 있는 문서로 변환해 주는 간단한 경량 문법입니다. 읽기 쉽고 쓰기 쉬운 순수 텍스트 포맷을 사용하면서도 구조적으로 다양한 서식을 적용할 수 있다는 장점이 있습니다. 노션에서는 이 마크다운을 기본으로 지원하여, 복잡한 서식 메뉴 없이도 빠르게 문서를 작성할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;ab99141f-eac6-4fff-a93b-6b9270c63dcb&quot; data-ke-size=&quot;size16&quot;&gt;특히 개발자들 사이에서 널리 사용되는 이 문법을 노션에서도 그대로 활용할 수 있어, GitHub, Velog, Postman 등 다양한 도구와 매끄럽게 연결됩니다. &lt;b&gt;핵심 규칙 하나:&lt;/b&gt; 모든 마크다운 문법 뒤에는 반드시 공백(Space)을 입력해야 정상적으로 작동합니다.&lt;/p&gt;
&lt;h2 id=&quot;84911573-4b11-4f93-91be-803d1134280e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;84911573-4b11-4f93-91be-803d1134280e&quot; data-id=&quot;84911573-4b11-4f93-91be-803d1134280e&quot; data-ke-size=&quot;size26&quot;&gt;✍️ 텍스트 서식 단축키 (가장 많이 쓰는 것들)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;239c2912-8560-45d3-a3a0-29d69a1db147&quot; data-ke-size=&quot;size16&quot;&gt;텍스트를 선택한 상태에서 아래 단축키를 누르면 즉시 서식이 적용됩니다. Mac은 &lt;b&gt;Cmd&lt;/b&gt;, Windows/Linux는 &lt;b&gt;Ctrl&lt;/b&gt;을 사용합니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-id=&quot;f1c7ca27-97b2-4e4a-bde8-9e22a5a617b9&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt; 기능 &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt; Windows / Linux&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;Mac&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span&gt;마크다운 문법&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;6b5ff3ff-dd8a-4d20-8fdb-6551d628ea35&quot;&gt;
&lt;td data-id=&quot;14390a86-fa57-43bb-9530-749debefb5c8&quot;&gt;&lt;span&gt;&lt;b&gt;굵게 (Bold)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;25cdf361-0763-4f0a-8b38-e57438e095e5&quot;&gt;&lt;span&gt;Ctrl + B&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;211b2884-2a6f-45ba-a96b-4684f4a457db&quot;&gt;&lt;span&gt;Cmd + B&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;8f120a05-7da0-4d4c-88c0-cc4d1c5312ca&quot;&gt;&lt;span&gt;&lt;b&gt;텍스트&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;03a4a28e-f111-41cf-be47-fceab2287d78&quot;&gt;
&lt;td data-id=&quot;5fa34333-d627-4970-8829-f10d692b71a0&quot;&gt;&lt;span&gt;기울임 (Italic)&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;c1290f71-d01a-4de4-a35e-228ed568e9e6&quot;&gt;&lt;span&gt;Ctrl + I&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;be957592-8433-4b91-a291-8e1a9ca16ec9&quot;&gt;&lt;span&gt;Cmd + I&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b000e25a-60b3-4724-9096-79c3c1c63d04&quot;&gt;&lt;span&gt;*텍스트* 또는 _텍스트_&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;90f16109-8e7e-43dc-813c-54ced7f97888&quot;&gt;
&lt;td data-id=&quot;4cc1cf9c-c002-4efc-ae23-fd04cfbcf799&quot;&gt;&lt;span&gt;&lt;u&gt;밑줄 (Underline)&lt;/u&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b58dacae-a9bf-4f15-b1fe-2440ffaf366f&quot;&gt;&lt;span&gt;Ctrl + U&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;8725d356-ab43-436a-ba14-5a016bb7ac88&quot;&gt;&lt;span&gt;Cmd + U&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;b051731b-ab38-4af5-bee6-d2fe405819d0&quot;&gt;&lt;span&gt;(마크다운 미지원, 단축키 사용)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;c243a1ff-dfb9-478d-8b4b-be1430602954&quot;&gt;
&lt;td data-id=&quot;4ce538fa-3567-4d61-8b4b-e4bd0a66652e&quot;&gt;&lt;span&gt;&lt;s&gt;취소선 (Strikethrough)&lt;/s&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;78fff90b-3aea-4855-8041-122c4da16332&quot;&gt;&lt;span&gt;Ctrl + Shift + S&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;626d1d1a-e679-4b4b-aaf4-8d390c6518ea&quot;&gt;&lt;span&gt;Cmd + Shift + S&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;e9957cad-0059-4753-b085-d43118a79c86&quot;&gt;&lt;span&gt;~텍스트~&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;3a3cd46e-c982-475e-9f75-e5e99eae938c&quot;&gt;
&lt;td data-id=&quot;e68f9715-a465-4435-b058-25a24fd20c5b&quot;&gt;&lt;span&gt;인라인 코드&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;9321d21d-d0ab-4969-9d73-9ea397f85665&quot;&gt;&lt;span&gt;Ctrl + E&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;75733b03-e173-4031-b320-b2c6c4446d78&quot;&gt;&lt;span&gt;Cmd + E&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;e91e941a-04d0-499f-b5fc-7a9c02ba749a&quot;&gt;&lt;span&gt;`텍스트`&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;bb4fb676-df0a-42e1-9f4a-57e197cb6c29&quot;&gt;
&lt;td data-id=&quot;2df45cde-9fca-44de-a947-d6d8843815f9&quot;&gt;&lt;span&gt;링크 추가&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;84eca754-36d2-4b89-a20e-445d68091edb&quot;&gt;&lt;span&gt;Ctrl + K&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;6bfba79e-0257-4a31-a99a-eb82aeac6a44&quot;&gt;&lt;span&gt;Cmd + K&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;5f05742b-9ac2-43c6-a444-19f0038befbc&quot;&gt;&lt;span&gt;(URL 붙여넣기도 가능)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8b8dd441-d7c1-4740-873d-770177d2a815&quot;&gt;
&lt;td data-id=&quot;d6a8f564-2540-4a6e-a3d1-88c6b4fd933a&quot;&gt;&lt;span&gt;댓글 달기&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;d240d835-8c90-4e3e-98f1-0c0d93e0fdfe&quot;&gt;&lt;span&gt;Ctrl + Shift + M&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;8c9c7b18-3545-438f-8b39-6debb61efcf1&quot;&gt;&lt;span&gt;Cmd + Shift + M&lt;/span&gt;&lt;/td&gt;
&lt;td data-id=&quot;6c435b1a-de4d-4d4d-9a8c-75a7694799d3&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;790aa6d5-b085-427f-a43c-4c61118fb52a&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;790aa6d5-b085-427f-a43c-4c61118fb52a&quot; data-id=&quot;790aa6d5-b085-427f-a43c-4c61118fb52a&quot; data-ke-size=&quot;size26&quot;&gt;  마크다운으로 블록 만들기 (입력 즉시 변환)&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;206be9b5-6b7f-4c4a-87b5-4aa092f91e7b&quot; data-ke-size=&quot;size16&quot;&gt;새로운 줄이나 블록 시작 부분에 아래 기호를 입력하고 &lt;b&gt;스페이스바&lt;/b&gt;를 누르면, 즉시 해당 블록으로 변환됩니다. 마우스 없이 키보드만으로 모든 블록을 생성할 수 있습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 76.2791%;&quot; border=&quot;1&quot; data-id=&quot;6185e7fa-ab5a-4053-afe4-19fdb57b68f7&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 33.4884%;&quot;&gt;&lt;b&gt;입력 기호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 42.6744%;&quot;&gt;&lt;b&gt;생성되는 블록&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;438faa60-cef2-4ed1-a0fd-e66bfd81f5f7&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;d0dc86c1-4faf-4368-ae8e-ef62920d039a&quot;&gt;&lt;span&gt;# + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;b18fe3e9-28fb-498b-a565-0325331bdf6f&quot;&gt;&lt;span&gt;제목 1 (Heading 1) - 가장 큰 제목&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2ae4e65f-b08e-4a05-8f1a-762754a2d30f&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;878d5b4b-64b2-4bc1-b10a-0588d0af47d9&quot;&gt;&lt;span&gt;## + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;2ce31677-17b5-46fd-a4be-14318682a917&quot;&gt;&lt;span&gt;제목 2 (Heading 2) - 중간 크기 제목&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;0e93dae4-ce7c-49c3-8eb7-074a89f3f81c&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;3cc5182e-3985-46d2-b538-f3f97d6550f6&quot;&gt;&lt;span&gt;### + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;0ebf522b-acb2-4b12-b420-12eac67095da&quot;&gt;&lt;span&gt;제목 3 (Heading 3) - 소제목&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;c0bdb6b4-36ed-43cc-a8e0-2d9dafa2c45c&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;0c173c3e-09a8-4fea-9625-f242c3b35003&quot;&gt;&lt;span&gt;- 또는 * + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;36df63b0-c10d-4fb2-b8e7-d4428e86c724&quot;&gt;&lt;span&gt;글머리 기호 목록 (Bullet List)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;566be0df-a2ef-494d-aee6-69ef0fbf5b48&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;3e99966c-e545-42d7-9979-1df6fbe03636&quot;&gt;&lt;span&gt;1. + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;4f7abce8-8b7a-406f-b1b4-cce3c39c8c8d&quot;&gt;&lt;span&gt;번호 매기기 목록 (Numbered List)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;5f5f4d3e-3989-4a17-b8bf-f8c40d821920&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;7a478df9-dee4-4cf0-bab1-009c183efebe&quot;&gt;&lt;span&gt;[] + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;5c08f14e-d6ad-491b-aead-6c77ab201cb2&quot;&gt;&lt;span&gt;할 일 체크박스 (To-do List)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8e344da2-7643-4147-94c6-36ff82a273b4&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;67a403f1-40c9-45be-a288-a812ed88f8c5&quot;&gt;&lt;span&gt;&amp;gt; + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;e186c8a9-3d14-430e-a435-266b0c9b6b07&quot;&gt;&lt;span&gt;토글 목록 (Toggle)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2215a5cb-f6b2-48e4-b491-2e2e7100dd28&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;c3a5b41e-468f-4bd6-a334-f6f0f3a9746f&quot;&gt;&lt;span&gt;&quot; + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;1c9cf85b-db51-42e0-aaf0-f0ba88a4c198&quot;&gt;&lt;span&gt;인용 블록 (Quote)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2179fa74-7ccd-476f-8c10-b1848626d027&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;097c6db2-4db1-4447-872b-5377fa29ddc9&quot;&gt;&lt;span&gt;--- (대시 3개)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;b8d02368-0537-4b1e-a208-4ba12fdb1e2d&quot;&gt;&lt;span&gt;구분선 (Divider)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;3977ba87-1b63-47c1-9af0-48da889197b0&quot;&gt;
&lt;td style=&quot;width: 33.4884%;&quot; data-id=&quot;c9b7f0ec-4e64-4651-9fa2-2a9641d7a41e&quot;&gt;&lt;span&gt;백틱 3개 (` ` `)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 42.6744%;&quot; data-id=&quot;774c0403-31d0-4050-a74f-3f015d37342d&quot;&gt;&lt;span&gt;코드 블록 (Code Block)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;c1f99fa8-d5aa-4c1a-8773-fa7274c8ff95&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;팁:&lt;/b&gt; 코드 블록 생성 후 언어 이름을 입력하면 문법 강조(Syntax Highlighting)가 자동으로 적용됩니다.&lt;/p&gt;
&lt;h2 id=&quot;7ddd85da-ced5-4671-96de-0cf696f386df&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;7ddd85da-ced5-4671-96de-0cf696f386df&quot; data-id=&quot;7ddd85da-ced5-4671-96de-0cf696f386df&quot; data-ke-size=&quot;size26&quot;&gt;⚡ 페이지 탐색 및 기본 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;22143b52-5d36-412f-8107-e46805c8ba17&quot; data-ke-size=&quot;size16&quot;&gt;페이지 간 빠른 이동과 워크스페이스 탐색에 필수적인 단축키들입니다. 이것만 알아도 업무 속도가 눈에 띄게 빨라집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;e4b6eb41-5163-4c47-9e84-09752e302671&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e10c9464-1810-4e8a-a13f-11cf13fd172a&quot;&gt;&lt;b&gt;Ctrl/Cmd + N&lt;/b&gt;: 새 페이지 만들기&lt;/li&gt;
&lt;li data-id=&quot;0e471370-9518-40bf-899e-9d2aa7ce7bfe&quot;&gt;&lt;b&gt;Ctrl/Cmd + P&lt;/b&gt;: 검색창 열기 / 최근 페이지 이동&lt;/li&gt;
&lt;li data-id=&quot;51a81e95-57ce-4d2f-b609-baa7360101a2&quot;&gt;&lt;b&gt;Ctrl/Cmd + [&lt;/b&gt;: 이전 페이지로 뒤로가기&lt;/li&gt;
&lt;li data-id=&quot;40696623-d9d0-4f81-afa0-ae5bf207f77b&quot;&gt;&lt;b&gt;Ctrl/Cmd + ]&lt;/b&gt;: 다음 페이지로 앞으로가기&lt;/li&gt;
&lt;li data-id=&quot;49387b7c-2948-4054-ad1b-187dc156bf8f&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + N&lt;/b&gt;: 새 Notion 창 열기 (데스크톱 앱 전용)&lt;/li&gt;
&lt;li data-id=&quot;76108396-9d85-4f37-95a5-0b797edf6833&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + L&lt;/b&gt;: 다크 모드 / 라이트 모드 전환&lt;/li&gt;
&lt;li data-id=&quot;1848af90-b0a5-41e9-89cb-f72df93c8fd1&quot;&gt;&lt;b&gt;Ctrl/Cmd + +&lt;/b&gt;: 페이지 확대&lt;/li&gt;
&lt;li data-id=&quot;acbcddc4-9ccb-41e2-a6ec-6b8a74a41fb3&quot;&gt;&lt;b&gt;Ctrl/Cmd + -&lt;/b&gt;: 페이지 축소&lt;/li&gt;
&lt;li data-id=&quot;51187713-67f1-48a7-a615-5f2d59ff97dd&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + U&lt;/b&gt;: 상위 페이지로 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;de67c6f6-0c18-468c-80cc-74ad59af8ba1&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;de67c6f6-0c18-468c-80cc-74ad59af8ba1&quot; data-id=&quot;de67c6f6-0c18-468c-80cc-74ad59af8ba1&quot; data-ke-size=&quot;size26&quot;&gt;  블록 선택 및 편집 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;2b5c1385-8012-427b-a73e-d15e3b087506&quot; data-ke-size=&quot;size16&quot;&gt;노션의 모든 콘텐츠는 블록(Block) 단위로 구성됩니다. 텍스트 한 줄, 이미지, 임베드 모두 각각 하나의 블록입니다. 아래 단축키로 블록을 빠르게 조작할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;18cf5475-f21b-495b-a4d6-f92771b260dd&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;499db909-49ab-4f15-bb8c-f2d99c4a6206&quot;&gt;&lt;b&gt;Esc&lt;/b&gt;: 현재 블록 선택 (편집 모드에서 선택 모드로 전환)&lt;/li&gt;
&lt;li data-id=&quot;75eae3e3-7b37-4e03-b9ad-7c40ff180860&quot;&gt;&lt;b&gt;Ctrl/Cmd + D&lt;/b&gt;: 선택한 블록 복제(Duplicate)&lt;/li&gt;
&lt;li data-id=&quot;b3b6650f-8ddb-4921-9b83-acc0ba8c9404&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + &amp;uarr; / &amp;darr;&lt;/b&gt;: 선택한 블록 위/아래로 이동&lt;/li&gt;
&lt;li data-id=&quot;7a88a563-14ce-4414-b39b-153065ed7cf6&quot;&gt;&lt;b&gt;Backspace / Delete&lt;/b&gt;: 선택한 블록 삭제&lt;/li&gt;
&lt;li data-id=&quot;ff419d44-d6ca-43d7-8747-09f92a22e7d5&quot;&gt;&lt;b&gt;Ctrl/Cmd + /&lt;/b&gt;: 선택한 블록 유형 변경 (텍스트를 제목, 체크박스 등으로 전환)&lt;/li&gt;
&lt;li data-id=&quot;bc692e6e-e0f9-442c-9ed8-52e5efcefdc9&quot;&gt;&lt;b&gt;Tab&lt;/b&gt;: 블록 들여쓰기 (하위 블록으로 만들기)&lt;/li&gt;
&lt;li data-id=&quot;8a6dfd90-e6de-4dab-94ab-aca57bdc9575&quot;&gt;&lt;b&gt;Shift + Tab&lt;/b&gt;: 블록 내어쓰기 (상위 블록으로 복귀)&lt;/li&gt;
&lt;li data-id=&quot;c598c32e-4338-4109-bb25-539bfc34248a&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + H&lt;/b&gt;: 마지막으로 사용한 색상 재적용&lt;/li&gt;
&lt;li data-id=&quot;0b9c3b66-8f2b-41c5-8165-9d24f1be6dc6&quot;&gt;&lt;b&gt;Ctrl/Cmd + Enter&lt;/b&gt;: 현재 블록 수정 (체크박스 토글, 이미지 전체화면 등)&lt;/li&gt;
&lt;li data-id=&quot;e2844c70-1dc3-44f7-9037-29046ae5d369&quot;&gt;&lt;b&gt;Shift + 방향키&lt;/b&gt;: 인접한 블록을 함께 선택&lt;/li&gt;
&lt;li data-id=&quot;4257786c-c7b7-4ca4-9e7a-af3791eafc71&quot;&gt;&lt;b&gt;Ctrl/Cmd + A&lt;/b&gt; (두 번 누르기): 페이지 전체 블록 선택&lt;/li&gt;
&lt;li data-id=&quot;fd4e2c21-47f2-4c71-bb9d-3f2cd1f51819&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + &amp;uarr;&amp;darr; (Alt 키 포함)&lt;/b&gt;: 모든 토글 목록 펼치거나 닫기&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;641d8a1e-fa80-492e-b124-b981ed199321&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;641d8a1e-fa80-492e-b124-b981ed199321&quot; data-id=&quot;641d8a1e-fa80-492e-b124-b981ed199321&quot; data-ke-size=&quot;size26&quot;&gt;⌨️ 텍스트 입력 편의 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;b9bcf64b-5ca5-409d-a708-b7ce240df16d&quot; data-ke-size=&quot;size16&quot;&gt;글을 작성하면서 자주 쓰이는 입력 관련 단축키입니다. 특히 줄 바꿈과 관련된 것들은 실수 없이 알아 두는 것이 좋습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;ba875d3f-f212-4186-aff1-f69ed8f207ba&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ddf62f4e-794b-4bd0-abaa-a1a4b6720b58&quot;&gt;&lt;b&gt;Enter&lt;/b&gt;: 새 텍스트 블록(새 줄) 삽입&lt;/li&gt;
&lt;li data-id=&quot;0170a804-627a-4928-b33c-6dee5859048b&quot;&gt;&lt;b&gt;Shift + Enter&lt;/b&gt;: 같은 블록 안에서 줄 바꿈 (블록을 나누지 않음)&lt;/li&gt;
&lt;li data-id=&quot;2a0e03f4-484f-49c6-9b49-52f1710668f6&quot;&gt;&lt;b&gt;Ctrl/Cmd + Z&lt;/b&gt;: 실행 취소 (Undo)&lt;/li&gt;
&lt;li data-id=&quot;87ed2b7f-69bb-45c3-a21e-25adb3eab95b&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + Z&lt;/b&gt;: 다시 실행 (Redo)&lt;/li&gt;
&lt;li data-id=&quot;a8ac0419-f16e-4f67-b31d-a36fa36dd3c8&quot;&gt;&lt;b&gt;Ctrl/Cmd + C&lt;/b&gt;: 복사, &lt;b&gt;Ctrl/Cmd + V&lt;/b&gt;: 붙여넣기&lt;/li&gt;
&lt;li data-id=&quot;5d04f7e3-ffa3-4987-92e9-d2280f580c01&quot;&gt;&lt;b&gt;Ctrl/Cmd + Shift + V&lt;/b&gt;: 서식 없이 순수 텍스트로 붙여넣기&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;c0c9687e-fea2-45b2-9818-6a4110108586&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;c0c9687e-fea2-45b2-9818-6a4110108586&quot; data-id=&quot;c0c9687e-fea2-45b2-9818-6a4110108586&quot; data-ke-size=&quot;size26&quot;&gt;  @ 멘션과 [[]] 링크 명령어&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;e301ebc7-e14a-4f57-aaf4-b351efa8f1ac&quot; 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-id=&quot;39f8c4e9-6616-411b-b53c-35f4d5738aea&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;a61e0703-02f2-48ab-884f-d6484121e99d&quot;&gt;&lt;b&gt;@이름&lt;/b&gt;: 워크스페이스 멤버 멘션 (알림 발송)&lt;/li&gt;
&lt;li data-id=&quot;34785635-d712-47c6-8b1a-dac7c61c57eb&quot;&gt;&lt;b&gt;@페이지 제목&lt;/b&gt;: 해당 페이지로 이동하는 인라인 링크 생성 (페이지 제목 변경 시 링크 자동 업데이트)&lt;/li&gt;
&lt;li data-id=&quot;458d278a-4376-4d65-a9be-b0e0777e166c&quot;&gt;&lt;b&gt;@오늘 / @내일 / @다음 주 수요일&lt;/b&gt;: 날짜 삽입 및 리마인더 설정&lt;/li&gt;
&lt;li data-id=&quot;7379eb34-f9d7-40ad-8feb-8d04200e8686&quot;&gt;&lt;b&gt;[[페이지 제목]]&lt;/b&gt;: 페이지 링크 빠르게 삽입하기&lt;/li&gt;
&lt;li data-id=&quot;f287d760-dd97-4621-a798-dece829e31fb&quot;&gt;&lt;b&gt;+페이지 제목&lt;/b&gt;: 새 페이지 또는 하위 페이지 빠르게 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;08a68dd8-c47d-4722-8892-5bbe8411f17f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;08a68dd8-c47d-4722-8892-5bbe8411f17f&quot; data-id=&quot;08a68dd8-c47d-4722-8892-5bbe8411f17f&quot; data-ke-size=&quot;size26&quot;&gt; ️ 슬래시(/) 명령어 완전 정복&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f61cfc34-18a2-4e20-b30f-63795d7407af&quot; data-ke-size=&quot;size16&quot;&gt;빈 줄에서 &lt;b&gt;/&lt;/b&gt;를 입력하면 노션의 모든 블록과 기능을 검색해서 삽입할 수 있습니다. 슬래시 명령어는 노션 기능의 시작점입니다. 원하는 블록 이름을 이어서 입력하면 더 빠르게 검색됩니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 64.7662%;&quot; border=&quot;1&quot; data-id=&quot;6ed637f1-ae32-459b-a600-772e0233b228&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 24.6512%;&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 37.1643%;&quot;&gt;&lt;b&gt; 생성되는 블록 / 기능 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;e8584d43-5450-4af0-b54d-c2e7e0ecfa0a&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;59969679-cf8e-44c2-acfa-50104f539f96&quot;&gt;&lt;span&gt;/제목1, /h1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;a6e3f85e-cf7b-4ada-b5de-50f9b1fa1102&quot;&gt;&lt;span&gt;Heading 1 제목 블록&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;a8af8db1-58dd-44d9-a849-dcab6d9eca76&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;c38f1591-765f-431b-ac8b-0be9ba4f45ab&quot;&gt;&lt;span&gt;/할일, /todo&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;c8ceed79-490c-460a-8241-a3157a680c64&quot;&gt;&lt;span&gt;체크박스 할 일 목록&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;14cc831d-333c-4486-bf01-5ca9002ec3ab&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;47297bbf-e564-4412-bbdd-b0a7be70c99b&quot;&gt;&lt;span&gt;/토글, /toggle&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;196a5eb7-ee54-42b7-b400-afc5b36f1628&quot;&gt;&lt;span&gt;토글(접기/펼치기) 목록&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;165a69c8-c258-4e95-b2d4-71eac0077345&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;b3c672e7-f217-4943-a9e4-443b5b9da3da&quot;&gt;&lt;span&gt;/구분선, /divider&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;3e536d95-35f2-42ba-acdb-3992f27dea24&quot;&gt;&lt;span&gt;회색 구분선&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;5e77d8f8-a6a0-4e82-bde8-bdfecec4eeb8&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;6b5792f6-3476-4d27-b202-29fde8cf5440&quot;&gt;&lt;span&gt;/인용, /quote&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;66d30f1f-8749-4fec-ac25-e837c96d680d&quot;&gt;&lt;span&gt;인용 블록 (큰 글씨)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;db9a7797-a47c-4cc9-bf82-f3e41608e919&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;20a65a95-6036-4256-9ec4-054538df59da&quot;&gt;&lt;span&gt;/코드, /code&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;a6b17915-4b57-4264-82da-3df051403270&quot;&gt;&lt;span&gt;코드 블록 (언어 선택 가능)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;c4ff7b83-5272-4b6e-9f86-a973f8bd0e3f&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;f9104dfa-fa0d-4a58-8f0e-711f8edaa439&quot;&gt;&lt;span&gt;/테이블, /table&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;c8f2fc78-864f-45f9-a8e8-d52e1959fa2e&quot;&gt;&lt;span&gt;인라인 테이블&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;06940882-c291-4c61-920e-b7564fdd59bd&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;aca41dae-774b-47fa-87da-3d53e8498016&quot;&gt;&lt;span&gt;/목차, /toc&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;122b865a-abcf-49e6-b526-ee92cbfa0b00&quot;&gt;&lt;span&gt;목차 블록 자동 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;69c650a5-a5c3-43eb-9947-fdd46ad7a364&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;19ecf390-79a3-4a4e-afef-3b0f86e2a4c4&quot;&gt;&lt;span&gt;/이미지, /image&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;bc4b41b0-cc67-4da0-afd0-5d120c16079b&quot;&gt;&lt;span&gt;이미지 업로드 / Unsplash 연동&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;b64e4a47-2e34-4b8d-ad8a-6b28924e74a7&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;2561c63d-6390-4da0-8bd1-b10db3dcc9da&quot;&gt;&lt;span&gt;/동영상, /video&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;7a4d6b25-ccf4-439d-ad83-fc967ceaa859&quot;&gt;&lt;span&gt;YouTube, Vimeo 임베드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;fa3ad26d-f8d6-4dca-bd37-1f4f3e781802&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;f1cd2333-45bb-4fa4-b544-9f1e7a92a179&quot;&gt;&lt;span&gt;/북마크, /bookmark&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;89788f02-f1d5-4c01-8532-6380dadfd280&quot;&gt;&lt;span&gt;URL을 미리보기 카드로 저장&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;8eb2e60b-1b52-45cd-8c62-a9f8aa754f37&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;e8e5f138-7414-4509-b111-f94fbd0322b0&quot;&gt;&lt;span&gt;/임베드, /embed&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;3fda7509-828f-4b47-84b0-e1093228fa7b&quot;&gt;&lt;span&gt;500가지 이상 외부 서비스 임베드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;f2ae2fab-e0f5-45bc-99cc-38f711ecd4d4&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;e87b440b-0e53-4184-ba29-71c509a7257e&quot;&gt;&lt;span&gt;/수학 블록, /math&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;a8624262-cda0-44b3-b1da-a347167a64de&quot;&gt;&lt;span&gt;TeX 수식 블록&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;159606a2-56e1-4802-9a6f-88dddbd756d2&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;6292c012-4668-4bf2-b06a-6096f2024bba&quot;&gt;&lt;span&gt;/버튼, /button&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;0caf466a-8b2e-4074-84a2-1650a21affe4&quot;&gt;&lt;span&gt;템플릿 버튼 (블록 조합 반복 생성)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;d9cfdfe6-5906-4329-ac94-a66d6bae068c&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;7be26c14-aee1-40be-a5c4-d985d5f45053&quot;&gt;&lt;span&gt;/이동 경로, /breadcrumb&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;706cc74c-efe5-4e92-9009-855bc48e1738&quot;&gt;&lt;span&gt;현재 페이지 위치 경로 표시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;93814a6d-fe69-43de-9cda-a4afd87d86df&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;4eaa98ba-abfb-4a27-918d-c816cc39fe2c&quot;&gt;&lt;span&gt;/날짜, /date&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;13bde78d-d5b3-4b81-b54e-a6bd409c61b1&quot;&gt;&lt;span&gt;날짜 기록 및 리마인더 설정&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;f7c4e2e9-4287-401b-9a24-01121d7723b3&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;8d5df98e-c4e2-4b77-947f-15936ac84c52&quot;&gt;&lt;span&gt;/이모지, /emoji&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;bac45d8a-4421-4f03-97fe-57d3dc5e7ade&quot;&gt;&lt;span&gt;이모지 선택창 열기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;c240af95-1272-4077-abfc-daec901063b1&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;2159252a-1eb8-4877-a691-6bbda571f15f&quot;&gt;&lt;span&gt;/PDF&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;58a79b2a-019c-4a2e-9843-4e1494099aca&quot;&gt;&lt;span&gt;PDF URL을 인라인으로 표시&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;e3fe6106-7812-4ebe-83f3-adf276f2d7b6&quot;&gt;
&lt;td style=&quot;width: 24.6512%;&quot; data-id=&quot;e01b158e-b1d1-4d8b-803a-de41e73c5883&quot;&gt;&lt;span&gt;/파일, /file&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.1643%;&quot; data-id=&quot;efbfbeb6-7b09-43d3-b3f0-23c73d857d46&quot;&gt;&lt;span&gt;파일 업로드 / 임베드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;20df742e-3fb7-4977-af7e-f3dfc9a9edf1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Esc 키&lt;/b&gt;를 누르면 슬래시 명령어 메뉴를 닫고 /를 일반 텍스트로 입력할 수 있습니다.&lt;/p&gt;
&lt;h2 id=&quot;3607de99-df67-4dae-b3dd-3556e966d9a4&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;3607de99-df67-4dae-b3dd-3556e966d9a4&quot; data-id=&quot;3607de99-df67-4dae-b3dd-3556e966d9a4&quot; data-ke-size=&quot;size26&quot;&gt; ️ 데이터베이스 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;6eeeea3a-f7bc-4556-8eab-e354f3aabcbd&quot; data-ke-size=&quot;size16&quot;&gt;노션의 핵심 기능인 데이터베이스에서도 단축키를 활용하면 훨씬 빠르게 작업할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;f54d1db8-37e0-42f4-b6a5-f39eb9243fc6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;ab45e612-597a-4a40-8924-107158be27b9&quot;&gt;&lt;b&gt;Enter 또는 Tab&lt;/b&gt;: 셀 편집 모드 진입&lt;/li&gt;
&lt;li data-id=&quot;d46644aa-b62d-423f-8f63-216da5f61ab4&quot;&gt;&lt;b&gt;Shift + Enter&lt;/b&gt;: 새 행 추가&lt;/li&gt;
&lt;li data-id=&quot;e5808a55-c14c-4591-8f6b-b77d8011dc45&quot;&gt;&lt;b&gt;Ctrl/Cmd + 클릭&lt;/b&gt;: 다중 행/카드 선택&lt;/li&gt;
&lt;li data-id=&quot;060612e1-de4a-4b75-86a3-fdd080c7d4a3&quot;&gt;&lt;b&gt;Ctrl/Cmd + /&lt;/b&gt;: 다중 선택된 행을 한 번에 편집&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2574ad25-4428-4ba4-ac61-ccd2b2b8d973&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;2574ad25-4428-4ba4-ac61-ccd2b2b8d973&quot; data-id=&quot;2574ad25-4428-4ba4-ac61-ccd2b2b8d973&quot; data-ke-size=&quot;size26&quot;&gt;  생산성을 2배로 높이는 꿀팁 5가지&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-id=&quot;261564e0-0a20-4da7-acec-a368c7e5e2bb&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-id=&quot;bac71cac-5ee1-470b-ba51-85a1321e2ce2&quot;&gt;&lt;b&gt;블록 유형 즉시 변환&lt;/b&gt;: 이미 작성한 텍스트를 제목이나 체크박스로 바꾸고 싶다면, 블록을 선택하고 &lt;b&gt;Ctrl/Cmd + /&lt;/b&gt;를 누른 뒤 원하는 유형을 입력하면 됩니다. 다시 쓸 필요가 없습니다.&lt;/li&gt;
&lt;li data-id=&quot;4b889c64-a424-4434-91e1-0d5840968dbd&quot;&gt;&lt;b&gt;서식 없이 붙여넣기&lt;/b&gt;: 외부에서 복사한 텍스트에 불필요한 서식이 묻어 오면 &lt;b&gt;Ctrl/Cmd + Shift + V&lt;/b&gt;로 순수 텍스트만 붙여넣을 수 있습니다.&lt;/li&gt;
&lt;li data-id=&quot;c7e23685-588b-4e86-859a-76511913d525&quot;&gt;&lt;b&gt;이모지 빠르게 삽입&lt;/b&gt;: 텍스트 중간에 &lt;b&gt;: + 이모지 이름&lt;/b&gt; (예: :사과:)를 입력하면 이모지가 바로 삽입됩니다. Mac에서는 &lt;b&gt;Ctrl + Cmd + Space&lt;/b&gt;로 이모지 피커를 열 수 있습니다.&lt;/li&gt;
&lt;li data-id=&quot;e81b8bb2-4342-4fb1-8bdf-194c06b20552&quot;&gt;&lt;b&gt;글자색/배경색 변경&lt;/b&gt;: 슬래시 명령어 뒤에 색 이름을 입력하면 됩니다 (예: /파란색, /노란색 배경). 기본값으로 돌리려면 /기본색을 입력하세요.&lt;/li&gt;
&lt;li data-id=&quot;2c212054-311a-440e-a035-9e3e0769e649&quot;&gt;&lt;b&gt;Option/Alt 드래그로 블록 복제&lt;/b&gt;: 블록을 드래그할 때 &lt;b&gt;Option(Mac) / Alt(Windows)&lt;/b&gt; 키를 함께 누르면 이동이 아닌 복제가 됩니다. 반복 구조를 빠르게 만들 때 유용합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;174b9509-14f1-4b43-909c-3135d4a29bf2&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;174b9509-14f1-4b43-909c-3135d4a29bf2&quot; data-id=&quot;174b9509-14f1-4b43-909c-3135d4a29bf2&quot; data-ke-size=&quot;size26&quot;&gt;  한눈에 보는 마크다운 서식 치트시트&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 73.7209%;&quot; border=&quot;1&quot; data-id=&quot;bdd3e97d-55b4-4aff-ac3f-7bd006f623c2&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 19.0698%;&quot;&gt;&lt;b&gt; 목적&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 27.907%;&quot;&gt;&lt;b&gt;마크다운 문법&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 26.6279%;&quot;&gt;&lt;b&gt; 키보드 단축키 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;b966281b-1f35-4acf-976c-d1252917d13e&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;630da81d-7c6f-4ddc-96fd-14402d7d6e8b&quot;&gt;&lt;span&gt;굵게&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;eb5c6d72-0b47-4b6a-8350-345769946589&quot;&gt;&lt;span&gt;&lt;b&gt;텍스트&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;44fac6ee-bcc5-48f8-beb1-5475e8434668&quot;&gt;&lt;span&gt;Ctrl/Cmd + B&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;e992afd3-5203-4217-8725-30cbf9d4ca3a&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;5d3f9b59-a840-44b9-8f49-16b4eeb04d65&quot;&gt;&lt;span&gt;기울임&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;0bb5d554-1492-4bc5-b03b-3f8b80f136ce&quot;&gt;&lt;span&gt;*텍스트* 또는 _텍스트_&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;69558438-ff87-4b0b-9eb0-5387f890c00d&quot;&gt;&lt;span&gt;Ctrl/Cmd + I&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;f3f51e4b-a600-41b3-ae7b-8589adccc6f3&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;f124c1b5-ebe6-4157-8112-154ea386814c&quot;&gt;&lt;span&gt;굵은 기울임&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;ba2ff36c-da93-4a3e-8f69-2a8d8aef4b01&quot;&gt;&lt;span&gt;&lt;b&gt;*텍스트&lt;/b&gt;*&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;909a6a28-6e31-4107-94f1-c7c1a084c380&quot;&gt;&lt;span&gt;Ctrl/Cmd + B &amp;amp; I&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;61d13920-1886-4827-9393-4e712e8f83a1&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;da638989-d469-4574-a2c7-ce26196fb2d2&quot;&gt;&lt;span&gt;취소선&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;3c1a0724-79b0-4ac8-85b4-242f9d6c1a5a&quot;&gt;&lt;span&gt;~텍스트~&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;69ad8c3c-1e2e-4cc7-822f-88a69dda2ab0&quot;&gt;&lt;span&gt;Ctrl/Cmd + Shift + S&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;14f6b312-f73a-474d-94c3-25ea2b81446e&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;c227971f-3354-4194-8f7a-125811d52043&quot;&gt;&lt;span&gt;인라인 코드&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;a9452ecc-c691-45d4-a932-40b29f1b770c&quot;&gt;&lt;span&gt;`텍스트`&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;2afd8df8-dd1d-4ec8-a0e8-a4e503400fed&quot;&gt;&lt;span&gt;Ctrl/Cmd + E&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;07e0b72d-7c89-4058-bbf4-bb0e828af598&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;41f50a0e-6f34-41c1-80dd-9c423b35915d&quot;&gt;&lt;span&gt;제목 1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;d75e29af-a2ff-4797-89d0-4a683d996145&quot;&gt;&lt;span&gt;# + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;ebc488fc-bf37-49db-8d77-5ac869387010&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2609d6a4-9293-4b6a-b318-8f7fde22a49b&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;357b1ba3-a2af-4efd-943b-07d29e06149f&quot;&gt;&lt;span&gt;제목 2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;c2f52806-def4-4007-98a7-cc6f80504643&quot;&gt;&lt;span&gt;## + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;8a72cad7-5e7f-40f4-8151-609d897eb07a&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 2&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;1bc4e988-4e83-4375-b317-0559a6925c94&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;982ed755-763e-402f-9db8-d7fa2b93c5c1&quot;&gt;&lt;span&gt;제목 3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;b06cbaef-7aff-4bd2-a364-0ff636f7715c&quot;&gt;&lt;span&gt;### + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;23cff31b-69da-4b07-b952-f82bb133fb85&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;9cc41779-3f0e-4d94-991d-7e07cbcb5c20&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;9e0430fa-6e07-4687-aebc-24ee7a60ea58&quot;&gt;&lt;span&gt;할 일 목록&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;b467cabf-4c37-4f4b-9564-9bbe53bab15e&quot;&gt;&lt;span&gt;[] + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;2c65f8b3-6002-47a3-a6c5-4610fc6d71f1&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 4&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;4436cfb3-46d9-40d6-9687-5e428a0f5aca&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;6dc5ec94-38a4-495c-97ea-3e3de1aee61f&quot;&gt;&lt;span&gt;글머리 기호&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;d7adba49-607e-48a7-bc61-f5efdb0dcf8f&quot;&gt;&lt;span&gt;- 또는 * + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;03474408-79e2-4a7a-9011-653f3a008167&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;2281c442-1d18-44c2-8373-f87ead27307b&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;924d4a68-de37-4dde-8c01-b03d62007d5f&quot;&gt;&lt;span&gt;번호 목록&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;de85fcb7-bdac-4ea4-8bf8-dccfa1874a6e&quot;&gt;&lt;span&gt;1. + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;52bafe29-1ec5-4557-b29e-62c974ade7ee&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 6&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;968d60ab-f399-48ab-a610-ccbcf9716368&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;1089ed32-c1a9-4471-aafd-ea0590eff403&quot;&gt;&lt;span&gt;토글&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;a27e80f3-6af5-4fc2-ae2f-22832cd4a8c6&quot;&gt;&lt;span&gt;&amp;gt; + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;39f862fe-1aa9-48bc-8417-6e87e0d8bc15&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 7&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;18df3385-2611-4741-a8ff-7267f5241ba4&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;1c5c954a-2f54-4839-a391-bcf5f504d339&quot;&gt;&lt;span&gt;인용 블록&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;2d64639c-4584-4b22-9c65-1b6aec531563&quot;&gt;&lt;span&gt;&quot; + Space&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;d8cb0c35-265d-4b9e-9032-91a4bf127c3a&quot;&gt;&lt;span&gt;/인용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;e61e6c0f-e087-45fd-81c3-826009c830d4&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;d254c857-2c6a-49f6-9a42-4955c3503b5e&quot;&gt;&lt;span&gt;코드 블록&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;2957e8ae-0fab-47bf-81bd-1f3d4376649d&quot;&gt;&lt;span&gt;``` (백틱 3개)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;8aa4ae35-2aee-437c-9fb9-d1a50d50c397&quot;&gt;&lt;span&gt;Ctrl/Cmd + Alt + 8&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-id=&quot;a26f6074-a7d2-498b-a102-f2e98817c068&quot;&gt;
&lt;td style=&quot;width: 19.0698%;&quot; data-id=&quot;762f8d44-e8c8-42de-9bac-b7fe4c72cf62&quot;&gt;&lt;span&gt;구분선&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 27.907%;&quot; data-id=&quot;227766c9-4db6-48c8-8f06-1b98910b1de2&quot;&gt;&lt;span&gt;--- (대시 3개)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.6279%;&quot; data-id=&quot;925f5aa7-69b9-462a-b700-38e3d0b75b11&quot;&gt;&lt;span&gt;/구분선&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-toc-id=&quot;699c8905-5e7a-4580-8786-a94dfe1eaabd&quot; data-id=&quot;699c8905-5e7a-4580-8786-a94dfe1eaabd&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 id=&quot;699c8905-5e7a-4580-8786-a94dfe1eaabd&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;699c8905-5e7a-4580-8786-a94dfe1eaabd&quot; data-id=&quot;699c8905-5e7a-4580-8786-a94dfe1eaabd&quot; data-ke-size=&quot;size26&quot;&gt;  마치며: 단축키 습관화가 핵심&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;9be85876-bef9-42cc-9374-1475430908ba&quot; data-ke-size=&quot;size16&quot;&gt;처음에는 단축키를 외우는 것이 부담스러울 수 있습니다. 하지만 한 번에 다 외우려 하지 말고, 오늘은 텍스트 서식 단축키(&lt;b&gt;Ctrl + B, I, U&lt;/b&gt;), 내일은 블록 생성 마크다운(&lt;b&gt;#, -, [], &amp;gt;&lt;/b&gt;), 이렇게 하루에 3~5개씩 몸에 익히는 방법을 추천합니다. 단축키와 마크다운을 제대로 활용하는 순간, 노션은 단순한 메모 앱이 아닌 진짜 강력한 생산성 도구로 탈바꿈됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;36353eaa-953c-40ed-9fce-64de667e2bc9&quot; data-ke-size=&quot;size16&quot;&gt;이 글이 도움이 됐다면 북마크 해두고, 필요할 때마다 꺼내 보는 치트시트로 활용해 보세요!&lt;/p&gt;</description>
      <category>딸깍 지름길.zip</category>
      <category>Notion단축키</category>
      <category>노션</category>
      <category>노션꿀팁</category>
      <category>노션단축키</category>
      <category>노션마크다운</category>
      <category>노션사용법</category>
      <category>마크다운</category>
      <category>생산성툴</category>
      <category>생산성향상</category>
      <category>업무효율</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/25</guid>
      <comments>https://lazip.tistory.com/entry/%EB%85%B8%EC%85%98-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-2026-%E2%80%94-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EC%84%9C%EC%8B%9D%EB%B6%80%ED%84%B0-%EC%8A%AC%EB%9E%98%EC%8B%9C-%EB%AA%85%EB%A0%B9%EC%96%B4%EA%B9%8C%EC%A7%80-%ED%95%9C-%EB%B2%88%EC%97%90-%EB%81%9D%EB%82%B4%EA%B8%B0#entry25comment</comments>
      <pubDate>Thu, 16 Apr 2026 17:42:38 +0900</pubDate>
    </item>
    <item>
      <title>파워포인트 단축키 총정리 | 실무에서 바로 쓰는 PPT 꿀팁 모음 | 이미지 공유</title>
      <link>https://lazip.tistory.com/entry/%ED%8C%8C%EC%9B%8C%ED%8F%AC%EC%9D%B8%ED%8A%B8-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-%EB%B0%94%EB%A1%9C-%EC%93%B0%EB%8A%94-PPT-%EA%BF%80%ED%8C%81-%EB%AA%A8%EC%9D%8C</link>
      <description>&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;파워포인트 단축키 총정리! 기본 필수 단축키부터 발표 중 쓰는 슬라이드 쇼 단축키, 개체 정렬&amp;middot;서식 복사 꿀팁까지. 실무에서 바로 써먹는 PPT 단축키 모음으로 업무 속도를 2배 높여보세요.   가장 유용하게 쓰이는 파워포인트 단축키 이미지도 저장해서 활용하세요!&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-pm-slice=&quot;0 0 []&quot; data-id=&quot;5ad1a1ad-555b-49f0-9b43-32ae1efb3719&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;acf71dcb-e052-4fda-b750-187eaa359aae&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;acf71dcb-e052-4fda-b750-187eaa359aae&quot; data-id=&quot;acf71dcb-e052-4fda-b750-187eaa359aae&quot; data-ke-size=&quot;size26&quot;&gt;⚡ 기본 중의 기본, 필수 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;1171049b-97d9-4dee-a07b-edc1e7fd0cb4&quot; data-ke-size=&quot;size16&quot;&gt;파워포인트를 처음 배우든, 오래 써왔든 반드시 알아야 할 기초 단축키입니다. 이것만 외워도 작업 속도가 눈에 띄게 달라집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;b85464fa-8cc3-4ff9-84b0-da1bc2da3af1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;3cc4bf47-06a5-4b16-8871-2d1e2e8e0bf0&quot;&gt;&lt;b&gt;Ctrl + S&lt;/b&gt;: 저장 (수시로 눌러주는 습관이 중요합니다!)&lt;/li&gt;
&lt;li data-id=&quot;e02b9c94-5d80-4fd1-b2f6-c48ae5150af3&quot;&gt;&lt;b&gt;Ctrl + Z&lt;/b&gt;: 실행 취소&lt;/li&gt;
&lt;li data-id=&quot;15cedf10-0b49-418e-9b69-d872b90fb973&quot;&gt;&lt;b&gt;Ctrl + Y&lt;/b&gt;: 다시 실행&lt;/li&gt;
&lt;li data-id=&quot;92de9c38-e6d7-41e6-94a8-d663cfb4766a&quot;&gt;&lt;b&gt;Ctrl + C / V / X&lt;/b&gt;: 복사 / 붙여넣기 / 잘라내기&lt;/li&gt;
&lt;li data-id=&quot;d527db38-9ffd-4924-aea5-d80d83b16ae2&quot;&gt;&lt;b&gt;Ctrl + D&lt;/b&gt;: 개체 빠른 복제 (복사+붙여넣기를 한 번에!)&lt;/li&gt;
&lt;li data-id=&quot;ae91d36c-ff19-479d-875f-a5cecc5ef811&quot;&gt;&lt;b&gt;Ctrl + A&lt;/b&gt;: 전체 선택&lt;/li&gt;
&lt;li data-id=&quot;17ad5df1-9400-4e34-92e8-63df1b384ed9&quot;&gt;&lt;b&gt;Ctrl + Z&lt;/b&gt;: 실행 취소 (최대 20단계 이상 가능)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;e50c6f41-2a3a-42fa-9417-bedef5e28e23&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;e50c6f41-2a3a-42fa-9417-bedef5e28e23&quot; data-id=&quot;e50c6f41-2a3a-42fa-9417-bedef5e28e23&quot; data-ke-size=&quot;size26&quot;&gt;  슬라이드 쇼 관련 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;cb804f2e-c487-44ee-953d-c71b98da3792&quot; data-ke-size=&quot;size16&quot;&gt;발표 중에 당황하지 않으려면 슬라이드 쇼 단축키는 필수입니다. 청중 앞에서 마우스를 헤매는 상황을 방지해줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;0bf8a20b-0701-4d50-b240-f03734e1d166&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;4efba881-1e39-43dc-901c-40f56f976728&quot;&gt;&lt;b&gt;F5&lt;/b&gt;: 처음부터 슬라이드 쇼 시작&lt;/li&gt;
&lt;li data-id=&quot;9deca418-4579-4e5b-bf99-3919aec5a274&quot;&gt;&lt;b&gt;Shift + F5&lt;/b&gt;: 현재 슬라이드부터 슬라이드 쇼 시작&lt;/li&gt;
&lt;li data-id=&quot;3d2023c5-86d5-4ec3-8562-b407f3397b84&quot;&gt;&lt;b&gt;숫자 + Enter&lt;/b&gt;: 해당 번호 슬라이드로 바로 이동 (예: 5 + Enter &amp;rarr; 5번 슬라이드)&lt;/li&gt;
&lt;li data-id=&quot;b3138718-2919-4ca4-ad0c-753801986435&quot;&gt;&lt;b&gt;B&lt;/b&gt;: 화면을 검정으로 전환 (잠깐 화면을 가릴 때)&lt;/li&gt;
&lt;li data-id=&quot;c638e196-d1df-48c8-b7cd-f2b6a35fd62c&quot;&gt;&lt;b&gt;W&lt;/b&gt;: 화면을 흰색으로 전환&lt;/li&gt;
&lt;li data-id=&quot;45d6617c-7c28-4357-9b82-8cc67e391beb&quot;&gt;&lt;b&gt;Esc&lt;/b&gt;: 슬라이드 쇼 종료&lt;/li&gt;
&lt;li data-id=&quot;a0ddc2b5-89b0-4989-a0bd-70906f973d9a&quot;&gt;&lt;b&gt;Ctrl + P&lt;/b&gt;: 발표 중 펜 도구 활성화 (화면에 직접 필기 가능)&lt;/li&gt;
&lt;li data-id=&quot;c16550b5-d96e-45c6-ba54-599798facb38&quot;&gt;&lt;b&gt;E&lt;/b&gt;: 펜으로 그린 내용 지우기&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;f35d1b00-7ef9-4f86-a93d-918e919ad61e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;f35d1b00-7ef9-4f86-a93d-918e919ad61e&quot; data-id=&quot;f35d1b00-7ef9-4f86-a93d-918e919ad61e&quot; data-ke-size=&quot;size26&quot;&gt;  개체(도형, 텍스트박스) 정렬 꿀팁&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fa05f803-0a0d-4873-b05b-30bf6387cb08&quot; data-ke-size=&quot;size16&quot;&gt;디자인 작업에서 개체를 깔끔하게 정렬하는 것은 완성도를 높이는 핵심입니다. 마우스로 하나씩 맞추지 말고 단축키를 활용하세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;17d2c8f7-54e8-4758-875d-8b024487fb17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;f70a6167-501e-4427-8704-aa2950373256&quot;&gt;&lt;b&gt;Ctrl + G&lt;/b&gt;: 선택한 개체들 그룹화&lt;/li&gt;
&lt;li data-id=&quot;bbe4ee94-f2fe-40a3-a860-0a0dd79c6b32&quot;&gt;&lt;b&gt;Ctrl + Shift + G&lt;/b&gt;: 그룹 해제&lt;/li&gt;
&lt;li data-id=&quot;b7ab4ac1-fc51-467b-8f76-538aa7b1db33&quot;&gt;&lt;b&gt;방향키&lt;/b&gt;: 개체를 조금씩 이동&lt;/li&gt;
&lt;li data-id=&quot;efce5538-62bc-4b83-9b99-1acec6ea00c2&quot;&gt;&lt;b&gt;Ctrl + 방향키&lt;/b&gt;: 개체를 아주 미세하게 이동 (픽셀 단위)&lt;/li&gt;
&lt;li data-id=&quot;db262248-eff2-40a8-9141-6c40f909647b&quot;&gt;&lt;b&gt;Shift + 드래그&lt;/b&gt;: 수평/수직으로만 이동 (삐뚤어짐 방지)&lt;/li&gt;
&lt;li data-id=&quot;7c3ea6db-5869-4554-a88b-c987a54ac2b0&quot;&gt;&lt;b&gt;Ctrl + Shift + 드래그&lt;/b&gt;: 가로/세로 비율 유지하며 크기 조정&lt;/li&gt;
&lt;li data-id=&quot;b6e80c6a-e891-4d8d-bd38-14156362e919&quot;&gt;&lt;b&gt;Tab&lt;/b&gt;: 슬라이드 내 다음 개체로 포커스 이동&lt;/li&gt;
&lt;li data-id=&quot;dff1e5c8-94b8-41e6-8f8c-df154353fc9a&quot;&gt;&lt;b&gt;Shift + Tab&lt;/b&gt;: 슬라이드 내 이전 개체로 포커스 이동&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ffcac3ae-2852-4900-bcea-f08eb2e3a9eb&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;ffcac3ae-2852-4900-bcea-f08eb2e3a9eb&quot; data-id=&quot;ffcac3ae-2852-4900-bcea-f08eb2e3a9eb&quot; data-ke-size=&quot;size26&quot;&gt;✏️ 텍스트 편집 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;60dd8361-dcdf-4a99-85be-642e795556d8&quot; data-ke-size=&quot;size16&quot;&gt;텍스트를 빠르게 꾸미고 편집하는 단축키입니다. 서식 도구 메뉴를 클릭하는 것보다 훨씬 빠릅니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;6bbcfc5c-d7f3-4e3b-adc0-741249174135&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;f4039021-ba6c-4577-8320-d4e1139e2fe6&quot;&gt;&lt;b&gt;Ctrl + B&lt;/b&gt;: 굵게(Bold)&lt;/li&gt;
&lt;li data-id=&quot;b6fbf722-e2ae-4b83-a85c-2fa0d31664d1&quot;&gt;&lt;b&gt;Ctrl + I&lt;/b&gt;: 기울임꼴(Italic)&lt;/li&gt;
&lt;li data-id=&quot;9caf9def-4589-4109-9340-8e86aefbc6e8&quot;&gt;&lt;b&gt;Ctrl + U&lt;/b&gt;: 밑줄(Underline)&lt;/li&gt;
&lt;li data-id=&quot;4b88318a-5cab-4349-b765-60eeb69d0d00&quot;&gt;&lt;b&gt;Ctrl + E&lt;/b&gt;: 가운데 정렬&lt;/li&gt;
&lt;li data-id=&quot;b5cd6647-e766-4444-9186-1013fc0cce08&quot;&gt;&lt;b&gt;Ctrl + L&lt;/b&gt;: 왼쪽 정렬&lt;/li&gt;
&lt;li data-id=&quot;ae345d5c-d655-47a6-b085-54b89e871bb4&quot;&gt;&lt;b&gt;Ctrl + R&lt;/b&gt;: 오른쪽 정렬&lt;/li&gt;
&lt;li data-id=&quot;d8a16a01-34e6-4661-8202-89ebc7f00be4&quot;&gt;&lt;b&gt;Ctrl + ]&lt;/b&gt;: 글자 크기 1pt 키우기&lt;/li&gt;
&lt;li data-id=&quot;5dd9b28b-5e3b-43a0-b700-f0fc598e9f24&quot;&gt;&lt;b&gt;Ctrl + [&lt;/b&gt;: 글자 크기 1pt 줄이기&lt;/li&gt;
&lt;li data-id=&quot;30a7392e-64f1-4df6-bb3d-882c985b46cc&quot;&gt;&lt;b&gt;Ctrl + Shift + &amp;gt;&lt;/b&gt;: 글자 크기 크게&lt;/li&gt;
&lt;li data-id=&quot;2e82949b-a139-4620-8875-606c0e4fec6d&quot;&gt;&lt;b&gt;Ctrl + Shift + &amp;lt;&lt;/b&gt;: 글자 크기 작게&lt;/li&gt;
&lt;li data-id=&quot;b83160e4-2456-451e-b940-775251a8c925&quot;&gt;&lt;b&gt;F2&lt;/b&gt;: 선택된 텍스트박스 편집 모드로 진입&lt;/li&gt;
&lt;li data-id=&quot;150156bf-2427-423d-b3ba-b80fe7e477a7&quot;&gt;&lt;b&gt;Esc&lt;/b&gt;: 텍스트 편집 모드 &amp;rarr; 개체 선택 모드로 전환&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;4335e408-0d23-44a2-a247-8f6421cb481f&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;4335e408-0d23-44a2-a247-8f6421cb481f&quot; data-id=&quot;4335e408-0d23-44a2-a247-8f6421cb481f&quot; data-ke-size=&quot;size26&quot;&gt; ️ 슬라이드 관리 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;38b1b2a5-b69a-477c-9159-9b25cc8d3917&quot; data-ke-size=&quot;size16&quot;&gt;슬라이드가 많아질수록 전체 흐름을 빠르게 관리하는 단축키가 빛을 발합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;c26195bb-46f7-4f68-a56a-9b2b749cf756&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;3ba025e7-c338-42a8-a71c-609037b521c9&quot;&gt;&lt;b&gt;Ctrl + M&lt;/b&gt;: 새 슬라이드 추가&lt;/li&gt;
&lt;li data-id=&quot;f2cc36bd-392c-4c1c-a307-4373af28119f&quot;&gt;&lt;b&gt;Ctrl + Enter&lt;/b&gt;: 다음 텍스트 상자로 이동 (제목 입력 후 내용으로 바로 이동)&lt;/li&gt;
&lt;li data-id=&quot;fcb6f5fe-7a0a-4940-959d-46160bf3469a&quot;&gt;&lt;b&gt;Ctrl + Shift + D&lt;/b&gt;: 슬라이드 복제&lt;/li&gt;
&lt;li data-id=&quot;e236ca67-1a55-460e-82de-1d4183480351&quot;&gt;&lt;b&gt;Delete&lt;/b&gt;: 선택한 슬라이드 삭제&lt;/li&gt;
&lt;li data-id=&quot;6af45e40-bd96-459b-b558-608bfb029341&quot;&gt;&lt;b&gt;Ctrl + 위/아래 방향키&lt;/b&gt;: 슬라이드 순서 이동&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;4fc6412e-fcca-4b57-8d61-c50a0c504880&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;4fc6412e-fcca-4b57-8d61-c50a0c504880&quot; data-id=&quot;4fc6412e-fcca-4b57-8d61-c50a0c504880&quot; data-ke-size=&quot;size26&quot;&gt;  보기 및 화면 관련 단축키&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;52f83eaf-acc7-457f-ade1-dacac9337e56&quot; data-ke-size=&quot;size16&quot;&gt;작업 환경을 빠르게 전환하면 편집 흐름이 끊기지 않아 집중력을 유지할 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;617509c1-0dde-4679-8588-7e596d00278a&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;e4b40da2-5c01-4a92-ba80-32a30c2ed4a6&quot;&gt;&lt;b&gt;Ctrl + +&lt;/b&gt;: 화면 확대&lt;/li&gt;
&lt;li data-id=&quot;6169ce63-05bc-46fd-9234-10c00a9b7314&quot;&gt;&lt;b&gt;Ctrl + -&lt;/b&gt;: 화면 축소&lt;/li&gt;
&lt;li data-id=&quot;7e1fbb27-438d-448c-96b7-09309ddf60e7&quot;&gt;&lt;b&gt;Ctrl + Shift + H&lt;/b&gt;: 슬라이드 마스터 보기&lt;/li&gt;
&lt;li data-id=&quot;eb34f8bf-63ac-4360-8240-616a2360e14d&quot;&gt;&lt;b&gt;Alt + F9&lt;/b&gt;: 안내선(가이드라인) 표시/숨기기&lt;/li&gt;
&lt;li data-id=&quot;284d74ea-f92e-4d1b-b4b4-4b8e111b76cb&quot;&gt;&lt;b&gt;Shift + F9&lt;/b&gt;: 눈금자 표시/숨기기&lt;/li&gt;
&lt;li data-id=&quot;aad7bb68-5ff2-4094-bcde-2ce6216c51d0&quot;&gt;&lt;b&gt;Alt + W + Q&lt;/b&gt;: 확대/축소 설정 창 열기&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;78858105-715a-4dff-999b-f48cdb0c49f9&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;78858105-715a-4dff-999b-f48cdb0c49f9&quot; data-id=&quot;78858105-715a-4dff-999b-f48cdb0c49f9&quot; data-ke-size=&quot;size26&quot;&gt;  서식 복사 꿀팁: F4 &amp;amp; 서식 복사&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;fc2c6072-b93b-4355-808a-d30f93d7e11c&quot; data-ke-size=&quot;size16&quot;&gt;서식을 여러 개체에 동일하게 적용하고 싶을 때 가장 많이 쓰는 꿀팁입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;70a3b382-d7c8-45f1-89fa-f0a9e8d18c3d&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;848d9f12-7ff0-4fd1-8a2f-248a76a2c59d&quot;&gt;&lt;b&gt;F4&lt;/b&gt;: 바로 직전에 수행한 작업 반복 (색상 변경, 크기 조정 등을 여러 개체에 반복 적용할 때 최고!)&lt;/li&gt;
&lt;li data-id=&quot;aeed782a-3895-4e02-8bc4-eda5728a3cc5&quot;&gt;&lt;b&gt;Ctrl + Shift + C&lt;/b&gt;: 서식 복사&lt;/li&gt;
&lt;li data-id=&quot;dae10067-36d5-4afe-801c-d4f1881c6262&quot;&gt;&lt;b&gt;Ctrl + Shift + V&lt;/b&gt;: 서식 붙여넣기&lt;/li&gt;
&lt;li data-id=&quot;7356b525-539b-470d-be3f-b63f744aa4de&quot;&gt;&lt;b&gt;Ctrl + Alt + V&lt;/b&gt;: 선택하여 붙여넣기 (이미지, 텍스트 등 형식 선택 가능)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;d35b668d-fc7e-4be0-9381-e4f3d5a09184&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;d35b668d-fc7e-4be0-9381-e4f3d5a09184&quot; data-id=&quot;d35b668d-fc7e-4be0-9381-e4f3d5a09184&quot; data-ke-size=&quot;size26&quot;&gt;  실무에서 특히 유용한 꿀팁 3가지&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;8dda2e7c-fb02-40a2-807c-9f052912b83b&quot; data-ke-size=&quot;size16&quot;&gt;단축키와 함께 알아두면 업무 효율이 훨씬 올라가는 실전 팁들입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-id=&quot;7acef955-e078-4103-9325-59c888e7ccf7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-id=&quot;9e291330-e985-43cf-8aad-5285230a14d4&quot;&gt;&lt;b&gt;Shift 키 활용&lt;/b&gt;: 도형을 그릴 때 Shift를 누르면 정원/정사각형이 만들어집니다. 직선을 그을 때도 Shift를 누르면 수평/수직/45도 직선이 만들어집니다.&lt;/li&gt;
&lt;li data-id=&quot;fe513512-a9dc-41ce-89ce-58b012d842d2&quot;&gt;&lt;b&gt;Ctrl + 드래그로 빠른 복제&lt;/b&gt;: 개체를 선택한 뒤 Ctrl을 누른 채 드래그하면 그 자리에서 바로 복제됩니다. Ctrl + D보다 위치 지정이 자유롭습니다.&lt;/li&gt;
&lt;li data-id=&quot;55640ffb-52fe-40ad-bcde-8167b386e11d&quot;&gt;&lt;b&gt;Alt 키로 미세 조정&lt;/b&gt;: 개체가 눈금에 자꾸 달라붙을 때, Alt 키를 누른 채 이동하면 눈금 스냅 없이 자유롭게 배치할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;4060fd52-c19a-42b0-b3d5-9e9c70f54d8e&quot; style=&quot;text-align: left;&quot; data-toc-id=&quot;4060fd52-c19a-42b0-b3d5-9e9c70f54d8e&quot; data-id=&quot;4060fd52-c19a-42b0-b3d5-9e9c70f54d8e&quot; data-ke-size=&quot;size26&quot;&gt;  전체 단축키 요약표&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 64.1849%; height: 231px;&quot; border=&quot;1&quot; data-id=&quot;4f38f28b-28a3-43f4-b78d-0c343444aea1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 13.9535%; height: 21px;&quot;&gt;&lt;b&gt;&lt;span&gt; 카테고리&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 26.9167%; height: 21px;&quot;&gt;&lt;b&gt;&lt;span&gt;단축키&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 24.5936%; height: 21px;&quot;&gt;&lt;b&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;ec12e4a1-db5e-4c88-99b3-ee4e4147a1c9&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 42px; text-align: center;&quot; rowspan=&quot;2&quot; data-id=&quot;fb7412d5-4922-4e0a-9ad8-f373e02ff89f&quot;&gt;&lt;b&gt;&lt;span&gt;기본&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;4af9f634-2412-4950-85b9-e7feb5c0d18c&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + D&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;6aaad6a5-7179-4a12-bde0-b56fa656a381&quot;&gt;&lt;span&gt;개체 복제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;3e157c88-a99b-4747-ad08-7e43292bcad8&quot;&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;8f33a830-da17-4ce3-92c2-a1c6a295bbdf&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + Z / Y&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;24d311e9-c9ef-4a86-9162-2fd521bf73c6&quot;&gt;&lt;span&gt;실행 취소 / 다시 실행&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;1216566c-c323-4b38-82c8-73d4acac02d2&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 42px; text-align: center;&quot; rowspan=&quot;2&quot; data-id=&quot;663a5e07-58f6-41f7-a70f-a9cccd1b7e36&quot;&gt;&lt;b&gt;&lt;span&gt;슬라이드 쇼&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;b4cda52f-4eb9-456e-8be7-4f2f77c2d5c4&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;F5 / Shift + F5&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;03f51066-6bb2-494f-b89d-1fbf2118c5fb&quot;&gt;&lt;span&gt;처음부터 / 현재부터 시작&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;96d810e1-1a07-4953-a6ae-df0614458028&quot;&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;25334a99-ea23-4454-81dc-050b07944e8a&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;B / W&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;305191bf-ba99-42cd-bcde-e78d06effff4&quot;&gt;&lt;span&gt;화면 검정 / 흰색 전환&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;a188a40e-047b-462d-9353-1792c472fd3b&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 21px; text-align: center;&quot; rowspan=&quot;2&quot; data-id=&quot;90651946-c505-4466-a10a-49c3c4899b28&quot;&gt;&lt;b&gt;&lt;span&gt;텍스트&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;f77bdb09-c97f-4754-b9fb-58bca02e5636&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + ] / [&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;41feeee6-87e5-4c9a-960e-28dbe180851a&quot;&gt;&lt;span&gt;글자 크기 1pt 조정&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;daf6de11-39ee-4bff-8416-58664b11dbf0&quot;&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;3a59a281-1772-4ead-aa6b-2b922bdb7a19&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;F4&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;cef19b4b-6324-4806-8bf7-21dbc94ecdff&quot;&gt;&lt;span&gt;마지막 작업 반복&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;ee08cfa9-ecfc-4316-8325-7b43aaf4dbf4&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 21px; text-align: center;&quot; rowspan=&quot;2&quot; data-id=&quot;7a274e4d-d3aa-4af3-8218-2d4761029e11&quot;&gt;&lt;b&gt;&lt;span&gt;개체&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;833638a5-675a-4878-a062-ff75ab16138d&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + G / Ctrl + Shift + G&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;94915ae6-cee3-4a3f-beaa-956c7bba17bc&quot;&gt;&lt;span&gt;그룹화 / 그룹 해제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;13ec4dfe-f580-44d5-b62f-a6d14dfc68d7&quot;&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;91b099de-df0e-424f-85f3-d2d3bdd18796&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + 방향키&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;7c0c09e5-a553-42ac-805f-e28fe8b1cd79&quot;&gt;&lt;span&gt;미세 이동&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;b41a2282-1e6a-4886-a14d-af1a48d6df48&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 21px; text-align: center;&quot; data-id=&quot;760fc516-fc99-408d-8cf0-5209b8b269a1&quot;&gt;&lt;b&gt;&lt;span&gt;슬라이드&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;3a523ef3-0c3e-4873-94ad-95adcdfdf587&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + M&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;c1eeb0a1-a0f3-48d8-aada-9f2748989b64&quot;&gt;&lt;span&gt;새 슬라이드 추가&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-id=&quot;dae83d5e-9127-44fc-9b62-36dc2cdd7526&quot;&gt;
&lt;td style=&quot;width: 13.9535%; height: 21px; text-align: center;&quot; data-id=&quot;c7ffc9c6-f930-461b-b33a-c38098210886&quot;&gt;&lt;b&gt;&lt;span&gt;서식&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9167%; height: 21px;&quot; data-id=&quot;7341b437-4ea2-4894-831e-ab706d01b468&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Ctrl + Shift + C/V&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5936%; height: 21px;&quot; data-id=&quot;4f0ba73f-4642-4964-a597-5890494828c6&quot;&gt;&lt;span&gt;서식 복사 / 붙여넣기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-id=&quot;f743c02f-ec91-43a5-bf27-782d94bc8e6a&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-id=&quot;f743c02f-ec91-43a5-bf27-782d94bc8e6a&quot; data-ke-size=&quot;size26&quot;&gt;⌨️ 가장 많이 사용하는 PPT 단축키 이미지 공유&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 유용하게 쓰이는 파워포인트 단축키 이미지도 함께 공유합니다. 20개 또는 30개 원하는 이미지 다운받아 사용하세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ppt_shortcut.jpg&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9A3jC/dJMcaakEUkl/k7o4j1EAY615wFcPFjNpUk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9A3jC/dJMcaakEUkl/k7o4j1EAY615wFcPFjNpUk/img.jpg&quot; data-alt=&quot;가장 많이 사용하는 PPT 단축키 20선 이미지 공유 : 저장해서 사용하세요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9A3jC/dJMcaakEUkl/k7o4j1EAY615wFcPFjNpUk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9A3jC%2FdJMcaakEUkl%2Fk7o4j1EAY615wFcPFjNpUk%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;1408&quot; height=&quot;768&quot; data-filename=&quot;ppt_shortcut.jpg&quot; data-origin-width=&quot;1408&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;가장 많이 사용하는 PPT 단축키 20선 이미지 공유 : 저장해서 사용하세요&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cKnz1l/dJMcaadUnEZ/pOBeO5oPhFdEerujJHSWLk/ppt_shortcut.jpg?attach=1&amp;amp;knm=img.jpg&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;ppt_shortcut.jpg&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.76MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;PPT_파워포인트_필수_단축키_30선.png&quot; data-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTcKYz/dJMcaiptfkH/KXtEQfs0zE2PARX7zrMQE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTcKYz/dJMcaiptfkH/KXtEQfs0zE2PARX7zrMQE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTcKYz/dJMcaiptfkH/KXtEQfs0zE2PARX7zrMQE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTcKYz%2FdJMcaiptfkH%2FKXtEQfs0zE2PARX7zrMQE1%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;2816&quot; height=&quot;1536&quot; data-filename=&quot;PPT_파워포인트_필수_단축키_30선.png&quot; data-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cHgwUY/dJMcaaLJZmS/8zu0XUF5prmg4YsMsHAaj1/PPT_%ED%8C%8C%EC%9B%8C%ED%8F%AC%EC%9D%B8%ED%8A%B8_%ED%95%84%EC%88%98_%EB%8B%A8%EC%B6%95%ED%82%A4_30%EC%84%A0.png?attach=1&amp;amp;knm=img.png&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;PPT_파워포인트_필수_단축키_30선.png&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;3.99MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>딸깍 지름길.zip</category>
      <category>PPT 개체 정렬 단축키</category>
      <category>PPT 단축키</category>
      <category>PPT 실무 단축키 모음</category>
      <category>ppt꿀팁</category>
      <category>PPT단축키공유</category>
      <category>무료 PPT 단축키</category>
      <category>파워포인트</category>
      <category>파워포인트 발표 화면 단축키</category>
      <category>파워포인트 서식 복사 단축키</category>
      <category>파워포인트 업무 효율 단축키</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/24</guid>
      <comments>https://lazip.tistory.com/entry/%ED%8C%8C%EC%9B%8C%ED%8F%AC%EC%9D%B8%ED%8A%B8-%EB%8B%A8%EC%B6%95%ED%82%A4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-%EB%B0%94%EB%A1%9C-%EC%93%B0%EB%8A%94-PPT-%EA%BF%80%ED%8C%81-%EB%AA%A8%EC%9D%8C#entry24comment</comments>
      <pubDate>Thu, 16 Apr 2026 16:47:37 +0900</pubDate>
    </item>
    <item>
      <title> ️ AWS EC2 리눅스 필수 명령어 총정리 (초보자부터 실무까지)</title>
      <link>https://lazip.tistory.com/entry/%F0%9F%96%A5%EF%B8%8F-AWS-EC2-%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%95%84%EC%88%98-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%B6%80%ED%84%B0-%EC%8B%A4%EB%AC%B4%EA%B9%8C%EC%A7%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AWS EC2 인스턴스를 운영하면서 반드시 알아야 할 리눅스 명령어를 카테고리별로 정리했습니다. 서버 접속부터 프로세스 모니터링, 로그 관리까지 실무에서 바로 사용할 수 있는 명령어 모음입니다.&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;table style=&quot;width: 412px;&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 157px;&quot;&gt;명령어/단축키&lt;/th&gt;
&lt;th style=&quot;width: 255px;&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 157px;&quot;&gt;&lt;code&gt;cd ~/&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 255px;&quot;&gt;사용자 홈 폴더로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 157px;&quot;&gt;&lt;code&gt;Ctrl + X&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 255px;&quot;&gt;nano 편집기 종료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 157px;&quot;&gt;&lt;code&gt;select-editor&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 255px;&quot;&gt;기본 에디터 선택 설정&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;1. 서버 접속 / 기본 탐색&lt;/h2&gt;
&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# EC2 인스턴스 SSH 접속 (키파일, 사용자, IP, 포트 지정)
ssh -i &quot;my-key.pem&quot; ec2-user@13.124.1.2 -p 22

# 현재 세션을 루트로 전환 (환경변수 포함)
sudo su -

# 숨김파일 포함 상세 목록, 색상 표시
ls -la --color=auto /var/log/

# 현재 작업 디렉토리 물리적 경로 출력
pwd -P

# 물리적 경로로 디렉토리 이동 (심볼릭링크 해석)
cd -P /opt/tomcat10/webapps/

# 최근 20개 명령어 중 yum 관련 검색
history 20 | grep yum

# 화면 지우고 현재 사용자/UID/GID 확인
clear &amp;amp;&amp;amp; whoami &amp;amp;&amp;amp; id

# 현재 셸 종료 (SSH 연결 끊기)
exit&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. 시스템 업데이트 / 패키지 관리&lt;/h2&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# Amazon Linux 전체 패키지 업데이트
sudo yum update -y &amp;amp;&amp;amp; sudo yum upgrade -y

# Ubuntu 패키지 업데이트 (설정파일 기존 유지)
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y -o Dpkg::Options::=&quot;--force-confold&quot;

# 여러 패키지 한번에 설치
sudo yum install -y java-11-openjdk-devel tomcat httpd wget curl

# 패키지 삭제 + 의존성 자동 정리
sudo yum remove -y httpd &amp;amp;&amp;amp; sudo yum autoremove -y

# 설치된 Tomcat 패키지 변경로그 확인
rpm -qa | grep -i tomcat | xargs rpm -q --changelog | head -20

# 설치된 Java 관련 패키지 개수 확인
sudo yum list installed | grep -i java | wc -l

# Tomcat 10 관련 사용가능 패키지 검색
sudo yum search tomcat | grep 10

# 활성화된 Yum/DNF 저장소 목록 (Amazon Linux 2023)
dnf repolist --enabled | grep amazon&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. 서비스 관리&lt;/h2&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# 모든 서비스 상태 중 웹서버만 필터링
service --status-all | grep -E &quot;(tomcat|httpd)&quot;

# Tomcat 10 서비스 중지 (SysV init 호환)
sudo service tomcat10 stop

# Tomcat 10 서비스 시작
sudo service tomcat10 start

# Tomcat 10 서비스 재시작
sudo service tomcat10 restart

# Tomcat 관련 모든 systemd 유닛 파일 목록
sudo systemctl list-unit-files | grep -i tomcat

# Tomcat 10 상세 상태 (전체로그, 페이지 안함)
sudo systemctl status tomcat10 -l --no-pager

# Tomcat 10 즉시 재시작
sudo systemctl restart tomcat10 --now

# Tomcat 10 부팅시 자동시작 + 즉시 시작
sudo systemctl enable tomcat10 --now

# systemd 설정 다시로드 후 재시작
sudo systemctl daemon-reload &amp;amp;&amp;amp; sudo systemctl restart tomcat10

# Tomcat 10 실시간 로그 확인
journalctl -u tomcat10 -f --no-pager&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 네트워크 / 포트 진단&lt;/h2&gt;
&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;# 8080 포트 리스닝 프로세스 확인 (TCP만)
netstat -nlpt | grep :8080

# 모든 리스닝 포트 상세 정보 (netstat 대체)
sudo ss -tuln | grep LISTEN

# 80/443/8080 포트별 프로세스/PID 확인
sudo ss -tulnp | grep -E &quot;:(80|443|8080)&quot;

# Tomcat Manager 상태 API 테스트 (SSL 무시)
curl -I -k https://localhost:8443/manager/status/all

# 웹서버 응답시간/상태 테스트
wget --spider --timeout=10 http://localhost:8080/ 2&amp;gt;&amp;amp;1 | grep HTTP

# EC2 메타데이터 서비스 연결 테스트
ping -c 4 169.254.169.254

# 방화벽 규칙 확인 (숫자IP, 통계 포함)
sudo iptables -L -n -v | grep -E &quot;ACCEPT|DROP&quot;

# TCP TIME_WAIT 연결 수 확인 (연결 누수 진단)
sudo netstat -anp | grep TIME_WAIT | wc -l&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 프로세스 / 성능 모니터링&lt;/h2&gt;
&lt;pre class=&quot;tcl&quot;&gt;&lt;code&gt;# Tomcat/Java 프로세스 상세 정보
ps aux | grep -E &quot;(tomcat|java)&quot; | grep -v grep

# Java 프로세스별 /proc 디렉토리 정보
ps -ef | grep java | awk '{print $2}' | xargs -r sudo ls -l /proc/

# Tomcat 프로세스만 top 모니터링 (1회)
top -p $(pgrep -d, tomcat) -n 1

# 메모리 실시간 모니터링 (3초 간격)
free -h -s 3

# 디스크 상세 표 형식 출력
df -h --output=source,fstype,size,used,avail,pcent,target

# 로그 디렉토리 크기순 정렬 (상위 10개)
du -sh /var/log/* | sort -hr | head -10

# 시스템 부하 + VM 통계 (5초 5회)
uptime &amp;amp;&amp;amp; vmstat 1 5

# 디스크 I/O 통계 (5초 5회)
iostat -x 1 5 | grep -E &quot;(avg-cpu|Device:)&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 파일 / 로그 관리&lt;/h2&gt;
&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;# Tomcat 로그 실시간 확인 (최근 200줄)
tail -f -n 200 /var/log/tomcat10/catalina.out

# 오류 로그 색상 하이라이트 검색
grep -i &quot;ERROR|FATAL|OutOfMemory&quot; /var/log/tomcat10/*.log --color=auto

# 어제 생성된 100MB 이상 로그파일 목록
find /var/log -name &quot;*.log&quot; -mtime -1 -size +100M -exec ls -lh {} \;

# 임시파일 안전 삭제 (에러 무시)
sudo rm -rf /tmp/* /var/tmp/* 2&amp;gt;/dev/null

# Tomcat 백업 (로그 제외, 날짜명)
sudo tar -czf /backup/tomcat-$(date +%Y%m%d).tar.gz /opt/tomcat10/ --exclude=/opt/tomcat10/logs

# Tomcat 디렉토리 소유권/권한 일괄 변경
sudo chown -R tomcat:tomcat /opt/tomcat10/ &amp;amp;&amp;amp; sudo chmod -R 755 /opt/tomcat10/

# SSH 키파일 보안 권한 설정
sudo chmod 400 ~/.ssh/my-key.pem &amp;amp;&amp;amp; sudo chmod 700 ~/.ssh/

# 페이지캐시 강제 해제 (메모리 부족시)
echo &quot;0&quot; | sudo tee /proc/sys/vm/drop_caches&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;⭐ 초보자 TOP 10 필수 명령어&lt;/h2&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 style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;순위&lt;/th&gt;
&lt;th style=&quot;width: 258px;&quot;&gt;명령어&lt;/th&gt;
&lt;th style=&quot;width: 201px;&quot;&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;ssh -i key.pem ec2-user@IP&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;EC2 접속 (가장 중요!)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;sudo su -&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;루트 권한 획득&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;ls -la&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;파일/폴더 목록 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;cd 경로&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;디렉토리 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;현재 위치 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;6&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;tail -f 로그파일&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;로그 실시간 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;ps aux | grep 이름&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;프로세스 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;sudo systemctl status 서비스&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;서비스 상태 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;9&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;df -h&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;디스크 공간 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 45px;&quot; align=&quot;center&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 258px;&quot;&gt;&lt;code&gt;sudo yum update -y&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;width: 201px;&quot;&gt;시스템 업데이트 (Amazon Linux)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;Tip:&lt;/b&gt; 명령어가 기억나지 않을 때는 &lt;code&gt;history | grep 키워드&lt;/code&gt;로 이전에 사용한 명령어를 검색할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⚠️ &lt;b&gt;주의:&lt;/b&gt; &lt;code&gt;sudo rm -rf&lt;/code&gt;는 복구가 불가능합니다. 경로를 반드시 확인한 후 실행하세요!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>까먹음 방지.zip</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>SSH접속</category>
      <category>tomcat</category>
      <category>네트워크진단</category>
      <category>리눅스기초</category>
      <category>리눅스명령어</category>
      <category>서버관리</category>
      <category>시스템관리</category>
      <category>패키지관리</category>
      <author>zippy</author>
      <guid isPermaLink="true">https://lazip.tistory.com/23</guid>
      <comments>https://lazip.tistory.com/entry/%F0%9F%96%A5%EF%B8%8F-AWS-EC2-%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%95%84%EC%88%98-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%B4%9D%EC%A0%95%EB%A6%AC-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%B6%80%ED%84%B0-%EC%8B%A4%EB%AC%B4%EA%B9%8C%EC%A7%80#entry23comment</comments>
      <pubDate>Fri, 10 Apr 2026 16:46:17 +0900</pubDate>
    </item>
  </channel>
</rss>