<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Koras02's 여러가지 이야기</title>
    <link>https://thinky.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 12 May 2026 20:24:23 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Tinkies</managingEditor>
    <image>
      <title>Koras02's 여러가지 이야기</title>
      <url>https://tistory1.daumcdn.net/tistory/6624273/attach/9d57ccf791f54fbc804eb2e917f7e915</url>
      <link>https://thinky.tistory.com</link>
    </image>
    <item>
      <title>[프랑스] 프랑스어 Day 01일차 - Bonjour 부터 시작하기</title>
      <link>https://thinky.tistory.com/464</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Ensign_of_France.svg.webp&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TVHQz/dJMcaax74l8/MV3LxAnMcGqahUvVPRnjM0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TVHQz/dJMcaax74l8/MV3LxAnMcGqahUvVPRnjM0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TVHQz/dJMcaax74l8/MV3LxAnMcGqahUvVPRnjM0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTVHQz%2FdJMcaax74l8%2FMV3LxAnMcGqahUvVPRnjM0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;167&quot; data-filename=&quot;Ensign_of_France.svg.webp&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;167&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-ke-size=&quot;size16&quot;&gt;프랑스어 공부 1일차 너무 어렵게 시작하지 말고 가장 기초적인 인사부터 익혀보기로 한다. 기초 단어와 발음을 직접 입으로 말해보며 배워보자 간단한 인사와 안부를 전하기 위해 다음과 같이 발음한다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 기초 단어 + 발음&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bonjour(봉주르) &amp;rarr; 안녕&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Merci(메흐씨) &amp;rarr; 고마워&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;Ccedil;a va ? (싸 바?) &amp;rarr; 잘 지내?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 발음은 이해를 돕기 위해 사용한 표현이며 실제와는 차이가 있을 수 있음&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;기본 문장&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;Ccedil;a va ? (잘 지내?)를 배웠으니 이제 뒤에 이어서 답하는 방법도 알아보겠습니다.&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;1. 잘 지낼 때 (긍정)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt;&amp;Ccedil;a va.&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt; (싸 바.) - 잘 지내. / 괜찮아.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr;&amp;nbsp; &amp;nbsp;&lt;b&gt;&amp;Ccedil;a va bien. &lt;/b&gt;(싸 바 비앙.) - 잘 지내. / 아주 좋아&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;b&gt;Tr&amp;egrave;s bien, merci.&amp;nbsp;&lt;/b&gt;(트레 비앙, 메르시.) - 아주 좋아, 고마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr;&amp;nbsp; &lt;b&gt;Et toi?&amp;nbsp;&lt;/b&gt;(에 뚜아?) - 너는 ? /&amp;nbsp;&lt;b&gt;Et vous?&amp;nbsp;&lt;/b&gt;(에 부?) - 당신은? (되물을 때)&amp;nbsp;&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;2. 그냥 그럴 때 (보통)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr;&amp;nbsp;&lt;b&gt;&lt;b&gt;Comme ci, comme &amp;ccedil;a.&amp;nbsp;&lt;/b&gt;&lt;/b&gt;(꼼씨 꼼싸.) - 그저 그래. / 그냥 그래.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr;&amp;nbsp;&lt;b&gt; &lt;b&gt;&amp;Ccedil;a va.&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;(싸 바) -&amp;nbsp; (덤덤하게) 어, 뭐 괜찮아.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&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;3. 잘 못 지낼 때 (부정)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;b&gt;&amp;Ccedil;a ne va pas.&lt;/b&gt; (싸 느 바 빠.) - 잘 안 지내. / 별로야&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;b&gt;&amp;Ccedil;a va mal.&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; (싸 바 말.) -&amp;nbsp; 안 좋아&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;한 줄 기록&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어렵다..발음이   아직 낯설어서 그런가? 그래도 짧아서 따라할 만하다. 다음 시간에는 je suis(쥬 쉬) 문장을 배워보도록 하겠다.&lt;/p&gt;</description>
      <category>언어/프랑스어</category>
      <category>배우기</category>
      <category>언어</category>
      <category>프랑스어</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/464</guid>
      <comments>https://thinky.tistory.com/464#entry464comment</comments>
      <pubDate>Thu, 9 Apr 2026 19:31:31 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] New Javascript 17장 - 이터널레이터와 제너레이터</title>
      <link>https://thinky.tistory.com/463</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q7BB0/dJMcaju0rYT/gzcCDXEIARWhisKT44gYlk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q7BB0/dJMcaju0rYT/gzcCDXEIARWhisKT44gYlk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q7BB0/dJMcaju0rYT/gzcCDXEIARWhisKT44gYlk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq7BB0%2FdJMcaju0rYT%2FgzcCDXEIARWhisKT44gYlk%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;630&quot; height=&quot;630&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ &lt;b&gt;1. 이터널레이터 (Iterator)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;이터러블(Iterable)&lt;/b&gt;&lt;/i&gt;의 객체(array, Map, Set 등)의 요소를 한 번에 하나씩 순차적으로 접근하는 인터페이스를 &lt;i&gt;&lt;b&gt;이터러블(Iterable)&lt;/b&gt;&lt;/i&gt;이라고 합니다,&amp;nbsp;&lt;i&gt;&lt;b&gt;next()&lt;/b&gt;&lt;/i&gt; 메서드를 가지며, 이 메서드는&amp;nbsp;&lt;i&gt;&lt;b&gt;{ value: 값, done: boolean }&lt;/b&gt;&amp;nbsp;&lt;/i&gt;형태의 객체를 반환합니다.&amp;nbsp;&lt;i&gt;done&lt;/i&gt;이&amp;nbsp;&lt;i&gt;true&lt;/i&gt;가되면 반복이 종료되었음을 의미합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1775612308955&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const arr = [1, 2, 3, 4];
// 배열의 iterator 객체를 생성
const iter = arr[Symbol.iterator]();

// iterator 객체를 사용해서 배열의 각 원소를 반복하여 출력
console.log(iter.next()); // { value: 1, done: false }
console.log(iter.next()); // { value: 2, done: false }
console.log(iter.next()); // { value: 3, done: false }
console.log(iter.next()); // { value: 4, done: false }
console.log(iter.next()); // { value: undefined, done: true }&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 2. 제너레이터 (Generator, &lt;i&gt;function*&lt;/i&gt;) 개념 및 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;function*&lt;/b&gt;&lt;/i&gt; 키워드로 정의하는 제너레이터는 일반 함수와는 달리 호출 시 코드를 실행하지 않으며&amp;nbsp;&lt;b&gt;&lt;i&gt;제너레이터 객체(iterator 이자 iterable)&lt;/i&gt;&lt;/b&gt;를 반환합니다, 함수 실행을 중간에 일시 중지(&lt;b&gt;&lt;i&gt;yield&lt;/i&gt;&lt;/b&gt;) 했다가 필요할 때 다시 재생할 수 있으며 상태를 주고받을 수 있어 비동기 처리나 무한 시퀀스 생성에 효율적입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1775612875599&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function* randomGenerator() {
  yield Math.random();
  yield Math.random();
  return Math.random();
}

const gen = randomGenerator(); // 생성된 generator 객체

// generator 객체를 사용해서 반복하여 출력 = 출력할 때 마다 yield 키워드로 멈춰있던 부분에서 다시 시작
// done 부분은 generator 함수의 실행이 끝났는지를 나타냄
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 3. yield&amp;nbsp;&lt;/b&gt;&lt;b&gt;키워드 개념 및 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;yield&lt;/b&gt; 키워드는 제너레이터 함수 내부에서만 사용이 가능하고 함수의 실행을 일시 정지시키는 역할을 담당합니다, &lt;b&gt;yield&amp;nbsp;&lt;/b&gt;키워드 뒤에 오는 표현식의 값을 제너레이터 호출자(&lt;b&gt;next()&lt;/b&gt; 호출한 곳)에 반환하며 &lt;b&gt;return&lt;/b&gt;과는 달리 함수를 완전히 종료하지 않고 잠시 멈추는 역할을 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1775613230887&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function* viewGenerator() {
  console.log(&quot;이전화&quot;);
  yield 1;
  console.log(&quot;재생/일시정지&quot;);
  yield 2;
  console.log(&quot;다음화&quot;);
}

const view = viewGenerator();

view.next(); // &quot;이전화&quot; 출력, yield 1에서 멈춤
view.next(); // &quot;재생/일시정지&quot; 출력, yield 2에서 멈춤
view.next(); // &quot;다음화&quot; 출력, 제너레이터 종료&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;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;4. 제너레이터와 yield 활용하기 (for..of)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제너레이터 객체는 이터러블(iterable)이므로&amp;nbsp;&lt;i&gt;&lt;b&gt;for...of&lt;/b&gt;&lt;/i&gt;문을 사용해&amp;nbsp;&lt;i&gt;&lt;b&gt;next()&lt;/b&gt;&lt;/i&gt;를 일일히 호출하지 않고도 간편하게 값을 출력할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1775613404137&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function* viewGenerator() {
  yield &quot;이전화&quot;;
  yield &quot;재생/일시정지&quot;;
  yield &quot;다음화&quot;;
}

for (let view of viewGenerator()) {
  console.log(view); // &quot;이전화&quot;, &quot;재생/일시정지&quot;, &quot;다음화&quot; 순서대로 출력
}&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅&amp;nbsp;&lt;/b&gt;&lt;b&gt;5. 정리&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 59px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;정의&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;iterator&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;i&gt;&lt;b&gt;next()&lt;/b&gt;&lt;/i&gt;로 요소를 순화하는 객체&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;i&gt;&lt;b&gt;next()&lt;/b&gt;&lt;/i&gt;로&amp;nbsp;&lt;i&gt;&lt;b&gt;{value, done}&lt;/b&gt;&lt;/i&gt; 반환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;&lt;b&gt;Generator&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;iterator 생성 및 함수 제어&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;&lt;b&gt;&lt;i&gt;function*&lt;/i&gt;&lt;/b&gt;으로 선언과 일시 정지 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;b&gt;yield&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;제너레이터 내 실행 중단/값 반환&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;잠시 멈추고 재개 가능, 지연 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1775613832829&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&quot; data-og-description=&quot;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/javascript-only/newJSRoom/tree/main&quot; data-og-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6OVED/dJMb9kmdBdD/Rbe7PSUKkNaW7AW6RrpLw1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/uCWya/dJMb9fZv9Ra/ogGwalJwVr4RzgPM68www0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/javascript-only/newJSRoom/tree/main&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/javascript-only/newJSRoom/tree/main&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6OVED/dJMb9kmdBdD/Rbe7PSUKkNaW7AW6RrpLw1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/uCWya/dJMb9fZv9Ra/ogGwalJwVr4RzgPM68www0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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>Front-End/JavaScript</category>
      <category>function</category>
      <category>Javascript</category>
      <category>yield</category>
      <category>이터널레이터</category>
      <category>제너레이터</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/463</guid>
      <comments>https://thinky.tistory.com/463#entry463comment</comments>
      <pubDate>Wed, 8 Apr 2026 11:30:57 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀 공부] 찾기 함수</title>
      <link>https://thinky.tistory.com/462</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;수백 명의 직원 명단에서 특정 직원의 '나이'를 찾고 싶거나, ID를 입력하면 자동으로 '부서'를 뜨게 하고 싶을 때 사용하는 것이 바로 엑셀의 찾기 함수다, 일일이 컨트롤+F(찾기)를 할 필요 없이, 데이터를 서로 연결&lt;b&gt;(VLOOKUP/XLOOKUP)&lt;/b&gt;해주면 되는 마법 같은 도구이다. 먼저 간단하게 직원 표를 작성해보자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;번호(A열)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;부서명(B열)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;직급명(C열)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;성명(D열)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;입사일자(E열)&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;비고(F열)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;인사팀&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;사원&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;김철수&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;2026.01.11&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;생산/물류&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;과장&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;김예지&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;2018.03.11&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;재무/회계&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;차장&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;김민수&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;2013.04.01&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;영업/마케팅&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;부장&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;김현민&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;2010.06.01&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt; &amp;nbsp;&lt;b&gt;1. VLOOKPUP (Vertical Lookup)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VLOOKUP을 사용해&amp;nbsp;&lt;b&gt;수직(Vertical)&lt;/b&gt;으로 나열된 데이터를 위에서 아래로 훑으며 찾을 수 있다 위에 함수 작성 칸에 다음과 같이 공식을 착성하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1775544902346&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;=VLOOKUP(찾을값, 참조범위, 열번호, 0)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1775545510862&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;=VLOOKUP(&quot;생산/물류&quot;, B2:F5, 3, 0)&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;&quot;생산/물류&quot; (찾을값)&lt;/b&gt;: &quot;생산/물류라는 글자를 찾아줘&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;B2:F5 (참조범위):&lt;/b&gt; &quot;데이터 안에 들어 있는 전체 표 범위를 봐&quot; (중요: 찾을 기준값이 표의 &lt;b&gt;맨 왼쪽&lt;/b&gt;에 있어야 함)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;3 (열번호)&lt;/b&gt;: &quot;생산/물류 팀원을 찾으면, 그 줄에서 오른쪽으로 &lt;b&gt;3번쨰 칸(성명)&lt;/b&gt;에 있는 값을 가져와&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;0 (일치옵션)&lt;/b&gt;: &quot;비슷한 거 말고&amp;nbsp;&lt;b&gt;정확한 값&lt;/b&gt;을 찾아줘&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt; &amp;nbsp;&lt;b&gt;VLOOKUP의 한계&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;왼쪽은 못 본다:&amp;nbsp;&lt;/b&gt;직급명(C열)으로는 번호(A열)을 찾을 수 없다 (무조건 오른쪽만 가능)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;열 삽입에 취약하다&lt;/b&gt;: 중간에 새로운 열을 끼워 넣으면 '3번째 칸'이라는 순서가 꼬여 엉뚱한 값을 가져온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;  2. XLOOKUP (Excel 2021 이상)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VLOOKUP의 모든 단점을 해결하고 나온 함수로 훨씬 직관적이고 강력한 함수이다&lt;/p&gt;
&lt;pre id=&quot;code_1775546347395&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;=XLOOKUP(검색_키, 조회_범위, 결과_범위)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1775546773257&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;=XLOOKUP(&quot;생산/물류&quot;,B2:B4, C2:C4)&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;&quot;생산/물류&quot; (찾을값)&lt;/b&gt;: &quot;생산/물류 부서를 찾아줘&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;B2:B4 (찾을범위)&lt;/b&gt;: &quot;부서명이 모여있는 &lt;b&gt;B열&lt;/b&gt;에서 찾아.&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;C2:C4 (결과범위)&lt;/b&gt;: &quot;찾았으면 같은 줄의&amp;nbsp;&lt;b&gt;C열(직급명) &lt;/b&gt;값을 가져와&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;  3. 무엇을 사용해야 할까?&lt;/b&gt;&lt;/h2&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 style=&quot;width: 16.6667%;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;b&gt;VLOOKUP(기존)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&lt;b&gt;XLOOKUP(신형)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;&lt;b&gt;찾는 방향&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;오른쪽으로만 가능&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;왼쪽/오른쪽 모두 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;&lt;b&gt;범위 지정&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;전체 표를 뭉텅이로 지정&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;찾을 열/결과 열을 각각 지정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;&lt;b&gt;열 번호 세기&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;손가락으로 직접 세야함&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;안 세도 가능 (클릭만 하면 끝)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.6667%;&quot;&gt;&lt;b&gt;데이터 수정&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;열 삽입 시 수식 망가짐&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&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;</description>
      <category>엑셀/엑셀 공부</category>
      <category>VLOOKUP</category>
      <category>xlookup</category>
      <category>엑셀</category>
      <category>찾기 함수</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/462</guid>
      <comments>https://thinky.tistory.com/462#entry462comment</comments>
      <pubDate>Tue, 7 Apr 2026 16:31:50 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] New Javascript 16장 - 옵셔널 체이닝과 Null 병합</title>
      <link>https://thinky.tistory.com/461</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz7hUF/dJMcaaY72Lh/JdE15tvcK6zkxQzyYpO73k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz7hUF/dJMcaaY72Lh/JdE15tvcK6zkxQzyYpO73k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz7hUF/dJMcaaY72Lh/JdE15tvcK6zkxQzyYpO73k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz7hUF%2FdJMcaaY72Lh%2FJdE15tvcK6zkxQzyYpO73k%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;630&quot; height=&quot;630&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;section-0&quot; style=&quot;background-color: #ffffff; color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;1. 옵셔널 체이닝 (Optional Chaining, &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;?.&lt;/span&gt;&lt;b&gt;) &lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3a4954; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;옵셔널 체이닝(Optional Chaining)은 객체의 중첩된 속성 또는 매세드에 접근할 시, 중간에 있는 값이&amp;nbsp;&lt;b&gt;null&lt;/b&gt;이나 &lt;b&gt;undefined&lt;/b&gt;일 경우 에러를 발생시키지 않고 &lt;b&gt;undefined&lt;/b&gt;를 반환하게 해주는 방법으로 기본 구조는 다음과 같습니다&lt;/p&gt;
&lt;pre id=&quot;code_1775465288503&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;객체?.속성&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;옵셔널 체이닝의 특징:&lt;/b&gt; 옵셔는 체이닝은 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;?.&lt;/span&gt; 앞의 대상이 &lt;b&gt;null&lt;/b&gt;이거나 &lt;b&gt;undefined&lt;/b&gt;이면, 그 즉시 평가를 멈추고 &lt;b&gt;undefined&lt;/b&gt;를 반환해 준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용하는 이유&lt;/b&gt;: 데이터가 필수적이지 않을 경우 에러(&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Cannot read property ...of undefined&lt;/span&gt;)로 인하여 프로그램이 종료되는 것을 방지하기 위함&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1775465621385&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const user = { name: &quot;Chaeyoung&quot;, age: 20 };
// user.cat는 undefined이므로 에러 대신 undefined 반환
console.log(user.cat?.name); // undefined
// console.log(user.cat.name); // TypeError: Cannot read property 'name' of undefined&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 2. Null 병합 연산자 (Nullish Coalescing Operator. &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;??&lt;/span&gt;&lt;b&gt;)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Null 병합 연산자(Nullish Coalescing Operator)은 왼쪽 피연산자가&amp;nbsp;&lt;b&gt;null&lt;/b&gt;이거나&amp;nbsp;&lt;b&gt;undefined&lt;/b&gt;이면, 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 값을 반환하는 논리연산자입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1775465767687&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;왼쪽의 값 ?? 오른쪽의 값&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;특징:&amp;nbsp; &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;| |&lt;/span&gt; (OR) 연산자와 비슷하나,&amp;nbsp;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;0&lt;/span&gt;&lt;b&gt;,&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&quot; &quot;&lt;/span&gt;, &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;false&lt;/span&gt;&lt;/span&gt; 같은 &quot;falsy(거짓같은 값)&quot;한 값들을 유효한 값으로 취급하고 오직&amp;nbsp;&lt;b&gt;nul&lt;/b&gt;이나 &lt;b&gt;undefined&lt;/b&gt;일 때만 오른쪽의 값을 사용한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용하는 이유&lt;/b&gt;: 변수의 기본값을 설정하거나, 0 또는 빈 문자열을 의도적으로 처리해야 할 경우에 유리함&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1775466112573&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Null 병합 연산자
const count = 0;
const text = null;

console.log(count ?? 20); // 출력: 0 (0은 null이 아니므로 20이 아닌 0이 출력);
console.log(text ?? &quot;기본 텍스트&quot;); // 출력: &quot;기본 텍스트&quot; (text는 null이므로 오른쪽 값이 출력);&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 3. 정리 (옵셔널 체이닝 or Null 병합)&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 105px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;옵셔널 체이닝(&lt;span style=&quot;background-color: #dddddd;&quot;&gt;?.&lt;/span&gt;)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;Null 병합 (&lt;span style=&quot;background-color: #dddddd;&quot;&gt;??&lt;/span&gt;)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;목적&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;안전한 속성에 접근&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;기본값을 설정할 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;대상&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;객체의 속성/메서드&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;변수, 값&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;null 또는 undefined 시&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;undefined&lt;/span&gt; 반환&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;우항 값 반환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;b&gt;Falsy값 취급&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&quot; &quot;&lt;/span&gt;는 통과&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 21px;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;0&lt;/span&gt;&lt;b&gt;, &lt;/b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&quot; &quot;&lt;/span&gt;도 통과(nullish만 처리)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1775466553006&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&quot; data-og-description=&quot;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJbEX6/dJMb9b3SJzO/7SOg2aip07O0DO7FUpMzE0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/u4JJE/dJMb85WT1fZ/R82VZ14HrkEbGgHmPvBdnK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/javascript-only/newJSRoom&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJbEX6/dJMb9b3SJzO/7SOg2aip07O0DO7FUpMzE0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/u4JJE/dJMb85WT1fZ/R82VZ14HrkEbGgHmPvBdnK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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>Front-End/JavaScript</category>
      <category>Javascript</category>
      <category>NULL</category>
      <category>옵셔널 체이닝</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/461</guid>
      <comments>https://thinky.tistory.com/461#entry461comment</comments>
      <pubDate>Mon, 6 Apr 2026 17:47:58 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀 공부] 표 &amp;amp; 정리 기능</title>
      <link>https://thinky.tistory.com/460</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀로 데이터를 체계적으로 관리하고 시각화하여, 누구나 한눈에 알아볼 수 있는 상품리스트를 만들어보려고 한다, 단순히 기록하는 리스트를 넘어, 클릭 몇 번으로 원하는 정보를 찾고 재고 상태를 자동으로 파악하는 효율적인 관리 기술을 익혀보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  1. 표 만들기 (Table)&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 입력한 후 가장 먼저 '표'로 지정해야 정렬과 필터 아이콘이 나타난다, 먼저 해당 상품 명, 가격 등이 적힌 데이터 전체를 마우스로 드래그 하고 상단 메뉴&amp;nbsp;&lt;b&gt;[삽입] -&amp;gt; [표]&lt;/b&gt;를 클릭해 표(엑셀 기준)로 변환한다. 구글 엑셀에서는 마우스 우클릭 -&amp;gt; 표로 변환을 누르면 간편하게 표를 만들 수 있다&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-sheets-named-table=&quot;{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:3500116}},&amp;quot;2&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215}},&amp;quot;3&amp;quot;:1,&amp;quot;4&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16185593}},&amp;quot;5&amp;quot;:1}},&amp;quot;2&amp;quot;:&amp;quot;식품 리스트&amp;quot;,&amp;quot;3&amp;quot;:[{&amp;quot;1&amp;quot;:0,&amp;quot;2&amp;quot;:1,&amp;quot;3&amp;quot;:{&amp;quot;2&amp;quot;:2},&amp;quot;4&amp;quot;:4}],&amp;quot;5&amp;quot;:{&amp;quot;1&amp;quot;:62,&amp;quot;3&amp;quot;:0,&amp;quot;4&amp;quot;:1,&amp;quot;5&amp;quot;:0,&amp;quot;6&amp;quot;:0,&amp;quot;7&amp;quot;:0}}&quot; data-sheets-named-table-range=&quot;A2:D5&quot; data-sheets-original-selection=&quot;A2:D5&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;상품명&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;카테고리&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;판매가&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;재고량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;무선 키보드&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;전자&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;45,000&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;사과&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;9900&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  2. 정렬 (Sort) - 원하는 순서로 줄 세우기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 표를 만들었으니 이번에는 표를 만든 후 생긴 화살표를 이용해 데이터를 나열 할 수 있다, '판매가/kg 당' 제목 옆에 작은 화살표를 눌러 &lt;b&gt;열 정렬 -&amp;gt; [오름차순 정렬]&lt;/b&gt;을 누르면 높은 가격 순,&amp;nbsp;&lt;b&gt;[내림차순 정렬]&lt;/b&gt;이면 낮은 가격 순으로 정렬된다&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 84px;&quot; border=&quot;1&quot; data-sheets-named-table=&quot;{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:3500116}},&amp;quot;2&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215}},&amp;quot;3&amp;quot;:1,&amp;quot;4&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16185593}},&amp;quot;5&amp;quot;:1}},&amp;quot;2&amp;quot;:&amp;quot;식품 리스트&amp;quot;,&amp;quot;3&amp;quot;:[{&amp;quot;1&amp;quot;:0,&amp;quot;2&amp;quot;:1,&amp;quot;3&amp;quot;:{&amp;quot;2&amp;quot;:2},&amp;quot;4&amp;quot;:4}],&amp;quot;5&amp;quot;:{&amp;quot;1&amp;quot;:62,&amp;quot;3&amp;quot;:0,&amp;quot;4&amp;quot;:1,&amp;quot;5&amp;quot;:0,&amp;quot;6&amp;quot;:0,&amp;quot;7&amp;quot;:0}}&quot; data-sheets-named-table-range=&quot;A2:D5&quot; data-sheets-original-selection=&quot;A2:D5&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; height: 21px;&quot;&gt;상품명&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; height: 21px;&quot;&gt;카테고리&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; height: 21px;&quot;&gt;판매가(정렬 &amp;darr;)&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; height: 21px;&quot;&gt;재고량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; height: 21px;&quot;&gt;배&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; height: 21px;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; height: 21px;&quot;&gt;7900&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; height: 21px;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; height: 21px;&quot;&gt;사과&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; height: 21px;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right; height: 21px;&quot;&gt;9900&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right; height: 21px;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; height: 21px;&quot;&gt;무선 키보드&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; height: 21px;&quot;&gt;전자&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; height: 21px;&quot;&gt;45,000&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; height: 21px;&quot;&gt;10&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;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-sheets-named-table=&quot;{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:3500116}},&amp;quot;2&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215}},&amp;quot;3&amp;quot;:1,&amp;quot;4&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16185593}},&amp;quot;5&amp;quot;:1}},&amp;quot;2&amp;quot;:&amp;quot;식품 리스트&amp;quot;,&amp;quot;3&amp;quot;:[{&amp;quot;1&amp;quot;:0,&amp;quot;2&amp;quot;:1,&amp;quot;3&amp;quot;:{&amp;quot;2&amp;quot;:2},&amp;quot;4&amp;quot;:4}],&amp;quot;5&amp;quot;:{&amp;quot;1&amp;quot;:62,&amp;quot;3&amp;quot;:0,&amp;quot;4&amp;quot;:1,&amp;quot;5&amp;quot;:0,&amp;quot;6&amp;quot;:0,&amp;quot;7&amp;quot;:0}}&quot; data-sheets-named-table-range=&quot;A2:D5&quot; data-sheets-original-selection=&quot;A2:D5&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;상품명&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;카테고리&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;판매가(정렬 &amp;uarr;)&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;재고량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;무선 키보드&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;전자&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;45,000&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;사과&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;9900&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;배&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;7900&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  3. 필터 (Filter) - 필요한 것만 골라내기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표의 화살표 버튼을 이용하여 필터 기능도 구현할 수 있다, 상품명 옆에 화살표를 클릭해 아래 목록에 '배'와 '사과'만 체크하고 '무선 키보드'를 체크 해제한 뒤 &lt;b&gt;[확인]&lt;/b&gt;을 누르면 사과와 배만 필터링된다&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-sheets-named-table=&quot;{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:3500116}},&amp;quot;2&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215}},&amp;quot;3&amp;quot;:1,&amp;quot;4&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16185593}},&amp;quot;5&amp;quot;:1}},&amp;quot;2&amp;quot;:&amp;quot;식품 리스트&amp;quot;,&amp;quot;3&amp;quot;:[{&amp;quot;1&amp;quot;:0,&amp;quot;2&amp;quot;:1,&amp;quot;3&amp;quot;:{&amp;quot;2&amp;quot;:2},&amp;quot;4&amp;quot;:4}],&amp;quot;5&amp;quot;:{&amp;quot;1&amp;quot;:62,&amp;quot;3&amp;quot;:0,&amp;quot;4&amp;quot;:1,&amp;quot;5&amp;quot;:0,&amp;quot;6&amp;quot;:0,&amp;quot;7&amp;quot;:0}}&quot; data-sheets-named-table-range=&quot;A2:D4&quot; data-sheets-original-selection=&quot;A2:D4&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;상품명&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;카테고리&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;판매가&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff;&quot;&gt;재고량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;사과&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;9900&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;배&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;7900&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  4. 조건부 서식 (Formatting) - 자동 강조&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번엔 재고가 부족하다면 셀 색상을 자동으로 변하게 할 수 있다, '재고량' 숫자 칸들을 전부 드래그하고 메뉴에&lt;b&gt; [서식] -&amp;gt; [조건부 서식]&lt;/b&gt;을 클릭하면 우측 설정창이 뜨고&amp;nbsp;&lt;b&gt;[텍스트에 포함]&lt;/b&gt; 선택 -&amp;gt; 아래 칸에&amp;nbsp;&lt;b&gt;품절&lt;/b&gt;이라고 타이핑 -&amp;gt; '채우기 색'을 빨간색으로 선택하고 완료를 눌러보면 아래 처럼 글씨가 강조된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-sheets-named-table=&quot;{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:3500116}},&amp;quot;2&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215}},&amp;quot;3&amp;quot;:1,&amp;quot;4&amp;quot;:{&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16185593}},&amp;quot;5&amp;quot;:1}},&amp;quot;2&amp;quot;:&amp;quot;식품 리스트&amp;quot;,&amp;quot;3&amp;quot;:[{&amp;quot;1&amp;quot;:0,&amp;quot;2&amp;quot;:1,&amp;quot;3&amp;quot;:{&amp;quot;2&amp;quot;:2},&amp;quot;4&amp;quot;:4}],&amp;quot;5&amp;quot;:{&amp;quot;1&amp;quot;:62,&amp;quot;3&amp;quot;:0,&amp;quot;4&amp;quot;:1,&amp;quot;5&amp;quot;:0,&amp;quot;6&amp;quot;:0,&amp;quot;7&amp;quot;:0}}&quot; data-sheets-named-table-range=&quot;A2:D6&quot; data-sheets-original-selection=&quot;A2:E6&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; width: 30.814%;&quot;&gt;상품명&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; width: 24.6512%;&quot;&gt;카테고리&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; width: 21.5116%;&quot;&gt;판매가&lt;/td&gt;
&lt;td style=&quot;background-color: #356854; color: #ffffff; width: 22.907%;&quot;&gt;재고량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; width: 30.814%;&quot;&gt;무선 키보드&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; width: 24.6512%;&quot;&gt;전자&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; width: 21.5116%;&quot;&gt;45,000&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; width: 22.907%;&quot;&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; width: 30.814%;&quot;&gt;사과&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; width: 24.6512%;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right; width: 21.5116%;&quot;&gt;9900&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right; width: 22.907%;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; width: 30.814%;&quot;&gt;배&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; width: 24.6512%;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; width: 21.5116%;&quot;&gt;7900&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #434343; text-align: right; width: 22.907%;&quot;&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; width: 30.814%;&quot;&gt;포도&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; width: 24.6512%;&quot;&gt;식품&lt;/td&gt;
&lt;td style=&quot;background-color: #f6f8f9; color: #434343; text-align: right; width: 21.5116%;&quot;&gt;6,900&lt;/td&gt;
&lt;td style=&quot;background-color: #ff0000; color: #ffffff; text-align: right; width: 22.907%;&quot;&gt;0 (품절)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1774921355303&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;엑셀 공부 프로젝트&quot; data-og-description=&quot;이 브라우저 버전은 더 이상 지원되지 않습니다. 지원되는 브라우저로 업그레이드하세요.&quot; data-og-host=&quot;docs.google.com&quot; data-og-source-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot; data-og-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&amp;amp;usp=embed_facebook&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dJ7nfA/dJMb9b3SanO/jSYANWWXKApw56Db3Istn0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dJ7nfA/dJMb9b3SanO/jSYANWWXKApw56Db3Istn0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;엑셀 공부 프로젝트&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;docs.google.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>엑셀/엑셀 공부</category>
      <category>엑셀</category>
      <category>정리기능</category>
      <category>표</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/460</guid>
      <comments>https://thinky.tistory.com/460#entry460comment</comments>
      <pubDate>Tue, 31 Mar 2026 10:42:48 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀 공부] 기본 함수</title>
      <link>https://thinky.tistory.com/459</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀에서 가장 많이 사용하는 기본 함수에 대해 알아보고자 한다, 카테고리에 맞게 각각 어느 기능인지 알아보겠다, 우선 실무에서 바로 사용할 수 있는 대표적인 함수로는 4가지 정도가 있다, IF 함수, SUMIF 함수, VLOOKUP 함수, LEFT/RIGHT/MID 함수 등이 있으며 이러한 함수들은 실무에서 자주 써먹는다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 143px;&quot; border=&quot;1&quot; data-sheets-baot=&quot;1&quot; data-sheets-root=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 17px;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 17px;&quot;&gt;A&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;B&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 17px;&quot;&gt;C&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 17px;&quot;&gt;D&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 17px;&quot;&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: left; width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 17.5%; height: 21px;&quot;&gt;ID&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 13.0233%; height: 21px;&quot;&gt;이름&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 17.093%; height: 21px;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 13.0233%; height: 21px;&quot;&gt;나이&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 17.093%; height: 21px;&quot;&gt;성체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;Maltese-01&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;까미&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;강아지&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;어린이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;Munchkin-02&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;꾸꾸&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;고양이&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;어린이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;Foodle-03&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;보리&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;강아지&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;성체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;Scottish-04&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;치치&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;고양이&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;성체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.5%; height: 21px;&quot;&gt;Pomeranian-05&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;콩이&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&gt;강아지&lt;/td&gt;
&lt;td style=&quot;width: 13.0233%; height: 21px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 17.093%; height: 21px;&quot;&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  IF 함수 (조건 판단)&lt;/b&gt;&lt;/h4&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살 이상이면 &quot;성체&quot;, 아니면 &quot;어린이&quot;로 분류&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설정&lt;/b&gt;: 구글 기준&amp;nbsp;&lt;b&gt;[파일] &amp;gt; [설정]&lt;/b&gt;으로 이동&amp;nbsp;&lt;b&gt;[계산]&lt;/b&gt;탭에서&amp;nbsp;&lt;b&gt;반복 계산(Iterative calculation)&lt;/b&gt;을&amp;nbsp;&lt;b&gt;'사용'&lt;/b&gt;으로 설정 후 최대 반복 횟수를 기본값(100)으로 설정&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수식:&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; =IF(D3&amp;gt;=3, &quot;성체&quot;, &quot;어린이&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과:&amp;nbsp;&lt;/b&gt;보리(4세) -&amp;gt; 성체 / 꾸꾸(2세) -&amp;gt; 어린이&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt; &amp;nbsp;&lt;b&gt;SUMIF 함수 (조건부 합계)&lt;/b&gt;&lt;/h4&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;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;수식: =SUMIF(C3:C7,&amp;nbsp;&quot;강아지&quot;,&amp;nbsp;D3:D7)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과&lt;/b&gt;: 4 (보리 3 + 꾸꾸 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt; &amp;nbsp;&lt;b&gt;VLOOKUP 함수(데이터 검색)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;사용 목적:&amp;nbsp;&lt;/b&gt;ID가 &quot;Maltese-01&quot;인 동물 이름 찾기&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;수식 :=VLOOKUP(&quot;Munchkin-02&quot;,&amp;nbsp;A2:C7,&amp;nbsp;2,&amp;nbsp;FALSE)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과:&amp;nbsp;&lt;/b&gt;치치 (A열에서 Scottish-04를 찾아 2번째 열인 이름 반환)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;  LEFT / RIGHT / MID 함수 (텍스트 추출)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LEFT (종류 코드 추출)&lt;/b&gt;: ID에서 앞 글자 3개를 추출&amp;nbsp;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;수식: =LEFT(A3,&amp;nbsp;3)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과:&amp;nbsp;&lt;/b&gt;Mal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RIGHT (일련번호 추출)&lt;/b&gt;: ID에서 뒤 2글자 (일련번호) 추출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;수식: =RIGHT(A3, 2)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과:&amp;nbsp;&lt;/b&gt;01&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MID (분류 코드 추출)&lt;/b&gt;: ID에서 5번째 위치부터 2글자 추출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;수식: =MID(A3, 5, 2)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과:&amp;nbsp;&lt;/b&gt;es (Malt&lt;b&gt;es&lt;/b&gt;e-01에서&amp;nbsp;&lt;b&gt;es&lt;/b&gt; 추출)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1774841281599&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;엑셀 공부 프로젝트&quot; data-og-description=&quot;이 브라우저 버전은 더 이상 지원되지 않습니다. 지원되는 브라우저로 업그레이드하세요.&quot; data-og-host=&quot;docs.google.com&quot; data-og-source-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot; data-og-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&amp;amp;usp=embed_facebook&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bnVWWC/dJMb9lk68Wn/fG4ufgSDdfRu8i7NBB5HY0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.google.com/spreadsheets/d/1q3jsZXdupUuBkZ4gd3zIRZojmC-OXuPS8pSTli89yYE/edit?usp=sharing&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bnVWWC/dJMb9lk68Wn/fG4ufgSDdfRu8i7NBB5HY0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;엑셀 공부 프로젝트&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;docs.google.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>엑셀/엑셀 공부</category>
      <category>기본 함수</category>
      <category>엑셀</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/459</guid>
      <comments>https://thinky.tistory.com/459#entry459comment</comments>
      <pubDate>Mon, 30 Mar 2026 12:24:02 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀 공부] 기본 입력 &amp;amp; 조작</title>
      <link>https://thinky.tistory.com/458</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀의 핵심인 기본 입력 및 조작 방법에 대해 알아보도록 하겠다. 먼저 엑셀의 기초인 셀(Cell), 열(Column), 행(Row), 범위(Range)가 있으며 이들은 엑셀의 거대한 표(Grid) 역할을 한다. 이 표를 구성하는 가장 작은 단위를 이해하는 것이 엑셀의 첫 시작이라고 볼 수 있다.&lt;/p&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;스크린샷 2026-03-27 161710.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cizlkJ/dJMcabjlNzz/QO2575CMfMvI65x6dG87e0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cizlkJ/dJMcabjlNzz/QO2575CMfMvI65x6dG87e0/img.png&quot; data-alt=&quot;A열과 1행&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cizlkJ/dJMcabjlNzz/QO2575CMfMvI65x6dG87e0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcizlkJ%2FdJMcabjlNzz%2FQO2575CMfMvI65x6dG87e0%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;212&quot; height=&quot;112&quot; data-filename=&quot;스크린샷 2026-03-27 161710.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;A열과 1행&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀은 행과 열이 만나는 작은 상자로 데이터가 입력되는 최소 단위이다 A열과 1행이 만나는 곳이 바로&amp;nbsp;&lt;b&gt;A1&lt;/b&gt; 셀이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 161943.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L9yJt/dJMcaipd0ZF/HmOWGqR4lpzcqhAHrDo301/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L9yJt/dJMcaipd0ZF/HmOWGqR4lpzcqhAHrDo301/img.png&quot; data-alt=&quot;알파벳으로 표시되는 열(Column)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L9yJt/dJMcaipd0ZF/HmOWGqR4lpzcqhAHrDo301/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL9yJt%2FdJMcaipd0ZF%2FHmOWGqR4lpzcqhAHrDo301%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;588&quot; height=&quot;81&quot; data-filename=&quot;스크린샷 2026-03-27 161943.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;알파벳으로 표시되는 열(Column)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열은 세로줄이며, 영어 알파벳(A, B, C...)등으로 표시된다,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 162046.png&quot; data-origin-width=&quot;207&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SsEJx/dJMcahw5BTB/pfXKMuxpPYb4dFPv3IF1uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SsEJx/dJMcahw5BTB/pfXKMuxpPYb4dFPv3IF1uK/img.png&quot; data-alt=&quot;숫자로 표시되는 행(Row)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SsEJx/dJMcahw5BTB/pfXKMuxpPYb4dFPv3IF1uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSsEJx%2FdJMcahw5BTB%2FpfXKMuxpPYb4dFPv3IF1uK%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;207&quot; height=&quot;260&quot; data-filename=&quot;스크린샷 2026-03-27 162046.png&quot; data-origin-width=&quot;207&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;숫자로 표시되는 행(Row)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행은 가로줄이며, 숫자(1, 2, 3...)으로 표시된다, 예를 들어 1번 행에서 6번 행까지 SHIFT+클릭 시 전체 영역이 선택된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 162320.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JLgSb/dJMcagEXBbZ/M9yLciKcNd9MK3Smu0yza0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JLgSb/dJMcagEXBbZ/M9yLciKcNd9MK3Smu0yza0/img.png&quot; data-alt=&quot;SHIFT + 클릭으로 1~8까지의 행과 열에 영역을 전체 선택&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JLgSb/dJMcagEXBbZ/M9yLciKcNd9MK3Smu0yza0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJLgSb%2FdJMcagEXBbZ%2FM9yLciKcNd9MK3Smu0yza0%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;1800&quot; height=&quot;318&quot; data-filename=&quot;스크린샷 2026-03-27 162320.png&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SHIFT + 클릭으로 1~8까지의 행과 열에 영역을 전체 선택&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;범위(Range)는 여러 셀을 선택한 묶음으로 A1:C5 드래그해서 선택하거나 SHIFT + 클릭으로 해당 영역을 전체선택 할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번엔 엑셀에 데이터를 입력해서 수정 및 삭제를 해보겠다. 먼저 엑셀에 데이터를 입력하려면 셀을 클릭해 내용을 입력하고 Enter(아래로 이동) 또는 Tab (오른쪽으로 이동)하고 줄 바꿈을 하기 위해서 Alt + Enter를 사용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;389&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8H5jm/dJMcac3zPHo/Wz4UjjG75el680OSdi3RU0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8H5jm/dJMcac3zPHo/Wz4UjjG75el680OSdi3RU0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8H5jm/dJMcac3zPHo/Wz4UjjG75el680OSdi3RU0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/b8H5jm/dJMcac3zPHo/Wz4UjjG75el680OSdi3RU0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;216&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;389&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 수정하거나 삭제하는 방법은 다음과 같다 굳이 보여주지 않아도 알 것 같아 단축키만 정리해 보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt; &amp;nbsp;&lt;b&gt;데이터 수정&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;해당 칸 더블 클릭&lt;/b&gt;: 해당되는 셀을 더블 클릭하여 내용을 수정&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F2 단축키:&amp;nbsp;&lt;/b&gt;셀을 선택하고 F2를 누르면 수정 모드로 전환&lt;/li&gt;
&lt;li&gt;&lt;b&gt;수식 입력줄&lt;/b&gt;: 상단 fx 수식 입력줄에서 수정&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;  데이터 삭제&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Del (Delete) 키&lt;/b&gt;: 셀의 내용만 지우고 서식은 남김&lt;/li&gt;
&lt;li&gt;&lt;b&gt;셀 우클릭 -&amp;gt; 삭제&lt;/b&gt;: 셀 자체를 없애고 아래/오른쪽 셀을 당겨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M00W8/dJMcagx9dDb/kkBXZ4kKB9U2Yfn9xI10A0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M00W8/dJMcagx9dDb/kkBXZ4kKB9U2Yfn9xI10A0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M00W8/dJMcagx9dDb/kkBXZ4kKB9U2Yfn9xI10A0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/M00W8/dJMcagx9dDb/kkBXZ4kKB9U2Yfn9xI10A0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;331&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순 복사 외에도 다양한 복사 붙여 넣기 기능도 있다 일반 붙여 넣기(Ctrl&lt;b&gt; + V&lt;/b&gt;)는 내용과 서식을 모두 복사하고 값으로 붙여 넣기(123)은 수식을 제외하고 &quot;결괏값&quot;만 붙여 넣고, 가로 데이터를 세로로, 세로 데이터를 가로로 바꿀 땐 &lt;b&gt;행/열 바꿈&lt;/b&gt;을 사용한다 (우클릭-선택하여 붙여 넣기- 행/열 바꿈)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxwn7T/dJMb99Mya8R/lebSCHKmFDsSUrUOK0Iee0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxwn7T/dJMb99Mya8R/lebSCHKmFDsSUrUOK0Iee0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxwn7T/dJMb99Mya8R/lebSCHKmFDsSUrUOK0Iee0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bxwn7T/dJMb99Mya8R/lebSCHKmFDsSUrUOK0Iee0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;358&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3sosv/dJMcaarccC7/G5FqKPgqnyfEtG295FuCb0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3sosv/dJMcaarccC7/G5FqKPgqnyfEtG295FuCb0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3sosv/dJMcaarccC7/G5FqKPgqnyfEtG295FuCb0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/c3sosv/dJMcaarccC7/G5FqKPgqnyfEtG295FuCb0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;358&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TV4yH/dJMcadVHEyV/ftNUkxUt0PH3HBu7Zf7ULK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TV4yH/dJMcadVHEyV/ftNUkxUt0PH3HBu7Zf7ULK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TV4yH/dJMcadVHEyV/ftNUkxUt0PH3HBu7Zf7ULK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/TV4yH/dJMcadVHEyV/ftNUkxUt0PH3HBu7Zf7ULK/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;358&quot; data-filename=&quot;캡처.gif&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;815&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;동일 내용 복사하기:&amp;nbsp;&lt;/b&gt;해당 문자를 입력 후 드래그&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;숫자 증가시키며 복사&lt;/b&gt;:&amp;nbsp;&lt;b&gt;Ctrl&lt;/b&gt; 키를 누른 채 드래그&amp;nbsp;&lt;/li&gt;
&lt;/ul&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;일반 저장:&amp;nbsp;&lt;/b&gt;Ctrl + S&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다른 이름으로 저장:&amp;nbsp;&lt;/b&gt;F12 (파일 위치, 이름, 형식 변경), ✅ 기본 엑셀만 해당&lt;/li&gt;
&lt;li&gt;&lt;b&gt;파일 형식:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;.xlsx:&amp;nbsp;&lt;/b&gt;일반 엑셀 통합 문서&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.csv:&lt;/b&gt; 쉼표로 구분된 텍스트 파일 (데이터 호환용)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>엑셀/엑셀 공부</category>
      <category>기본 입력</category>
      <category>엑셀</category>
      <category>조작</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/458</guid>
      <comments>https://thinky.tistory.com/458#entry458comment</comments>
      <pubDate>Fri, 27 Mar 2026 18:59:48 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] New Javascript 15장 - 프로미스와 비동기 작업(Promise, async/await)</title>
      <link>https://thinky.tistory.com/457</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img1.daumcdn.jpg&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqE5A2/dJMcah4UJas/zQkoYKVPyLnWnet7v4wj81/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqE5A2/dJMcah4UJas/zQkoYKVPyLnWnet7v4wj81/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqE5A2/dJMcah4UJas/zQkoYKVPyLnWnet7v4wj81/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqE5A2%2FdJMcah4UJas%2FzQkoYKVPyLnWnet7v4wj81%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;630&quot; height=&quot;630&quot; data-filename=&quot;img1.daumcdn.jpg&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;1. 비동기 작업이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트는 기본적으로&amp;nbsp;&lt;b&gt;싱글 스레드(Single thread)&lt;/b&gt;로 동작하는 언어로, 한 번에 하나의 작업만 처리할 수 있습니다. 그런데 시간이 오래 걸리는 작업까지 순서대로 기다리면 전체 실행 속도가 매우 느려집니다. 그래서 이러한 문제를 해결하기 위해 등장한 것이 바로&amp;nbsp;&lt;b&gt;비동기 처리&lt;/b&gt;입니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1774575214042&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 1. 비동기 작업 시작
console.log(&quot;비동기 작업을 시작합니다&quot;);

// 2. 비동기 작업 시뮬레이션 (예: API 호출, 파일 읽기 등)
setTimeout(() =&amp;gt; {
  console.log(&quot;5초 후 실행&quot;);
}, 5000);

console.log(&quot;비동기 작업 종료&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡️&lt;b&gt; 실행 결과&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774575231168&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;비동기 작업을 시작합니다
비동기 작업 종료
5초 후 실행&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;size16&quot;&gt;  시간이 걸리는 작업은 뒤로 미루고 나머지 코드를 먼저 실행하는 구조&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 2. 콜백 함수 방식&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비동기 작업은 처음에&amp;nbsp;&lt;b&gt;콜백 함수&lt;/b&gt;로 처리했습니다, 그러나 문제는 작업이 많아질수록 코드가 늘어나 유지보수가 어려워집니다.&lt;/p&gt;
&lt;pre id=&quot;code_1774575484726&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function work(callback) {
  setTimeout(() =&amp;gt; {
    console.log(&quot;작업 완료&quot;);
    callback();
  }, 1000);

  work(() =&amp;gt; {
    console.log(&quot;다음 작업&quot;);
  });
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1774575599233&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;setTimeout(() =&amp;gt; {
  console.log(&quot;1&quot;);

  setTimeout(() =&amp;gt; {
    console.log(&quot;2&quot;);
    setTimeout(() =&amp;gt; {
      console.log(&quot;3&quot;);
    }, 1000);
  }, 1000);
}, 1000);&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;size16&quot;&gt;  이 것을&amp;nbsp;&lt;b&gt;콜백 지옥&lt;/b&gt;이라고 한다. 가독성이 떨어지고 유지보수의 최악&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;3. Promise의 등장&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한&amp;nbsp;&lt;b&gt;콜백 지옥&lt;/b&gt;을 해결하기 위해&amp;nbsp;&lt;b&gt;Promise(약속)&lt;/b&gt;이 등장하였습니다&amp;nbsp;&lt;b&gt;Pomise&lt;/b&gt;는 &quot;비동기 작업이 끝나면 결과를 알려주겠다&quot;라는 약속을 의미하는 객체입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1774575926269&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const promise = new Promise((resolve, reject) =&amp;gt; {
  const success = true; // 성공 여부를 나타내는 변수

  if (success) {
    resolve(&quot;작업이 성공적으로 완료되었습니다.&quot;); // 작업이 성공했을 때 resolve 호출
  } else {
    reject(&quot;작업이 실패했습니다.&quot;); // 작업이 실패했을 때 reject 호출
  }
});&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;size16&quot;&gt; &amp;nbsp;&lt;b&gt;핵심 &lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;resolve &amp;rarr; 성공&lt;/li&gt;
&lt;li&gt;reject &amp;rarr; 실패&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 4. Promise 결과 출력&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1774576173253&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const promise = new Promise((resolve, reject) =&amp;gt; {
  resolve(&quot;작업이 성공적으로 완료되었습니다.&quot;);
});

promise
  .then((result) =&amp;gt; {
    console.log(result);
  })
  .catch((error) =&amp;gt; {
    console.log(error);
  });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡️&amp;nbsp;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774576215886&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;작업이 성공적으로 완료되었습니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 5. 실패 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1774576306796&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 실패 예시
const promise = new Promise((resolve, reject) =&amp;gt; {
  reject(&quot;에러 발생&quot;);
});

promise
  .then((result) =&amp;gt; {
    console.log(result);
  })
  .catch((error) =&amp;gt; {
    console.log(error);
  });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡️&amp;nbsp;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774576333343&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;에러 발생&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt; then&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;실패 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; catch &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ &lt;b&gt;6. Promise 체이닝&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1774576759739&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Promise 체이닝
new Promise((resolve) =&amp;gt; {
  resolve(10);
})
  .then((num) =&amp;gt; num * 2) // 10 * 2 = 20
  .then((num) =&amp;gt; num + 5) // 20 + 5 = 25
  .then((num) =&amp;gt; {
    console.log(num); // 25
  });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;➡️&lt;b&gt;실행 결과&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774576791227&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;25&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt; &amp;nbsp;&lt;b&gt;흐름&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10 &amp;rarr;&amp;nbsp; 20 &amp;rarr; 25 &amp;rarr;&amp;nbsp; 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  콜백처럼 중첩이 필요하지 않음&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 7. async / await (더 쉽게 사용)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;  &lt;b&gt;async&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774576979993&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;async function test() {
  return &quot;Hello, Async/Await!&quot;;
}

// 출력
test().then(console.log); // Hello, Async/Await!&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;size16&quot;&gt;  async 함수는 Promise를 반환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt; &amp;nbsp;&lt;b&gt;await&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1774577135282&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function delay(ms) {
  return new Promise((resolve) =&amp;gt;
    setTimeout(() =&amp;gt; resolve(&quot;Delayed Result&quot;), ms),
  );
}

async function run() {
  const result = await delay(1000);
  console.log(result); // Delayed Result (1초 후 출력)
}

run(); // run() 호출하여 async 함수 실행&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;size16&quot;&gt;&amp;nbsp;  await = 결과 나올 때까지 기다림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅&lt;/b&gt; &lt;b&gt;8. 에러 처리&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1774577527893&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;async function fetchData() {
  try {
    // 에러 처리
    const result = await Promise.reject(&quot;에러&quot;);
    console.log(result); // 에러 출력
  } catch (e) {
    console.error(&quot;Error fetching data:&quot;, e); // 에러 출력
  }
}

// 실행
fetchData();&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;size16&quot;&gt;  async/await에서는 try-catch를 사용&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;nbsp;✅ 핵심 정리&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비동기 = 기다리지 않고 다음 코드를 실행&lt;/li&gt;
&lt;li&gt;콜백 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&amp;nbsp;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;Promise &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&amp;nbsp;&lt;span&gt; async/await 순으로 발전&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Promise는 try/catch 사용&lt;/li&gt;
&lt;li&gt;async/await는 더 읽기 쉬운 방식&lt;/li&gt;
&lt;li&gt;에러는 catch 또는 try-catch로 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;figure id=&quot;og_1774577891763&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&quot; data-og-description=&quot;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nhRnM/dJMb8Wezo7a/bHYCknzR0CI6SRMuFJQfi1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/brsqPU/dJMb8QMbJS9/RJK9MW9dmPVzybYKUoFsL0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/javascript-only/newJSRoom&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nhRnM/dJMb8Wezo7a/bHYCknzR0CI6SRMuFJQfi1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/brsqPU/dJMb8QMbJS9/RJK9MW9dmPVzybYKUoFsL0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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>Front-End/JavaScript</category>
      <category>async</category>
      <category>Await</category>
      <category>PROMISE</category>
      <category>비동기작업</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/457</guid>
      <comments>https://thinky.tistory.com/457#entry457comment</comments>
      <pubDate>Fri, 27 Mar 2026 11:18:19 +0900</pubDate>
    </item>
    <item>
      <title>[엑셀 공부] excel을 시작한 이유</title>
      <link>https://thinky.tistory.com/456</link>
      <description>&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;243&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xaWUp/dJMcahw43or/sNT4XhNcmt5WmKbb9obzx1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xaWUp/dJMcahw43or/sNT4XhNcmt5WmKbb9obzx1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xaWUp/dJMcahw43or/sNT4XhNcmt5WmKbb9obzx1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxaWUp%2FdJMcahw43or%2FsNT4XhNcmt5WmKbb9obzx1%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;243&quot; height=&quot;250&quot; data-origin-width=&quot;243&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음이라 부담 없이 웹용 엑셀로 시작했다, 브라우저에서 설치 없이 바로 사용이 가능하기에 연습하기 편했고 엑셀을 처음 켜보니 셀,행,열 구조가 눈에 들어왔다, A,B,C 같은 열과 숫자로 된 행이 있고, 그 안에 데이터를 입력하는 방식이었고, 우선 기본적으로 입력하고 저장하는 것부터 익히는데 집중했다. 우선 간단하게 표를 하나 직접 만들어 봤다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 092557.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhuOcg/dJMcagx8vLW/x6O9BtJ6KjThDOPbA3sf7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhuOcg/dJMcagx8vLW/x6O9BtJ6KjThDOPbA3sf7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhuOcg/dJMcagx8vLW/x6O9BtJ6KjThDOPbA3sf7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhuOcg%2FdJMcagx8vLW%2Fx6O9BtJ6KjThDOPbA3sf7k%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;358&quot; height=&quot;172&quot; data-filename=&quot;스크린샷 2026-03-27 092557.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;172&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 092850.png&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGWQcO/dJMcagEW2FI/RFmcDK0l8pKz8l11BCUAS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGWQcO/dJMcagEW2FI/RFmcDK0l8pKz8l11BCUAS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGWQcO/dJMcagEW2FI/RFmcDK0l8pKz8l11BCUAS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGWQcO%2FdJMcagEW2FI%2FRFmcDK0l8pKz8l11BCUAS0%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;369&quot; height=&quot;237&quot; data-filename=&quot;스크린샷 2026-03-27 092850.png&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;=SUM(B2:B4)&amp;nbsp;&lt;/b&gt;이식을 입력하고 엔터를 누르니 자동으로 총점이 계산되었다, 직접 더하지 않아도 되는 게 생각보다 편했고 이번엔 B열의 3개의 점수의 평균도 같이 구해보았다 &lt;b&gt;B&lt;/b&gt;열 밑에 빈 칸을 클릭하고 &lt;b&gt;=AVERAGE(B2:B4)&lt;/b&gt;를 입력하면&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-03-27 093343.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgRGFs/dJMcajaxvrc/xZmiYCtXYLiwNgm7sMwAc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgRGFs/dJMcajaxvrc/xZmiYCtXYLiwNgm7sMwAc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgRGFs/dJMcajaxvrc/xZmiYCtXYLiwNgm7sMwAc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgRGFs%2FdJMcajaxvrc%2FxZmiYCtXYLiwNgm7sMwAc1%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;416&quot; height=&quot;284&quot; data-filename=&quot;스크린샷 2026-03-27 093343.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 평균 점수도 나온다, 처음에는 그냥 숫자 적는 프로그램 정도로만 생각했는데, 함수 하나만 써도 훨씬 편해지는 느낌이었다, 으늘은 기본적인 것만 확인해보고 앞으로 하나씩 배운 것을 이렇게 정리하고자 한다. 다음에는 SUM이랑 IF 함수를 조금 더 써보면서 익혀볼 생각이다.&lt;/p&gt;</description>
      <category>엑셀/엑셀 공부</category>
      <category>excel</category>
      <category>기본함수</category>
      <category>엑셀</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/456</guid>
      <comments>https://thinky.tistory.com/456#entry456comment</comments>
      <pubDate>Fri, 27 Mar 2026 09:36:28 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] New Javascript 14장 - Symbol (심볼)</title>
      <link>https://thinky.tistory.com/455</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mQew3/btsQxfTUMCZ/WOdAL8lKB6ykK4r5GBxrU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mQew3/btsQxfTUMCZ/WOdAL8lKB6ykK4r5GBxrU1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mQew3/btsQxfTUMCZ/WOdAL8lKB6ykK4r5GBxrU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmQew3%2FbtsQxfTUMCZ%2FWOdAL8lKB6ykK4r5GBxrU1%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;630&quot; height=&quot;630&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;1.&amp;nbsp; Symbol(심볼) 이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Symbol&lt;/b&gt;은 자바스크립트&amp;nbsp;&lt;b&gt;ES6&lt;/b&gt;에 도입된 원시 타입(Primitive Type)중 하나로 고유하고 변경 불가능한 값입니다. 주로&amp;nbsp;&lt;b&gt;객체의 키(Key)&lt;/b&gt;로 사용해 충돌을 방지할 때 활용됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1757900149894&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const id = Symbol(&quot;id&quot;);
console.log(id); // Symbol(id)
console.log(typeof id); // symbol&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;✅ 2. Symbol 특징&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;고유성 보장:&amp;nbsp;&lt;/b&gt;같은 설명(description)을 줘도 하상 다른 값을 반환함&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1757900343612&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const a = Symbol(&quot;test&quot;);
const b = Symbol(&quot;test&quot;);

console.log(a === b); // false&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;문자열 변환 불가:&lt;/b&gt; 자동으로 문자열이 반환되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1757900444398&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const sym = Symbol(&quot;hello&quot;);
console.log(sym.toString()); // Symbol(hello)&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;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;3. 객체&amp;nbsp; 속성에서 활용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체의 키로&amp;nbsp;&lt;b&gt;Symbol&lt;/b&gt;을 사용해 충돌 없이 안전한 속성을 만들 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1757900591345&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Symbol 오브젝트
const userId = Symbol(&quot;userId&quot;);

const user = {
  name: &quot;John Doe&quot;,
  [userId]: &quot;2130412&quot;, // 심볼을 키로 사용 가능
};

console.log(user.name); // John Doe
console.log(user[userId]); // 2130412&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;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;4. 심볼의 내장 심볼(Well-known Symbols)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트는 여러 특수 동작을 정의하는 내장 심볼을 제공합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1757900725570&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 심볼의 내장 심볼
const myObj = {
  [Symbol.toStringTag]: &quot;MyObject&quot;,
};

console.log(Object.prototype.toString.call(myObj)); // [object MyObject]&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;Symbol.iterator&lt;/b&gt;: 반복 가능 객체 정의&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Symbol.toStringTag:&amp;nbsp;&lt;/b&gt;객체의 기본 문자열 태그 지정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Symbol.hasInstance: instanceof&lt;/b&gt; 동작 정의&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;5. Symbol.for() 와 전역 심볼&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1757900832293&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const a = Symbol.for(&quot;shared&quot;);
const b = Symbol.for(&quot;shared&quot;);

console.log(a === b); // true&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;Symbol() :&amp;nbsp;&lt;/b&gt;매번 새로운 심볼을 생성&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Symbol.for(&quot;key&quot;):&amp;nbsp;&lt;/b&gt;전역 심볼 레지스트리에서 관리 -&amp;gt; 같은 키일 시 같은 심볼 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅&amp;nbsp;&lt;b&gt;정리&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Symbol&lt;/b&gt;은 유일무이한 값으로 객체의 키 충돌 방지용으로 유용함&lt;/li&gt;
&lt;li&gt;내장 심볼을 활용 시 JS의 내부 동작을 커스터마이징 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1757901006873&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&quot; data-og-description=&quot;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-url=&quot;https://github.com/javascript-only/newJSRoom&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bAT21U/hyZJqcAZba/UKh42VAapfI3KR8jR77OS0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bXgYda/hyZIPLRans/m8N210FX4djdaEzMwSt5tK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/javascript-only/newJSRoom&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/javascript-only/newJSRoom&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bAT21U/hyZJqcAZba/UKh42VAapfI3KR8jR77OS0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bXgYda/hyZIPLRans/m8N210FX4djdaEzMwSt5tK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;GitHub - javascript-only/newJSRoom: https://thinky.tistory.com/category/Front-End/JavaScript&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://thinky.tistory.com/category/Front-End/JavaScript - javascript-only/newJSRoom&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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>Front-End/JavaScript</category>
      <category>Javascript</category>
      <category>심볼</category>
      <author>Tinkies</author>
      <guid isPermaLink="true">https://thinky.tistory.com/455</guid>
      <comments>https://thinky.tistory.com/455#entry455comment</comments>
      <pubDate>Mon, 15 Sep 2025 10:50:16 +0900</pubDate>
    </item>
  </channel>
</rss>