<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>프론트엔드 개발</title>
    <link>https://taenami.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 21 Jun 2026 11:43:25 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>태나미</managingEditor>
    <image>
      <title>프론트엔드 개발</title>
      <url>https://tistory1.daumcdn.net/tistory/4361567/attach/1e82da9c51f84b6b81a281c9fb72c47d</url>
      <link>https://taenami.tistory.com</link>
    </image>
    <item>
      <title>swiper안에 button영역 클릭 후 스와이프 안되는 현상</title>
      <link>https://taenami.tistory.com/149</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;이슈 발생&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;swiper영역 안에 버튼을 누르고 alert혹은 confirm창이 뜨고나서 버튼을 스와이프하면 스와이프가 되지않는 이슈 발생, pc모드에서는 잘되지만 모바일 디버깅시 발생&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;swiper 옵션 중 touchStartForcePreventDefault: true 속성 추가하여 브라우저의 기본 동작을 차단한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;touchstart이벤트에 대해 기본동작을 막아 Swiper의 동작이 강제적으로 우선 처리 되게 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8eXYN/btsK75udEXH/kQp73njgvzijhP7dLRQp31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8eXYN/btsK75udEXH/kQp73njgvzijhP7dLRQp31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8eXYN/btsK75udEXH/kQp73njgvzijhP7dLRQp31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8eXYN%2FbtsK75udEXH%2FkQp73njgvzijhP7dLRQp31%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;944&quot; height=&quot;67&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;67&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-origin-width=&quot;300&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cH1QHv/btsK6lywYcR/6XPYcbOk9CWkeeX86BC1yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cH1QHv/btsK6lywYcR/6XPYcbOk9CWkeeX86BC1yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cH1QHv/btsK6lywYcR/6XPYcbOk9CWkeeX86BC1yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcH1QHv%2FbtsK6lywYcR%2F6XPYcbOk9CWkeeX86BC1yK%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;300&quot; height=&quot;57&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;57&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;h3 data-ke-size=&quot;size23&quot;&gt;기존 접근 방법&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버튼을 눌러 alert가 나오면 이벤트 버블링을 하여 스와이퍼 동작이 차단된것 같아 vue 에서 @click.stop을 했는데도 소용이 없었다.&lt;/li&gt;
&lt;li&gt;이 방식은 잘못 접근하였는데 @click.stop은&amp;nbsp;클릭&amp;nbsp;이벤트의&amp;nbsp;전파를&amp;nbsp;막는&amp;nbsp;역할만&amp;nbsp;수행하며,&amp;nbsp;Swiper와&amp;nbsp;관련된&amp;nbsp;터치&amp;nbsp;이벤트에는&amp;nbsp;영향을&amp;nbsp;미치지&amp;nbsp;않았다&lt;/li&gt;
&lt;li&gt;이러한 이유로 Swiper 내부에서 처리하는 터치 이벤트와 브라우저의 기본 동작 간의 충돌 때문일거라고 생각하여 스와이퍼 터치 이벤트 처리하는 로직이 근본 원인이라고 생각하여 모든 터치 이벤트에 브라우저 기본 동작을 막도록 하였다. 필요한 경우에만 true를 하고 false를 권장한다고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 핵심 원인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;브라우저에서 제공하는 alert/confirm 동작 특성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이들은 JS 이벤트 루프를 블로킹하여 스와이프의 터치 이벤트를 비정상적으로 종료시킬 수 있음&lt;/li&gt;
&lt;li&gt;이로 인해 Swiper 내부의 이벤트 핸들러가 중단된 상태로 터치를 무시하게 되는 이유&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI1tw7/btsK6ydmhjp/qfuF9wICmSfKRYkqT8igV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI1tw7/btsK6ydmhjp/qfuF9wICmSfKRYkqT8igV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI1tw7/btsK6ydmhjp/qfuF9wICmSfKRYkqT8igV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI1tw7%2FbtsK6ydmhjp%2FqfuF9wICmSfKRYkqT8igV1%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;603&quot; height=&quot;528&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;528&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/149</guid>
      <comments>https://taenami.tistory.com/149#entry149comment</comments>
      <pubDate>Wed, 4 Dec 2024 17:14:19 +0900</pubDate>
    </item>
    <item>
      <title>vue composition API를 쓰고난 후</title>
      <link>https://taenami.tistory.com/148</link>
      <description>&lt;h2 id=&quot;accessing-the-router-and-current-route-inside-setup&quot; data-ke-size=&quot;size26&quot;&gt;Setup 훅에서 Route와 Router에 접근하는 법&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;options API&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue router를 App에 mount 시켜줘 mehods, computed등에서 this에 접근가능하여 &lt;span&gt;this.$route 라던가 this.$router를 사용하여 접근하였음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- main.js&lt;/p&gt;
&lt;pre id=&quot;code_1676187645273&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { createApp } from 'vue'
import App from './App.vue'
import router from &quot;./router&quot;

createApp(App).use(router).mount('#app');&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Composition API 사용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;setup 훅 내부에서 'this' 접근할 수 없기 때문에 useRouter를 import 하여 사용해야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1676187442724&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { useRouter, useRoute } from 'vue-router'

export default {
  setup() {
    const router = useRouter()
    const route = useRoute()
    }
  },
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 컴포넌트에서만 필요할때만 vue-router나 vueRoute를 import 하기 때문에&amp;nbsp;&lt;span&gt;장점이 있을 수 있을것 같다. 하지만 매번 import하여 사용하는건 귀찮음을 동반한다.&amp;nbsp;&lt;/span&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;&lt;span&gt;&amp;nbsp;setup 훅이 아닌 &amp;lt;script setup&amp;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;/li&gt;
&lt;li&gt;순수 TypeScript를 사용하여 소품 및 방출된 이벤트를 선언하는 기능&lt;/li&gt;
&lt;li&gt;런타임 성능 향상(템플릿이 중간 프록시 없이 동일한 범위의 렌더링 함수로 컴파일됨)&lt;/li&gt;
&lt;li&gt;더 나은 IDE 유형 추론 성능(언어 서버가 코드에서 유형을 추출하는 작업 감소)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679310366461&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
    &amp;lt;div&amp;gt;
        {{ title }}
    &amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script setup lang=&quot;ts&quot;&amp;gt;
    defineOptions({
        name: 'Temp',
    });

    const { title } = props;

    const props = defineProps({
        title: {
            type: String,
            default: '',
        },
    });
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;직접 사용해보았는데, script 태그를 이용하면 options API에서 사용하는 컴포넌트의 name을 사용하기 위해서는 &lt;a href=&quot;https://vue-macros.sxzz.moe/macros/define-options.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Vue Macros 라이브러리&lt;/a&gt;를 이용하여 defineOptions로 정의할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;defineProps로 상위 컴포넌트에서 전달받은 props로 사용가능합니다. template 안에서 list를 사용하기 위해서 props.list와 같이 사용할 수 있지만 props에 대한 내용이 많다면 깔끔하지 않을것 같아 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;구조분해 할당&lt;/a&gt;을 이용했습니다. composition API는 구조분해할당을 options API보다 비교적 많이 사용하였던것 같습니다. options API는 props에 접근하기 위해서는 &amp;lt;script&amp;gt; 태그 안에서는 this를 이용하였고, template에서는 바로 접근하였습니다.&lt;/span&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;&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;참고: &lt;br /&gt;- &lt;a href=&quot;https://router.vuejs.org/guide/advanced/composition-api.html#accessing-the-router-and-current-route-inside-setup&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://router.vuejs.org/guide/advanced/composition-api.html#accessing-the-router-and-current-route-inside-setup&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://kyounghwan01.github.io/blog/Vue/vue3/composition-api/#watch-watcheffect-%E1%84%8C%E1%85%AE%E1%86%BC%E1%84%8C%E1%85%B5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kyounghwan01.github.io/blog/Vue/vue3/composition-api/#watch-watcheffect-%E1%84%8C%E1%85%AE%E1%86%BC%E1%84%8C%E1%85%B5&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Front-End/Vue.js</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/148</guid>
      <comments>https://taenami.tistory.com/148#entry148comment</comments>
      <pubDate>Thu, 16 Feb 2023 14:50:48 +0900</pubDate>
    </item>
    <item>
      <title>vue - computed parameter</title>
      <link>https://taenami.tistory.com/147</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;vue - computed parameter 사용하는 방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 methods에 함수를 정의해 parameter를 넘기고 있었지만, computed를 사용할때도 parameter를 넘길 수 있는지 궁금했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 사용할 수 있는데, 보통 아래와 같을때는 methods에 함수를 정의하는 방식으로 사용할 수 있겠지만 어떨 때 다음과 같은 방식을 사용하는지는 좀 알아봐야겠다.&lt;/p&gt;
&lt;pre id=&quot;code_1662124110458&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
    &amp;lt;ul&amp;gt;
        &amp;lt;li v-for=&quot;(item, index) in temp&quot; :key=&quot;index&quot;&amp;gt;
            &amp;lt;button type=&quot;button&quot; @click=&quot;temp(index)&quot;&amp;gt;
                &amp;lt;span&amp;gt;{{ item }}&amp;lt;/span&amp;gt;
            &amp;lt;/button&amp;gt;
        &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
    export default {
        computed: {
            temp() {
                return (index) =&amp;gt; {
                    return index;
                };
            },
        },
    };
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: &lt;a href=&quot;https://velog.io/@nekonitrate/Vue.js-computed-%EC%97%90-Parameter-%EB%A5%BC-%EB%84%98%EA%B8%B0%EB%8A%94-%EB%B0%A9%EB%B2%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@nekonitrate/Vue.js-computed-%EC%97%90-Parameter-%EB%A5%BC-%EB%84%98%EA%B8%B0%EB%8A%94-%EB%B0%A9%EB%B2%95&lt;/a&gt;&lt;/p&gt;</description>
      <category>Front-End/Vue.js</category>
      <category>q</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/147</guid>
      <comments>https://taenami.tistory.com/147#entry147comment</comments>
      <pubDate>Fri, 2 Sep 2022 22:09:50 +0900</pubDate>
    </item>
    <item>
      <title>git branch 삭제</title>
      <link>https://taenami.tistory.com/145</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;- remote 브랜치 삭제하는 방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 아래 명령어를 사용하면 local에 있는 branch가 아닌 remote에 있는 branch가 삭제된다는것을 잘 알고 사용해야 한다.&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-bidi-marker=&quot;true&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git push origin --delete [branchName]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[선택] remote에 있는 branch를 삭제하고 나서 local에도 있다면 삭제한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;- local 브랜치 삭제하는 방법&lt;/h3&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1661852712506&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git branch -d [branchName]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강제로 제거해야한다면&lt;/p&gt;
&lt;pre id=&quot;code_1661852853543&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git branch -D [branchName]&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;출처:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://www.lesstif.com/gitbook/git-delete-remote-branch-20776547.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.lesstif.com/gitbook/git-delete-remote-branch-20776547.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Front-End/git</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/145</guid>
      <comments>https://taenami.tistory.com/145#entry145comment</comments>
      <pubDate>Tue, 30 Aug 2022 18:40:49 +0900</pubDate>
    </item>
    <item>
      <title>vue - input enter시 함수를 2번 호출하는 에러 수정</title>
      <link>https://taenami.tistory.com/144</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 enter를 눌렀을 경우 함수가 2번 호출되는 문제가 있었는데 해결한 경험을 공유하겠습니다&lt;/p&gt;
&lt;pre id=&quot;code_1660497031711&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;input
    type=&quot;text&quot;
    @keyup.enter=&quot;handler&quot;
  /&amp;gt;
&amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 keyup =&amp;gt; keypress로만 수정하면 됩니다&lt;/p&gt;
&lt;pre id=&quot;code_1660497157542&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;input
    type=&quot;text&quot;
    @keypress.enter=&quot;handler&quot;
  /&amp;gt;
&amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정이 완료되었다면 네트워크 탭에서  맞게 호출하고 있는지 확인해보세요&lt;/p&gt;</description>
      <category>Front-End/Error 해결</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/144</guid>
      <comments>https://taenami.tistory.com/144#entry144comment</comments>
      <pubDate>Mon, 15 Aug 2022 02:13:38 +0900</pubDate>
    </item>
    <item>
      <title>vue input value 값 실시간 변경 감지</title>
      <link>https://taenami.tistory.com/143</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;vue - input value값 변경 실시간 감지를 위해서 &lt;b&gt;@input&lt;/b&gt; 사용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시)&lt;/p&gt;
&lt;pre id=&quot;code_1660488347564&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;temaplate&amp;gt;
	&amp;lt;input type=&quot;text&quot; @input=&quot;onChange($event)&quot;&amp;gt;
&amp;lt;/temaplate&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1660488347565&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
    onChange(event){
        console.log(event.target.value)
    }
&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Front-End/Vue.js</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/143</guid>
      <comments>https://taenami.tistory.com/143#entry143comment</comments>
      <pubDate>Sun, 14 Aug 2022 23:54:01 +0900</pubDate>
    </item>
    <item>
      <title>zsh: command not found: code</title>
      <link>https://taenami.tistory.com/142</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;맥os를 이용하여 zsh에서 code. 를 쳤을때 다음과 같은 오류 발견&lt;/p&gt;
&lt;pre id=&quot;code_1658365701131&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;zsh: command not found: code&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VSC에서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;command + shift + p를 누르면 code 명령 설치를 눌러준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2022-07-21 오전 10.48.44.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mEFiX/btrHPf2iqxZ/rJ9Q2KHugdKYNpLjmCXXZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mEFiX/btrHPf2iqxZ/rJ9Q2KHugdKYNpLjmCXXZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mEFiX/btrHPf2iqxZ/rJ9Q2KHugdKYNpLjmCXXZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmEFiX%2FbtrHPf2iqxZ%2FrJ9Q2KHugdKYNpLjmCXXZ0%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;469&quot; height=&quot;416&quot; data-filename=&quot;edited_스크린샷 2022-07-21 오전 10.48.44.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 정상 설치되었을때&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eOAtUK/btrHPf85yMC/WHEd3klf9qpP79WI1kqte1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eOAtUK/btrHPf85yMC/WHEd3klf9qpP79WI1kqte1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eOAtUK/btrHPf85yMC/WHEd3klf9qpP79WI1kqte1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeOAtUK%2FbtrHPf85yMC%2FWHEd3klf9qpP79WI1kqte1%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;301&quot; height=&quot;402&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 에러가 나면&lt;/p&gt;
&lt;pre id=&quot;code_1658368284348&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;permission denied unlink '/usr/local/bin/code'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 명령어를 입력&lt;/p&gt;
&lt;pre id=&quot;code_1658368337064&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /usr/local/bin
sudo rm -rf code&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;h4 data-ke-size=&quot;size20&quot;&gt;추가 에러 발생&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 path 잘못입력해서 어떤 명령어든 찾을 수 없다는 에러 발생&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. 터미널에 아래 명령어 입력&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1658368384495&quot; class=&quot;groovy&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export PATH=%PATH:/bin:/usr/local/bin:/usr/bin&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다시 vi ~/.zshrc 에서 수정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. source ~/.zshrc 적용&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 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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://keepdev.tistory.com/67&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://keepdev.tistory.com/67&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Front-End/Error 해결</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/142</guid>
      <comments>https://taenami.tistory.com/142#entry142comment</comments>
      <pubDate>Thu, 21 Jul 2022 10:53:43 +0900</pubDate>
    </item>
    <item>
      <title>Nuxt + Typescript</title>
      <link>https://taenami.tistory.com/139</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;먼저 Nuxt 공식 홈페이지에 나와있는 영어를 번역하면서 Typescript의 컨셉에 대해 살펴보고 적용하는 방법에 대해서 알아보겠습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;TypeScript Concepts&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Nuxt 3는 코딩할 때 정확한 type 정보에 접근할 수 있도록 유용한 shortcut을&amp;nbsp;제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Type-checking&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기본적으로 Nuxt는 성능상의 이유로 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi dev&lt;/span&gt; 또는 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi &lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; build&lt;/span&gt;를 실행할 때 type을 확인하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;nuxt.config 파일의 &lt;a href=&quot;https://v3.nuxtjs.org/api/configuration/nuxt.config#typescript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;typescript.typeCheck &lt;/a&gt;&lt;a href=&quot;https://v3.nuxtjs.org/api/configuration/nuxt.config#typescript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;옵션&lt;/a&gt;을 사용하여 빌드 또는 개발 시 type 검사를 활성화하거나 &lt;a href=&quot;https://v3.nuxtjs.org/api/commands/typecheck/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;nuxi를 수동으로 type을 &lt;/a&gt;&lt;a href=&quot;https://v3.nuxtjs.org/api/commands/typecheck/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;검사&lt;/a&gt;할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;div data-v-021093f9=&quot;&quot;&gt;
&lt;pre class=&quot;bash&quot; data-v-021093f9=&quot;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;yarn nuxi typecheck&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위의 커맨드를 입력하고 typescript 및 vue-tsc를 설치를 해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dE6iVF/btrBw91yNuN/2Pyxcnb7E595v5QWYm01b1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dE6iVF/btrBw91yNuN/2Pyxcnb7E595v5QWYm01b1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dE6iVF/btrBw91yNuN/2Pyxcnb7E595v5QWYm01b1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdE6iVF%2FbtrBw91yNuN%2F2Pyxcnb7E595v5QWYm01b1%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;645&quot; height=&quot;123&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Auto-generated types&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi dev&lt;/span&gt;&amp;nbsp;또는&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; build&lt;/span&gt;를&amp;nbsp;실행 시&amp;nbsp;Nuxt는 IDE type support 및 type&amp;nbsp;검사를&amp;nbsp;하기&amp;nbsp;위해 아래 2가지 파일을 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;.nuxt / nuxt.d.ts&amp;nbsp;&amp;nbsp;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 파일에는 사용 중인 모듈의 유형과 Nuxt 3에 필요한 키 유형이 포함되어 있습니다. IDE는 이러한 유형을 자동으로 인식해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;파일의 일부 참조는 buildDir(.nuxt) 내에서만 생성된 파일에 대한 것이므로 전체 입력의 경우 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi dev&lt;/span&gt;&amp;nbsp;또는&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;nuxi&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt; build&lt;/span&gt;를 실행해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;.nuxt / tsconfig.json&amp;nbsp;&amp;nbsp;&lt;/span&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;span style=&quot;background-color: #f8f9fa; color: #202124; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 파일에는 Nuxt 또는 사용 중인 모듈에 의해 주입된 확인된 별칭을 포함하여 프로젝트에 권장되는 기본 TypeScript 구성이 포함되어 있으므로 ~/file 또는 #build/file과 같은 별칭에 대한 전체 type support 및 경로 자동 완성을 얻을 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Stricter checks&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;TypeScript는 프로그램에 대한 더 많은 안전성과 분석을 제공하기 위해 특정 검사와 함께 제공됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;코드베이스를 TypeScript로 변환하고 익숙해지면 이러한 검사를 활성화하여 안전성을 높일 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;strict type 검사를 활성화하려면 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;&amp;nbsp;nuxt.config &lt;/span&gt;를 다음과 같이 작성해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1651994654141&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export default defineNuxtConfig({
  typescript: {
    strict: true
  }
})&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이제부터는 &lt;a href=&quot;https://typescript.nuxtjs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;typescript.nuxt&lt;/a&gt;를 보면서 알아가 보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Introduction&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Nuxt Typescript는 다음 3가지 패키지가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 패키지들은 Nuxt v2.10 이상에서만 사용하도록 되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;@nuxt/types&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;@nuxt/typescript-build&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;@nuxt/typescript-runtime&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Setup&lt;/span&gt;&lt;/h3&gt;
&lt;div id=&quot;tw-target-text-container&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Nuxt TypeScript 지원은 주로 Nuxt 모듈, &lt;b&gt;@nuxt/typescript-build&lt;/b&gt; 및 해당 types은 &lt;b&gt;@nuxt/types&lt;/b&gt;를 통해 제공됩니다. 다음은 설치 및 가이드라인입니다.&lt;/span&gt;&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Installation&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1652270448688&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn add --dev @nuxt/typescript-build @nuxt/types&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;최신&amp;nbsp;버전이&amp;nbsp;아닌&amp;nbsp;경우&amp;nbsp;Nuxt&amp;nbsp;버전과&amp;nbsp;일치하도록&amp;nbsp;특정&amp;nbsp;유형의&amp;nbsp;버전을&amp;nbsp;설치할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- yarn을 이용한 설치&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1652270502282&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn add --dev @nuxt/types@2.13.2&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- npm일 경우 &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div data-v-15fab0cb=&quot;&quot;&gt;
&lt;div data-v-15fab0cb=&quot;&quot;&gt;
&lt;pre class=&quot;shell&quot; data-v-15fab0cb=&quot;&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;npm install --save-dev @nuxt/types@2.13.2&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; Configuration&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;nuxt.config.js의&amp;nbsp;buildModules에&amp;nbsp;@nuxt/typescript-build를&amp;nbsp;추가하기만&amp;nbsp;하면&amp;nbsp;됩니다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1652270598166&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export default {
  buildModules: ['@nuxt/typescript-build']
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이후 tsconfig.json 파일을 생성하고 다음과 같이 작성하세요.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1652270635875&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;ES2018&quot;,
    &quot;module&quot;: &quot;ESNext&quot;,
    &quot;moduleResolution&quot;: &quot;Node&quot;,
    &quot;lib&quot;: [
      &quot;ESNext&quot;,
      &quot;ESNext.AsyncIterable&quot;,
      &quot;DOM&quot;
    ],
    &quot;esModuleInterop&quot;: true,
    &quot;allowJs&quot;: true,
    &quot;sourceMap&quot;: true,
    &quot;strict&quot;: true,
    &quot;noEmit&quot;: true,
    &quot;baseUrl&quot;: &quot;.&quot;,
    &quot;paths&quot;: {
      &quot;~/*&quot;: [
        &quot;./*&quot;
      ],
      &quot;@/*&quot;: [
        &quot;./*&quot;
      ]
    },
    &quot;types&quot;: [
      &quot;@types/node&quot;,
      &quot;@nuxt/types&quot;
    ]
  },
  &quot;exclude&quot;: [
    &quot;node_modules&quot;
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;다음과 같이 vue-shim.d.ts 파일을 만들어 Vue 파일에 대한 type도 제공해야 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1652270773627&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;declare module &quot;*.vue&quot; {
  import Vue from 'vue'
  export default Vue
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;또한&amp;nbsp;이&amp;nbsp;파일을&amp;nbsp;프로젝트의&amp;nbsp;루트&amp;nbsp;디렉토리나&amp;nbsp;types라는&amp;nbsp;디렉토리에&amp;nbsp;배치할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;사용자&amp;nbsp;지정&amp;nbsp;디렉터리에&amp;nbsp;배치할&amp;nbsp;수&amp;nbsp;있지만&amp;nbsp;tsconfig.json&amp;nbsp;파일에서&amp;nbsp;typeRoots를&amp;nbsp;구성해야&amp;nbsp;합니다.&lt;/span&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;모듈 옵션&lt;/b&gt;은 &lt;a href=&quot;https://typescript.nuxtjs.org/guide/setup/#module-options&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;여기&lt;/a&gt;를 참고하세요.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Runtime (optional)&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TypeScript runtime은 nuxt.config 파일, 로컬 모듈 및 serverMiddleware와 같이 Webpack에서 컴파일되지 않은 파일에 필요합니다.&lt;/li&gt;
&lt;li&gt;Nuxt.js는 이 전용 패키지에 TypeScript runtime wrapper를 만들었습니다. wrapper는 nuxt-ts라는 바이너리로 실행되기 전에 ts-node를 뒤에서 등록합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Installation&lt;/h4&gt;
&lt;pre id=&quot;code_1652271795150&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn add @nuxt/typescript-runtime&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 패키지는 production에 필요하기 때문에 @nuxt/typescript-build와 같은 devDependency가 아니라 dependency로 설치됩니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt; Usage&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;package.json&amp;nbsp;&lt;/b&gt;파일을&amp;nbsp;업데이트하기만&amp;nbsp;하면&amp;nbsp;됩니다.&lt;/li&gt;
&lt;li&gt;참고&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1652271995905&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;scripts&quot;: {
  &quot;dev&quot;: &quot;nuxt&quot;,
  &quot;build&quot;: &quot;nuxt build&quot;,
  &quot;generate&quot;: &quot;nuxt generate&quot;,
  &quot;start&quot;: &quot;nuxt start&quot;
},
&quot;dependencies&quot;: {
  &quot;@nuxt/typescript-runtime&quot;: &quot;latest&quot;,
  &quot;nuxt&quot;: &quot;latest&quot;
},
&quot;devDependencies&quot;: {
  &quot;@nuxt/types&quot;: &quot;latest&quot;,
  &quot;@nuxt/typescript-build&quot;: &quot;latest&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제&amp;nbsp;nuxt.config&amp;nbsp;파일,&amp;nbsp;로컬&amp;nbsp;모듈&amp;nbsp;및&amp;nbsp;serverMiddleware에&amp;nbsp;TypeScript를&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Lint&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Configuration&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ESLint를 사용하여 프로젝트를 Lint하는 경우 TypeScript 파일에서 ESLint를 Lint로 만드는 방법은 @nuxtjs/eslint-config-typescript를 설치하기만 하면 됩니다.&lt;/li&gt;
&lt;li&gt;@nuxtjs/eslint-config를 이미 사용하고 있는 경우 dependencies에서 제거하면 Nuxt TypeScript ESLint config에 포함됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1652272817041&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn add --dev @nuxtjs/eslint-config-typescript&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그다음 @nuxtjs/eslint-config-typescript를 확장하여 ESLint 구성 &lt;b&gt;.eslintrc.js를 생성&lt;/b&gt;하거나 편집합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1652272873524&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;module.exports = {
  extends: [
    '@nuxtjs/eslint-config-typescript'
  ]
}&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;ESlint가 TypeScript 파서(@typescript-eslint/parser)를 사용하게 하므로 parserOptions.parser 옵션이 사용자나 확장 중인 다른 구성에 의해 영향받지 않도록 하세요.&lt;/li&gt;
&lt;li&gt;babel-eslint를 파서로 사용하고 있었다면 .eslintrc.js 및 dependencies에서 제거하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로, package.json에서 lint부분을 다음과 같이 작성하세요.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1652273007067&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;lint&quot;: &quot;eslint --ext .ts,.js,.vue .&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm run lint&lt;span style=&quot;background-color: #ffffff; color: #4a5568;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(or&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;yarn lint)을 터미널에 입력하여 lint를 실행할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;위와같이 터미널에서 실행하는 게 아닌 파일이 저장될 때마다 린트를 실행하려면 typeCheck 모듈 옵션을 구성하여 fork-ts-checker-webpack-plugin의 eslint 기능을 활성화할 수 있습니다.&lt;/li&gt;
&lt;li&gt;nuxt.config.js&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1652273153570&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export default {
  typescript: {
    typeCheck: {
      eslint: {
        files: './**/*.{ts,js,vue}'
      }
    }
  }
}&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;a href=&quot;https://v3.nuxtjs.org/guide/concepts/typescript/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://v3.nuxtjs.org/guide/concepts/typescript/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;a href=&quot;https://typescript.nuxtjs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://typescript.nuxtjs.org/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Front-End/Vue.js</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/139</guid>
      <comments>https://taenami.tistory.com/139#entry139comment</comments>
      <pubDate>Sun, 8 May 2022 16:36:16 +0900</pubDate>
    </item>
    <item>
      <title>Nuxt (version 3) Quick Start 해볼까?</title>
      <link>https://taenami.tistory.com/138</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;이전 시간에는 Nuxt3 이론을 배웠다면, 이번에는 공식 홈페이지를 보며 직접 Nuxt3를 만들어 보겠습니다.&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Prerequisites&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-v-ed22b86e=&quot;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;*&lt;span&gt;&amp;nbsp;&lt;/span&gt;(latest LTS version)&lt;span data-v-fd7d8a38=&quot;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;&lt;b&gt;Visual Studio Code&lt;/b&gt;&lt;/li&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;&lt;b&gt;Volar Extension, &lt;/b&gt;공식문서에는 추천하는 링크를 다운받으라고 하였으나, 되지 않아서 두번째꺼를 다운받았어요&lt;span data-v-fd7d8a38=&quot;&quot;&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-v-ed22b86e=&quot;&quot; data-v-fd7d8a38=&quot;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;&lt;a href=&quot;https://github.com/johnsoncodehk/volar/discussions/471&quot; data-v-53a84f30=&quot;&quot; data-v-fd7d8a38=&quot;&quot;&gt;&lt;b&gt;Take Over Mode&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;(recommended)&lt;/li&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=vue.vscode-typescript-vue-plugin&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;TypeScript Vue Plugin&lt;/a&gt; (Volar)&lt;/b&gt;&lt;span data-v-fd7d8a38=&quot;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-v-bcba96ca=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;*&lt;span&gt; &lt;/span&gt;Node.js 가 설치되어있다면, node --version으로 v14&lt;span&gt;&amp;nbsp;&lt;/span&gt;or&lt;span&gt;&amp;nbsp;&lt;/span&gt;v16인지 확인해주세요~!&lt;/p&gt;
&lt;p data-v-bcba96ca=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;* Take Over Mode를 활성화했거나 TypeScript Vue 플러그인(Volar)을 설치한 경우 *.vue 파일에 대한 shim 생성을 비활성화할 수 있습니다. &lt;a href=&quot;https://v3.nuxtjs.org/getting-started/quick-start/#prerequisites&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;참고&lt;/a&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1651904149200&quot; class=&quot;routeros&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export default defineNuxtConfig({
  typescript: {
    shim: false
  }
})&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;New project&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;terminal을 열거나 자기가 사용하는 editor를 열어 다음의 command를 입력하면서 project를 시작해보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1651902620987&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npx nuxi init nuxt-app&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wA78S/btrBrLAntjN/Ct7SmohnEJkWopCUhu2LU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wA78S/btrBrLAntjN/Ct7SmohnEJkWopCUhu2LU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wA78S/btrBrLAntjN/Ct7SmohnEJkWopCUhu2LU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwA78S%2FbtrBrLAntjN%2FCt7SmohnEJkWopCUhu2LU0%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;327&quot; height=&quot;49&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 설치안내가 나오면 Enter를 입력하여 진행합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1651902759853&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd nuxt-app&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음의 package manger중 설치하고 싶은걸 선택해서 진행합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;npm install or yarn install or pnpm install --shamefully-hoist&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 yarn에 익숙하기 때문에 yarn을 이용하겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1651902851317&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되었다면, npm&amp;nbsp;run&amp;nbsp;dev&amp;nbsp;또는&amp;nbsp;yarn&amp;nbsp;dev&amp;nbsp;또는&amp;nbsp;pnpm&amp;nbsp;run&amp;nbsp;dev로&amp;nbsp;개발&amp;nbsp;서버&amp;nbsp;시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 yarn으로 설치하였으니 yarn dev를 입력하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-o를 붙이면 open의 줄임말 같습니다(추측). 명령어 입력시 바로 화면에 띄워줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1651903167067&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yarn dev -o&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CEbAd/btrBq1b4nTX/Qki4xJCC5FwJ8DFGkQcSH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CEbAd/btrBq1b4nTX/Qki4xJCC5FwJ8DFGkQcSH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CEbAd/btrBq1b4nTX/Qki4xJCC5FwJ8DFGkQcSH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCEbAd%2FbtrBq1b4nTX%2FQki4xJCC5FwJ8DFGkQcSH0%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;460&quot; height=&quot;136&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자라면 Yes&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;lt;NuxtWelcome /&amp;gt; 컴포넌트가 보여지게 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2980&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TwHlR/btrBvY5R94r/m1opIzMWBj9yxdLwyPcdcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TwHlR/btrBvY5R94r/m1opIzMWBj9yxdLwyPcdcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TwHlR/btrBvY5R94r/m1opIzMWBj9yxdLwyPcdcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTwHlR%2FbtrBvY5R94r%2Fm1opIzMWBj9yxdLwyPcdcK%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;697&quot; height=&quot;473&quot; data-origin-width=&quot;2980&quot; data-origin-height=&quot;2022&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;&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 data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://v3.nuxtjs.org/getting-started/quick-start/#prerequisites&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://v3.nuxtjs.org/getting-started/quick-start&lt;/a&gt;&lt;/p&gt;</description>
      <category>Front-End/Vue.js</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/138</guid>
      <comments>https://taenami.tistory.com/138#entry138comment</comments>
      <pubDate>Sat, 7 May 2022 14:50:35 +0900</pubDate>
    </item>
    <item>
      <title>Nuxt (version 3) concept에 대해</title>
      <link>https://taenami.tistory.com/137</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Nuxt js 공식 홈페이지에서 공부하면서 번역한 것 글을 정리해보겠습니다. Nuxt 3 버전인 점 참고해주세요.&lt;/blockquote&gt;
&lt;h2 id=&quot;what-is-nuxt&quot; data-ke-size=&quot;size26&quot;&gt;What is Nuxt?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Nuxt의 목표는 뛰어난 개발자 경험을 염두에 두고 직관적이고 성능이 뛰어난 웹 개발을 만드는 것입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;Why Nuxt?&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Nuxt가 무엇인지 이해하려면 최신 애플리케이션을 만드는 데 필요한 사항을 이해해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;span style=&quot;background-color: #ffffff; color: #003543;&quot;&gt;reactivity&lt;/span&gt;&amp;nbsp;및 web components를 사용할 수 있는 JavaScript 프레임워크인 &lt;a href=&quot;https://vuejs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Vue.js&lt;/a&gt;를 선택했습니다.&lt;/li&gt;
&lt;li&gt;개발 중 핫 모듈 교체를 지원하고 프로덕션용 코드를 번들로 제공하는 번들러인 &lt;a href=&quot;https://webpack.js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;webpack 5&lt;/a&gt;와 &lt;a href=&quot;https://vitejs.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Vite&lt;/a&gt;를 모두 지원합니다.&lt;/li&gt;
&lt;li&gt;레거시 브라우저를 지원하면서 최신 JavaScript 구문을 작성하는 변환기인 &lt;a href=&quot;https://esbuild.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;esbuild&lt;/a&gt;를 사용합니다.&lt;/li&gt;
&lt;li&gt;개발 중인 애플리케이션을 제공할 뿐만 아니라 &lt;a href=&quot;https://vuejs.org/api/ssr.html#server-side-rendering-api&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;서버 측 렌더링&lt;/a&gt; 또는 API 경로를 지원하기 위해 Nuxt는 &lt;a href=&quot;https://github.com/unjs/h3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;h3&lt;/a&gt;를 사용하여 서버리스, 작업자, Node.js 및 탁월한 성능과 같은 배포 다양성을 제공합니다.&lt;/li&gt;
&lt;li&gt;클라이언트 측 탐색을 처리하는 라우팅 라이브러리인 &lt;a href=&quot;https://router.vuejs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;vue-router&lt;/a&gt;를 선택했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 Nuxt js는 Vue 애플리케이션에 최고의 최적화와 성능을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Nuxt는 이를 처리하므로 웹 애플리케이션 생성에 집중할 수 있습니다. 이&lt;span&gt; &lt;/span&gt;설정&lt;span&gt; &lt;/span&gt;외에도&lt;span&gt; Nuxt&lt;/span&gt;는&lt;span&gt; &lt;/span&gt;구성이&lt;span&gt; &lt;/span&gt;아닌&lt;span&gt; &lt;/span&gt;생성에&lt;span&gt; &lt;/span&gt;집중할&lt;span&gt; &lt;/span&gt;수&lt;span&gt; &lt;/span&gt;있도록&lt;span&gt; &lt;/span&gt;특정&lt;span&gt; &lt;/span&gt;기능에&lt;span&gt; &lt;/span&gt;중점을&lt;span&gt; &lt;/span&gt;둔&lt;span&gt; &lt;/span&gt;디렉터리&lt;span&gt; &lt;/span&gt;구조를&lt;span&gt; &lt;/span&gt;제공합니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Feature Comparison v2 ~ v3&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;1338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baQ6HD/btrBuzMfi91/TPdxhfsXF1bZhoTAaM6PH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baQ6HD/btrBuzMfi91/TPdxhfsXF1bZhoTAaM6PH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baQ6HD/btrBuzMfi91/TPdxhfsXF1bZhoTAaM6PH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaQ6HD%2FbtrBuzMfi91%2FTPdxhfsXF1bZhoTAaM6PH0%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;612&quot; height=&quot;517&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;1338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;Vue.js&amp;nbsp;Development&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Nuxt&lt;/span&gt;는&lt;span&gt; Vue&lt;/span&gt;를&lt;span&gt; &lt;/span&gt;프론트엔드&lt;span&gt; &lt;/span&gt;프레임워크로&lt;span&gt; &lt;/span&gt;사용하고&lt;span&gt;  component auto-imports&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;및&lt;span&gt; &lt;/span&gt;파일&lt;span&gt; &lt;/span&gt;기반&lt;span&gt; &lt;/span&gt;라우팅과&lt;span&gt; &lt;/span&gt;같은&lt;span&gt; &lt;/span&gt;기능을&lt;span&gt; &lt;/span&gt;추가합니다&lt;span&gt;. Nuxt 3&lt;/span&gt;는&lt;span&gt; Nuxt &lt;/span&gt;사용자를&lt;span&gt; &lt;/span&gt;위한&lt;span&gt; &lt;/span&gt;새로운&lt;span&gt; &lt;/span&gt;패턴을&lt;span&gt; &lt;/span&gt;가능하게&lt;span&gt; &lt;/span&gt;하는&lt;span&gt; Vue&lt;/span&gt;의&lt;span&gt; &lt;/span&gt;새로운&lt;span&gt; &lt;/span&gt;주요&lt;span&gt; &lt;/span&gt;릴리스인&lt;span&gt; Vue 3&lt;/span&gt;을&lt;span&gt; &lt;/span&gt;통합합니다&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Vue with Nuxt&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Single File Component
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vue&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;의&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;단일&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;파일&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;구성&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;요소&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;(SFC &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;또는 *.vue 파일&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; Vue component&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;의&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;마크업&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;(&amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;template&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;gt;), &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;논리&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;(&amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;gt;) &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;및&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;스타일&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;지정&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;(&amp;lt;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;gt;)&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;을&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;캡슐화합니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;. Nuxt&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;원활한&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;개발자&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;경험을&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;제공하는&lt;/span&gt;&lt;a href=&quot;https://webpack.js.org/concepts/hot-module-replacement/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; Hot Module Replacement&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;를&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;통해&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; SFC&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;대해&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;구성이&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;필요&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;없는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;경험을&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;제공합니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Components auto-imports
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Nuxt &lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;프로젝트의&lt;/span&gt;&lt;a href=&quot;https://v3.nuxtjs.org/guide/directory-structure/components/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; components/directory&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;생성된&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;모든&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; Vue component&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;import 할&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;필요&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;없이&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;프로젝트에서&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;사용할&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;있습니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;. component&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;어디에도&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;사용되지&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;않으면&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;프로덕션&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;코드에&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;포함되지&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;않습니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vue Router
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대부분의&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;애플리케이션에는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;여러&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;페이지와&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;페이지&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;사이를&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;탐색하는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;방법이&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;필요합니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;이를&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;라우팅이라고&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;합니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;. Nuxt&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;는&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;페이지&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;디렉토리&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;및&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;명명&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;규칙을&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;사용하여&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;공식&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; Vue Router &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;라이브러리를&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;사용하여&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;파일에&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;매핑된&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;경로를&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;직접&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;생성합니다&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Nuxt 3만의 특별한 점&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Nuxt 3는 Vue 3을 기반으로 합니다. 새로운 주요 Vue 버전은 Nuxt가 활용하는 몇 가지 변경 사항을 소개합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-v-ed22b86e=&quot;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;Better performance&lt;/li&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;Composition API&lt;/li&gt;
&lt;li data-v-fd7d8a38=&quot;&quot; data-v-ed22b86e=&quot;&quot;&gt;TypeScript support&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;Faster&amp;nbsp;rendering&lt;br /&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;VDOM(Vue Virtual DOM)은 처음부터 다시 작성되었으며 더 나은 렌더링 성능을 제공합니다. 게다가 컴파일된 단일 파일 구성 요소(SFC)로 작업할 때 Vue 컴파일러는 정적 및 동적 마크업을 분리하여 빌드 최적화할 수 있습니다.&lt;/li&gt;
&lt;li&gt;따라서 첫 번째 렌더링(component&amp;nbsp;생성 시) 및 업데이트가 빨라지고 메모리 사용량이 줄어듭니다. Nuxt 3에서는 더 빠른 서버 측 렌더링도 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;Smaller bundle&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;Vue 3 및 Nuxt 3에서는 번들 크기 축소에 중점을 두었습니다. 버전 3에서는 템플릿 지시문 및 내장 component를 포함한 대부분의 Vue 기능이 트리를 흔들 수 있습니다. 사용하지 않으면 프로덕션 번들에 포함되지 않습니다.&lt;/li&gt;
&lt;li&gt;이렇게 하면 최소한의 Vue 3 애플리케이션을 12kb gzip으로 줄일 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;Composition API&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;Vue 2에서 component의 데이터와 논리를 제공하는 유일한 방법은 데이터 및 메서드와 같은 미리 정의된 속성이 있는 템플릿에 데이터와 메서드를 반환할 수 있는 옵션 API를 사용하는 것이었습니다&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-v-021093f9=&quot;&quot;&gt;
&lt;pre class=&quot;html xml&quot; data-v-021093f9=&quot;&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;// Vue 2
&amp;lt;script&amp;gt;
export default {
  data() {
    return {
      count: 0
    }
  },
  methods: {
    increment(){
      this.count++
    }
  }
}
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vue 3에 도입된&amp;nbsp;&lt;a href=&quot;https://vuejs.org/guide/extras/composition-api-faq.html&quot;&gt;Composition API&lt;/a&gt;는 Options API를 대체하는 것은 아니지만 애플리케이션 전체에서 더 나은 논리 재사용을 가능하게 하고 복잡한 component에서 관심사별로 코드를 그룹화하는 보다 자연스러운 방법입니다.&lt;/li&gt;
&lt;li&gt;&amp;lt;script&amp;gt;&amp;nbsp;정의에서&amp;nbsp;setup&amp;nbsp;키워드와&amp;nbsp;함께&amp;nbsp;사용되는&amp;nbsp;코드는&amp;nbsp;Composition API&amp;nbsp;및&amp;nbsp;Nuxt 3의&amp;nbsp;auto-imported Reactivity APIs로&amp;nbsp;다시&amp;nbsp;작성되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;html xml&quot; data-v-021093f9=&quot;&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;// Vue 3
&amp;lt;script setup&amp;gt;
  const count = ref(0);
  const increment = () =&amp;gt; count.value++;
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;TypeScript support&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Vue 3&lt;/span&gt;와&lt;span&gt; Nuxt 3&lt;/span&gt;은&lt;span&gt; &lt;/span&gt;모두&lt;span&gt; TypeScript&lt;/span&gt;로&lt;span&gt; &lt;/span&gt;작성되었습니다&lt;span&gt;. &lt;/span&gt;완전한&lt;span&gt; &lt;/span&gt;형식의&lt;span&gt; 코드베이스는 &lt;/span&gt;실수를&lt;span&gt; &lt;/span&gt;방지하고&lt;span&gt; API &lt;/span&gt;사용을&lt;span&gt; &lt;/span&gt;문서화합니다&lt;span&gt;. &lt;/span&gt;그렇다고&lt;span&gt; &lt;/span&gt;해서&lt;span&gt; TypeScript&lt;/span&gt;를&lt;span&gt; &lt;/span&gt;활용하기&lt;span&gt; &lt;/span&gt;위해&lt;span&gt; &lt;/span&gt;애플리케이션을&lt;span&gt; &lt;/span&gt;작성해야&lt;span&gt; &lt;/span&gt;한다는&lt;span&gt; &lt;/span&gt;의미는&lt;span&gt; &lt;/span&gt;아닙니다&lt;span&gt;. Nuxt 3&lt;/span&gt;에서는&lt;span&gt; &lt;/span&gt;파일&lt;span&gt; 이름을 .js에서 .ts로 &lt;/span&gt;변경하거나&lt;span&gt; component&lt;/span&gt;에&lt;span&gt; &amp;lt;script lang=&quot;ts&quot;&amp;gt;&lt;/span&gt;를&lt;span&gt; &lt;/span&gt;추가하여&lt;span&gt; 옵트인할 &lt;/span&gt;수&lt;span&gt; &lt;/span&gt;있습니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;Rendering Modes&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저와&lt;span&gt; &lt;/span&gt;서버&lt;span&gt; &lt;/span&gt;모두&lt;span&gt; JavaScript &lt;/span&gt;코드를&lt;span&gt; &lt;/span&gt;해석하여&lt;span&gt; Vue.js component&lt;/span&gt;를&lt;span&gt; HTML &lt;/span&gt;요소로&lt;span&gt; 렌더링할 &lt;/span&gt;수&lt;span&gt; &lt;/span&gt;있습니다&lt;span&gt;. &lt;/span&gt;이&lt;span&gt; &lt;/span&gt;단계를&lt;span&gt; &lt;/span&gt;렌더링이라고&lt;span&gt; &lt;/span&gt;합니다&lt;span&gt;. Nuxt&lt;/span&gt;는&lt;span&gt; &lt;/span&gt;클라이언트&lt;span&gt; &lt;/span&gt;측&lt;span&gt; &lt;/span&gt;및&lt;span&gt; &lt;/span&gt;범용&lt;span&gt; &lt;/span&gt;렌더링을&lt;span&gt; &lt;/span&gt;모두&lt;span&gt; &lt;/span&gt;지원합니다&lt;span&gt;. &lt;/span&gt;두&lt;span&gt; &lt;/span&gt;가지&lt;span&gt; &lt;/span&gt;접근&lt;span&gt; &lt;/span&gt;방식에는&lt;span&gt; &lt;/span&gt;이&lt;span&gt; &lt;/span&gt;섹션에서&lt;span&gt; &lt;/span&gt;다룰&lt;span&gt; &lt;/span&gt;장단점이&lt;span&gt; &lt;/span&gt;있습니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Client-side only rendering&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 기존 Vue.js 애플리케이션은 브라우저(또는 클라이언트)에서 렌더링 됩니다. 그런 다음 Vue.js는 브라우저가 현재 인터페이스를 만들기 위한 지침이 포함된 모든 JavaScript 코드를 다운로드하고 구문 분석한 후 HTML 요소를 생성합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oinmZ/btrBq6EW9LG/EhkPa4GQsCBiaDui8TrWD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oinmZ/btrBq6EW9LG/EhkPa4GQsCBiaDui8TrWD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oinmZ/btrBq6EW9LG/EhkPa4GQsCBiaDui8TrWD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoinmZ%2FbtrBq6EW9LG%2FEhkPa4GQsCBiaDui8TrWD0%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;660&quot; height=&quot;340&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;690&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Development speed: 전적으로 클라이언트 측에서 작업할 때 창 개체와 같은 브라우저 전용 API를 사용하여 코드의 서버 호환성에 대해 걱정할 필요가 없습니다.&lt;/li&gt;
&lt;li&gt;Cheaper: 서버를 실행하면 JavaScript를 지원하는 플랫폼에서 실행해야 하므로 인프라 비용이 추가됩니다. HTML, CSS 및 JavaScript 파일이 있는 모든 정적 서버에서 클라이언트 전용 애플리케이션을 호스팅 할 수 있습니다.&lt;/li&gt;
&lt;li&gt;Offline: 코드가 완전히 브라우저에서 실행되기 때문에 인터넷을 사용할 수 없는 동안에도 계속 작동할 수 있습니다.&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Performance&lt;/b&gt;: 사용자는 브라우저가 JavaScript 파일을 다운로드, 구문 분석 및 실행할 때까지 기다려야 합니다. 다운로드 부분의 네트워크와 구문 분석 및 실행을 위한 사용자 장치에 따라 다소 시간이 걸리고 사용자 경험에 영향을 줄 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Search Engine Optimization&lt;/b&gt;: 클라이언트 측 렌더링을 통해 전달된 콘텐츠를 색인화하고 업데이트하는 것은 서버에서 렌더링 된 HTML 문서보다 시간이 더 걸립니다. 이것은 검색 엔진 크롤러가 페이지 인덱싱을 처음 시도할 때 인터페이스가 완전히 렌더링될 때까지 기다리지 않기 때문에 우리가 논의한 성능 단점과 관련이 있습니다. 순수한 클라이언트 측 렌더링을 사용하면 콘텐츠가 검색 결과 페이지에 표시되고 업데이트되는 데 더 많은 시간이 걸립니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Universal rendering&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저가&lt;span&gt; &lt;/span&gt;범용&lt;span&gt;(&lt;/span&gt;클라이언트&lt;span&gt; &lt;/span&gt;측&lt;span&gt; + &lt;/span&gt;서버&lt;span&gt; &lt;/span&gt;측&lt;span&gt;) &lt;/span&gt;렌더링이&lt;span&gt; &lt;/span&gt;활성화된&lt;span&gt; URL&lt;/span&gt;을&lt;span&gt; &lt;/span&gt;요청하면&lt;span&gt; &lt;/span&gt;서버는&lt;span&gt; &lt;/span&gt;완전히&lt;span&gt; &lt;/span&gt;렌더링된&lt;span&gt; HTML &lt;/span&gt;페이지를&lt;span&gt; &lt;/span&gt;브라우저에&lt;span&gt; &lt;/span&gt;반환합니다&lt;span&gt;. &lt;/span&gt;페이지가&lt;span&gt; &lt;/span&gt;미리&lt;span&gt; &lt;/span&gt;생성되어&lt;span&gt; 캐시되거나 &lt;/span&gt;즉석에서&lt;span&gt; 렌더링되는지 &lt;/span&gt;여부에&lt;span&gt; &lt;/span&gt;관계없이&lt;span&gt; Nuxt&lt;/span&gt;는&lt;span&gt; &lt;/span&gt;서버&lt;span&gt; &lt;/span&gt;환경에서&lt;span&gt; JavaScript(Vue.js) &lt;/span&gt;코드를&lt;span&gt; &lt;/span&gt;실행하여&lt;span&gt; HTML &lt;/span&gt;문서를&lt;span&gt; &lt;/span&gt;생성한&lt;span&gt; &lt;/span&gt;적이&lt;span&gt; &lt;/span&gt;있습니다&lt;span&gt;. &lt;/span&gt;사용자는&lt;span&gt; &lt;/span&gt;클라이언트&lt;span&gt; &lt;/span&gt;측&lt;span&gt; &lt;/span&gt;렌더링과&lt;span&gt; &lt;/span&gt;달리&lt;span&gt; &lt;/span&gt;애플리케이션의&lt;span&gt; &lt;/span&gt;콘텐츠를&lt;span&gt; &lt;/span&gt;즉시&lt;span&gt; &lt;/span&gt;얻습니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;HTML &lt;/span&gt;문서가&lt;span&gt; &lt;/span&gt;다운로드되면&lt;span&gt; &lt;/span&gt;백그라운드에서&lt;span&gt; &lt;/span&gt;서버에서&lt;span&gt; &lt;/span&gt;실행되는&lt;span&gt; &lt;/span&gt;자바스크립트&lt;span&gt; &lt;/span&gt;코드를&lt;span&gt; &lt;/span&gt;로드합니다&lt;span&gt;. &lt;/span&gt;브라우저는&lt;span&gt; &lt;/span&gt;그것을&lt;span&gt; &lt;/span&gt;다시&lt;span&gt; &lt;/span&gt;해석하고&lt;span&gt;(&lt;/span&gt;따라서&lt;span&gt; &lt;/span&gt;유니버설&lt;span&gt; &lt;/span&gt;렌더링&lt;span&gt;) Vue.js&lt;/span&gt;는&lt;span&gt; &lt;/span&gt;문서를&lt;span&gt; &lt;/span&gt;제어하고&lt;span&gt; &lt;/span&gt;상호&lt;span&gt; &lt;/span&gt;작용을&lt;span&gt; &lt;/span&gt;활성화합니다&lt;span&gt;. &lt;/span&gt;브라우저에서&lt;span&gt; &lt;/span&gt;정적&lt;span&gt; &lt;/span&gt;페이지를&lt;span&gt; &lt;/span&gt;대화형으로&lt;span&gt; &lt;/span&gt;만드는&lt;span&gt; &lt;/span&gt;것을&lt;span&gt; &quot;&lt;/span&gt;Hydration&lt;span&gt;&quot;&lt;/span&gt;라고&lt;span&gt; &lt;/span&gt;합니다&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czfxwG/btrBqnzVBfU/Yr0rIJRWSaxYmuNBd40rh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czfxwG/btrBqnzVBfU/Yr0rIJRWSaxYmuNBd40rh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czfxwG/btrBqnzVBfU/Yr0rIJRWSaxYmuNBd40rh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczfxwG%2FbtrBqnzVBfU%2FYr0rIJRWSaxYmuNBd40rh1%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;661&quot; height=&quot;388&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Performance&lt;/b&gt;: 브라우저는 JavaScript 생성 콘텐츠보다 훨씬 빠르게 정적 콘텐츠를 표시할 수 있으므로 사용자는 페이지 콘텐츠에 즉시 액세스 할 수 있습니다. 동시에 Nuxt는 수화 프로세스가 발생할 때 웹 애플리케이션의 상호 작용을 유지합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Search Engine Optimization&lt;/b&gt;: 범용 렌더링은 페이지의 전체 HTML 콘텐츠를 브라우저에 클래식 서버 응용 프로그램으로 제공합니다. 웹 크롤러는 페이지의 콘텐츠를 직접 인덱싱할 수 있으므로 유니버설 렌더링은 빠르게 인덱싱 하려는 콘텐츠에 대해 탁월한 선택입니다.&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;Development constraints: 서버 및 브라우저 환경은 동일한 API를 제공하지 않으며, 양쪽에서 원활하게 실행할 수 있는 코드를 작성하는 것이 까다로울 수 있습니다. 다행히 Nuxt는 코드가 실행되는 위치를 결정하는 데 도움이 되는 지침과 특정 변수를 제공합니다.&lt;/li&gt;
&lt;li&gt;Cost: 즉석에서 페이지를 렌더링 하려면 서버를 실행해야 합니다. 이것은 기존 서버와 마찬가지로 월별 비용을 추가합니다. 그러나 브라우저가 클라이언트 측 탐색을 대신하는 범용 렌더링 덕분에 서버 호출이 크게 줄어듭니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;요약&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트 측 렌더링과 범용 렌더링은 브라우저에 인터페이스를 표시하는 다른 전략입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로&lt;span&gt; Nuxt&lt;/span&gt;는&lt;span&gt; &lt;/span&gt;범용&lt;span&gt; &lt;/span&gt;렌더링을&lt;span&gt; &lt;/span&gt;사용하여&lt;span&gt; &lt;/span&gt;더&lt;span&gt; &lt;/span&gt;나은&lt;span&gt; &lt;/span&gt;사용자&lt;span&gt; &lt;/span&gt;경험과&lt;span&gt; &lt;/span&gt;성능을&lt;span&gt; &lt;/span&gt;제공하고&lt;span&gt; &lt;/span&gt;검색&lt;span&gt; &lt;/span&gt;엔진&lt;span&gt; &lt;/span&gt;인덱싱을&lt;span&gt; &lt;/span&gt;최적화하지만&lt;span&gt; &lt;/span&gt;한&lt;span&gt; &lt;/span&gt;줄의&lt;span&gt; &lt;/span&gt;구성에서&lt;span&gt; &lt;/span&gt;렌더링&lt;span&gt; &lt;/span&gt;모드를&lt;span&gt; &lt;/span&gt;전환할&lt;span&gt; &lt;/span&gt;수&lt;span&gt; &lt;/span&gt;있습니다&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://v3.nuxtjs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://v3.nuxtjs.org/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://nuxtjs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://nuxtjs.org/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Front-End/Vue.js</category>
      <author>태나미</author>
      <guid isPermaLink="true">https://taenami.tistory.com/137</guid>
      <comments>https://taenami.tistory.com/137#entry137comment</comments>
      <pubDate>Sat, 7 May 2022 14:22:59 +0900</pubDate>
    </item>
  </channel>
</rss>