<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>미치게힘든코딩</title>
    <link>https://codingisnoteasy.tistory.com/</link>
    <description>수업내용 정리 목적입니다...당연히 부족합니다^^</description>
    <language>ko</language>
    <pubDate>Tue, 23 Jun 2026 22:36:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>나이많은 초보</managingEditor>
    <item>
      <title>Vue 3 강의 - REST API를 이용하여 메모 애플리케이션 만들기(Node.js, Express, MariaDB) 따라하기</title>
      <link>https://codingisnoteasy.tistory.com/202</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ADxbGlwhl_s&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=ADxbGlwhl_s&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=ADxbGlwhl_s&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/do47fN/hyUB4sMTsN/KsurPM24xiVxokwFAi8wm1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Vue 3 강의 - REST API를 이용하여 메모 애플리케이션 만들기(Node.js, Express, MariaDB)&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ADxbGlwhl_s&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어제 이분의 vue3강의를 따라하고 jwt에대해 접하게 되었느데...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘&amp;nbsp; 관련 내용을 업무적으로 접하게 되서 자랑스레 말씀드렸다.~~~~~&quot; 어제 공부했어요..ㅋㅋㅋㅋㅋ&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신나서 한개 더 따라 해 본다~~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;1. 뭐든지 설치,,,&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7sMrE/btsAMXgVBy8/bJT6pTibulYfXKRTIcndDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7sMrE/btsAMXgVBy8/bJT6pTibulYfXKRTIcndDk/img.png&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;65&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.2392%; margin-right: 10px;&quot; data-widthpercent=&quot;51.84&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7sMrE/btsAMXgVBy8/bJT6pTibulYfXKRTIcndDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7sMrE%2FbtsAMXgVBy8%2FbJT6pTibulYfXKRTIcndDk%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;424&quot; height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M6MqW/btsARUCBALy/bdpOQwdH7KxOBeVvPaZYLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M6MqW/btsARUCBALy/bdpOQwdH7KxOBeVvPaZYLK/img.png&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;84&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.598%;&quot; data-widthpercent=&quot;48.16&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M6MqW/btsARUCBALy/bdpOQwdH7KxOBeVvPaZYLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM6MqW%2FbtsARUCBALy%2FbdpOQwdH7KxOBeVvPaZYLK%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;509&quot; height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/div&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;이미 전전 시간에 vue설치를 했기 떄문에 바로 vue생성부터 진행....이번엔 memo 앱이니깐 vue3-memo프로젝트로/ 전시간과 마찬가지로 앞단과 뒷단(서버단) 폴더로 분류한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue create frontend 입력하면 자동으로 생성생성....(이것은 이미 vue와 node가 설치되어 있기 때문인걸......잊지말자!!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;2. vue에서 header, footer 만들기....&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDumZJ/btsAMo6VZ8z/oTtZUjM70h4vKI41hTkASK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDumZJ/btsAMo6VZ8z/oTtZUjM70h4vKI41hTkASK/img.png&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;435&quot; data-is-animation=&quot;false&quot; style=&quot;width: 58.0549%; margin-right: 10px;&quot; data-widthpercent=&quot;58.74&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDumZJ/btsAMo6VZ8z/oTtZUjM70h4vKI41hTkASK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDumZJ%2FbtsAMo6VZ8z%2FoTtZUjM70h4vKI41hTkASK%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;957&quot; height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwUHDs/btsAMpkodZa/7d6ll05FKGxOgNdmKemYu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwUHDs/btsAMpkodZa/7d6ll05FKGxOgNdmKemYu0/img.png&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;154&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.7823%;&quot; data-widthpercent=&quot;41.26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwUHDs/btsAMpkodZa/7d6ll05FKGxOgNdmKemYu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwUHDs%2FbtsAMpkodZa%2F7d6ll05FKGxOgNdmKemYu0%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;238&quot; height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재사용 코드를 캡슐화 하는 기능 복습!!! components폴더에 화면구성 할 vue파일들을 만든다....include와 같은거...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;붙일 화면을 import하고&lt;/p&gt;
&lt;div style=&quot;background-color: #1f1f1f; color: #cccccc;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;components&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Header&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Footer&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&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; Ground에 해더와 본문, 푸터를 구조를 만들고 그구조를 App.vue에서 사용하는것....&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://cdnjs.com/libraries/bootstrap&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cdnjs.com/libraries/bootstrap&lt;/a&gt;&lt;a href=&quot;https://cdnjs.com/libraries/bootstrap/4.6.1&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;https://cdnjs.com/libraries/bootstrap/4.6.1&lt;/a&gt; 에서 하는게 좀더 편함...버전설정후 주소 2개임......최신버전보단...지금 영상속의 버전으로 맞추었음.....&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;1. style하면서 설치 한거...&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Node-sass는 널리 사용되는 스타일시트 전처리기인 Sass의 C 버전인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #cb3837; text-align: start;&quot; href=&quot;https://github.com/sass/libsass&quot;&gt;LibSass&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에 대한 Node.js 바인딩을 제공하는 라이브러리입니다 .라는 소개와..현재 Node Sass사용하지 않는다며 Dart Sass 이동하라고 한다. 주소:&lt;a href=&quot;https://sass-lang.com/dart-sass/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://sass-lang.com/dart-sass/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;난 일단 모르므로 영상따라서&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.npmjs.com/package/node-sass&quot;&gt;https://www.npmjs.com/package/node-sass &lt;/a&gt; &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;들어가서 PS C:\shin_work\vs_vue_ex\VUE3-MEMO\frontend&amp;gt; npm i node-sass@6.0.1 설치를 했으나...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러가 납니다.ㅠㅠ&lt;/p&gt;
&lt;pre id=&quot;code_1700795953500&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm ls node-sass //확인하니 empty라고 나옴. 그래서 설치가 안되나 싶어서 알려준 dark sass를 해봄...
npm install -g sass //설치 안됨...역시 관련된 라이브러리 미확인됨.
node --version  // v18.16.0', 내 버전확인하고
npm i node-sass@8.0.1   //  맞게 대충 설치해봄 근데 역시 에러...
npm install node-sass@latest 다시 마지막 버전으로 설치하니깐 됨..ㅠㅠ&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 영상을 진행해보니깐 sass-loader라는 node에 의존적인 요아이도 또 설치해야한다....안되것다.... 요것도 안된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼으로 나는 다시 돌아간다.. 모든것을 삭제하고....uninstall~~~&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pYu6K/btsAM3g7KpU/DKQXndfjOTqgIt9F3BOpIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pYu6K/btsAM3g7KpU/DKQXndfjOTqgIt9F3BOpIk/img.png&quot; data-alt=&quot;기존에 설치한 기록을 삭제함...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pYu6K/btsAM3g7KpU/DKQXndfjOTqgIt9F3BOpIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpYu6K%2FbtsAM3g7KpU%2FDKQXndfjOTqgIt9F3BOpIk%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;389&quot; height=&quot;306&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기존에 설치한 기록을 삭제함...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/enuJnm/btsARgMIaYJ/I97lAIU48Ij6KDaHkkGBuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/enuJnm/btsARgMIaYJ/I97lAIU48Ij6KDaHkkGBuk/img.png&quot; data-alt=&quot;처음에 실패했는데 json파일에서 삭제하니깐 된다...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/enuJnm/btsARgMIaYJ/I97lAIU48Ij6KDaHkkGBuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FenuJnm%2FbtsARgMIaYJ%2FI97lAIU48Ij6KDaHkkGBuk%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;499&quot; height=&quot;159&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;처음에 실패했는데 json파일에서 삭제하니깐 된다...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 여기까지.........나머지에서 계속 에러가 난다...뭔가가 계속 안된다......갑자기 현타온다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;난 백단이 주인데 왜 css 전처리 설치에 이렇게 목을 매지???????? 진도가 그렇게 나가니깐...ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 프로젝트 삭제하고 다시 설치하자......초심~~~~\&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 다시 하였으나 실패함....dark sass로 그 문법을 쓰자니 발생되는 설치가 많고 그것에 대한 예제를 현재는 찾기가 어려워 결국은 3시간만에 일단 포기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 그냥 엣날 방식 css코드 만든다.&lt;/p&gt;
&lt;pre id=&quot;code_1700806820071&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style scoped&amp;gt;
.memo ul{        
    list-style: none;
    padding:15px 0;
    margin:0;
}
.memo ul li{
    padding: 15px;
    margin:5px;
    border: 1px solid #eee;
}
.act{
    padding: 10px 5px 5px 5px;
    text-align: right;
}
&amp;lt;/style&amp;gt;&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;확정된 css스타일에 코드임...&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**주의사항....다시 설치하면서는 @vue/cli 5.0.8 버전이였다..그랬더니.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;1:1&amp;nbsp;&amp;nbsp;error&amp;nbsp;&amp;nbsp;Component&amp;nbsp;name&amp;nbsp;&quot;Footer&quot;&amp;nbsp;should&amp;nbsp;always&amp;nbsp;be&amp;nbsp;multi-word&amp;nbsp;&amp;nbsp;vue/multi-word-component-names&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러가 나왔다.한단어랑 하지말고 조합해서 해깔리지 말게 하라는데.....나지금 sass포기자란 말이다...우울하단 말이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lAqMi/btsASFsctyL/k9kBzoseJooxTBR2GI2Sd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lAqMi/btsASFsctyL/k9kBzoseJooxTBR2GI2Sd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lAqMi/btsASFsctyL/k9kBzoseJooxTBR2GI2Sd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlAqMi%2FbtsASFsctyL%2Fk9kBzoseJooxTBR2GI2Sd1%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;495&quot; height=&quot;145&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;lintOnSave : false한줄 넣었더니 해결...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ExBDH/btsASsmhFKz/13lDyhaYMtRc2R2TKvrl2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ExBDH/btsASsmhFKz/13lDyhaYMtRc2R2TKvrl2k/img.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;477&quot; data-is-animation=&quot;false&quot; style=&quot;width: 18.4064%; margin-right: 10px;&quot; data-widthpercent=&quot;18.84&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ExBDH/btsASsmhFKz/13lDyhaYMtRc2R2TKvrl2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FExBDH%2FbtsASsmhFKz%2F13lDyhaYMtRc2R2TKvrl2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;212&quot; height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb0kG0/btsARXtpD7z/75YKE4EEQ0FK5hrPsqWZi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb0kG0/btsARXtpD7z/75YKE4EEQ0FK5hrPsqWZi0/img.png&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;516&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;57.85&quot; style=&quot;width: 56.5033%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb0kG0/btsARXtpD7z/75YKE4EEQ0FK5hrPsqWZi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb0kG0%2FbtsARXtpD7z%2F75YKE4EEQ0FK5hrPsqWZi0%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;704&quot; height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdRrZC/btsAOP4sJ19/vMYKnWYQY5fAGGzqNFpWd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdRrZC/btsAOP4sJ19/vMYKnWYQY5fAGGzqNFpWd1/img.png&quot; data-origin-width=&quot;260&quot; data-origin-height=&quot;473&quot; data-is-animation=&quot;false&quot; style=&quot;width: 22.7648%;&quot; data-widthpercent=&quot;23.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdRrZC/btsAOP4sJ19/vMYKnWYQY5fAGGzqNFpWd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdRrZC%2FbtsAOP4sJ19%2FvMYKnWYQY5fAGGzqNFpWd1%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;260&quot; height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/div&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;작업은 Memo.vue에서가 주라서 요것만....올림...요렇게 해서 앞단은 좀 정리 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인할 때 처럼 동적데이터 처리는&lt;/p&gt;
&lt;div style=&quot;background-color: #1f1f1f; color: #cccccc;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #4fc1ff;&quot;&gt;state&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;reactive&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;({&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; [ ]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; })&lt;/span&gt;&lt;/div&gt;
&lt;/div&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;div style=&quot;background-color: #1f1f1f; color: #cccccc;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;reactive&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;vue&quot;&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능 가져오도록 import한다는거....여기까지가 34분까지의 내용이다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 정리까지하니 반나절 이상갔다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수업은 총 1시간 35분 40초인데....난 5시간동안 절반도 못갔다...요하ㅣㄷ93ㅏㅣㅇㄹ902ㅓ깅ㄹㄴ아ㅣ러(욕이다)오늘은 요기까지...너무 힘들다....sass가 절대적이다.&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;&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;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/202</guid>
      <comments>https://codingisnoteasy.tistory.com/202#entry202comment</comments>
      <pubDate>Fri, 24 Nov 2023 16:01:42 +0900</pubDate>
    </item>
    <item>
      <title>Vue 3 강의 - JWT를 이용하여 로그인 애플리케이션 만들기(Node.js, Express, JWT)따라하기.</title>
      <link>https://codingisnoteasy.tistory.com/201</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=JR0jSscNNd4&amp;amp;list=WL&amp;amp;index=52&amp;amp;t=19s&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=JR0jSscNNd4&amp;amp;list=WL&amp;amp;index=52&amp;amp;t=19s&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=JR0jSscNNd4&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dLC8i4/hyUB5LI2jC/T0kMmphKBB4xoGi7ZChAEK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Vue 3 강의 - JWT를 이용하여 로그인 애플리케이션 만들기(Node.js, Express, JWT)&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/JR0jSscNNd4&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;vue3프로젝트 연습하기.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체코드는 git에 있어서 그걸 참고 하시길...&lt;a href=&quot;https://github.com/africalib/studies/tree/master/vue3/login&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/africalib/studies/tree/master/vue3/login&lt;/a&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;폴더만 봐도 알수 있듯이 화면 view는 vue3로 frontend에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤의 실제 데이터 구현 백단은 backend에서 진행한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;1. 뭐든 vue부터 설치시작한다...&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1700720800348&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install -g @vue/cli  //install을 i로 기재해도 된다.&lt;/code&gt;&lt;/pre&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;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;2. 상위폴더가서.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1700721181596&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PS C:\shin_work\vs_vue_ex&amp;gt; md login  //vue를 연습하는 폴더에 와서 오늘의 프로젝트 폴더생성
PS C:\shin_work\vs_vue_ex&amp;gt; cd login  // 해당 프로젝트 폴더 이동
PS C:\shin_work\vs_vue_ex\login&amp;gt; vue create frontend // 화면단의 폴더 생성하면서 vue관련 모든걸 내려준다.
		//전에 연습한거랑 일치해서 패스
PS C:\shin_work\vs_vue_ex\login&amp;gt;md backend	//생성한다.
PS C:\shin_work\vs_vue_ex\login\backend&amp;gt; npm init //프로젝트 초기화를 한다. 질문에는 그냥 enter&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ItAHq/btsAPlmQSnu/YoaPbbedrgUtb5Uh5r0Vz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ItAHq/btsAPlmQSnu/YoaPbbedrgUtb5Uh5r0Vz1/img.png&quot; data-origin-width=&quot;272&quot; data-origin-height=&quot;191&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.3598%; margin-right: 10px;&quot; data-widthpercent=&quot;56.01&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ItAHq/btsAPlmQSnu/YoaPbbedrgUtb5Uh5r0Vz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FItAHq%2FbtsAPlmQSnu%2FYoaPbbedrgUtb5Uh5r0Vz1%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;272&quot; height=&quot;191&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; data-origin-width=&quot;255&quot; data-origin-height=&quot;228&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.4774%;&quot; data-widthpercent=&quot;43.99&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbWkS1%2FbtsAO5xIuM9%2FBcdAHPj7ywOuAZ4FiKL9k0%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;255&quot; height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 login 폴더안에 백단과 앞단이 같이 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 백단 작업은 api-server.js에서 진행하고 이건 새파일생성해서 만들면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마찬가지 앞단도 src의 App.vue에서 한다. 이것도 앞 공부할때 한거라 설명기재는 패스~~&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;3.node.js express설치&lt;/b&gt;&lt;/span&gt;.....&lt;a href=&quot;https://expressjs.com/ko/starter/installing.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://expressjs.com/ko/starter/installing.html&lt;/a&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1700721535269&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Express 설치&quot; data-og-description=&quot;설치 Node.js가 이미 설치되었다고 가정한 상태에서, 애플리케이션을 보관할 디렉토리를 작성하고 그 디렉토리를 작업 디렉토리로 설정하십시오. $ mkdir myapp $ cd myapp npm init 명령을 이용하여 애플&quot; data-og-host=&quot;expressjs.com&quot; data-og-source-url=&quot;https://expressjs.com/ko/starter/installing.html&quot; data-og-url=&quot;https://expressjs.com/ko/starter/installing.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://expressjs.com/ko/starter/installing.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://expressjs.com/ko/starter/installing.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Express 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;설치 Node.js가 이미 설치되었다고 가정한 상태에서, 애플리케이션을 보관할 디렉토리를 작성하고 그 디렉토리를 작업 디렉토리로 설정하십시오. $ mkdir myapp $ cd myapp npm init 명령을 이용하여 애플&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;expressjs.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작하기로 가서&lt;/p&gt;
&lt;pre class=&quot;cmake&quot; style=&quot;color: #555555; text-align: start;&quot;&gt;&lt;code&gt;npm install express&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진행하고 hello world가서 예제 내용을 가져온다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 중요한거..이걸 실행하는건 &lt;b&gt;node 파일명.js&lt;/b&gt;라고 &lt;b&gt;터미널&lt;/b&gt;에 입력하는것이다........&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 공식문서에 있다..... hello world가서 예제 내용 밑에도 있다...하지만 배울땐 안보이는 법!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 vue는 자동재실행이나 node는 그런거 없다 터미널에서 ctrl+c 눌러서 종료하고 다시 &lt;b&gt;node 파일명.js&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbbsZ1/btsAL6kqGI7/WqIahUxNkxQoJN6J4Sujn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbbsZ1/btsAL6kqGI7/WqIahUxNkxQoJN6J4Sujn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbbsZ1/btsAL6kqGI7/WqIahUxNkxQoJN6J4Sujn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbbsZ1%2FbtsAL6kqGI7%2FWqIahUxNkxQoJN6J4Sujn0%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;275&quot; height=&quot;176&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #777777; text-align: center;&quot;&gt;+ 해서 터미널을 2개로 나눠서 앞, 뒤단 별로로하고 뭔지 나중에 해깔리깐 Rename에서 이름을 앞단 뒷단으로 변경한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;3.서버와 통신할수 있는 axios설치&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1700722344655&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//앞단 터미널에서 axios설치
npm i axios
//App.vue에 import 해야  쓸수 있다.
import axios from &quot;axios&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 화면 출력은 port 8080 이고 뒤인 서버단 port는 3000이 였다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 같은 곳이 아니니깐.url주소를 줘서 받아 올수 있으나 우리의 web에서는 보안이라는게 자동으로 있다.&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKPVl0/btsAM0jDdFe/Pty3WIbtoaJopvaztdSWm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKPVl0/btsAM0jDdFe/Pty3WIbtoaJopvaztdSWm1/img.png&quot; data-alt=&quot;CORS는 따로 공부하세요~~~프록시 기술로 잘받아오게 설정한다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKPVl0/btsAM0jDdFe/Pty3WIbtoaJopvaztdSWm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKPVl0%2FbtsAM0jDdFe%2FPty3WIbtoaJopvaztdSWm1%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;444&quot; height=&quot;51&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CORS는 따로 공부하세요~~~프록시 기술로 잘받아오게 설정한다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; style=&quot;width: 33.2003%; margin-right: 10px;&quot; data-widthpercent=&quot;33.59&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;228&quot; data-origin-width=&quot;255&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbWkS1/btsAO5xIuM9/BcdAHPj7ywOuAZ4FiKL9k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbWkS1%2FbtsAO5xIuM9%2FBcdAHPj7ywOuAZ4FiKL9k0%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;255&quot; height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/becZ9L/btsALKBTf7t/Zqqm3URJoqNZFgSKZcFtP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/becZ9L/btsALKBTf7t/Zqqm3URJoqNZFgSKZcFtP0/img.png&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;180&quot; data-is-animation=&quot;false&quot; style=&quot;width: 65.6369%;&quot; data-widthpercent=&quot;66.41&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/becZ9L/btsALKBTf7t/Zqqm3URJoqNZFgSKZcFtP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbecZ9L%2FbtsALKBTf7t%2FZqqm3URJoqNZFgSKZcFtP0%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;398&quot; height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue.config.js 파일을 생성해서 코드 넣는다..../api 시작하는 url은 3000이랑 연결하세요~~~란 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 까지 왔을 때 한시간 해맸다....시키는데로 했는데 또 안되는것이다. 서버단은 자동재실행 안되서 계속 재실행하는시간.....vue도 파일생성하고 재실행하고 난리였는데......보니깐 파일명 오타, 내용에 console.log 단어에도 오타가 있었다...오타있으면 에러찾다가 코드가 삼천포로 간다.!!!!!!!!!ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;4.서버에서 로그인 정보를 받기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue.에서 데이터를 request에 전달할때 서버에서는 받을 수 있는 모듈이 필요하다. &lt;a href=&quot;https://www.npmjs.com/package/body-parser&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.npmjs.com/package/body-parser&lt;/a&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1700723511026&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i body-parser   //백단 터미널가서 설치한다.
const bodyParser = require('body-parser')   //백단이니깐 api-server.js에 기재하는것
app.use(bodyParser.json())					//앱에 적용
/////
app.post('/api/account', (req, res) =&amp;gt; {		//앞단에서 config설정~~되새김질....
    let loginId = req.body.loginId;				//body통해 읽을 수 있다
    let loginPw = req.body.loginPw;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 앞뒤단 모두 get과 post를 같이있어서 에러발생되게 하는걸 이해를 못했는데 나중보니깐 로그인 후 쿠키 및 토큰 처리를 위해 필요한 것이였다.그리고 값전달을 send()에 넣어서 하는데 상태 404, 401등 값을 전달할때는 sendStatus()에 넣어서 보낸다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;5.로그인정보를 쿠키에 넣기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1700724090549&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;app.post('/api/account', (req, res) =&amp;gt; {
    let loginId = req.body.loginId;
    let loginPw = req.body.loginPw;

    const member = members.find(m =&amp;gt; m.loginId === loginId &amp;amp;&amp;amp; m.loginPw === loginPw);
    if(member){    
    	//account라는 이름의 쿠키에 member의 정보를 만들어준다.
        const options={
        	domain: &quot;localhost&quot;,
            path: &quot;/&quot;,
            httpOnly: true
        };
        res.cookie(&quot;account&quot;,JSON.stringify(member),options);
        res.send(member);
    }else{
        res.sendStatus(404);
    }
    console.log(loginId,loginPw);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;options 없이 재실행해서 되었던것 같다. 서버단은 입력후에 꼭 재실행해야한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AF7Ey/btsAO4ZVvvd/CZwaZKBY3CBdf2pTxgdPKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AF7Ey/btsAO4ZVvvd/CZwaZKBY3CBdf2pTxgdPKK/img.png&quot; data-alt=&quot;확인된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AF7Ey/btsAO4ZVvvd/CZwaZKBY3CBdf2pTxgdPKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAF7Ey%2FbtsAO4ZVvvd%2FCZwaZKBY3CBdf2pTxgdPKK%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;589&quot; height=&quot;231&quot; data-origin-width=&quot;589&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;확인된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 get으로 로그인 진행할때는 쿠키정보를 파싱해야한다. 그것도 별도로 설치해야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1700724658867&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//서버 백단 터미널에서 설치
npm i cookie-parser

//api-server.js가서 import해야함...
const cookieParser = require('cookie-parser')
app.use(cookieParser());

//get으로 들어올때 쿠키를 읽어야하는것이다.
app.get('/api/account', (req, res) =&amp;gt; {
    console.log(req.cookies);
    if(req.cookies &amp;amp;&amp;amp; req.cookies.token){
    	const member = JSON.parse(req.cookies.account);
        if(member.id){
        return res.send(member)
    }else{
        res.send(401);
    }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;6.쿠기 암호화.....토큰.....JWT&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 쿠키값은 다른사람이 로그인 정보로 쓸수 있다는 보안상 이슈가 있고....여러문제가 있을 수 있다는것....이때 쓰는것이 JWT이다.&lt;/p&gt;
&lt;pre id=&quot;code_1700725104729&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//서버단 터미널에서 설치
npm i jsonwebtoken


//api-server.js에 import
const jwt = require('jsonwebtoken')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치를 하고post에 쿠키정보에 암호화한&amp;nbsp; jwt에 넣고 get에도 토큰을 확인해 주는코드를 삽입한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFDHvO/btsAMYe7YrI/rVmIZmMp9oakRdtPzamYz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFDHvO/btsAMYe7YrI/rVmIZmMp9oakRdtPzamYz0/img.png&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;483&quot; data-is-animation=&quot;false&quot; style=&quot;width: 39.9641%; margin-right: 10px;&quot; data-widthpercent=&quot;40.43&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFDHvO/btsAMYe7YrI/rVmIZmMp9oakRdtPzamYz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFDHvO%2FbtsAMYe7YrI%2FrVmIZmMp9oakRdtPzamYz0%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;667&quot; height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vrMfl/btsAO7WGGdJ/6FQzLDHGE6hVc9xEHAVPXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vrMfl/btsAO7WGGdJ/6FQzLDHGE6hVc9xEHAVPXK/img.png&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;262&quot; data-is-animation=&quot;false&quot; style=&quot;width: 58.8731%;&quot; data-widthpercent=&quot;59.57&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vrMfl/btsAO7WGGdJ/6FQzLDHGE6hVc9xEHAVPXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvrMfl%2FbtsAO7WGGdJ%2F6FQzLDHGE6hVc9xEHAVPXK%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;533&quot; height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sing() 통해 만드는데 객체정보를 넣고, 토큰에 암호화 키를 &quot;abc1234567&quot;로 설정한다. verify()로 검증시에 이 암호화키 정보가 일치하지 않으면&amp;nbsp; 이토큰이&amp;nbsp; 그토큰이 아닌것이다.~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언제까지 유효한지 expiresIn으로 설정한다. 10s&amp;nbsp; 초단위도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 만든 token정보로 cookie를 만드는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mBq6F/btsAOUDajee/KC8yYd2WofnWRs4qOyt940/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mBq6F/btsAOUDajee/KC8yYd2WofnWRs4qOyt940/img.png&quot; data-alt=&quot;decoded 해도 관련 정보를 파악할 수 없다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mBq6F/btsAOUDajee/KC8yYd2WofnWRs4qOyt940/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmBq6F%2FbtsAOUDajee%2FKC8yYd2WofnWRs4qOyt940%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;519&quot; height=&quot;253&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;decoded 해도 관련 정보를 파악할 수 없다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jwt.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jwt.io/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1700725783628&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;JWT.IO&quot; data-og-description=&quot;JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.&quot; data-og-host=&quot;jwt.io&quot; data-og-source-url=&quot;https://jwt.io/&quot; data-og-url=&quot;http://jwt.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qmCBB/hyUB8BITot/1oH0hAIIkyDjjRcyQAzEm0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ccyJFi/hyUB7JyRhC/dI8OiW9hsGMUiKUcZamgLK/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512&quot;&gt;&lt;a href=&quot;https://jwt.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jwt.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qmCBB/hyUB8BITot/1oH0hAIIkyDjjRcyQAzEm0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/ccyJFi/hyUB7JyRhC/dI8OiW9hsGMUiKUcZamgLK/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;JWT.IO&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jwt.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단에 Encoded자리에 토큰 정보를 넣으면 decoded다 된다...중요정보는 넣지 않는것이 가장 바람직!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 변조한다고 해도 위에 말한 암호화키가 없다면 키정보가 일치하지 않아 토큰 정보는 유효하지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 port와 get두곳에서 키 정보가 쓰임으로 이것도 const jwtKey처리 하는 것도 좋다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;7. logOut.....마지막&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuwnom/btsAL3uzvo5/HeADRkWbJQGC6OQBCIRWO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuwnom/btsAL3uzvo5/HeADRkWbJQGC6OQBCIRWO0/img.png&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;132&quot; data-is-animation=&quot;false&quot; style=&quot;width: 58.8886%; margin-right: 10px;&quot; data-widthpercent=&quot;59.58&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuwnom/btsAL3uzvo5/HeADRkWbJQGC6OQBCIRWO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcuwnom%2FbtsAL3uzvo5%2FHeADRkWbJQGC6OQBCIRWO0%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;366&quot; height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKCb4b/btsAOJolATJ/fPK58wMO1O6rzMUOJSGpA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKCb4b/btsAOJolATJ/fPK58wMO1O6rzMUOJSGpA0/img.png&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;168&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;40.42&quot; style=&quot;width: 39.9486%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKCb4b/btsAOJolATJ/fPK58wMO1O6rzMUOJSGpA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKCb4b%2FbtsAOJolATJ%2FfPK58wMO1O6rzMUOJSGpA0%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;316&quot; height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/div&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;app.delete()통해서 통신했고. post때 생성한 쿠키 token을 클리어 한것이다.&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;/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;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/201</guid>
      <comments>https://codingisnoteasy.tistory.com/201#entry201comment</comments>
      <pubDate>Thu, 23 Nov 2023 17:00:16 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 -- 6 (import / export)</title>
      <link>https://codingisnoteasy.tistory.com/200</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f3c000; background-color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;# 데이터 export 보내주기.....&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 있다고 그냥 읽어 올수 없다. 동의가 있어야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동의 서명 코드는 데이터 변수로 선언해서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba7E4w/btsAviRLB9K/lh08cgKaxcviEZ0FceBleK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba7E4w/btsAviRLB9K/lh08cgKaxcviEZ0FceBleK/img.png&quot; data-origin-width=&quot;237&quot; data-origin-height=&quot;105&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;29.51&quot; style=&quot;width: 29.1638%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba7E4w/btsAviRLB9K/lh08cgKaxcviEZ0FceBleK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba7E4w%2FbtsAviRLB9K%2Flh08cgKaxcviEZ0FceBleK%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;237&quot; height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coQQeK/btsAvXGCIdM/azJ6mQl0PYt7ShqGgwDmPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coQQeK/btsAvXGCIdM/azJ6mQl0PYt7ShqGgwDmPK/img.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;79&quot; data-is-animation=&quot;false&quot; style=&quot;width: 69.6734%;&quot; data-widthpercent=&quot;70.49&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coQQeK/btsAvXGCIdM/azJ6mQl0PYt7ShqGgwDmPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoQQeK%2FbtsAvXGCIdM%2FazJ6mQl0PYt7ShqGgwDmPK%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;426&quot; height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;export default가 기본 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 배열 일경우&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC5GES/btsAviK0ZRT/GW7XP9Eu3yt9Wtxz0WkUG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC5GES/btsAviK0ZRT/GW7XP9Eu3yt9Wtxz0WkUG0/img.png&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;126&quot; data-is-animation=&quot;false&quot; style=&quot;width: 25.2259%; margin-right: 10px;&quot; data-widthpercent=&quot;25.52&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC5GES/btsAviK0ZRT/GW7XP9Eu3yt9Wtxz0WkUG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC5GES%2FbtsAviK0ZRT%2FGW7XP9Eu3yt9Wtxz0WkUG0%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;263&quot; height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnX9UW/btsAsy8Uc8e/TTDocv8ks0mugYZFiqpSVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnX9UW/btsAsy8Uc8e/TTDocv8ks0mugYZFiqpSVk/img.png&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;88&quot; data-is-animation=&quot;false&quot; style=&quot;width: 73.6113%;&quot; data-widthpercent=&quot;74.48&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnX9UW/btsAsy8Uc8e/TTDocv8ks0mugYZFiqpSVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnX9UW%2FbtsAsy8Uc8e%2FTTDocv8ks0mugYZFiqpSVk%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;536&quot; height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1개면 default고 2개면 export { }..... 묶어서 보내주기&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f3c000; background-color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;#데이터 import 받아오기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;....import는 import '변수명' from '경로' 로 선언하면된다....&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;받아올때도 배열이면 변수명 자리에 { } 묶어서 받기...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오브젝 배열의 리스트의 자료를 받아온다. [ {}, {}, {}, {}, {} ] 형태의 자료이고 변수를 선언하지 않을때는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;export default [ {}, {}, {}, {}, {} ]&lt;/b&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blzj7i/btsAosIFum2/CSuClX1sUCYpKwn1cHMjKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blzj7i/btsAosIFum2/CSuClX1sUCYpKwn1cHMjKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blzj7i/btsAosIFum2/CSuClX1sUCYpKwn1cHMjKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblzj7i%2FbtsAosIFum2%2FCSuClX1sUCYpKwn1cHMjKK%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;457&quot; height=&quot;32&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선언하고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2MIC2/btsAqANb1pf/Tku8ip8n8NmWpYd0GLDulK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2MIC2/btsAqANb1pf/Tku8ip8n8NmWpYd0GLDulK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2MIC2/btsAqANb1pf/Tku8ip8n8NmWpYd0GLDulK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2MIC2%2FbtsAqANb1pf%2FTku8ip8n8NmWpYd0GLDulK%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;200&quot; height=&quot;45&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그걸 다시 v-for문을 이용해서 돌리는것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난시간에 for문에서는 프로젝트 경로의 img를 동적생성해주는 것이였다. require() 할수를 이용해서....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이번 for문에는 먹히지 않았다.&lt;/p&gt;
&lt;pre id=&quot;code_1700186582305&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;div v-for=&quot;(원룸,i) in 원룸들&quot; :key=&quot;i&quot; :style=&quot;inStyle&quot;&amp;gt;
    &amp;lt;img :src=&quot;원룸.image&quot; class=&quot;img_room&quot;&amp;gt;
    &amp;lt;h4 :style=&quot;style&quot; @click=&quot;모달창열렸니 =true&quot;&amp;gt;{{ i+1}}. {{ 원룸.title }}&amp;lt;/h4&amp;gt;
    &amp;lt;p &amp;gt; {{원룸.price}}&amp;lt;/p&amp;gt;       
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번껀&amp;nbsp; 그냥 데이터를 넣어야지 되었다. :src안에 문자열로 넣을때는 {{ }} 안에 기재하지 않았다는게 포인트...&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;require('${{원룸.image}}')&lt;span&gt; 경우에는 에러가 나옴....ㅋㅋㅋ 이렇게 하시는 분들은 없을 수도 있으나...화면 출력이 안되었을때 뻘짓을 많이 했다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;595&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3sUVl/btsAvjC7WIn/Rpx2vIOnoNd4K3WUdSCC8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3sUVl/btsAvjC7WIn/Rpx2vIOnoNd4K3WUdSCC8K/img.png&quot; data-alt=&quot;잘나옴.....&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3sUVl/btsAvjC7WIn/Rpx2vIOnoNd4K3WUdSCC8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3sUVl%2FbtsAvjC7WIn%2FRpx2vIOnoNd4K3WUdSCC8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;355&quot; height=&quot;595&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;595&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;잘나옴.....&lt;/figcaption&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;chatGPT의 힘을 빌려...code수정했다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #f3c000; background-color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;#for문 안에 데이터 함수로 전달 하기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;33&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNg2GM/btsAnDXTVCM/UEugm8z0pc0TywJMy4LSK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNg2GM/btsAnDXTVCM/UEugm8z0pc0TywJMy4LSK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNg2GM/btsAnDXTVCM/UEugm8z0pc0TywJMy4LSK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNg2GM%2FbtsAnDXTVCM%2FUEugm8z0pc0TywJMy4LSK0%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;490&quot; height=&quot;33&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;33&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 부분이겠지...직적 데이터가 아니라 함수를 적용하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 저기 손을 봐야했다..ㅋㅋ&lt;/p&gt;
&lt;pre id=&quot;code_1700188681867&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//모달창 부분에서 상세데이터를 받은 코드를 추가하고 클릭기능에 함수로 변경한다.
&amp;lt;p&amp;gt;{{ modalContent }}&amp;lt;/p&amp;gt;
&amp;lt;button @click=&quot;closeModal()&quot; &amp;gt;닫기&amp;lt;/button&amp;gt;

//클릭시 모달창 활성화 함수도 수정한다.
&amp;lt;h4 :style=&quot;style&quot; @click=&quot;modalOpen(원룸.content)&quot;&amp;gt;{{ i+1}}. {{ 원룸.title }}&amp;lt;/h4&amp;gt;&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;script의 methods 영역에 함수를 추가한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yxnbn/btsAvh6qhFH/mfhSXoQLe6wAkCMXvixfv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yxnbn/btsAvh6qhFH/mfhSXoQLe6wAkCMXvixfv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yxnbn/btsAvh6qhFH/mfhSXoQLe6wAkCMXvixfv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyxnbn%2FbtsAvh6qhFH%2FmfhSXoQLe6wAkCMXvixfv0%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;293&quot; height=&quot;161&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;161&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yyCbo/btsAotOmDrc/TqfsG79Kbev4gsZpdPG461/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yyCbo/btsAotOmDrc/TqfsG79Kbev4gsZpdPG461/img.png&quot; data-alt=&quot;클릭시 상세 페이지에 원룸 상세 내용이 뜬다...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yyCbo/btsAotOmDrc/TqfsG79Kbev4gsZpdPG461/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyyCbo%2FbtsAotOmDrc%2FTqfsG79Kbev4gsZpdPG461%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;370&quot; height=&quot;461&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;클릭시 상세 페이지에 원룸 상세 내용이 뜬다...&lt;/figcaption&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;데이터 함수로 전달시 원룸자체를 보내서&lt;/p&gt;
&lt;div style=&quot;background-color: #1f1f1f; color: #cccccc;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;modalContent&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; 원룸.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 작성해도 된다..모달창에 띄울 내용이 많다면 이것도 방법~&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/200</guid>
      <comments>https://codingisnoteasy.tistory.com/200#entry200comment</comments>
      <pubDate>Fri, 17 Nov 2023 11:42:10 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 -- 5 모달창</title>
      <link>https://codingisnoteasy.tistory.com/199</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;# 이미지 동적 생성&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;.........for문으로 돌리기는 숙제로 했는데 여기 이미지 추가가 있었음...&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지 경로를 동적으로 생성해야하는데....잘안되어서 ChatGPT도움을 받아 작성함..ㅋㅋ&lt;/p&gt;
&lt;pre id=&quot;code_1700181983786&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div v-for=&quot;(a,i) in products&quot; :key=&quot;i&quot; :style=&quot;inStyle&quot;&amp;gt;
    &amp;lt;img :src=&quot;require(`./assets/roomImages/room${i}.jpg`)&quot; class=&quot;img_room&quot;&amp;gt;
    &amp;lt;h4 :style=&quot;style&quot; @click=&quot;모달창열렸니 =true&quot;&amp;gt;{{ i+1}}. {{ products[i] }}&amp;lt;/h4&amp;gt;
    &amp;lt;p &amp;gt; {{ price[i] }} 만원&amp;lt;/p&amp;gt;
    &amp;lt;button @click=&quot;increase2(i)&quot;&amp;gt;허위매물신고&amp;lt;/button&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;신고수 : {{ 신고수[i] }}&amp;lt;/span&amp;gt;
    &amp;lt;button @click=&quot;increase&quot;&amp;gt;함수연습&amp;lt;/button&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;Vue에서 &lt;/span&gt;require&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt; 함수를 사용하면 동적으로 경로를 생성하고 이미지를 로드할 수 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;695&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3to8N/btsAuKOu3RU/nN0rilw6yHmePGOKTG6WKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3to8N/btsAuKOu3RU/nN0rilw6yHmePGOKTG6WKK/img.png&quot; data-alt=&quot;이렇게 잘 나옴.....for문을 통해 이미지 경로 만들기!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3to8N/btsAuKOu3RU/nN0rilw6yHmePGOKTG6WKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3to8N%2FbtsAuKOu3RU%2FnN0rilw6yHmePGOKTG6WKK%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;504&quot; height=&quot;695&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;695&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게 잘 나옴.....for문을 통해 이미지 경로 만들기!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 vue의 기본 폴더는 assets임..src에 있는거 가져올 때 경로는 ./부터 시작해야한다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 문법이 그러니깐 외어야함.ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;# v-if 조건문에 관련&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;.........조건문을 통한 모달창 on/off 진행하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 역삼동 원룸을 클릭하면 모달창이 나오는 것임.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C1RFi/btsArvEzoce/82guGa9dNs1yk2VPK51aFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C1RFi/btsArvEzoce/82guGa9dNs1yk2VPK51aFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C1RFi/btsArvEzoce/82guGa9dNs1yk2VPK51aFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC1RFi%2FbtsArvEzoce%2F82guGa9dNs1yk2VPK51aFK%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;528&quot; height=&quot;140&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1차. 모달창 UI를 만듬....간단함...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX5GKG/btsAvsfGsiq/GAJfpiM1phhOOKj4hHzJ5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX5GKG/btsAvsfGsiq/GAJfpiM1phhOOKj4hHzJ5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX5GKG/btsAvsfGsiq/GAJfpiM1phhOOKj4hHzJ5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX5GKG%2FbtsAvsfGsiq%2FGAJfpiM1phhOOKj4hHzJ5K%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;220&quot; height=&quot;62&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;data에 변수선언후 값을 줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;v-if를 통해서 모달창열렸니라는 변수가 true일경우에만 활성화시키는 것&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;49&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IJkVn/btsAvYrXSRd/k6Gnvj228MGT4R0ZVru6J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IJkVn/btsAvYrXSRd/k6Gnvj228MGT4R0ZVru6J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IJkVn/btsAvYrXSRd/k6Gnvj228MGT4R0ZVru6J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIJkVn%2FbtsAvYrXSRd%2Fk6Gnvj228MGT4R0ZVru6J0%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;711&quot; height=&quot;49&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;49&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 제목줄에 클릭기능을 선언해서 값을 변경해줌..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모달창에 닫기 버튼에는 false값을 선언 클릭기능을 넣음.&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2AC4G/btsAs8vuz9G/PnwlvkkTQdpkZafJAmk9Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2AC4G/btsAs8vuz9G/PnwlvkkTQdpkZafJAmk9Z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2AC4G/btsAs8vuz9G/PnwlvkkTQdpkZafJAmk9Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2AC4G%2FbtsAs8vuz9G%2FPnwlvkkTQdpkZafJAmk9Z1%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;477&quot; height=&quot;244&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 on/off가 됨.....이렇게 보니깐 너무 간단하다..ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/199</guid>
      <comments>https://codingisnoteasy.tistory.com/199#entry199comment</comments>
      <pubDate>Fri, 17 Nov 2023 10:06:48 +0900</pubDate>
    </item>
    <item>
      <title>스프링부트에서 스마트에디터2  사용하기 - javax.servlet.http.httpservletrequest request에러</title>
      <link>https://codingisnoteasy.tistory.com/197</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/douyWM/btsAhdplyxK/p1yl6JHeZCet3EFw55udrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/douyWM/btsAhdplyxK/p1yl6JHeZCet3EFw55udrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/douyWM/btsAhdplyxK/p1yl6JHeZCet3EFw55udrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdouyWM%2FbtsAhdplyxK%2Fp1yl6JHeZCet3EFw55udrk%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;287&quot; height=&quot;592&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;592&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;id &lt;span style=&quot;color: #6a8759;&quot;&gt;'org.springframework.boot' &lt;/span&gt;version &lt;span style=&quot;color: #6a8759;&quot;&gt;'3.1.4'&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나의 스프링 부트 버전이다. 3.1.4 버전으로 하면서 겪은 일은 풀어보자면&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323; background-color: #9feec3;&quot;&gt;1. css폴더 안의 이미지와 관련된 주소를 모두 나의 프로젝트 폴더 구조에 맞춰서 변경해야한다.&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 툴바가 아니 나와서 보니깐 이 주소들 설정이 안맞아서 그런것이였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 다행이 그렇게 어렵지 않게 찾고 수정할 수 있었다...물론 일일이 확인하면서 해서 노가다 작업이였으나....이정도야...감사하다..ㅋㅋ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YzZvW/btsAeCpnY1m/PJZFjrfyZag1Wjcm94aWw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YzZvW/btsAeCpnY1m/PJZFjrfyZag1Wjcm94aWw0/img.png&quot; data-alt=&quot;url주소를 모두 변경해줘야 한다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YzZvW/btsAeCpnY1m/PJZFjrfyZag1Wjcm94aWw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYzZvW%2FbtsAeCpnY1m%2FPJZFjrfyZag1Wjcm94aWw0%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;1196&quot; height=&quot;158&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;url주소를 모두 변경해줘야 한다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9feec3; color: #ee2323;&quot;&gt;2. 사진을 올려야 하는데.....이게 문제이다.&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1699836203554&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;% 
String return1=&quot;&quot;;
String return2=&quot;&quot;;
String return3=&quot;&quot;;
//변경 title 태그에는 원본 파일명을 넣어주어야 하므로
String name = &quot;&quot;;
if (ServletFileUpload.isMultipartContent(request)){
	ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory());
	uploadHandler.setHeaderEncoding(&quot;UTF-8&quot;);
	List&amp;lt;FileItem&amp;gt; items = uploadHandler.parseRequest(request);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원 코드 인데...request부분부터 문제였다....빨간줄이 뜨는데...처음엔 뭐가 문제지????????&lt;/p&gt;
&lt;pre id=&quot;code_1699836346204&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;The method parseRequest(javax.servlet.http.HttpServletRequest) in the type ServletFileUpload is not applicable for the arguments (jakarta.servlet.http.HttpServletRequest)
에러가 남..&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루정도 형변환도 했다가 import도 다시 했다가 설정 넣었다가 지웠다가 해보다가 안되서 포기하고 집에 누웠는데......갑자기 생각났다..스프링부트는 &lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;javax.servlet.http.HttpServletRequest 가 안된다.....그래서 &lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;jakarta.servlet.http.HttpServletRequest 다 변경해줬느데 그부분은 까맣게 잊고 있었다...다음날은 그럼 어떻게 이걸로 변경해야하나를 고민했다...영어 잘 못하고 눈치만 늘은 내가 겨우 찾은 것은 apache.fileupload2로&amp;nbsp; import해야 한다는것....&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;a href=&quot;https://mvnrepository.com/artifact/org.apache.commons/commons-fileupload2-core/2.0.0-M1&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mvnrepository.com/artifact/org.apache.commons/commons-fileupload2-core/2.0.0-M1&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1699837939103&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    implementation group: 'org.apache.commons', name: 'commons-fileupload2-jakarta', version: '2.0.0-M1'
    implementation group: 'commons-io', name: 'commons-io', version: '2.13.0'
    implementation group: 'org.apache.commons', name: 'commons-fileupload2-core', version: '2.0.0-M1'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;gradle설정도 변경해줘야 한다.&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;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;그러고 나니깐......&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;&lt;span style=&quot;background-color: #232525; color: #cc7832;&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;background-color: #232525;&quot;&gt;DiskFileItemFactory&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;가 안되는것이다......뭐지??????또 &lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;apache.fileupload 버전을 설치 했다가 안했다가 쇼를 하다가 또 겨우 찾은공식문서....사실 잘 안봤는데....선배님들이 공식 문서계속 들어가시는게 조금씪 이해되고 있다...블로거를 다 믿으면 안된다는거..ㅋㅋㅋ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;span style=&quot;color: #343541; text-align: start;&quot;&gt;&lt;a href=&quot;https://javadoc.io/doc/org.apache.commons/commons-fileupload2-core/latest/org/apache/commons/fileupload2/core/DiskFileItemFactory.Builder.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://javadoc.io/doc/org.apache.commons/commons-fileupload2-core/latest/org/apache/commons/fileupload2/core/DiskFileItemFactory.Builder.html&lt;/a&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;1154&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GRhXi/btsz9YUKMik/4B82QR4XblltFXJZ5CKTa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GRhXi/btsz9YUKMik/4B82QR4XblltFXJZ5CKTa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GRhXi/btsz9YUKMik/4B82QR4XblltFXJZ5CKTa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGRhXi%2Fbtsz9YUKMik%2F4B82QR4XblltFXJZ5CKTa1%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;1154&quot; height=&quot;138&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성할때 전처럼 간단히가 아니라 이렇게 써야한다고 예시되어 있었다.......나를 칭찬하고 싶은 순간...ㅋㅋㅋ&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;&lt;span style=&quot;background-color: #232525;&quot;&gt;DiskFileItemFactory factory = &lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #cc7832;&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;background-color: #232525;&quot;&gt;DiskFileItemFactory.Builder().setPath(&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #6a8759;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #cc7832;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #6a8759;&quot;&gt;resources&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #cc7832;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #6a8759;&quot;&gt;upLoad&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #232525;&quot;&gt;).setBufferSize(&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #6897bb;&quot;&gt;10240&lt;/span&gt;&lt;span style=&quot;background-color: #232525;&quot;&gt;).get()&lt;/span&gt;&lt;span style=&quot;background-color: #232525; color: #cc7832;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요놈은 파일은 읽어들이고 잠시 보관해야 할 곳을 지정하는 녀석이라서 이렇게 만들어주었는데...사실은 AI질문한거랑 확인한 거랑 짬봉해서 넣은것이다......&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #000000; color: #ffffff; text-align: left;&quot;&gt;.setSizeThreshold(&lt;/span&gt;&lt;span style=&quot;background-color: #000000; color: #df3079; text-align: left;&quot;&gt;10240&lt;/span&gt;&lt;span style=&quot;background-color: #000000; color: #ffffff; text-align: left;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;background-color: #000000; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;// Set the size threshold to 10 KB&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하길래...그냥 맞춰서 넣었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 그다음 에러....본문에 이미지 파일을 붙여 넣어야 하는데...계속 에러인 것이다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a.lang.IllegalArgumentException:&amp;nbsp;Invalid&amp;nbsp;character&amp;nbsp;found&amp;nbsp;in&amp;nbsp;the&amp;nbsp;request&amp;nbsp;target&amp;nbsp;[/resources/smartEditor/photo_uploader/popup/callback.html?callback_func=tmpFrame_4468_func&amp;amp;bNewLine=true&amp;amp;sFileName=taling3-search.png&amp;amp;sFileURL=`/resources/upLoad/202311131040129bae9bf3-21f9-44b7-82a9-2e3c7d97efdd.png&amp;nbsp;].&amp;nbsp;The&amp;nbsp;valid&amp;nbsp;characters&amp;nbsp;are&amp;nbsp;defined&amp;nbsp;in&amp;nbsp;RFC&amp;nbsp;7230&amp;nbsp;and&amp;nbsp;RFC&amp;nbsp;3986 &lt;br /&gt;at&amp;nbsp;org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:482)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:264)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&amp;nbsp;~[tomcat-embed-core-10.1.13.jar:10.1.13] &lt;br /&gt;at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 검색부터 했더니 톰캣에서 특수문자를 못읽는다고 &lt;span style=&quot;background-color: #000000; color: #ffffff; text-align: left;&quot;&gt;URLEncoder.encode&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관련 작업을 하라고 해서 한참을 이것저것&amp;nbsp; 했으나 별다른 반응이 없는것이다...........브라우저 콘솔까지 뒤져서 한참을 보고 알았다... search.png&amp;amp;sFileURL=`/resources/upLoad/202311131040129bae9bf3-21f9-44b7-82a9- 이부분.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;` 요것이 들어가 있었다.....타이밍 실수였던것이다.....욕나옴....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론은 스마트에디터의 코드는 왠만하면 건들이지 마세요~~~~^^&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 request가 안될때 정신줄 놓고 여기저기 만졌더니만 결국은 고생했다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 DB저장과&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;제목에서 스프링부트라고 하고 fileupload 관련 2가 안붙으면 안된다는 거..........결론입니다.~~~^^&lt;/p&gt;</description>
      <category>API</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/197</guid>
      <comments>https://codingisnoteasy.tistory.com/197#entry197comment</comments>
      <pubDate>Mon, 13 Nov 2023 12:36:13 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 --4 onclick</title>
      <link>https://codingisnoteasy.tistory.com/196</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이벤트 핸들러 관련중 빈번한 버튼 클릭시 처리방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고전적 자바스크립는 onclick=&quot;&quot; 였으나.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue에서는 @click=''&quot; 임..&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; +1만 해주면됨....vue는 실시간 랜더링이 됨으로...&lt;/p&gt;
&lt;pre id=&quot;code_1699433316986&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;h1&amp;gt;{{ logo }}&amp;lt;/h1&amp;gt;
  &amp;lt;div v-for=&quot;(a,i) in products&quot; :key=&quot;i&quot; :style=&quot;inStyle&quot;&amp;gt;
    &amp;lt;h4 :style=&quot;style&quot;&amp;gt;{{ i+1}}. {{ products[i] }}&amp;lt;/h4&amp;gt; &amp;amp;nbsp;
    &amp;lt;p &amp;gt; {{ price[i] }} 만원&amp;lt;/p&amp;gt; &amp;amp;nbsp;
    &amp;lt;button @click=&quot;신고수++&quot;&amp;gt;허위매물신고&amp;lt;/button&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;신고수 : {{ 신고수 }}&amp;lt;/span&amp;gt;
  &amp;lt;/div&amp;gt;  
&amp;lt;/div&amp;gt;
//그럼 데이터 추가.
data(){
    return{
      신고수 : 0,
      메뉴들:['Home', 'Shop','About'],
      //데이터 보관함...object자료로 저장 key:value 형식     
      logo : '원룸샾',
      style : 'color:red;font-size:20px;',
      products : ['역삼동원룸','천호동원룸','마포구원룸'],
      price :[50,60,80],
      inStyle :'display: inline-flex;align-items: center;',
    }
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQHimq/btsz1TEUEtZ/kWRyywhROktkCkuAU4dau1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQHimq/btsz1TEUEtZ/kWRyywhROktkCkuAU4dau1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQHimq/btsz1TEUEtZ/kWRyywhROktkCkuAU4dau1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQHimq%2Fbtsz1TEUEtZ%2FkWRyywhROktkCkuAU4dau1%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;339&quot; height=&quot;281&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;태그에 스타일 넣는 것은 응용임!!!!...스타일에는 {{ }} 넣는게 아니라 그냥 명칭을 넣는다는것. 주의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 응용.....한번에 다 넣으면 안되지 않습니까???ㅋㅋ&lt;/p&gt;
&lt;pre id=&quot;code_1699433493862&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div v-for=&quot;(a,i) in products&quot; :key=&quot;i&quot; :style=&quot;inStyle&quot;&amp;gt;
    &amp;lt;h4 :style=&quot;style&quot;&amp;gt;{{ i+1}}. {{ products[i] }}&amp;lt;/h4&amp;gt; &amp;amp;nbsp;
    &amp;lt;p &amp;gt; {{ price[i] }} 만원&amp;lt;/p&amp;gt; &amp;amp;nbsp;
    &amp;lt;button @click=&quot;신고수[i]++&quot;&amp;gt;허위매물신고&amp;lt;/button&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;신고수 : {{ 신고수[i] }}&amp;lt;/span&amp;gt;
 &amp;lt;/div&amp;gt;  
 //
 신고수 : [0,0,0],&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 변경하니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgkmqT/btszYKCaojR/pYcicvdyrkzkIhV1QgbY00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgkmqT/btszYKCaojR/pYcicvdyrkzkIhV1QgbY00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgkmqT/btszYKCaojR/pYcicvdyrkzkIhV1QgbY00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgkmqT%2FbtszYKCaojR%2FpYcicvdyrkzkIhV1QgbY00%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;383&quot; height=&quot;345&quot; data-origin-width=&quot;383&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 신고수도 별도로 카운트 되었다...우와!!!!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수를 추가할수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수를 넣는 위치는 정해져 앴다. export default 의 data와 components사이에 methods 영역을 추가하면된다. 다른된 안됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신고수 증가 함수를 넣고자 했는데 methods영역에 읽지 못했다....this를 써줘야 한다...&lt;/p&gt;
&lt;pre id=&quot;code_1699434179396&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div v-for=&quot;(a,i) in products&quot; :key=&quot;i&quot; :style=&quot;inStyle&quot;&amp;gt;
    &amp;lt;h4 :style=&quot;style&quot;&amp;gt;{{ i+1}}. {{ products[i] }}&amp;lt;/h4&amp;gt; &amp;amp;nbsp;
    &amp;lt;p &amp;gt; {{ price[i] }} 만원&amp;lt;/p&amp;gt; &amp;amp;nbsp;
    &amp;lt;button @click=&quot;increase2(i)&quot;&amp;gt;허위매물신고&amp;lt;/button&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;신고수 : {{ 신고수[i] }}&amp;lt;/span&amp;gt; &amp;amp;nbsp;
    &amp;lt;button @click=&quot;increase&quot;&amp;gt;함수연습&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;  

//메소드 영역
export default {
  name: 'App',
  data(){
    return{
      신고수 : [0,0,0],
      메뉴들:['Home', 'Shop','About'],
      //데이터 보관함...object자료로 저장 key:value 형식     
      logo : '원룸샾',
      style : 'color:red;font-size:20px;',
      products : ['역삼동원룸','천호동원룸','마포구원룸'],
      price :[50,60,80],
      inStyle :'display: inline-flex;align-items: center;',
    }
  },
  methods : {
    increase(){
      alert(&quot; 함수 연습&quot;);
    },
    increase2(i){
      this.신고수[i]++
    }
  },

  components: {

  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/es6pXq/btszZjEo6tX/vI2iDHvlh5x2mS2tJxyvKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/es6pXq/btszZjEo6tX/vI2iDHvlh5x2mS2tJxyvKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/es6pXq/btszZjEo6tX/vI2iDHvlh5x2mS2tJxyvKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fes6pXq%2FbtszZjEo6tX%2FvI2iDHvlh5x2mS2tJxyvKk%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;951&quot; height=&quot;787&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;787&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;alert도 나오고 카운트도 되었다.... 데이터 전달도 이런식으로 할수 있는것이 고무적이다..ㅋㅋㅋㅋ 좀더 간편한듯함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숙제는 3가지 원룸에 모두 허위매물신고 버튼을 만드는 것이였다.....이건 이미 했으니깐 숙제가 없다!!!! 아이좋아..ㅋㅋㅋㅋ&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/196</guid>
      <comments>https://codingisnoteasy.tistory.com/196#entry196comment</comments>
      <pubDate>Wed, 8 Nov 2023 18:05:52 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 --3 for문</title>
      <link>https://codingisnoteasy.tistory.com/195</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Vue의 Html 반복문 = &amp;lt;태그 v-for=&quot;작명 in 몇회&quot; :key=&quot;작명&quot;&amp;gt;&amp;nbsp; &amp;nbsp;//key&amp;nbsp; 꼭 필요함.&lt;/p&gt;
&lt;pre id=&quot;code_1699430560766&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;div class=&quot;menu&quot;&amp;gt;
    &amp;lt;a v-for=&quot;작명 in 3&quot; :key=&quot;작명&quot;&amp;gt;Home&amp;lt;/a&amp;gt;
    &amp;lt;a&amp;gt;Products&amp;lt;/a&amp;gt;
    &amp;lt;a&amp;gt;About&amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;img alt=&quot;Vue logo&quot; src=&quot;./assets/logo.png&quot;&amp;gt;
&amp;lt;div&amp;gt;
  {{ logo }}
  &amp;lt;h4 class=&quot;red&quot; style=&quot;color:blue;&quot;&amp;gt;XX 원룸&amp;lt;/h4&amp;gt;
  &amp;lt;p&amp;gt; {{ price1}} 만원&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;h4 :style=&quot;style&quot;&amp;gt;XX 원룸&amp;lt;/h4&amp;gt;
  &amp;lt;p&amp;gt; {{ price2}} 만원&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wxrZe/btszZHLPygo/nJUCKd3cIKkWDbLgKVzQlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wxrZe/btszZHLPygo/nJUCKd3cIKkWDbLgKVzQlk/img.png&quot; data-alt=&quot;이렇게 나옴....&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wxrZe/btszZHLPygo/nJUCKd3cIKkWDbLgKVzQlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwxrZe%2FbtszZHLPygo%2FnJUCKd3cIKkWDbLgKVzQlk%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;487&quot; height=&quot;256&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게 나옴....&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Home을 대체하는 배열을&amp;nbsp; 이용할 것임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vue반복문은 array/object집어넣기 가능하며 데이터 갯수만큼 자동 반복됨.&lt;/p&gt;
&lt;pre id=&quot;code_1699430975488&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a v-for=&quot;menu in 메뉴들&quot; :key=&quot;menu&quot;&amp;gt;{{ menu}}&amp;lt;/a&amp;gt;
//export default의  data() {} 부분에 추가한것임
return{
      메뉴들:['Home', 'Shop','About'],&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XNJW9/btsz1JJabPF/LQ3y9vEAYNRpBP7ICjMBv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XNJW9/btsz1JJabPF/LQ3y9vEAYNRpBP7ICjMBv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XNJW9/btsz1JJabPF/LQ3y9vEAYNRpBP7ICjMBv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXNJW9%2Fbtsz1JJabPF%2FLQ3y9vEAYNRpBP7ICjMBv0%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;495&quot; height=&quot;240&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴들에서 각각의 값을 menu로 뽑아내는 것이다. 그러므로 key는 꼭 ! 반드시 써야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작명부분에 2가지 변수를 사용할수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽 변수는 배열의 각 값을 의미하는 데이터 변수,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 변수는 1씩 증가하는 정수&lt;/p&gt;
&lt;pre id=&quot;code_1699431176929&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a v-for=&quot;(menu,i) in 메뉴들&quot; :key=&quot;menu&quot;&amp;gt;{{ i}}&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mMAjV/btsz1RUzSDH/k8chFnsXZSwJk57uhgj2U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mMAjV/btsz1RUzSDH/k8chFnsXZSwJk57uhgj2U0/img.png&quot; data-alt=&quot;정수가 출력되었다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mMAjV/btsz1RUzSDH/k8chFnsXZSwJk57uhgj2U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmMAjV%2Fbtsz1RUzSDH%2Fk8chFnsXZSwJk57uhgj2U0%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;488&quot; height=&quot;225&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정수가 출력되었다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 ( ) 넣고 2개까지 넣을 수 있다.&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;for문 숙제...111 원룸과 월세를 반복문 처리하기.&lt;/p&gt;
&lt;pre id=&quot;code_1699432322398&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;h1&amp;gt;{{ logo }}&amp;lt;/h1&amp;gt;
  // 가격도 돌아야 하는데 어떻게 하지? if문인가????
  &amp;lt;div&amp;gt;    // 처음에 내가 생각한 부분....
    &amp;lt;h4 :style=&quot;style&quot; v-for=&quot;(room,a) in products&quot; :key=&quot;room&quot;&amp;gt;{{ a+1}}. {{ room }}&amp;lt;/h4&amp;gt;
    &amp;lt;p &amp;gt; {{ price2}} 만원&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div v-for=&quot;(a,i) in 3&quot; :key=&quot;i&quot;&amp;gt;  //알려주신 정답.. 상위버전 돌아가는 응용력 부족
    &amp;lt;h4 :style=&quot;style&quot;&amp;gt;{{ i+1}}. {{ products[i] }}&amp;lt;/h4&amp;gt;
    &amp;lt;p &amp;gt; {{ price[i] }} 만원&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;  
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3을 products로 변경하면된다....&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OCzAw/btsz1JoSJLd/1OkTAEnfoJMbuGSXsGKmPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OCzAw/btsz1JoSJLd/1OkTAEnfoJMbuGSXsGKmPk/img.png&quot; data-alt=&quot;원하는 값이 나옴.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OCzAw/btsz1JoSJLd/1OkTAEnfoJMbuGSXsGKmPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOCzAw%2Fbtsz1JoSJLd%2F1OkTAEnfoJMbuGSXsGKmPk%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;261&quot; height=&quot;529&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;원하는 값이 나옴.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1699432441777&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;export default {
  name: 'App',
  data(){
    return{
      메뉴들:['Home', 'Shop','About'],
      //데이터 보관함...object자료로 저장 key:value 형식     
      logo : '원룸샾',
      style : 'color:red;font-size:20px;',
      products : ['역삼동원룸','천호동원룸','마포구원룸'],
      price :[50,60,80],
    }
  },
  components: {

  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/195</guid>
      <comments>https://codingisnoteasy.tistory.com/195#entry195comment</comments>
      <pubDate>Wed, 8 Nov 2023 17:36:07 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 -- 2 데이터 바인딩</title>
      <link>https://codingisnoteasy.tistory.com/194</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;{{ 데이터 바인딩 }} JS데이터를 HTML에 꽃아 넣는 문법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜쓰는가?/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. html에 하드코딩 해놓으면 나중에 변경 어려움...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. vue의 실시간 자동 렌더링 쓰기 때문&amp;nbsp; -- data를 변경하면 관련된html에서 실시간으로 변경이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 낮은 변경이 없는 데이터는 데이터 바인딩을 할 필요 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. html속성도 데이터 바인딩 가능 하나&amp;nbsp; 문법은 ** :속성=&quot;데이터 이름&quot;&lt;/p&gt;
&lt;pre id=&quot;code_1699427017319&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;img alt=&quot;Vue logo&quot; src=&quot;./assets/logo.png&quot;&amp;gt;
&amp;lt;div&amp;gt;
  {{ logo }}
  &amp;lt;h4 class=&quot;red&quot; style=&quot;color:blue;&quot;&amp;gt;XX 원룸&amp;lt;/h4&amp;gt;
  &amp;lt;p&amp;gt; {{ price1}} 만원&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt;
  &amp;lt;h4 :style=&quot;style&quot;&amp;gt;XX 원룸&amp;lt;/h4&amp;gt;
  &amp;lt;p&amp;gt; {{ price2}} 만원&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;

export default {
  name: 'App',
  data(){
    return{
      //데이터 보관함...object자료로 저장 key:value 형식
      price1 : 60,
      price2 : 60,
      logo : '원룸샾',
      style : 'color:red;font-size:20px;',
      products : ['역삼동원룸','천호동원룸','마포구원룸'],
    }
  },
  components: {

  }
}
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #1f1f1f; color: #cccccc;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;products&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;'역삼동원룸'&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;'천호동원룸'&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;'마포구원룸'&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것은 for문을 위한 숙제....ㅋㅋ&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/194</guid>
      <comments>https://codingisnoteasy.tistory.com/194#entry194comment</comments>
      <pubDate>Wed, 8 Nov 2023 16:04:42 +0900</pubDate>
    </item>
    <item>
      <title>코딩애플 Vue3 직방, 인스타그램 웹앱 -- 1</title>
      <link>https://codingisnoteasy.tistory.com/193</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;vue.js 기본 설치 진행.&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;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; node.js 설치&lt;/span&gt;&amp;hellip;다운로드시 기본 설치 하는 곳에 변경하지 말고 그냥 하라고 했으나 나는 지금 개개인 설치되어 있음. 하지만 에러나서 삭제 후 에 그냥 신버전으로 다시 다운 로드 함&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;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; vs code&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;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; 신규폴더 생성해서 경로 이동 후&lt;/span&gt;&amp;rarr; 터미널에서 npm install -g @vue/cli 입력 후 엔터 / vue를 설치함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Untitled (1).png&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFSxNy/btszYlCfBue/nRdKyDaZmJRmc864nWMQu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFSxNy/btszYlCfBue/nRdKyDaZmJRmc864nWMQu1/img.png&quot; data-alt=&quot;node 명령어로 설치해주는 것임.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFSxNy/btszYlCfBue/nRdKyDaZmJRmc864nWMQu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFSxNy%2FbtszYlCfBue%2FnRdKyDaZmJRmc864nWMQu1%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;399&quot; height=&quot;79&quot; data-filename=&quot;Untitled (1).png&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;node 명령어로 설치해주는 것임.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러난것에러안난것&amp;mdash;-메세지가 다르네&amp;hellip;.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Untitled.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rTiZ1/btszYm80MEV/b3xnGZfhxTwZVmASWKLAkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rTiZ1/btszYm80MEV/b3xnGZfhxTwZVmASWKLAkK/img.png&quot; data-alt=&quot;에러난&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rTiZ1/btszYm80MEV/b3xnGZfhxTwZVmASWKLAkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrTiZ1%2FbtszYm80MEV%2Fb3xnGZfhxTwZVmASWKLAkK%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;515&quot; height=&quot;128&quot; data-filename=&quot;Untitled.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;128&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;에러난&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Untitled (2).png&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpvLF3/btszYJCS3rF/FpXHK0dDF74JAU6tTcETp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpvLF3/btszYJCS3rF/FpXHK0dDF74JAU6tTcETp0/img.png&quot; data-alt=&quot;node재설치후 명령어 (
 npm install -g @vue/cli&amp;amp;nbsp; ) 입력하니 잘됨.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpvLF3/btszYJCS3rF/FpXHK0dDF74JAU6tTcETp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpvLF3%2FbtszYJCS3rF%2FFpXHK0dDF74JAU6tTcETp0%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;283&quot; height=&quot;85&quot; data-filename=&quot;Untitled (2).png&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;node재설치후 명령어 (
 npm install -g @vue/cli&amp;nbsp; ) 입력하니 잘됨.&lt;/figcaption&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;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; 부가기능 설치 extensions 버튼 누르면 됨.&amp;mdash;3가지 설치&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Vetur 설치&lt;/li&gt;
&lt;li&gt;HTML CSS support&lt;/li&gt;
&lt;li&gt;vue 3 snippets ///코드 자동실행 부가기능 설치 extensions 버튼 누르면 됨.&amp;mdash;3가지 설치&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; 신규 프로젝트를 생성한다&lt;/span&gt;. --여긴 부동산 관련 프로젝트라.....&lt;/p&gt;
&lt;pre id=&quot;code_1699422516082&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; vue create vuedongsan&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;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3nxgV/btszXDXA0b9/EVjnVNntKebiCsKBo5KS51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3nxgV/btszXDXA0b9/EVjnVNntKebiCsKBo5KS51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3nxgV/btszXDXA0b9/EVjnVNntKebiCsKBo5KS51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3nxgV%2FbtszXDXA0b9%2FEVjnVNntKebiCsKBo5KS51%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;626&quot; height=&quot;99&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트 보안관련 문제라고 함.&amp;nbsp; &lt;a href=&quot;https://samsons.tistory.com/16&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://samsons.tistory.com/16&lt;/a&gt;&amp;nbsp; &amp;nbsp; 이분글 참고하여히&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdGuAg/btszZmHwvUY/aSwEmyMKy0RlkI71b0HQ3k/img.png&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;257&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결함.....ㅋㅋㅋ&lt;/p&gt;
&lt;figure id=&quot;og_1699422632479&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[PowerShell] 스크립트 실행 시 오류(UnauthorizedAccess), (PSSecurityException)&quot; data-og-description=&quot;+ CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess ----------------------------------------------------------- ※관리자권한으로 PowerShell 실행해야합니다. 명령어 다음과 같이 입&quot; data-og-host=&quot;samsons.tistory.com&quot; data-og-source-url=&quot;https://samsons.tistory.com/16&quot; data-og-url=&quot;https://samsons.tistory.com/16&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7MzUA/hyUuWOdgBR/YNQhw5kFwBU44a9y29ot80/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582,https://scrap.kakaocdn.net/dn/bc74dz/hyUrxvN8YW/UOgYWDqDJKBomlUk9O5vU1/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582,https://scrap.kakaocdn.net/dn/HJJIC/hyUuX0ELpf/7JccrjsfMxteykgcDIqnp1/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582&quot;&gt;&lt;a href=&quot;https://samsons.tistory.com/16&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://samsons.tistory.com/16&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7MzUA/hyUuWOdgBR/YNQhw5kFwBU44a9y29ot80/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582,https://scrap.kakaocdn.net/dn/bc74dz/hyUrxvN8YW/UOgYWDqDJKBomlUk9O5vU1/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582,https://scrap.kakaocdn.net/dn/HJJIC/hyUuX0ELpf/7JccrjsfMxteykgcDIqnp1/img.png?width=392&amp;amp;height=582&amp;amp;face=0_0_392_582');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[PowerShell] 스크립트 실행 시 오류(UnauthorizedAccess), (PSSecurityException)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;+ CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess ----------------------------------------------------------- ※관리자권한으로 PowerShell 실행해야합니다. 명령어 다음과 같이 입&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;samsons.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해서 다시 vue create vuedongsan 입력 엔터 하면...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bABl4i/btszYDv09R4/5hRClAi1PHzlaYHEeWrqo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bABl4i/btszYDv09R4/5hRClAi1PHzlaYHEeWrqo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bABl4i/btszYDv09R4/5hRClAi1PHzlaYHEeWrqo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbABl4i%2FbtszYDv09R4%2F5hRClAi1PHzlaYHEeWrqo1%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;415&quot; height=&quot;45&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #777777; text-align: center;&quot;&gt;문구가 더있는데 되돌아 벌써 선택해서 없어짐....Vue 3를 선택 엔터 하면....마구마구설치가 됨.&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NmkTf/btszXJwDXxG/K5lJBFsPbb2bE4JyZQjlp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NmkTf/btszXJwDXxG/K5lJBFsPbb2bE4JyZQjlp1/img.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;446&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;56.11&quot; style=&quot;width: 55.4624%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NmkTf/btszXJwDXxG/K5lJBFsPbb2bE4JyZQjlp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNmkTf%2FbtszXJwDXxG%2FK5lJBFsPbb2bE4JyZQjlp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jep6J/btszXJi6Iaq/y0Vt6nyWtzNTkXvz1KDPw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jep6J/btszXJi6Iaq/y0Vt6nyWtzNTkXvz1KDPw1/img.png&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;292&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.3748%;&quot; data-widthpercent=&quot;43.89&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jep6J/btszXJi6Iaq/y0Vt6nyWtzNTkXvz1KDPw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJep6J%2FbtszXJi6Iaq%2Fy0Vt6nyWtzNTkXvz1KDPw1%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;213&quot; height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;설치 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드뎌 실행됨..... App.vue로 들어갔떠니... &lt;span style=&quot;background-color: #f8f9fa; color: #212529; text-align: start;&quot;&gt;The template root requires exactly one element 에러라고 뜬다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dOqkTx/btsz1UKjAib/EER6rnurjOfCFmowJGuDq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dOqkTx/btsz1UKjAib/EER6rnurjOfCFmowJGuDq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dOqkTx/btsz1UKjAib/EER6rnurjOfCFmowJGuDq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdOqkTx%2Fbtsz1UKjAib%2FEER6rnurjOfCFmowJGuDq1%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;584&quot; height=&quot;132&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vetur버전 문제라고 하는디....터미널가서 &lt;span style=&quot;background-color: #f4f4f6; color: #000000; text-align: left;&quot;&gt;npm remove eslint 라이브러리 제거하고...했지만 안되었다....&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f4f4f6; color: #000000; text-align: left;&quot;&gt;&lt;a href=&quot;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-%ED%95%B4%EA%B2%B0vetur&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-%ED%95%B4%EA%B2%B0vetur&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1699423893633&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;vue3 - The template root requires exactly one element 해결(vetur)&quot; data-og-description=&quot;vue3 를 배우는 중인데, 강좌에서 권하는 대로 vscode/vetur 를 설치하고 나니 계속해서 아래 에러가 떴다.The template root requires exactly one elementvue2 에서는 root div 태그가 필수적이었는데, vue3 로&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-%ED%95%B4%EA%B2%B0vetur&quot; data-og-url=&quot;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-해결vetur&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eBou4T/hyUrqwEZ3l/4QmPhXv6AkQ0IQd1rYMVn0/img.png?width=380&amp;amp;height=110&amp;amp;face=0_0_380_110,https://scrap.kakaocdn.net/dn/bDQtL7/hyUu5En5oH/M3JA1XDpECFkECbRzjmBK1/img.png?width=380&amp;amp;height=110&amp;amp;face=0_0_380_110,https://scrap.kakaocdn.net/dn/HEaZW/hyUu4laUXE/jCviIAh6gSOBVDM8bLuslk/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-%ED%95%B4%EA%B2%B0vetur&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@cointreau/vue3-The-template-root-requires-exactly-one-element-%ED%95%B4%EA%B2%B0vetur&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eBou4T/hyUrqwEZ3l/4QmPhXv6AkQ0IQd1rYMVn0/img.png?width=380&amp;amp;height=110&amp;amp;face=0_0_380_110,https://scrap.kakaocdn.net/dn/bDQtL7/hyUu5En5oH/M3JA1XDpECFkECbRzjmBK1/img.png?width=380&amp;amp;height=110&amp;amp;face=0_0_380_110,https://scrap.kakaocdn.net/dn/HEaZW/hyUu4laUXE/jCviIAh6gSOBVDM8bLuslk/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;vue3 - The template root requires exactly one element 해결(vetur)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;vue3 를 배우는 중인데, 강좌에서 권하는 대로 vscode/vetur 를 설치하고 나니 계속해서 아래 에러가 떴다.The template root requires exactly one elementvue2 에서는 root div 태그가 필수적이었는데, vue3 로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고하여 기존의 Vetur을 지우 Vue Language Features(Volar)를 설치함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlQfHc/btszU3WPrV9/KQA4Wwaqzk0gG6Su8Cu4Mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlQfHc/btszU3WPrV9/KQA4Wwaqzk0gG6Su8Cu4Mk/img.png&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;134&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.2012%; margin-right: 10px;&quot; data-widthpercent=&quot;55.85&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlQfHc/btszU3WPrV9/KQA4Wwaqzk0gG6Su8Cu4Mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlQfHc%2FbtszU3WPrV9%2FKQA4Wwaqzk0gG6Su8Cu4Mk%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;649&quot; height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pNOCm/btszWIkCF6K/8vXuaiFsOQgzFftb322fPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pNOCm/btszWIkCF6K/8vXuaiFsOQgzFftb322fPk/img.png&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;105&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.636%;&quot; data-widthpercent=&quot;44.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pNOCm/btszWIkCF6K/8vXuaiFsOQgzFftb322fPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpNOCm%2FbtszWIkCF6K%2F8vXuaiFsOQgzFftb322fPk%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;402&quot; height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;없어졌다..ㅋㅋㅋㅋㅋㅋㅋㅋ 힘들다...ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;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;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;터미널에서 npm run serve 넣었더니......&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;npm ERR! Missing script: &quot;serve&quot;&amp;nbsp; &amp;nbsp;// &lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;package.json 파일의 scripts 속성에 serve가 없다&lt;/span&gt; &lt;br /&gt;npm&amp;nbsp;ERR!&amp;nbsp; &lt;br /&gt;npm ERR! To see a list of scripts, run:&amp;nbsp; // npm start라고 해서 package.json파일에 시작 스크립트 추가해야한다...라고 해서터미널 가서 다시 npm start해봄.... 역시 에러 활성화 ㅠㅠ&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;span style=&quot;background-color: #f3c000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;뭘 자꾸 하라하라.. 다른 에러도 막 나옴... 마지막 에러~&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1699424898165&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path C:\sejioo\work\vs_vue_ex\package.json
npm ERR! errno -4058
npm ERR! enoent Could not read package.json: Error: ENOENT: no such file or directory, open 'C:\sejioo\work\vs_vue_ex\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;검색에 검색을 하니...결국은&amp;nbsp; run을실행할 수 있는 곳은...package.json이 있는 곳에서 해야한다....&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;나는 처음시작한 vs_vue_ex곳에서 했으니깐 할수 없었던것.......터미널에서...cd vuedongsan해서 이동후 다시 실행하니 설치됨.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NwrgV/btszVuUnzCB/McbKSKU0ndKEkkIPDniO00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NwrgV/btszVuUnzCB/McbKSKU0ndKEkkIPDniO00/img.png&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;62&quot; data-is-animation=&quot;false&quot; style=&quot;width: 70.4985%; margin-right: 10px;&quot; data-widthpercent=&quot;71.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NwrgV/btszVuUnzCB/McbKSKU0ndKEkkIPDniO00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNwrgV%2FbtszVuUnzCB%2FMcbKSKU0ndKEkkIPDniO00%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;411&quot; height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMooM8/btszYJiG1gm/jJHiOq4irU3xNh1Dys7KGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMooM8/btszYJiG1gm/jJHiOq4irU3xNh1Dys7KGk/img.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;170&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;28.67&quot; style=&quot;width: 28.3387%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMooM8/btszYJiG1gm/jJHiOq4irU3xNh1Dys7KGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMooM8%2FbtszYJiG1gm%2FjJHiOq4irU3xNh1Dys7KGk%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;453&quot; height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;되긴 되었다...ㅋ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파란색 &lt;span style=&quot;color: #006dd7;&quot;&gt;http://localhost:8080/&amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;ctrl 누르고 선택하면 화면이 나옴.&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;839&quot; data-origin-height=&quot;635&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3IKqn/btszXGfMWd6/bEd27rgfwibvC4QkfUIni0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3IKqn/btszXGfMWd6/bEd27rgfwibvC4QkfUIni0/img.png&quot; data-alt=&quot;나왔따!!!!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3IKqn/btszXGfMWd6/bEd27rgfwibvC4QkfUIni0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3IKqn%2FbtszXGfMWd6%2FbEd27rgfwibvC4QkfUIni0%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;839&quot; height=&quot;635&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;635&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나왔따!!!!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에고...10분짜리 강의를 1시간 넘게 에러 찾아가며 돌려보고 있음...ㅋㅋㅋ&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;&amp;gt;&amp;gt; 정리 해보자.&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.예상한데로 node.js를 통해 npm 설치 도우미를 활용 할수 있었음... node_modules==라이브러리 집함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. App.vue가 메인임. 이것을 index.html에 구겨서 넣는것이고 이걸 넣는것이 main.js임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. src폴더는 소스코드 넣는곳. public폴더는 html 파일등 기타 파일 넣는곳 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. package.json 은 라이브러리 버전, 프로젝트 설정기록을 하는 곳이다. 프로퍼티 같은 역활&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;242&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IXDUh/btszXmu4f9T/Tj1Vk5Ko1P7naqDqwcmvvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IXDUh/btszXmu4f9T/Tj1Vk5Ko1P7naqDqwcmvvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IXDUh/btszXmu4f9T/Tj1Vk5Ko1P7naqDqwcmvvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIXDUh%2FbtszXmu4f9T%2FTj1Vk5Ko1P7naqDqwcmvvk%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;242&quot; height=&quot;457&quot; data-origin-width=&quot;242&quot; data-origin-height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Vue.js</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/193</guid>
      <comments>https://codingisnoteasy.tistory.com/193#entry193comment</comments>
      <pubDate>Wed, 8 Nov 2023 15:45:08 +0900</pubDate>
    </item>
    <item>
      <title>gmail. 인증메일 발송시 에러</title>
      <link>https://codingisnoteasy.tistory.com/192</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; 비밀번호가 아닌 것같았음....역시나 로그인 안되서 수정하여 다시 올림....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 그래도 안됨.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698900388316&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM XOAUTH2 
DEBUG SMTP: Using mechanism LOGIN
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN failed&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그를 자세히 보니 이런 글귀가 있음...메커니즘을 이용하여 로그인을 시도하였으나 안된다는 말........뭐지??ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://velog.io/@daydream/ReSeller-Project-Spring-Mail-AuthenticationFailedException-%ED%95%B4%EA%B2%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@daydream/ReSeller-Project-Spring-Mail-AuthenticationFailedException-%ED%95%B4%EA%B2%B0&lt;/a&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;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSKMoj/btszGwQzwoc/Tk3k8K45gNGjnqqXdFcIRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSKMoj/btszGwQzwoc/Tk3k8K45gNGjnqqXdFcIRk/img.png&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;321&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.1474%; margin-right: 10px;&quot; data-widthpercent=&quot;48.71&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSKMoj/btszGwQzwoc/Tk3k8K45gNGjnqqXdFcIRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSKMoj%2FbtszGwQzwoc%2FTk3k8K45gNGjnqqXdFcIRk%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;788&quot; height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yXVrX/btszCjrGZih/kphFMXKpkF3kxSR9ntoln1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yXVrX/btszCjrGZih/kphFMXKpkF3kxSR9ntoln1/img.png&quot; data-origin-width=&quot;765&quot; data-origin-height=&quot;296&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.6899%;&quot; data-widthpercent=&quot;51.29&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yXVrX/btszCjrGZih/kphFMXKpkF3kxSR9ntoln1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyXVrX%2FbtszCjrGZih%2FkphFMXKpkF3kxSR9ntoln1%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;765&quot; height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글 이메일 작업을 할때 2단계인증만 해서는 안되고 앱 비밀번호 등록해서 이...앱 비밀번호를 받아야 한다...노출하면안됨!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그걸 propertice파일로 가서.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csoK8S/btszGvc5wsA/v1cmYg1nUHIkueO1KT9nAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csoK8S/btszGvc5wsA/v1cmYg1nUHIkueO1KT9nAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csoK8S/btszGvc5wsA/v1cmYg1nUHIkueO1KT9nAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsoK8S%2FbtszGvc5wsA%2Fv1cmYg1nUHIkueO1KT9nAk%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;183&quot; height=&quot;30&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;30&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 뒤에다 이메일 로그인 비밀번호가 아니라 이 앱 비밀번호를 입력하면 에러없이 발송이 된다....&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;749&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDPbGz/btszDzm0HGf/4TJOyyz3wShQOF5Cl0iee0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDPbGz/btszDzm0HGf/4TJOyyz3wShQOF5Cl0iee0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDPbGz/btszDzm0HGf/4TJOyyz3wShQOF5Cl0iee0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDPbGz%2FbtszDzm0HGf%2F4TJOyyz3wShQOF5Cl0iee0%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;749&quot; height=&quot;126&quot; data-origin-width=&quot;749&quot; data-origin-height=&quot;126&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;참고로 코드 정리!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Potal</category>
      <author>나이많은 초보</author>
      <guid isPermaLink="true">https://codingisnoteasy.tistory.com/192</guid>
      <comments>https://codingisnoteasy.tistory.com/192#entry192comment</comments>
      <pubDate>Thu, 2 Nov 2023 14:04:54 +0900</pubDate>
    </item>
  </channel>
</rss>