<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>juyoung99_b.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 23 Feb 2022 03:01:05 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>juyoung99_b.log</title>
            <url>https://images.velog.io/images/juyoung99_b/profile/02bd05bb-d3dc-4819-8c1c-ff00d52a3dc5/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. juyoung99_b.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/juyoung99_b" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Frontend] 자바스크립트 this 바인딩]]></title>
            <link>https://velog.io/@juyoung99_b/Frontend-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-this-%EB%B0%94%EC%9D%B8%EB%94%A9</link>
            <guid>https://velog.io/@juyoung99_b/Frontend-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-this-%EB%B0%94%EC%9D%B8%EB%94%A9</guid>
            <pubDate>Wed, 23 Feb 2022 03:01:05 GMT</pubDate>
            <description><![CDATA[<h1 id="this-바인딩">this 바인딩</h1>
<hr>
<h2 id="this">This</h2>
<ul>
<li>일반적인 프로그래밍 언어에서의 this는 self(자기자신)을 가리키는 참조변수다.</li>
<li>javascript에서는 함수 호출 방식에 따라 this가 결정된다.</li>
</ul>
<p>javascript에서 함수가 호출될 때, 기존 매개변수로 전달되는 인자 값에 대해서 arguments 객체와 this 인자가 함수 내부로 암묵적으로 전달된다.</p>
<h2 id="함수-호출-방식과-this">함수 호출 방식과 this</h2>
<p>자바스크립트는 함수 호출 시 어떻게 호출 되는가에 따라서 <strong>동적으로 this가 결정된다.</strong></p>
<ul>
<li>함수 호출 시 this: window</li>
<li>메소드 호출 시 this: 메소드 객체</li>
<li>내부 함수 호출 시 this: window</li>
<li>엄격모드(strict mode)에서의 this: undefined</li>
<li>이벤트 리스너 호출 시 this: 이벤트 객체</li>
<li>생성자 함수 호출 시 this: 생성된 새 객체</li>
</ul>
<p>Arrow 함수는 일반적인 this 바인딩과 다르게 <code>Lexical this</code>를 가진다.</p>
<ul>
<li>Arrow 함수 호출 시 this: 함수 선언 시의 상위 스코프의 this</li>
</ul>
<h2 id="this-바인딩-우선순위">this 바인딩 우선순위</h2>
<p>EC(Execution Context)가 생성될 때마다 this의 바인딩이 일어나며 우선순위 순으로 나열해보면 다음과 같다.</p>
<ol>
<li><code>new</code>를 사용했을 때 해당 객체로 바인딩된다.</li>
</ol>
<pre><code class="language-javascript">var name = &quot;global&quot;;
function Func() {
    this. name = &quot;Func&quot;;
    this.print = function f() { console.log(this.name)&#39; };
}
var a = new Func();
a.print(); //Func</code></pre>
<ol start="2">
<li><code>call</code>, <code>apply</code>, <code>bind</code>와 같은 명시적 바인딩을 사용했을 때 인자로 전달된 객체에 바인딩된다.</li>
</ol>
<pre><code class="language-js">function func() {
    console.log(this.name);
}

var obj = { name: &#39;obj name&#39; };
func.call(obj); // obj name
func.apply(obj); // obj name
(func.bind(obj))(); // obj name</code></pre>
<blockquote>
<p><code>call</code>과 <code>apply</code>는 함수를 호출하는 함수이다. 그러나 그냥 실행하는 것이 아니라 첫 번째 인자에 <code>this</code>로 세팅하고 싶은 객체를 넘겨주어 <code>this</code>를 바꾸고 나서 실행한다.
<code>bind</code>함수가 <code>call</code>, <code>apply</code>와 다른 점은 함수를 실행하지 않는 점이다. 대신 새로운 바인딩한 함수를 생성한다.</p>
</blockquote>
<ol start="3">
<li>객체의 메소드로 호출할 경우 해당 객체에 바인딩된다.</li>
</ol>
<pre><code class="language-js">var obj = {
    name: &#39;obj name&#39;,
    print: function p() { console.log(this.name); }
};
obj.print(); // obj name</code></pre>
<ol start="4">
<li>이외의 경우 this는 전역 객체이다.</li>
</ol>
<p>브라우저의 경우 this는 window 객체이고, 엄격모드에서는 undefined 값이 된다.
따라서 네 가지 바인딩이 아래 우선순위를 따른다.</p>
<blockquote>
<p>new 바인딩 &gt; 명시적 바인딩 &gt; 암시적 바인딩 &gt; 기본 바인딩</p>
</blockquote>
<h3 id="예외-상황">예외 상황</h3>
<h4 id="arrow-function">Arrow function</h4>
<p>ES6부터 사용할 수 있는 화살표 함수(arrow function)는 기존의 컨텍스트 바인딩 규칙을 따르지 않는다. 기존 네 가지 컨텍스트는 실행 시점에 바인딩 규칙이 적용된다. <strong>동적 바인딩</strong>이라 할 수 있다.</p>
<p>반면 화살표 함수는 실행하지 않고도 바인딩 규칙을 알 수 있다. 이미 정해졌다는 점에서 <strong>정적 바인딩</strong>이다. 화살표 함수는 <u>코드상 상위 블록의 컨텍스트를 this로 바인딩하는 규칙</u>을 가진다.</p>
<p>따라서 화살표 함수에서는 <code>call</code>, <code>apply</code>, <code>bind</code>로 this를 변경할 수 없다.</p>
<pre><code class="language-js">window.x = 1;
const normal = function () { return this.x; };
const arrow = () =&gt; this.x;

console.log(normal.call({ x: 10 })); // 10
console.log(arrow.call({ x: 10 })); // 1</code></pre>
<h1 id="참고-사이트">참고 사이트</h1>
<blockquote>
<p><a href="https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/javascript/this.md">https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/javascript/this.md</a></p>
<p><a href="https://jeonghwan-kim.github.io/2017/10/22/js-context-binding.html#%EC%95%94%EC%8B%9C%EC%A0%81-%EB%B0%94%EC%9D%B8%EB%94%A9%EA%B3%BC-new-%EB%B0%94%EC%9D%B8%EB%94%A9%EC%9D%98-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84">암시적-바인딩과-new-바인딩의-우선순위</a></p>
<p><a href="https://velog.io/@danmin20/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-this-%EB%B0%94%EC%9D%B8%EB%94%A9%EC%9D%B4%EB%9E%80">자바스크립트 this 바인딩이란?</a></p>
<p><a href="https://iamsjy17.github.io/javascript/2019/06/07/js33_15_this.html">https://iamsjy17.github.io/javascript/2019/06/07/js33_15_this.html</a></p>
<p><a href="https://wooooooak.github.io/javascript/2018/12/08/call,apply,bind/">https://wooooooak.github.io/javascript/2018/12/08/call,apply,bind/</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Frontend] 시맨틱 마크업]]></title>
            <link>https://velog.io/@juyoung99_b/Frontend-%EC%8B%9C%EB%A7%A8%ED%8B%B1-%EB%A7%88%ED%81%AC%EC%97%85</link>
            <guid>https://velog.io/@juyoung99_b/Frontend-%EC%8B%9C%EB%A7%A8%ED%8B%B1-%EB%A7%88%ED%81%AC%EC%97%85</guid>
            <pubDate>Wed, 16 Feb 2022 02:29:12 GMT</pubDate>
            <description><![CDATA[<h1 id="💡-시맨틱-마크업">💡 시맨틱 마크업</h1>
<hr>
<h2 id="시맨틱-마크업semantic-markup이란">시맨틱 마크업(Semantic Markup)이란</h2>
<p>시맨틱(semantic)은 &quot;의미론적인&quot;이란 뜻을 가지고, 마크업(markup)은 HTML 태그로 문서를 작성하는 것을 말한다. 따라서 시맨틱 마크업은 의미를 잘 전달하도록 문서를 작성하는 것을 말한다.</p>
<h2 id="작성-방법">작성 방법</h2>
<p>각 태그를 용도에 맞게 사용하여 문서를 작성한다.</p>
<ul>
<li>헤더/푸터에 <code>&lt;header&gt;</code>와 <code>&lt;footer&gt;</code>태그 사용</li>
<li>메인 컨텐츠에 <code>&lt;main&gt;</code>과 <code>&lt;section&gt;</code> 사용</li>
<li>독립적인 컨텐츠에 <code>&lt;article&gt;</code> 사용</li>
<li>최상위 제목으로 <code>&lt;h1&gt;</code> 사용</li>
<li>순서가 없는 목록으로 <code>&lt;ul&gt;</code>, <code>&lt;li&gt;</code> 사용</li>
<li>내비게이션에 <code>&lt;nav&gt;</code> 사용 </li>
</ul>
<p>위와 같이 각 태그가 가지고 있는 의미에 맞게 사용하고, css 스타일을 명시하는 태그를 사용하지 않는 것 또한 시맨틱 마크업이다. 즉, 태그가 가지는 의미 자체가 스타일이라면 이는 마크업 자체가 스타일을 갖는 것이기 때문에 시맨틱 마크업에 적합하지 않다.</p>
<blockquote>
<p>예전에는 <code>&lt;div&gt;</code> 요소가 모두 묶어서 포함시킬 수 있어 header도 <code>&lt;div&gt;</code>로 footer도 <code>&lt;div&gt;</code>로 묶어 사용하였기 때문에 HTML에서 가장 많이 사용되었다. 그러다 전체 웹사이트를 구조적으로 분리해서 분리된 각각의 틀을 의미가 있는 요소들로 묶은 것이 시맨틱 요소들이다.</p>
</blockquote>
<h2 id="시맨틱-마크업을-쓰는-이유">시맨틱 마크업을 쓰는 이유</h2>
<ul>
<li>검색엔진이 시맨틱 태그를 중요한 키워드로 간주하기 때문에 검색엔진 최적화(SEO)에 유리하다.</li>
<li>웹 접근성 측면에서, 시각장애가 있는 사용자가 그 의미를 더 잘 파악할 수 있다.</li>
<li>단순히 <code>&lt;div&gt;</code>, <code>&lt;span&gt;</code>에 둘러싸인 요소들보다 코드의 가독성이 좋아 유지보수에 좋다.</li>
</ul>
<h2 id="시맨틱-마크업을-사용할-때-어려운-점">시맨틱 마크업을 사용할 때 어려운 점</h2>
<p><code>&lt;strong&gt;</code>, <code>&lt;b&gt;</code>태그는 동일한 효과를 부여한다. 둘은 동일하게 글자색을 진하게 하지만 <code>&lt;b&gt;</code> 태그의 경우는 그 자체가 &quot;bold&quot; 의 약어이기 때문에 태그 자체가 스타일을 가진다고 할 수 있다. 하지만 <code>&lt;strong&gt;</code> 의 경우는 &quot;그 안의 내용이 다른 내용보다 더 강조되어야 한다&quot; 라는 의미를 가지기 때문에 시맨틱 마크업에 더 적합하다.</p>
<p><code>&lt;article&gt;</code> 태그는 독립적이고 독립적인 콘텐츠를 지정할 때 쓰이는데, 그 자체로 의미가 있어야 하고 사이트의 나머지 부분과 독립적으로 배포도 가능해야 한다. <code>&lt;section&gt;</code>태그는 공통된 내용을 담고 있는 부분을 묶어준다. 그리고 <code>&lt;section&gt;</code> 안에 <code>&lt;article&gt;</code>을, 또 <code>&lt;article&gt;</code> 안에 <code>&lt;section&gt;</code>을 사용할 수도 있다. 어떤 상황에서 <code>&lt;section&gt;</code>과 <code>&lt;article&gt;</code>을 써야 하는 걸까?</p>
<h3 id="시맨틱-마크업을-사용할-때-애매한-태그들">시맨틱 마크업을 사용할 때 애매한 태그들</h3>
<ul>
<li><code>&lt;strong&gt;</code> vs <code>&lt;b&gt;</code></li>
<li><code>&lt;section&gt;</code> vs <code>&lt;article&gt;</code></li>
</ul>
<ul>
<li><p><code>&lt;i&gt;</code> vs <code>&lt;em&gt;</code></p>
<blockquote>
<p><code>&lt;i&gt;</code>태그는 시각적으로 글자가 기울어져 보이게 하는 효과를 줄 때 사용
<code>&lt;em&gt;</code>태그는 문서에서 기울임 효과를 이용하여 강조하고 싶을 때 사용</p>
</blockquote>
</li>
<li><p><code>&lt;button&gt;</code> vs <code>&lt;a&gt;</code></p>
<blockquote>
<p><code>&lt;button&gt;</code>은 글쓰기, 로그인 등 특정한 액션을 위해서 사용
<code>&lt;a&gt;</code>는 다른 페이지로 이동하기 위해 링크를 걸 때 사용</p>
</blockquote>
</li>
</ul>
<h2 id="참고-사이트">참고 사이트</h2>
<blockquote>
<p><a href="https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/html/semantic.md">https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/html/semantic.md</a></p>
<p><a href="https://uiweb.tistory.com/15">https://uiweb.tistory.com/15</a></p>
<p><a href="https://designup4.tistory.com/79">https://designup4.tistory.com/79</a></p>
<p><a href="https://wook-2124.tistory.com/172">https://wook-2124.tistory.com/172</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Frontend]모듈 번들러와 트랜스파일러]]></title>
            <link>https://velog.io/@juyoung99_b/Frontend%EB%AA%A8%EB%93%88-%EB%B2%88%EB%93%A4%EB%9F%AC%EC%99%80-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8C%8C%EC%9D%BC%EB%9F%AC</link>
            <guid>https://velog.io/@juyoung99_b/Frontend%EB%AA%A8%EB%93%88-%EB%B2%88%EB%93%A4%EB%9F%AC%EC%99%80-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8C%8C%EC%9D%BC%EB%9F%AC</guid>
            <pubDate>Mon, 31 Jan 2022 12:04:12 GMT</pubDate>
            <description><![CDATA[<h1 id="모듈-번들러와-트랜스파일러">모듈 번들러와 트랜스파일러</h1>
<hr>
<h2 id="📂-모듈-번들러module-bundler">📂 모듈 번들러(Module Bundler)</h2>
<hr>
<p>모듈 번들러란 웹 애플리케이션을 구성하는 자원(HTML, CSS, JS, Image 등)을 모두 각각의 모듈로 보고, 이를 조합해서 병합된 하나의 결과물을 만드는 도구.</p>
<h3 id="module">Module</h3>
<p>여러 기능들에 관한 코드가 모여있는 하나의 파일.
사칙연산을 하는 계산기를 예로 들면 사칙연산 4가지 기능을 계산기라는 파일로 관리하는 하나의 모듈이라고 볼 수 있다.</p>
<h3 id="모듈-번들러를-쓰는-이유">모듈 번들러를 쓰는 이유</h3>
<p>현대의 프론트엔드 개발은 모듈 단위로 파일을 엮어서 개발하는 방식이기 때문에 모듈이 서로 의존성을 띄고 있어 다음과 같은 문제가 생긴다.</p>
<blockquote>
<ul>
<li>수많은 모듈들의 순서를 어떻게 처리할 것인가? (의존성 처리)</li>
<li>모듈이 많아질수록 HTTP 요청이 많아질텐데 이로 인한 오버헤드는 어떻게 해결할 것인가?</li>
<li>ES6+ 스펙의 코드를 어떻게 처리할 것인가?</li>
</ul>
</blockquote>
<p>위 문제들을 해결하기 위해 등장한 것이 모듈 번들러로 유명한 번들러로는 Webpack, Parcel, Rollup 등이 있다.</p>
<h2 id="🔧-트랜스파일러transpiler">🔧 트랜스파일러(Transpiler)</h2>
<hr>
<h3 id="트랜스파일링transpiling">트랜스파일링(Transpiling)</h3>
<p>트랜스파일링이란 특정 언어로 작성된 코드를 비슷한 다른 언어로 변환시키는 행위를 말하며, 이를 위한 도구가 트랜스파일러이다.</p>
<h3 id="트랜스파일러를-쓰는-이유">트랜스파일러를 쓰는 이유</h3>
<p>모든 브라우저가 ES6+의 기능을 제공하지는 않기 때문에 이를 ES5 코드로 변환시키는 과정이 필요하고, 트랜스파일러가 이 작업을 수행해준다. 사실 ES6+의 기능 뿐만 아니라 리액트의 JSX를 자바스크립트 코드로 변환시킨다거나 타입스크립트를 자바스크립트로 변환시키는 등의 역할도 트랜스파일러의 기능 중에 하나이다.</p>
<p>ES6+나 JSX를 변환시키는 바벨(Babel), 타입스크립트를 변환시키는 타입스크립트 트랜스파일러(Typescript Transpiler) 등의 트랜스파일러가 있다. 보통 프론트엔드 프레임워크 및 라이브러리를 사용해서 개발할 때 모듈 번들러에 트랜스파일러를 추가해서 사용하는 방식을 사용한다.</p>
<h3 id="transpile-vs-compile">transpile vs compile</h3>
<h4 id="compile">compile</h4>
<p>한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것을 의미</p>
<blockquote>
<ul>
<li><code>Java</code> -&gt; <code>bytecode</code></li>
<li><code>c</code> =&gt; <code>assembly</code></li>
</ul>
</blockquote>
<h4 id="transpile">transpile</h4>
<p>한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것을 의미</p>
<blockquote>
<ul>
<li><code>es6</code> 코드 -&gt; <code>es5</code> 코드</li>
<li><code>c++</code> -&gt; <code>c</code></li>
<li><code>typescript</code> -&gt; <code>javascript</code></li>
</ul>
</blockquote>
<h2 id="참고-사이트">참고 사이트</h2>
<blockquote>
<p><a href="https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/bundler-transpiler.md">https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/bundler-transpiler.md</a></p>
<p><a href="https://velog.io/@cjh951114/%EC%A7%81%EB%AC%B4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8-02.-%EC%9B%B9%ED%8C%A9%EC%9D%B4%EB%9E%80-%EB%AA%A8%EB%93%88-%EB%B2%88%EB%93%A4%EB%9F%AC%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94">https://velog.io/@cjh951114/%EC%A7%81%EB%AC%B4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8-02.-%EC%9B%B9%ED%8C%A9%EC%9D%B4%EB%9E%80-%EB%AA%A8%EB%93%88-%EB%B2%88%EB%93%A4%EB%9F%AC%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94</a></p>
<p><a href="https://ideveloper2.tistory.com/166">https://ideveloper2.tistory.com/166</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[자료구조] 스택(Stack) 정리]]></title>
            <link>https://velog.io/@juyoung99_b/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@juyoung99_b/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Mon, 31 Jan 2022 06:17:25 GMT</pubDate>
            <description><![CDATA[<h1 id="📚-스택stack">📚 스택(Stack)</h1>
<hr>
<hr>
<h3 id="📚-스택stack이란">📚 스택(Stack)이란</h3>
<hr>
<p><img src="https://images.velog.io/images/juyoung99_b/post/7dceb957-50e2-43a3-a501-7d4c57acec6b/pushpop.png" alt=""></p>
<p>한쪽으로만 자료를 넣고 뺄 수 있는 후입선출(LIFO: Last-In First-Out) 구조를 가진 자료구조.</p>
<p><img src="https://images.velog.io/images/juyoung99_b/post/b843169d-db49-4f2a-a67d-6d86761b4b95/LIFO.png" alt=""></p>
<p>데이터를 차곡차곡 쌓아 올린 형태이며, LIFO 구조이기 때문에 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다.</p>
<h3 id="📚-스택의-사용-사례">📚 스택의 사용 사례</h3>
<hr>
<ul>
<li>웹 브라우저 방문 기록(뒤로 가기)</li>
<li>실행 취소(undo)</li>
<li>역순 문자열 만들기</li>
<li>후위 표기법 계산</li>
</ul>
<h3 id="📚-스택-기본-연산">📚 스택 기본 연산</h3>
<hr>
<ul>
<li>push(): 스택에 원소 추가</li>
<li>pop(): 스택 가장 위에 있는 원소를 삭제하고 그 원소를 반환</li>
<li>peek(): 스택 가장 위에 있는 원소를 반환(삭제는 하지 않음)</li>
<li>isEmpty(): 스택이 비어있으면 True, 비어있지 않다면 False를 반환</li>
<li>size(): 스택의 원소 개수 반환</li>
</ul>
<h3 id="📚-파이썬으로-스택-구현하기">📚 파이썬으로 스택 구현하기</h3>
<hr>
<p>파이썬은 스택 자료구조는 따로 제공하지 않고, 리스트(list)를 통해 구현할 수 있다.
<code>S.append()</code> 리스트 맨 끝에 원소를 추가한다. 시간복잡도는 O(1)이다.
<code>S.pop(i)</code> 리스트의 i번째 원소를 삭제한다. <code>S.pop(-1)</code>은 맨 앞에 있는 원소를 삭제한다. 시간복잡도는 마찬가지로 O(1)이다.</p>
<h4 id="클래스로-스택-구현">클래스로 스택 구현</h4>
<pre><code class="language-python">class Stack:
    # 리스트를 이용한 스택 구현
    def __init__(self):
        self.top = []

    # 구현 함수
    # 스택에 원소 삽입
    def push(self, item):
        self.top.append(item)
    # 스택 가장 위에 있는 원소를 삭제하고 반환
    def pop(self):
        if not self.isEmpty():
            return self.top.pop(-1)
        else:
            print(&quot;Stack underflow&quot;)
            exit()
    # 스택 가장 위에 있는 원소를 반환
    def peek(self):
        if not self.isEmpty():
            return self.top[-1]
        else:
            print(&quot;underflow&quot;)
            exit()
    # 스택이 비어있는 지를 bool 값으로 반환
    def isEmpty(self) -&gt; bool:
        return len(self.top)==0
    # 스택의 크기를 int 값으로 반환
    def size(self) -&gt; int:
        return len(self.top)</code></pre>
<h3 id="참고-사이트">참고 사이트</h3>
<blockquote>
<p><a href="https://velog.io/@yeseolee/Python-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack">https://velog.io/@yeseolee/Python-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack</a></p>
</blockquote>
<blockquote>
<p><a href="https://jud00.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack%EA%B3%BC-%ED%81%90Queue%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90">https://jud00.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9DStack%EA%B3%BC-%ED%81%90Queue%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90</a></p>
</blockquote>
<blockquote>
<p><a href="https://calmlife.tistory.com/11">https://calmlife.tistory.com/11</a></p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>