<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>WebFactory</title>
    <link>https://webfactory.tistory.com/</link>
    <description>기록은 기억을 지배한다!!!</description>
    <language>ko</language>
    <pubDate>Wed, 24 Jun 2026 08:39:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>G-Ryon</managingEditor>
    <image>
      <title>WebFactory</title>
      <url>https://t1.daumcdn.net/cfile/tistory/125C22114A4CB3D88F</url>
      <link>https://webfactory.tistory.com</link>
    </image>
    <item>
      <title>[React] 8일차: 코드의 재사용과 최적화 (Custom Hooks &amp;amp; Memoization)</title>
      <link>https://webfactory.tistory.com/202</link>
      <description>&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;이번 내용은 기초를 넘어 커스텀 훅(Custom Hooks)이나 &lt;b data-index-in-node=&quot;89&quot; data-path-to-node=&quot;0&quot;&gt;성능 최적화(useMemo, useCallback)&lt;/b&gt; 등 중급 단계로 넘어가는 중요한 지점입니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;0&quot; 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-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RQPjb/dJMcahxk4J3/lUGx5zynTnf102oZsrKb9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RQPjb/dJMcahxk4J3/lUGx5zynTnf102oZsrKb9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RQPjb/dJMcahxk4J3/lUGx5zynTnf102oZsrKb9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRQPjb%2FdJMcahxk4J3%2FlUGx5zynTnf102oZsrKb9K%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; alt=&quot;코드의 재사용과 최적화 (Custom Hooks &amp;amp;amp; Memoization)&quot; loading=&quot;lazy&quot; width=&quot;2816&quot; height=&quot;1536&quot; data-origin-width=&quot;2816&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;리액트의 기초적인 Props와 State, 그리고 Effect를 넘어 오늘은 더 효율적인 코드를 작성하기 위한 내용입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. Custom Hooks (나만의 훅 만들기)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;여러 컴포넌트에서 반복되는 로직(예: input 핸들링, API 호출, 스크롤 감지 등)을 하나의 함수로 분리하여 재사용하는 방법입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;특징:&lt;/b&gt; 이름이 반드시 use로 시작해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;장점:&lt;/b&gt; 로직이 분리되어 컴포넌트 코드가 간결해지고, 유지보수가 쉬워집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwjAt5KStvKTAxUAAAAAHQAAAAAQYw&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;JavaScript&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;// useInput.js (예시)
import { useState } from 'react';

function useInput(initialValue) {
  const [value, setValue] = useState(initialValue);
  const onChange = (e) =&amp;gt; setValue(e.target.value);
  return [value, onChange];
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;2. useMemo &amp;amp; useCallback (메모이제이션)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;리액트 컴포넌트는 상태가 변할 때마다 리렌더링됩니다. 이때 불필요한 계산이나 함수 생성을 방지하기 위해 사용합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;useMemo:&lt;/b&gt; 연산된 &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;10,0,0&quot;&gt;값&lt;/b&gt;을 재사용할 때 사용합니다. (비싼 연산 방지)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;useCallback:&lt;/b&gt; &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;10,1,0&quot;&gt;함수&lt;/b&gt; 자체를 재사용할 때 사용합니다. (자식 컴포넌트의 불필요한 리렌더링 방지)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;3. React.memo&lt;/h3&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;컴포넌트의 Props가 변경되지 않았다면 리렌더링을 건너뛰도록 하는 고차 컴포넌트(HOC)입니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;13&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size23&quot;&gt;  오늘의 핵심 요약&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;로직의 공유:&lt;/b&gt; 동일한 함수형 로직이 반복된다면 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;15,0,0&quot;&gt;Custom Hook&lt;/b&gt;을 고려하자.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;무분별한 최적화 금지:&lt;/b&gt; useMemo나 useCallback은 메모리를 사용하므로, 정말 성능 저하가 우려되는 곳에만 전략적으로 사용하자.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,2,0&quot;&gt;가독성:&lt;/b&gt; 커스텀 훅을 쓰면 UI 로직과 비즈니스 로직이 분리되어 코드가 훨씬 읽기 좋아진다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/프로그래밍</category>
      <category>custom Hook</category>
      <category>react</category>
      <category>useCallback</category>
      <category>useMemo</category>
      <category>리액트</category>
      <category>커스텀훅</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/202</guid>
      <comments>https://webfactory.tistory.com/202#entry202comment</comments>
      <pubDate>Thu, 16 Apr 2026 22:03:11 +0900</pubDate>
    </item>
    <item>
      <title>나만의 맞춤형 환경 구축: 커스텀 챗봇으로 완성하는 스마트 워크플로우</title>
      <link>https://webfactory.tistory.com/201</link>
      <description>&lt;h1&gt;&amp;nbsp;&lt;/h1&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-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFBSw4/dJMcaakD1m4/UtqqGqGjxmkB8KdBjCJOPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFBSw4/dJMcaakD1m4/UtqqGqGjxmkB8KdBjCJOPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFBSw4/dJMcaakD1m4/UtqqGqGjxmkB8KdBjCJOPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFBSw4%2FdJMcaakD1m4%2FUtqqGqGjxmkB8KdBjCJOPK%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; alt=&quot;나만의 맞춤형 환경 구축: 커스텀 챗봇으로 완성하는 스마트 워크플로우&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;커스텀 챗봇 시대의 도래&lt;/b&gt;&lt;/h2&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;br /&gt;AI 챗봇 시장은 폭발적으로 성장하고 있습니다.&lt;br /&gt;2025년 기준 글로벌 AI 챗봇 시장은 약 15억 달러 규모를 넘을 것으로 예상됩니다.&amp;nbsp;&lt;br /&gt;또한 2035년에는 720억 달러 이상으로 성장할 전망입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 숫자는 단순한 통계가 아닙니다.&lt;br /&gt;이것은 업무 방식 자체가 바뀌고 있다는 신호입니다.&lt;br /&gt;이미 약 80% 기업이 챗봇 도입을 고려하고 있습니다.&amp;nbsp;&lt;br /&gt;고객 문의의 70%가 자동화되고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 상황에서 우리는 질문해야 합니다.&lt;br /&gt;단순히 사용할 것인가요, 아니면 주도할 것인가요?&lt;br /&gt;이 차이는 앞으로의 경쟁력을 결정합니다.&lt;/p&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;br /&gt;하지만 활용 방식이 변하면서 기회가 생깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 API 기반 AI가 표준화되었습니다.&lt;br /&gt;개인도 쉽게 챗봇을 구축할 수 있습니다.&lt;br /&gt;과거에는 대기업만 가능했던 영역입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 우리는 개발자이든 기획자이든 관계없습니다.&lt;br /&gt;누구나 자신만의 자동화 시스템을 만들 수 있습니다.&lt;br /&gt;이것이 바로 현재 시점의 핵심 기회입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;커스텀 챗봇의 본질 이해&lt;/b&gt;&lt;/h2&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;br /&gt;반면 커스텀 챗봇은 상황을 이해합니다.&lt;/p&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;br /&gt;커스텀 챗봇은 의사결정 엔진입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 우리는 질문을 던지는 것이 아닙니다.&lt;br /&gt;우리는 시스템을 위임하는 것입니다.&lt;/p&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구성 요소역할&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;입력 처리&lt;/td&gt;
&lt;td&gt;사용자 의도 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로직 엔진&lt;/td&gt;
&lt;td&gt;판단 및 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;출력 생성&lt;/td&gt;
&lt;td&gt;결과 전달&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;br /&gt;즉, 사람이 하던 판단을 시스템이 대신 수행합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;업무 생산성을 바꾸는 핵심 이유&lt;/b&gt;&lt;/h2&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;br /&gt;대부분은 반복 작업입니다.&lt;/p&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;br /&gt;우리는 더 중요한 일에 집중할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과적으로 생산성은 기하급수적으로 증가합니다.&lt;/p&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;br /&gt;정보가 부족하기 때문입니다.&lt;/p&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;br /&gt;빠른 실행이 가능해집니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;커스텀 챗봇 구축 전략&lt;/b&gt;&lt;/h2&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;br /&gt;우리는 먼저 문제를 정의해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 이런 질문이 필요합니다.&lt;br /&gt;&amp;ldquo;어떤 작업이 가장 비효율적인가?&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 질문 하나가 방향을 결정합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;KPI 설정 전략&lt;/b&gt;&lt;/h4&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;예시 KPI는 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작업 시간 30% 감소&lt;/li&gt;
&lt;li&gt;응답 속도 2배 향상&lt;/li&gt;
&lt;li&gt;오류율 50% 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 수치는 실제 성과를 측정합니다.&lt;/p&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;br /&gt;UX가 곧 성능입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 사용 흐름을 설계해야 합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;UX 흐름 설계 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좋은 UX는 자연스러워야 합니다.&lt;br /&gt;사용자가 고민하지 않아야 합니다.&lt;/p&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;/li&gt;
&lt;li&gt;의도 분석&lt;/li&gt;
&lt;li&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;기술 스택과 아키텍처&lt;/b&gt;&lt;/h2&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;사용자는 UI를 통해 시스템을 경험합니다.&lt;br /&gt;따라서 UI는 직관적이어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;React 기반 구조가 효율적입니다.&lt;br /&gt;컴포넌트 기반 설계가 가능합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;백엔드 및 API 설계&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백엔드는 시스템의 두뇌입니다.&lt;br /&gt;API 중심 구조가 핵심입니다.&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;REST API&lt;/li&gt;
&lt;li&gt;AI API 연동&lt;/li&gt;
&lt;li&gt;인증 시스템&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구조는 확장성을 보장합니다.&lt;/p&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;br /&gt;구조 설계가 매우 중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유형특징&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RDB&lt;/td&gt;
&lt;td&gt;안정성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NoSQL&lt;/td&gt;
&lt;td&gt;확장성&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 목적에 따라 선택해야 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;실제 활용 사례 분석&lt;/b&gt;&lt;/h2&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;br /&gt;고객 문의 대응이 대표적인 사례입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;챗봇 도입 후 고객 지원 비용이 30~40% 절감됩니다.&amp;nbsp;&lt;br /&gt;또한 전환율은 평균 25% 증가합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 수치는 매우 강력합니다.&lt;br /&gt;즉, 단순 편의성이 아니라 수익 구조를 바꿉니다.&lt;/p&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;br /&gt;코드를 생성하고 리뷰합니다.&lt;/p&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;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;보안과 리스크 관리&lt;/b&gt;&lt;/h2&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;br /&gt;보안이 없으면 시스템은 무의미합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 다음을 고려해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;암호화&lt;/li&gt;
&lt;li&gt;접근 제어&lt;/li&gt;
&lt;li&gt;로그 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 요소는 필수입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI 윤리 이슈&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 강력하지만 위험도 존재합니다.&lt;br /&gt;편향과 오류 문제가 발생할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 우리는 검증 체계를 만들어야 합니다.&lt;br /&gt;신뢰 가능한 시스템을 구축해야 합니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;미래 트렌드와 전망&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI 에이전트 시대&lt;/b&gt;&lt;/h3&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;br /&gt;인간의 개입이 줄어듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 변화는 매우 큽니다.&lt;/p&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;br /&gt;챗봇은 더 인간처럼 동작합니다.&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;&lt;b&gt;결론&lt;/b&gt;&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;br /&gt;우리는 선택해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도구를 사용할 것인가요?&lt;br /&gt;아니면 환경을 설계할 것인가요?&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;FAQ&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Q1. 커스텀 챗봇은 개발자가 아니어도 만들 수 있나요?&lt;/b&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;&lt;b&gt;Q2. 구축 비용은 얼마나 드나요?&lt;/b&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;&lt;b&gt;Q3. 어떤 업무에 가장 효과적인가요?&lt;/b&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;&lt;b&gt;Q4. 보안 문제는 어떻게 해결하나요?&lt;/b&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;&lt;b&gt;Q5. 앞으로 가장 중요한 트렌드는 무엇인가요?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI 에이전트와 자동 의사결정 시스템입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/AI</category>
      <category>AI</category>
      <category>Custom Chatbot</category>
      <category>나만의 맞춤형 환경 구축</category>
      <category>커스텀 챗봇</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/201</guid>
      <comments>https://webfactory.tistory.com/201#entry201comment</comments>
      <pubDate>Wed, 15 Apr 2026 15:47:28 +0900</pubDate>
    </item>
    <item>
      <title>-s 하나에 의미가 확 바뀐다? 단&amp;middot;복수 의미 차이 완벽 정리</title>
      <link>https://webfactory.tistory.com/200</link>
      <description>&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;영어 공부 중 가장 헷갈리는 부분 중 하나가 바로 '단수'와 '복수'에 따른 의미 변화입니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;영어 단어 중에는 복수형(-s)이 되었을 때 단순히 '여러 개'를 뜻하는 것이 아니라, 아예 새로운 추상적 개념이나 용도로 변하는 단어들이 있습니다. 예를 들어서 아래와 같은 예제들이 있습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. Air vs. Airs&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;Air (단수):&lt;/b&gt; 공기, 대기
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,1,0,0&quot;&gt;Clean air is essential for health.&lt;/i&gt; (깨끗한 공기는 건강에 필수적이다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;Airs (복수):&lt;/b&gt; 젠체하는 태도, 건방진 태도
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,1,0,0&quot;&gt;Stop putting on airs.&lt;/i&gt; (잘난 척 좀 그만해.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. Custom vs. Customs&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;Custom (단수):&lt;/b&gt; 관습, 습관
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,1,0,0&quot;&gt;It is a social custom in Korea.&lt;/i&gt; (그것은 한국의 사회적 관습이다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;Customs (복수):&lt;/b&gt; 세관, 통관 절차
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,1,0,0&quot;&gt;I had to pass through customs at the airport.&lt;/i&gt; (나는 공항에서 세관을 통과해야 했다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;3. Mean vs. Means&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;Mean (단수/형용사):&lt;/b&gt; 중간의, 비열한 / 의미하다
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,0,0&quot;&gt;What does this word mean?&lt;/i&gt; (이 단어는 무엇을 의미하나요?)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;Means (복수/단일개념):&lt;/b&gt; 수단, 방법, 재산
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,1,0,0&quot;&gt;The internet is a means of communication.&lt;/i&gt; (인터넷은 통신의 한 수단이다.)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,1,1,0&quot;&gt;참고:&lt;/b&gt; 'Means'는 형태는 복수지만 문맥에 따라 단수/복수 취급이 모두 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;4. Arm vs. Arms&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;Arm (단수):&lt;/b&gt; 팔 (신체 부위)
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,1,0,0&quot;&gt;He broke his left arm.&lt;/i&gt; (그는 왼쪽 팔이 부러졌다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;Arms (복수):&lt;/b&gt; 무기, 병기
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,1,0,0&quot;&gt;The country is reducing its nuclear arms.&lt;/i&gt; (그 국가는 핵무기를 줄이고 있다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;5. Spectacle vs. Spectacles&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;Spectacle (단수):&lt;/b&gt; 광경, 장관, 구경거리
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,1,0,0&quot;&gt;The sunset was a magnificent spectacle.&lt;/i&gt; (일몰은 장엄한 광경이었다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;Spectacles (복수):&lt;/b&gt; 안경 (Glasses와 같은 의미)
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,0,0&quot;&gt;He took off his spectacles to read the book.&lt;/i&gt; (그는 책을 읽기 위해 안경을 벗었다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;14&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;✅ 요약 테이블&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;16&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;단어&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;단수일 때 의미&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;복수형(-s)일 때 의미&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0,0&quot;&gt;Air&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,1,0&quot;&gt;공기&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,2,0&quot;&gt;젠체하는 태도&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0,0&quot;&gt;Custom&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,1,0&quot;&gt;관습&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,2,0&quot;&gt;세관&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0,0&quot;&gt;Mean&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,1,0&quot;&gt;중간, 의미하다&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,2,0&quot;&gt;수단, 재산&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,4,0,0&quot;&gt;Arm&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,1,0&quot;&gt;팔&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,2,0&quot;&gt;무기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,5,0,0&quot;&gt;Spectacle&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,5,1,0&quot;&gt;광경&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,5,2,0&quot;&gt;안경&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-path-to-node=&quot;17&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;이런 단어들은 토익(TOEIC)이나 공인 영어 시험에서도 자주 출제되는 함정 카드입니다. '단수=하나, 복수=여러 개'라는 고정관념에서 벗어나, 문맥에 따라 단어의 얼굴이 바뀔 수 있다는 점을 기억해 두시면 독해 실력이 한 단계 업그레이드될 것입니다!&lt;/p&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>기타지식/영어</category>
      <category>단수</category>
      <category>단어</category>
      <category>복수</category>
      <category>영어</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/200</guid>
      <comments>https://webfactory.tistory.com/200#entry200comment</comments>
      <pubDate>Wed, 15 Apr 2026 15:41:59 +0900</pubDate>
    </item>
    <item>
      <title>&amp;quot;나만 알고 있었나?&amp;quot; 당장 멈춰야 할 잘못된 운동 상식 10가지</title>
      <link>https://webfactory.tistory.com/199</link>
      <description>&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;운동을 시작할 때 우리가 흔히 '정답'이라고 믿었던 정보들이 사실은 내 몸을 망치고 있다면 어떨까요? 효율적인 득근과 다이어트를 위해 반드시 바로잡아야 할 운동 상식들을 모아봤습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;아래 내용이 정답은 아닐수도 있지만, 일반적으로 효율이 떨어지거나 다칠수도 있는 상황을 최대한 줄이고자 하기 위해서 참고했으면 합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. 뱃살을 빼려면 윗몸일으키기가 최고다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;특정 부위의 지방만 골라서 빼는 '부위별 감량'은 불가능합니다. 윗몸일으키기는 복근을 강화할 뿐, 그 위의 지방을 태우는 데는 유산소 운동과 전체적인 칼로리 조절이 필수입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. 운동은 무조건 오래 할수록 좋다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;운동의 양보다 중요한 것은 &lt;b data-index-in-node=&quot;15&quot; data-path-to-node=&quot;7&quot;&gt;질&lt;/b&gt;입니다. 과도하게 긴 시간 운동하면 피로 물질인 젖산이 쌓이고 근육이 오히려 손실될 수 있습니다. 1시간을 하더라도 집중도 있게 수행하는 것이 훨씬 효과적입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;3. 근육통(알배김)이 없으면 운동 효과가 없다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;근육통은 새로운 자극에 대한 반응일 뿐, 운동 성장의 유일한 지표는 아닙니다. 통증이 없더라도 점진적으로 중량을 늘리거나 강도를 높이고 있다면 충분히 잘하고 계신 겁니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;4. 공복 유산소는 무조건 체지방을 더 잘 태운다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;공복 상태에서는 체지방 연소율이 높을 수 있지만, 에너지가 부족해 운동 강도를 높이기 어렵고 근육 손실의 위험도 커집니다. 체질에 따라 오히려 독이 될 수 있으니 주의해야 합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;5. 유산소 운동은 30분 이상 해야 지방이 탄다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;지방은 운동 시작 직후부터 탄수화물과 함께 타기 시작합니다. 30분이라는 숫자에 집착하기보다 10분씩 세 번 나누어 하더라도 총 활동량을 채우는 것이 중요합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size23&quot;&gt;6. 땀을 많이 흘릴수록 살이 많이 빠진다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;땀은 체온 조절을 위해 배출되는 수분일 뿐, 체지방 연소량과 정비례하지 않습니다. 땀복을 입고 운동해서 줄어든 몸무게는 물 한 잔 마시면 다시 돌아오는 '수분 무게'입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size23&quot;&gt;7. 근력 운동을 하면 몸이 너무 비대해질까 봐 걱정된다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;보디빌더처럼 비대해지는 것은 엄청난 중량과 철저한 식단이 병행되어야 가능합니다. 일반적인 근력 운동은 오히려 기초대사량을 높여 탄력 있고 슬림한 몸매를 만드는 데 도움을 줍니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size23&quot;&gt;8. 운동 직후 '골든 타임'에 무조건 단백질을 먹어야 한다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;기존에는 운동 직후 30분 이내 섭취가 필수라고 알려졌으나, 최근 연구에 따르면 하루 전체의 총 단백질 섭취량이 훨씬 중요합니다. 너무 강박을 가질 필요 없이 편한 시간에 충분히 섭취하세요.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;9. 운동 전 정적 스트레칭은 부상을 방지한다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;근육이 예열되지 않은 상태에서 늘리기만 하는 정적 스트레칭은 오히려 근력을 떨어뜨리고 부상 위험을 높일 수 있습니다. 운동 전에는 몸을 가볍게 움직이는 &lt;b data-index-in-node=&quot;85&quot; data-path-to-node=&quot;21&quot;&gt;동적 스트레칭&lt;/b&gt;이 정답입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;10. 주말에 몰아서 운동해도 효과는 똑같다? (No!)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;가끔 하는 고강도 운동보다 꾸준한 저강도 운동이 건강에 훨씬 유익합니다. 주말에 몰아서 무리하게 운동하면 오히려 심장에 부담을 주고 관절 부상을 초래하기 쉽습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>기타지식/운동</category>
      <category>운동</category>
      <category>잘못된상식</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/199</guid>
      <comments>https://webfactory.tistory.com/199#entry199comment</comments>
      <pubDate>Wed, 15 Apr 2026 15:36:27 +0900</pubDate>
    </item>
    <item>
      <title>업무의 패러다임을 바꾸는 도구: AI 네이티브 조직</title>
      <link>https://webfactory.tistory.com/198</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk1c6D/dJMcaayasYj/eZ5kIEDQAdqPiPtrbLEgjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk1c6D/dJMcaayasYj/eZ5kIEDQAdqPiPtrbLEgjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk1c6D/dJMcaayasYj/eZ5kIEDQAdqPiPtrbLEgjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk1c6D%2FdJMcaayasYj%2FeZ5kIEDQAdqPiPtrbLEgjk%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; alt=&quot;업무의 패러다임을 바꾸는 도구: AI 네이티브 조직&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1&gt;&lt;b&gt;AI 네이티브 조직이 바꾸는 업무의 미래&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;서론: 왜 지금 AI 네이티브인가&lt;/b&gt;&lt;/h2&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;br /&gt;AI는 더 이상 일부 기업의 실험 도구가 아니다.&lt;br /&gt;이제는 모든 산업의 기본 인프라로 자리 잡고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 2026년은 AI 변화의 분기점으로 평가된다.&lt;br /&gt;전문가들은 이 시기를 &amp;lsquo;AI 빅뱅 시대&amp;rsquo;라고 부른다.&amp;nbsp;&lt;br /&gt;이는 기술이 폭발적으로 확산되는 단계다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 클라우드 네이티브 환경은 이미 98% 도입률을 기록했다.&amp;nbsp;&lt;br /&gt;이는 AI 기반 조직 전환이 선택이 아닌 필수임을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 질문은 단순하다.&lt;br /&gt;AI를 쓸 것인가가 아니다.&lt;br /&gt;AI 없이 살아남을 수 있는가다.&lt;/p&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;br /&gt;속도와 데이터 활용 능력이 핵심이다.&lt;/p&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;AI 네이티브 조직은 이런 환경에 최적화된 구조다.&lt;br /&gt;이 구조는 빠른 실행을 가능하게 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 우리는 선택해야 한다.&lt;br /&gt;느린 조직으로 남을 것인가?&lt;br /&gt;아니면 AI 중심 조직으로 전환할 것인가?&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AI 네이티브 조직의 정의&lt;/b&gt;&lt;/h2&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;br /&gt;프로세스도 사람을 기준으로 만들어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 AI 네이티브 조직은 다르다.&lt;br /&gt;처음부터 AI를 중심으로 설계된다.&lt;/p&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;br /&gt;AI 조직은 일을 자동으로 분배한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 조직은 보고 중심이다.&lt;br /&gt;AI 조직은 데이터 기반 실시간 판단을 한다.&lt;/p&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;AI 네이티브 조직은 세 가지 개념으로 이해할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째, 데이터 중심이다.&lt;br /&gt;둘째, 자동화 중심이다.&lt;br /&gt;셋째, 협업 중심이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 세 가지는 서로 연결된다.&lt;br /&gt;데이터는 AI를 움직인다.&lt;br /&gt;AI는 자동화를 만든다.&lt;br /&gt;자동화는 효율을 만든다.&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;&lt;b&gt;2026 AI 트렌드와 조직 변화&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI 빅뱅 시대&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2026년은 AI 경쟁의 본격적인 시작점이다.&lt;br /&gt;다양한 기업들이 AI 생태계 경쟁에 뛰어든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 주목할 점은 &amp;lsquo;AI 네이티브 조직&amp;rsquo;이 핵심 트렌드라는 점이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 이제 도구가 아니다.&lt;br /&gt;조직 구조 자체를 바꾸는 요소다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 AI는 점점 능동적으로 행동한다.&lt;br /&gt;사용자가 요청하기 전에 제안한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 업무 방식 자체를 뒤집는다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI 네이티브 조직의 부상&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 기업들은 단순 도입을 넘어서고 있다.&lt;br /&gt;AI 중심으로 조직을 재설계한다.&lt;/p&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;AI도 동일하다.&lt;br /&gt;도입하는 기업과 기반으로 하는 기업은 다르다.&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;&lt;b&gt;핵심 구성 요소&lt;/b&gt;&lt;/h2&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;데이터는 AI 조직의 연료다.&lt;br /&gt;데이터가 없으면 AI는 작동하지 않는다.&lt;/p&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 품질은 결과를 결정한다.&lt;br /&gt;잘못된 데이터는 잘못된 전략을 만든다.&lt;/p&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;br /&gt;단순 반복 작업은 반드시 제거해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 이런 작업이 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보고서 작성&lt;/li&gt;
&lt;li&gt;고객 응대&lt;/li&gt;
&lt;li&gt;데이터 정리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 모든 것은 AI로 자동화 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동화는 시간을 만든다.&lt;br /&gt;시간은 경쟁력이다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AI 협업 구조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 인간을 대체하지 않는다.&lt;br /&gt;AI는 인간을 강화한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인간은 방향을 제시한다.&lt;br /&gt;AI는 실행을 돕는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 협업 구조가 핵심이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 우리는 AI와 함께 일하는 법을 배워야 한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;업무 방식의 혁신&lt;/b&gt;&lt;/h2&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;br /&gt;보고와 승인 과정이 길었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 AI 조직은 다르다.&lt;br /&gt;데이터 기반으로 즉시 판단한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 수천 개 데이터를 분석한다.&lt;br /&gt;그리고 최적의 선택지를 제안한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 더 빠르게 결정한다.&lt;br /&gt;그리고 더 정확하게 선택한다.&lt;/p&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;br /&gt;왜냐하면 낭비가 사라지기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 반복 작업을 제거한다.&lt;br /&gt;인간은 창의적 작업에 집중한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 단순한 효율이 아니다.&lt;br /&gt;업무 수준 자체가 올라간다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;실제 도입 사례&lt;/b&gt;&lt;/h2&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;br /&gt;AI를 중심으로 조직을 재편한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 빅테크 기업들은 AI를 핵심 전략으로 삼는다.&lt;br /&gt;AI 조직 전환은 이미 진행 중이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들은 데이터와 AI를 결합한다.&lt;br /&gt;그리고 새로운 비즈니스 모델을 만든다.&lt;/p&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;br /&gt;AI 도입은 더 이상 선택이 아니다.&lt;/p&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;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;도입 전략&lt;/b&gt;&lt;/h2&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;br /&gt;작게 시작하는 것이 중요하다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일럿 프로젝트 실행&lt;/li&gt;
&lt;li&gt;성공 사례 확보&lt;/li&gt;
&lt;li&gt;점진적 확장&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 전략이 가장 안전하다.&lt;/p&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;br /&gt;사람이 바뀌지 않으면 실패한다.&lt;/p&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;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;리스크와 대응 전략&lt;/b&gt;&lt;/h2&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;br /&gt;정확하지 않으면 결과도 틀린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 검증 프로세스가 필요하다.&lt;/p&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;AI는 편향을 가질 수 있다.&lt;br /&gt;공정성을 확보해야 한다.&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;&lt;b&gt;미래 전망&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;인간과 AI의 역할 변화&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI는 점점 더 많은 일을 한다.&lt;br /&gt;인간은 더 중요한 일을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순 작업은 사라진다.&lt;br /&gt;창의적 작업은 증가한다.&lt;/p&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;br /&gt;하지만 더 강해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI가 조직을 확장시키기 때문이다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;결론 및 실행 방향&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 방향은 명확하다.&lt;br /&gt;AI 네이티브 조직은 미래가 아니다.&lt;br /&gt;현재 진행형이다.&lt;/p&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;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;FAQ&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Q1. AI 네이티브 조직은 모든 기업에 필요한가요?&lt;/b&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;&lt;b&gt;Q2. 도입 비용이 많이 드나요?&lt;/b&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;&lt;b&gt;Q3. 직원은 AI에 의해 대체되나요?&lt;/b&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;&lt;b&gt;Q4. 가장 먼저 해야 할 것은 무엇인가요?&lt;/b&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;&lt;b&gt;Q5. 중소기업도 가능한가요?&lt;/b&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;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/AI</category>
      <category>AI</category>
      <category>AI 네이티브 조직</category>
      <category>업무의 패러다임을 바꾸는 도구</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/198</guid>
      <comments>https://webfactory.tistory.com/198#entry198comment</comments>
      <pubDate>Mon, 13 Apr 2026 14:33:59 +0900</pubDate>
    </item>
    <item>
      <title>[Windows 11] 나만 알고 싶은 생산성 200% 상승 숨겨진 꿀팁 5가지</title>
      <link>https://webfactory.tistory.com/197</link>
      <description>&lt;p data-path-to-node=&quot;1&quot; data-ke-size=&quot;size16&quot;&gt;Windows 11로 업데이트한 후, 단순히 디자인만 예뻐졌다고 생각하셨나요? 사실 구석구석 살펴보면 작업 효율을 극대화해 줄 강력한 도구들이 숨어있습니다. 오늘은 일반 사용자는 물론, 개발자나 크리에이터에게도 유용한 &lt;b data-index-in-node=&quot;122&quot; data-path-to-node=&quot;1&quot;&gt;Windows 11의 숨은 보석 같은 기능&lt;/b&gt;들을 상세한 예시와 함께 소개합니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;2&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3&quot;&gt;1. 개발자를 위한 'Dev Drive'와 'Dev Home'&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;프로그래밍을 하거나 대용량 라이브러리(React의 node_modules 등)를 다루는 분들에게 필수적인 기능입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;Dev Drive:&lt;/b&gt; 복원력 파일 시스템(ReFS)을 기반으로 하여, 파일 복사나 빌드 속도를 크게 향상시킵니다. 프로젝트 빌드 시간이 평소보다 훨씬 단축되는 것을 경험할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;Dev Home:&lt;/b&gt; 개발자 전용 대시보드로, GitHub 연동, 시스템 성능 모니터링, 개발 환경 설정을 한곳에서 관리할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;692&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dS4S3P/dJMcagkONmJ/rZhrGPECpQSpIiyPfIKpnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dS4S3P/dJMcagkONmJ/rZhrGPECpQSpIiyPfIKpnk/img.png&quot; data-alt=&quot;노트북 화면에서 'Dev Drive'가 활성화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dS4S3P/dJMcagkONmJ/rZhrGPECpQSpIiyPfIKpnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdS4S3P%2FdJMcagkONmJ%2FrZhrGPECpQSpIiyPfIKpnk%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; alt=&quot;노트북 화면에서 'Dev Drive'가 활성화&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;692&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;692&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노트북 화면에서 'Dev Drive'가 활성화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8&quot;&gt;어떤 상황에서 사용하나요?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;상황:&lt;/b&gt; &quot;리액트 프로젝트 npm install이나 build를 할 때마다 컴퓨터가 멈추거나 시간이 너무 오래 걸려서 답답합니다.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;해결:&lt;/b&gt; 설정 &amp;gt; 시스템 &amp;gt; 저장소 &amp;gt; 고급 저장소 설정 &amp;gt; 디스크 및 볼륨에서 VHD를 생성하여 Dev Drive로 할당해보세요. 동일한 사양의 PC에서 프로젝트 빌드 속도가 수배 향상되는 것을 경험할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;10&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11&quot;&gt;2. 유튜브 쇼츠 제작도 뚝딱! 'Clipchamp' 활용&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;따로 무거운 편집 프로그램을 설치할 필요가 없습니다. Windows 11 기본 앱인 &lt;b data-index-in-node=&quot;47&quot; data-path-to-node=&quot;12&quot;&gt;Clipchamp&lt;/b&gt;는 직관적인 UI로 영상 편집을 지원합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;장점:&lt;/b&gt; 9:16 세로 비율을 지원하여 유튜브 쇼츠(Shorts)나 틱톡 영상을 만들기 매우 편리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;팁:&lt;/b&gt; 'AI를 사용하여 비디오 제작' 기능을 활용하면 사진과 영상 소스만으로도 순식간에 편집본을 만들어 줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1583&quot; data-origin-height=&quot;894&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvwiNY/dJMcaaZc6Im/bjdzmeAQcNBrVhQK9UPzdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvwiNY/dJMcaaZc6Im/bjdzmeAQcNBrVhQK9UPzdK/img.png&quot; data-alt=&quot;노트북 화면에서 Clipchamp의 세로 비디오 편집&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvwiNY/dJMcaaZc6Im/bjdzmeAQcNBrVhQK9UPzdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvwiNY%2FdJMcaaZc6Im%2FbjdzmeAQcNBrVhQK9UPzdK%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; alt=&quot;노트북 화면에서 Clipchamp의 세로 비디오 편집&quot; loading=&quot;lazy&quot; width=&quot;1583&quot; height=&quot;894&quot; data-origin-width=&quot;1583&quot; data-origin-height=&quot;894&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노트북 화면에서 Clipchamp의 세로 비디오 편집&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16&quot;&gt;어떤 상황에서 사용하나요?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;상황:&lt;/b&gt; &quot;아이들과 주말에 찍은 짧은 영상을 유튜브 쇼츠로 올리고 싶은데, 편집 프로그램을 배우기가 너무 복잡해요.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;해결:&lt;/b&gt; Clipchamp를 실행하고 'AI를 사용하여 비디오 제작'을 누른 후, 사진과 영상을 업로드해보세요. AI가 자동으로 음악과 전환 효과를 넣어 세로 버전의 쇼츠를 뚝딱 만들어줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;18&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19&quot;&gt;3. 'Win + X' 비밀 메뉴와 터미널 활용&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;시작 버튼을 &lt;b data-index-in-node=&quot;7&quot; data-path-to-node=&quot;20&quot;&gt;마우스 오른쪽 버튼으로 클릭&lt;/b&gt;하거나 Win + X 단축키를 눌러보세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장치 관리자, 디스크 관리자, 네트워크 연결 등 시스템 깊숙한 곳에 있는 메뉴에 즉시 접근할 수 있습니다.&lt;/li&gt;
&lt;li&gt;특히 **'터미널(관리자)'**을 통해 PowerShell과 명령 프롬프트를 탭 형태로 관리할 수 있어, 명령줄 작업을 자주 하는 분들께 매우 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;652&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w3KiL/dJMcagrATte/TzfbeemAcV0pm9kJwgUZ2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w3KiL/dJMcagrATte/TzfbeemAcV0pm9kJwgUZ2k/img.png&quot; data-alt=&quot;노트북 화면에서 시작 버튼 옆에 'Win + X' 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w3KiL/dJMcagrATte/TzfbeemAcV0pm9kJwgUZ2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw3KiL%2FdJMcagrATte%2FTzfbeemAcV0pm9kJwgUZ2k%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; alt=&quot;노트북 화면에서 시작 버튼 옆에 'Win + X' 메뉴&quot; loading=&quot;lazy&quot; width=&quot;375&quot; height=&quot;652&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;652&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노트북 화면에서 시작 버튼 옆에 'Win + X' 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24&quot;&gt;어떤 상황에서 사용하나요?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;25&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,0,0&quot;&gt;상황:&lt;/b&gt; &quot;명령 프롬프트와 PowerShell을 번갈아 가며 작업해야 하는데, 두 개의 창을 띄워놓으니 복잡하고 관리가 안 됩니다.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,1,0&quot;&gt;해결:&lt;/b&gt; Win + X를 눌러 '터미널(관리자)'을 열어보세요. 탭 형태로 PowerShell과 명령 프롬프트를 통합 관리할 수 있으며, 이력을 확인하기도 훨씬 편리합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;26&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;27&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27&quot;&gt;4. 화면 녹화의 끝판왕, '캡처 도구(Snipping Tool)'&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;28&quot; data-ke-size=&quot;size16&quot;&gt;이제 별도의 화면 녹화 프로그램을 설치하지 마세요. 기본 캡처 도구에 &lt;b data-index-in-node=&quot;39&quot; data-path-to-node=&quot;28&quot;&gt;화면 녹화 기능&lt;/b&gt;이 통합되었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;29&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Win + Shift + S로 스크린샷을 찍는 것뿐만 아니라, 앱 상단의 캠코더 아이콘을 누르면 원하는 영역만 지정해 MP4 파일로 녹화할 수 있습니다.&lt;/li&gt;
&lt;li&gt;시스템 오디오와 마이크 음성도 동시에 녹음 가능해 튜토리얼 영상을 만들 때 최적입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4OVMy/dJMcabKDeAr/7LizkiHIBUosctblaIWYkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4OVMy/dJMcabKDeAr/7LizkiHIBUosctblaIWYkK/img.png&quot; data-alt=&quot;캡쳐도구에서 녹화 버튼 클릭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4OVMy/dJMcabKDeAr/7LizkiHIBUosctblaIWYkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4OVMy%2FdJMcabKDeAr%2F7LizkiHIBUosctblaIWYkK%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; alt=&quot;캡쳐도구에서 녹화 버튼 클릭&quot; loading=&quot;lazy&quot; width=&quot;356&quot; height=&quot;71&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;캡쳐도구에서 녹화 버튼 클릭&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y7jBI/dJMcag6da24/IhnjfaSdYikyj8rvkkGkn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y7jBI/dJMcag6da24/IhnjfaSdYikyj8rvkkGkn0/img.png&quot; data-alt=&quot;캡쳐 영역을 지정하면 바로 녹화 진행&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y7jBI/dJMcag6da24/IhnjfaSdYikyj8rvkkGkn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy7jBI%2FdJMcag6da24%2FIhnjfaSdYikyj8rvkkGkn0%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; alt=&quot;캡쳐 영역을 지정하면 바로 녹화 진행&quot; loading=&quot;lazy&quot; width=&quot;330&quot; height=&quot;72&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;캡쳐 영역을 지정하면 바로 녹화 진행&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;31&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;31&quot;&gt;[이미지 4]&lt;/b&gt; 노트북 화면에서 캡처 도구가 화면의 특정 영역을 녹화 중인 모습입니다. 녹화 영역을 표시하는 빨간색 직사각형과, 상단 UI의 캠코더 아이콘이 활성화되어 있습니다.&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;32&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;32&quot;&gt;어떤 상황에서 사용하나요?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;33&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;33,0,0&quot;&gt;상황:&lt;/b&gt; &quot;동료에게 새로운 앱 사용법을 가르쳐주거나, 화면에 나타난 버그를 보고하고 싶은데, 글로 설명하기가 너무 힘듭니다.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;33,1,0&quot;&gt;해결:&lt;/b&gt; Win + Shift + S를 누른 후 캠코더 아이콘을 클릭하여 화면 영역을 지정해보세요. 마이크와 시스템 오디오를 동시에 켜서, 직접 설명하며 앱 작동 과정을 MP4 영상으로 녹화할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;34&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;35&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;35&quot;&gt;5. 멀티태스킹의 혁명, '스냅 레이아웃(Snap Layouts)'&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;36&quot; data-ke-size=&quot;size16&quot;&gt;여러 창을 띄워놓고 작업할 때, 창 상단의 '최대화' 버튼 위에 마우스를 올려보세요(혹은 Win + Z).&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;37&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;화면을 2분할, 3분할, 4분할로 나누는 다양한 템플릿이 나타납니다.&lt;/li&gt;
&lt;li&gt;특히 와이드 모니터를 사용하거나 여러 환경(개발/참조 문서/개인용)을 분리해야 할 때, 각 환경을 **'가상 데스크톱'**과 조합하면 완벽한 작업 공간 분리가 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIWPZH/dJMcagrAT8B/9zDDSFQrl93sn2DzEu9i40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIWPZH/dJMcagrAT8B/9zDDSFQrl93sn2DzEu9i40/img.png&quot; data-alt=&quot;노트북 화면에서 사용자가 창의 '최대화' 버튼 위에 마우스를 올렸을 때 나타나는 스냅 레이아웃 팝업 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIWPZH/dJMcagrAT8B/9zDDSFQrl93sn2DzEu9i40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIWPZH%2FdJMcagrAT8B%2F9zDDSFQrl93sn2DzEu9i40%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; alt=&quot;노트북 화면에서 사용자가 창의 '최대화' 버튼 위에 마우스를 올렸을 때 나타나는 스냅 레이아웃 팝업 메뉴&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;255&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노트북 화면에서 사용자가 창의 '최대화' 버튼 위에 마우스를 올렸을 때 나타나는 스냅 레이아웃 팝업 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-path-to-node=&quot;40&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;40&quot;&gt;어떤 상황에서 사용하나요?&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;41&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;41,0,0&quot;&gt;상황:&lt;/b&gt; &quot;와이드 모니터를 사용하고 있는데, 여러 창을 띄워놓고 작업할 때마다 창 크기와 위치를 맞추는 데 시간을 다 써버립니다.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;41,1,0&quot;&gt;해결:&lt;/b&gt; Win + Z를 누르거나 최대화 버튼에 마우스를 올려보세요. 4분할 레이아웃을 선택하면 코딩, 웹 검색, 메신저, 터미널 등을 한 화면에 깔끔하게 배치할 수 있어, 작업 흐름이 끊기지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;42&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;43&quot; data-ke-size=&quot;size16&quot;&gt;이 글이 Windows 11의 잠재력을 최대한 끌어올리는 데 도움이 되었기를 바랍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;43&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/OS</category>
      <category>window11</category>
      <category>숨겨진기능</category>
      <category>윈도우</category>
      <category>윈도우11</category>
      <category>팁</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/197</guid>
      <comments>https://webfactory.tistory.com/197#entry197comment</comments>
      <pubDate>Mon, 13 Apr 2026 14:27:30 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] NOT IN vs NOT EXISTS 차이점 완벽 정리</title>
      <link>https://webfactory.tistory.com/196</link>
      <description>&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;오라클 데이터베이스를 다루다 보면 특정 집합에 포함되지 않는 데이터를 찾기 위해 NOT IN과 NOT EXISTS 사이에서 고민하게 됩니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;겉보기엔 비슷해 보이지만, &lt;b data-index-in-node=&quot;94&quot; data-path-to-node=&quot;0&quot;&gt;NULL 처리 방식&lt;/b&gt;과 &lt;b data-index-in-node=&quot;106&quot; data-path-to-node=&quot;0&quot;&gt;성능&lt;/b&gt; 면에서 큰 차이가 있습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;1&quot; data-ke-size=&quot;size16&quot;&gt;실무에서 실수하기 쉬운 포인트와 예제를 중심으로 깔끔하게 정리해 드립니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;2&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. 한 줄 요약&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;NOT IN&lt;/b&gt;: 서브쿼리 결과에 NULL이 하나라도 있으면 &lt;b data-index-in-node=&quot;32&quot; data-path-to-node=&quot;5,0,0&quot;&gt;결과가 나오지 않습니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;NOT EXISTS&lt;/b&gt;: 서브쿼리 내의 NULL 여부와 상관없이 &lt;b data-index-in-node=&quot;34&quot; data-path-to-node=&quot;5,1,0&quot;&gt;조건에 맞는 행의 존재 여부&lt;/b&gt;만 따집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;6&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;2. 예제로 보는 결과의 차이&lt;/h3&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;두 방식의 차이를 확인하기 위해 아래와 같은 샘플 테이블이 있다고 가정해 보겠습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9&quot;&gt;[EMP_DEPT (직원 테이블)]&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;10&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;EMP_ID&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;DEPT_NAME&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,1,0,0&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,1,1,0&quot;&gt;개발&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,2,0,0&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,2,1,0&quot;&gt;디자인&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,3,0,0&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;10,3,1,0&quot;&gt;기획&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11&quot;&gt;[RESTRICTED_DEPT (제한된 부서 테이블)]&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DEPT_NAME&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,1,0,0&quot;&gt;개발&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;12,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0,0&quot;&gt;NULL&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size20&quot;&gt;Case A: NOT IN을 사용하는 경우&lt;/h4&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwiJosOZ7emTAxUAAAAAHQAAAAAQzQE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;SQL&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT * FROM EMP_DEPT
WHERE DEPT_NAME NOT IN (SELECT DEPT_NAME FROM RESTRICTED_DEPT);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;결과:&lt;/b&gt; &lt;b data-index-in-node=&quot;4&quot; data-path-to-node=&quot;15,0,0&quot;&gt;데이터가 조회되지 않음 (0건)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;이유:&lt;/b&gt; NOT IN은 내부적으로 DEPT_NAME != '개발' AND DEPT_NAME != NULL로 풀립니다. 오라클에서 NULL과의 비교는 항상 Unknown이기 때문에 전체 조건이 만족되지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;Case B: NOT EXISTS를 사용하는 경우&lt;/h4&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwiJosOZ7emTAxUAAAAAHQAAAAAQzgE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;SQL&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;n1ql&quot;&gt;&lt;code&gt;SELECT * FROM EMP_DEPT E
WHERE NOT EXISTS (
    SELECT 1 
    FROM RESTRICTED_DEPT R 
    WHERE R.DEPT_NAME = E.DEPT_NAME
);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;결과:&lt;/b&gt; &lt;b data-index-in-node=&quot;4&quot; data-path-to-node=&quot;18,0,0&quot;&gt;디자인, 기획 (2건)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;이유:&lt;/b&gt; NOT EXISTS는 메인 쿼리의 DEPT_NAME과 서브쿼리의 DEPT_NAME이 일치하는 '행'이 존재하는지만 체크합니다. NULL은 비교 조건(=)에서 일치하지 않으므로 제외되고, 나머지 일치하지 않는 부서들이 정상적으로 출력됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;19&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;3. 성능(Performance) 측면&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size20&quot;&gt;인덱스 활용&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,0,0&quot;&gt;NOT EXISTS&lt;/b&gt;: 일반적으로 Anti-Join 방식으로 동작하며, 서브쿼리 테이블의 인덱스를 효율적으로 활용합니다. 메인 테이블의 행마다 서브쿼리를 확인하다가 조건에 맞는 것을 하나라도 찾으면 즉시 멈추기 때문에 대량 데이터 처리 시 유리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,1,0&quot;&gt;NOT IN&lt;/b&gt;: 과거에는 인덱스 활용이 비효율적이었으나, 최신 오라클 버전(11g 이상)에서는 Null-Aware Anti-Join 기술이 도입되어 성능 차이가 많이 줄었습니다. 하지만 여전히 NULL 체크를 위한 내부 연산이 추가될 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;23&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;4. 언제 무엇을 써야 할까?&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;25&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;상황&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;추천 연산자&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;이유&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,1,0,0&quot;&gt;서브쿼리 컬럼에 NULL이 있을 때&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,1,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,1,1,0&quot;&gt;NOT EXISTS&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,1,2,0&quot;&gt;NOT IN은 결과를 0건으로 반환할 위험이 있음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,2,0,0&quot;&gt;서브쿼리 컬럼이 NOT NULL일 때&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,2,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,2,1,0&quot;&gt;둘 다 무관&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,2,2,0&quot;&gt;성능 차이가 미미하며 가독성에 따라 선택&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,3,0,0&quot;&gt;가장 안전한 선택을 원할 때&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,3,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,3,1,0&quot;&gt;NOT EXISTS&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;25,3,2,0&quot;&gt;데이터 변화에 유연하게 대응 가능&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-path-to-node=&quot;26&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;27&quot; data-ke-size=&quot;size23&quot;&gt;5. 마무리 요약&lt;/h3&gt;
&lt;p data-path-to-node=&quot;28&quot; data-ke-size=&quot;size16&quot;&gt;오라클에서 서브쿼리를 이용해 제외 조건을 걸 때는 &lt;b data-index-in-node=&quot;28&quot; data-path-to-node=&quot;28&quot;&gt;NOT EXISTS를 기본으로 사용하는 습관&lt;/b&gt;을 들이는 것이 좋습니다. 서브쿼리 컬럼에 NULL이 하나라도 섞여 들어오는 순간 NOT IN은 의도치 않은 결과를 내뱉어 심각한 로직 오류를 발생시킬 수 있기 때문입니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;28&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/DB</category>
      <category>EXISTS</category>
      <category>IN</category>
      <category>Racle</category>
      <category>오라클</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/196</guid>
      <comments>https://webfactory.tistory.com/196#entry196comment</comments>
      <pubDate>Mon, 13 Apr 2026 12:29:25 +0900</pubDate>
    </item>
    <item>
      <title>[React] 7일차: 커스텀 훅(Custom Hooks)의 마법 &amp;ndash; 효율적인 코드 구조화의 시작</title>
      <link>https://webfactory.tistory.com/195</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yqwSV/dJMcabqlLSp/41w94VXk7Uhw3K21LdH2ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yqwSV/dJMcabqlLSp/41w94VXk7Uhw3K21LdH2ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yqwSV/dJMcabqlLSp/41w94VXk7Uhw3K21LdH2ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyqwSV%2FdJMcabqlLSp%2F41w94VXk7Uhw3K21LdH2ck%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; alt=&quot;커스텀 훅(Custom Hooks)의 마법&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;리액트를 배운 지 벌써 일주일입니다! 지금까지 컴포넌트를 만들고, State로 상태를 관리하고, Props로 데이터를 전달하는 법을 배웠습니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;하지만 프로젝트 규모가 커지면 필연적으로 &quot;똑같은 로직을 여기저기서 복사 붙여넣기 하고 있네?&quot;라는 고민에 빠지게 됩니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;오늘은 이 고민을 해결해 줄 리액트의 꽃, 커스텀 훅(Custom Hooks)을 심도 있게 파헤쳐 보겠습니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;5&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;1. 왜 커스텀 훅이 필요한가? (DRY 원칙)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;프로그래밍에는 DRY(Don't Repeat Yourself)라는 원칙이 있습니다. &quot;똑같은 일을 두 번 하지 마라&quot;는 뜻이죠.&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;리액트 컴포넌트는 크게 두 부분으로 나뉩니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;UI 로직&lt;/b&gt;: HTML 태그를 어떻게 배치하고 스타일링할 것인가?&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;비즈니스 로직&lt;/b&gt;: 데이터를 어떻게 가져오고, 상태를 어떻게 변경할 것인가?&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;여러 컴포넌트에서 비즈니스 로직(예: 입력값 처리, API 호출, 타이머 등)이 중복될 때, 이를 하나의 함수로 따로 빼내어 관리하는 것이 바로 &lt;b data-index-in-node=&quot;81&quot; data-path-to-node=&quot;10&quot;&gt;커스텀 훅&lt;/b&gt;입니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;2. 커스텀 훅의 핵심 규칙&lt;/h3&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;커스텀 훅을 만들 때는 리액트가 정한 약속을 반드시 지켜야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;이름은 반드시 use로 시작&lt;/b&gt;: useFetch, useInput 처럼 작성해야 리액트 엔진이 &quot;아, 이건 훅이구나!&quot;라고 인식하고 내부 최적화를 진행합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;최상위에서만 호출&lt;/b&gt;: 조건문(if)이나 반복문(for) 안에서 훅을 호출하면 리액트의 상태 관리 순서가 꼬일 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;독립적인 상태&lt;/b&gt;: 가장 많이 오해하는 부분입니다. &lt;b data-index-in-node=&quot;27&quot; data-path-to-node=&quot;13,2,0&quot;&gt;커스텀 훅을 공유한다고 해서 상태(State)값이 공유되는 것은 아닙니다.&lt;/b&gt; 로직(Logic)만 공유할 뿐, 각 컴포넌트에서 호출할 때마다 새로운 상태가 만들어집니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size23&quot;&gt;3. [실습] 실무형 커스텀 훅: useInput 심화 버전&lt;/h3&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;단순히 값만 바꾸는 게 아니라, 여러 개의 입력창을 관리하고 초기화 기능까지 포함된 훅을 만들어 봅시다.&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16&quot;&gt;hooks/useInput.js&lt;/b&gt;&lt;/h4&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwiJosOZ7emTAxUAAAAAHQAAAAAQcA&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;JavaScript&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;import { useState } from 'react';

function useInput(initialForm) {
  const [form, setForm] = useState(initialForm);

  // 입력값이 변경될 때 실행되는 핸들러
  const onChange = (e) =&amp;gt; {
    const { name, value } = e.target;
    setForm((prev) =&amp;gt; ({ ...prev, [name]: value }));
  };

  // 폼을 초기화하는 함수
  const reset = () =&amp;gt; setForm(initialForm);

  return [form, onChange, reset];
}

export default useInput;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18&quot;&gt;App.jsx 에서 사용하기&lt;/b&gt;&lt;/h4&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwiJosOZ7emTAxUAAAAAHQAAAAAQcQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;JavaScript&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;import useInput from './hooks/useInput';

function App() {
  const [form, onChange, reset] = useInput({ username: '', email: '' });

  const handleSubmit = (e) =&amp;gt; {
    e.preventDefault();
    console.log(form);
    reset(); // 전송 후 초기화!
  };

  return (
    &amp;lt;form onSubmit={handleSubmit}&amp;gt;
      &amp;lt;input name=&quot;username&quot; value={form.username} onChange={onChange} placeholder=&quot;이름&quot; /&amp;gt;
      &amp;lt;input name=&quot;email&quot; value={form.email} onChange={onChange} placeholder=&quot;이메일&quot; /&amp;gt;
      &amp;lt;button type=&quot;submit&quot;&amp;gt;등록&amp;lt;/button&amp;gt;
    &amp;lt;/form&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;4. 코드 구조화: 깔끔한 프로젝트 만들기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;커스텀 훅을 배우고 나면 폴더 구조도 그에 맞춰 진화해야 합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;src/components: 재사용 가능한 UI 컴포넌트 (Button, Input 등)&lt;/li&gt;
&lt;li&gt;src/hooks: 우리가 만든 커스텀 훅들&lt;/li&gt;
&lt;li&gt;src/pages: 특정 기능을 수행하는 큰 단위의 화면 컴포넌트&lt;/li&gt;
&lt;li&gt;src/utils: 순수 자바스크립트 함수 (날짜 계산, 포맷 변경 등)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 나누면 나중에 코드를 수정할 때 어디를 만져야 할지 한눈에 알 수 있습니다.&lt;/p&gt;
&lt;hr data-path-to-node=&quot;24&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-path-to-node=&quot;25&quot; data-ke-size=&quot;size23&quot;&gt;5. 7일차 학습을 마치며&lt;/h3&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;커스텀 훅은 처음엔 어렵게 느껴질 수 있지만, 한번 맛을 들이면 &lt;b data-index-in-node=&quot;36&quot; data-path-to-node=&quot;26&quot;&gt;&quot;컴포넌트가 이렇게 가벼워질 수 있다고?&quot;&lt;/b&gt; 하며 감탄하게 됩니다. UI와 로직을 분리하는 연습을 계속해 보세요. 그것이 바로 고급 리액트 개발자로 가는 지름길입니다!&lt;/p&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/프로그래밍</category>
      <category>HOOK</category>
      <category>react</category>
      <category>리액트</category>
      <category>커스텀 훅</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/195</guid>
      <comments>https://webfactory.tistory.com/195#entry195comment</comments>
      <pubDate>Mon, 13 Apr 2026 12:23:51 +0900</pubDate>
    </item>
    <item>
      <title>[React] 6일차: 입력 폼 처리와 useRef &amp;ndash; 사용자와 상호작용하기</title>
      <link>https://webfactory.tistory.com/194</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFozAf/dJMcab4VmwM/oywVrukhzW8itwJL3YfS10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFozAf/dJMcab4VmwM/oywVrukhzW8itwJL3YfS10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFozAf/dJMcab4VmwM/oywVrukhzW8itwJL3YfS10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFozAf%2FdJMcab4VmwM%2FoywVrukhzW8itwJL3YfS10%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; alt=&quot;입력 폼 처리와 useRef&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;리액트 공부 6일차입니다! 오늘은 사용자가 입력하는 데이터를 어떻게 관리하고, 리액트 방식이 아닌 실제 DOM 요소에 직접 접근해야 할 때는 어떻게 하는지 핵심을 정리해 보았습니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. 제어 컴포넌트 (Controlled Components)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;리액트에서는 &amp;lt;input&amp;gt;, &amp;lt;textarea&amp;gt; 같은 폼 요소의 값을 리액트의 &lt;b data-index-in-node=&quot;44&quot; data-path-to-node=&quot;5&quot;&gt;State&lt;/b&gt;와 결합하여 관리합니다. 이를 '제어 컴포넌트'라고 부릅니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;동작 방식&lt;/b&gt;: 입력창의 value를 State에 연결하고, onChange 이벤트를 통해 사용자가 입력할 때마다 State를 업데이트합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;장점&lt;/b&gt;: 입력값에 대한 실시간 유효성 검사나 데이터 가공이 매우 쉽습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwitvJiZ0-KTAxUAAAAAHQAAAAAQyQE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;JavaScript&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;const [name, setName] = useState(&quot;&quot;);

const handleChange = (e) =&amp;gt; {
  setName(e.target.value);
};

return &amp;lt;input type=&quot;text&quot; value={name} onChange={handleChange} /&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;2. 여러 개의 입력 항목 관리하기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;입력 항목이 많아질 때 각각 useState를 만들면 코드가 복잡해집니다. 이럴 때는 &lt;b data-index-in-node=&quot;48&quot; data-path-to-node=&quot;9&quot;&gt;객체 형태의 State&lt;/b&gt;를 사용하면 효율적입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;name 속성을 활용해 어떤 입력창에서 이벤트가 발생했는지 파악합니다.&lt;/li&gt;
&lt;li&gt;**스프레드 연산자(...)**를 사용하여 기존 값을 유지하며 특정 값만 변경하는 것이 포인트입니다!&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwitvJiZ0-KTAxUAAAAAHQAAAAAQygE&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;&lt;span&gt;JavaScript&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;const [form, setForm] = useState({ title: &quot;&quot;, content: &quot;&quot; });

const onChange = (e) =&amp;gt; {
  const { name, value } = e.target;
  setForm({
    ...form,
    [name]: value // 계산된 속성 이름 문법 사용
  });
};
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;3. useRef &amp;ndash; DOM에 직접 접근하기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;리액트에서는 대개 State를 통해 화면을 제어하지만, 가끔은 실제 HTML 요소(DOM)를 직접 건드려야 할 때가 있습니다. (예: 특정 입력창에 강제로 포커스 주기, 스크롤 위치 조작 등)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;14&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,0,0&quot;&gt;특징&lt;/b&gt;: useRef로 만든 변수는 값이 변해도 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;14,0,0&quot;&gt;컴포넌트가 다시 렌더링되지 않습니다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;포커스를 주고 싶을 때 inputRef.current.focus()와 같이 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>컴퓨터일반/프로그래밍</category>
      <category>react</category>
      <category>useRef</category>
      <category>리액트</category>
      <category>입력 폼 처리</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/194</guid>
      <comments>https://webfactory.tistory.com/194#entry194comment</comments>
      <pubDate>Fri, 10 Apr 2026 15:48:26 +0900</pubDate>
    </item>
    <item>
      <title>미드 프렌즈 명대사: 영어 회화의 끝은 어디인가</title>
      <link>https://webfactory.tistory.com/193</link>
      <description>&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;단순한 유행어를 넘어, 원어민의 사고방식과 문장 구조를 한 번에 잡을 수 있는 알짜배기 대사들을 소개합니다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size23&quot;&gt;1. &quot;I don't even have a 'pla'.&quot;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;뜻:&lt;/b&gt; &quot;난 '계'조차 없어. (계획의 '계'자도 없다고!)&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;설명:&lt;/b&gt; 피비(Phoebe)가 미래에 대한 계획이 있느냐는 질문에 답한 대사입니다. 원래 &quot;Plan&quot;이라고 해야 하지만, 계획이 너무나도 없어서 단어조차 완성하지 못했다는 위트 있는 표현이죠. &lt;b data-index-in-node=&quot;107&quot; data-path-to-node=&quot;6,1,0&quot;&gt;&quot;I don't even have a...&quot;&lt;/b&gt; 패턴은 &quot;나는 ~조차 없다&quot;라는 강조 표현으로, 뒤에 어떤 명사든 넣어 응용하기 아주 좋습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;2. &quot;Rules help control the fun!&quot;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;뜻:&lt;/b&gt; &quot;규칙이 있어야 즐거움도 통제(유지)할 수 있는 거야!&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;설명:&lt;/b&gt; 정리 정돈과 규칙에 집착하는 모니카(Monica)의 성격이 드러나는 대사입니다. 보통 규칙(Rules)은 즐거움을 망친다고 생각하기 쉽지만, 모니카는 규칙이 있어야 제대로 즐길 수 있다고 주장하죠. &lt;b data-index-in-node=&quot;115&quot; data-path-to-node=&quot;8,1,0&quot;&gt;&quot;Help + 동사원형&quot;&lt;/b&gt;(~하는 것을 돕다) 구조를 자연스럽게 익히기에 좋은 문장입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;3. &quot;Could I &lt;i data-index-in-node=&quot;12&quot; data-path-to-node=&quot;9&quot;&gt;be&lt;/i&gt; wearing any more clothes?&quot;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;뜻:&lt;/b&gt; &quot;내가 옷을 이것보다 더 많이 입을 수 있을까?&quot; (옷을 진짜 많이 입었네!)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;설명:&lt;/b&gt; 조이(Joey)가 챈들러의 옷을 모두 껴입고 나타나 챈들러의 말투를 흉내 내며 한 대사입니다. 앞서 배운 챈들러의 강조 패턴을 조이가 비꼰 것인데요. &lt;b data-index-in-node=&quot;88&quot; data-path-to-node=&quot;10,1,0&quot;&gt;비교급(more)과 의문문&lt;/b&gt;을 결합해 최상급의 의미를 전달하는 원어민 특유의 강조 어법을 연습하기에 완벽한 문장입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;4. &quot;I'm not even sorry.&quot;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;뜻:&lt;/b&gt; &quot;난 조금도 미안하지 않아.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;설명:&lt;/b&gt; 레이첼(Rachel)이 자신의 행동에 대해 당당하게 말할 때 사용했습니다. 사과할 상황임에도 불구하고 전혀 후회가 없음을 나타낼 때 씁니다. **&quot;Not even&quot;**을 사용해 부정의 의미를 극대화하는 법을 배울 수 있으며, 감정을 솔직하게 표현할 때 유용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size23&quot;&gt;5. &quot;Smelly Cat, Smelly Cat, what are they feeding you?&quot;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;14&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,0,0&quot;&gt;뜻:&lt;/b&gt; &quot;냄새나는 고양이야, 사람들이 너한테 뭘 먹이는 거니?&quot;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14,1,0&quot;&gt;설명:&lt;/b&gt; 피비의 전설적인 노래 가사입니다. 영어 회화 측면에서는 **현재진행형 의문문(What are they feeding...?)**의 구조를 흥얼거리며 익히기 좋습니다. 또한, 누군가에게 이유를 묻거나 상황의 원인을 유머러스하게 따질 때 이 노래의 리듬을 빌려 말하는 경우가 많습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;15&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;프렌즈&amp;gt;의 세계는 여전히 무궁무진합니다. 이 대사들을 활용하여 외국인과 대화한번 해보시길 바랍니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Copyright 2026. [Ryon] all rights reserved.&lt;/p&gt;</description>
      <category>기타지식/영어</category>
      <category>영어</category>
      <category>프렌즈</category>
      <category>회화</category>
      <author>G-Ryon</author>
      <guid isPermaLink="true">https://webfactory.tistory.com/193</guid>
      <comments>https://webfactory.tistory.com/193#entry193comment</comments>
      <pubDate>Fri, 10 Apr 2026 15:43:41 +0900</pubDate>
    </item>
  </channel>
</rss>