<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ujaa_223.log</title>
        <link>https://velog.io/</link>
        <description>꾸준히 공부하기</description>
        <lastBuildDate>Tue, 28 Sep 2021 21:26:48 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>ujaa_223.log</title>
            <url>https://images.velog.io/images/ujaa_223/profile/5267ccf3-bb08-4c04-a1be-facac57422f2/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. ujaa_223.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/ujaa_223" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Vue.js]Routing 정리(2)]]></title>
            <link>https://velog.io/@ujaa_223/Vue.jsRouting-%EC%A0%95%EB%A6%AC2</link>
            <guid>https://velog.io/@ujaa_223/Vue.jsRouting-%EC%A0%95%EB%A6%AC2</guid>
            <pubDate>Tue, 28 Sep 2021 21:26:48 GMT</pubDate>
            <description><![CDATA[<h3 id="선택한-태그에-생기는-class">선택한 태그에 생기는 class</h3>
<p>예를 들어, 운영하는 서비스 nav에 <code>중학교</code>, <code>고등학교</code> 라우터 링크 두 가지가 있다. 이때 <code>중학교</code>를 선택한 상태면 개발자 도구로 <code>중학교</code> 라우터 링크를 살펴볼 때 <code>router-link-active</code>와 <code>router-link-exact-active</code> 두 클래스를 확인할 수 있다.
<img src="https://images.velog.io/images/ujaa_223/post/d1a40106-1784-4ab3-bb7e-4fdf1a899461/image.png" alt=""></p>
<ul>
<li><strong>router-link-active</strong>
선택된 router-link와 이 선택된 router-link path의 상위 router-link 모두에게 class가 붙음.</li>
<li><strong>router-link-exact-active</strong>
선택된 router-link에만 class가 붙음.</li>
</ul>
<blockquote>
<p>클래스 명은 router를 생성할 때 <code>linkActiveClass</code> 옵션을 사용해서 바꿀 수도 있다.</p>
</blockquote>
<h3 id="route-이동하는-다른-방법">route 이동하는 다른 방법</h3>
<p>어떤 기능을 수행한 뒤에 페이지 이동을 코드 상에서 처리하고 싶을 때</p>
<pre><code class="language-javascript">...
//$router: router 패키지를 더하면 사용 가능.
//routing 히스토리에 이동할 route 추가.
this.$router.push(&#39;/middleschool&#39;);
...</code></pre>
<blockquote>
<p>router에는 더 다양한 함수들이 많음. 공식 문서 참고해서 필요한 거 가져다 쓰기.</p>
</blockquote>
<ul>
<li>참고:
<a href="https://www.udemy.com/course/vuejs-2-the-complete-guide/">Vue - The Complete Guide (w/ Router, Vuex, Composition API) Udemy 강좌</a></li>
</ul>
<p>잘못된 내용은 알려주세요.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Vue.js] Routing 정리(1)-사용법]]></title>
            <link>https://velog.io/@ujaa_223/Vue.js-Routing-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@ujaa_223/Vue.js-Routing-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Tue, 28 Sep 2021 21:07:03 GMT</pubDate>
            <description><![CDATA[<h2 id="routing이란-필요한-이유는">Routing이란? 필요한 이유는?</h2>
<p>URL을 바꾸고 다른 항목을 로드하게 도와주는 routing. vue.js는 SPA를 만들기 때문에 URL과 상호작용 하려면 routing을 사용해야 한다. (확실치 않음)</p>
<h2 id="routing-setting">Routing Setting</h2>
<h3 id="1-vue-router-패키지-설치">(1) vue-router 패키지 설치</h3>
<p>vue cli로 설치한 프로젝트에 vue-router 패키지 설치.</p>
<pre><code>[프로젝트 위치에서 terminal을 열고 아래 명령어 입력]
npm install --save vue-router

[최신 버전 설치]
npm install --save vue-router@next</code></pre><h3 id="2-프로젝트-다시-실행">(2) 프로젝트 다시 실행</h3>
<pre><code>npm run serve</code></pre><h3 id="3-라우터-사용">(3) 라우터 사용</h3>
<p>이제 프로젝트에 라우터를 등록할 수 있다.</p>
<p>라우터 등록하는 예제를 쉽게 이해하기 위해 프로젝트 예시로 설명.</p>
<ul>
<li><strong>프로젝트 예시</strong>
중학교 또는 고등학교를 선택하면 URL이 변경되고, 중학교를 선택했을 때는 중학생 리스트를, 고등학교를 선택했을 때는 고등학생 리스트를 보여준다.<ul>
<li><code>https://서비스주소.../middleschool</code>: 중학생 리스트</li>
<li><code>https://서비스주소.../highschool</code>: 고등학생 리스트
<img src="https://images.velog.io/images/ujaa_223/post/6d7aa80c-9e91-438d-93d0-30391b8d9915/image.png" alt=""></li>
</ul>
</li>
</ul>
<h4 id="mainjs">main.js</h4>
<p>router 생성, route 등록, app에 router 사용 등록.</p>
<pre><code class="language-javascript">import { createApp } from &#39;vue&#39;;
//vue-router 패키지에서 createRouter, createWebHistory 함수를 import한다.
import { createRouter, createWebHistory } from &#39;vue-router&#39;;

import App from &#39;./App.vue&#39;;
//router로 이동했을 때 띄울 컴포넌트를 import한다.
import MiddleSchool from &#39;./components/MiddleSchool.vue&#39;;    //중학생 리스트
import HighSchool from &#39;./components/HighSchool.vue&#39;;    //고등학생 리스트

//router를 만들고, 어떤 URL을 사용할 것인지, 각 URL에 어떤 component를 띄울건지 알려준다.
//history: routing 히스토리를 어떻게 관리할지 router에게 알려주는 것이다.
//createWebHistory: 브라우저가 사용하는 거 그대로 쓰라는 옵션.

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: &#39;/middleschool&#39;, component: MiddleSchool },
    { path: &#39;/highschool&#39;, component: HighSchool }
  ]
});

const app = createApp(App);

//vue app이 router를 사용하도록 한다.
app.use(router);

app.mount(&#39;#app&#39;);
</code></pre>
<h4 id="appvue">App.vue</h4>
<p>component가 나타날 자리 알려준다.</p>
<pre><code class="language-html">&lt;template&gt;
  &lt;the-navigation&gt;&lt;/the-navigation&gt;
  &lt;main&gt;
    &lt;!-- router-view 태그를 사용한 곳에 component가 나타난다. --&gt;
    &lt;router-view&gt;&lt;/router-view&gt;
  &lt;/main&gt;
&lt;/template&gt;</code></pre>
<h4 id="thenavigationvue">TheNavigation.vue</h4>
<p>탭에 URL 링크를 연결한다.</p>
<pre><code class="language-html">&lt;template&gt;
  &lt;header&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;
          &lt;router-link to=&quot;/middleschool&quot;&gt;중학교&lt;/router-link&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;router-link to=&quot;/highschool&quot;&gt;고등학교&lt;/router-link&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
  &lt;/header&gt;
&lt;/template&gt;</code></pre>
<blockquote>
<p>이후 vue가 router-link를 a 링크로 만듦. </p>
</blockquote>
<ul>
<li>참고:
<a href="https://www.udemy.com/course/vuejs-2-the-complete-guide/">Vue - The Complete Guide (w/ Router, Vuex, Composition API) Udemy 강좌</a></li>
</ul>
<p>잘못된 내용은 알려주세요.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Vue.js] Global Component와 Local Component]]></title>
            <link>https://velog.io/@ujaa_223/Vue.js-Global-Component%EC%99%80-Local-Component</link>
            <guid>https://velog.io/@ujaa_223/Vue.js-Global-Component%EC%99%80-Local-Component</guid>
            <pubDate>Sat, 25 Sep 2021 15:21:56 GMT</pubDate>
            <description><![CDATA[<p>vue에서는 component를 글로벌 컴포넌트로 등록할 수도 있고, 로컬 컴포넌트로도 등록할 수 있다.</p>
<h2 id="컴포넌트-사용-범위">컴포넌트 사용 범위</h2>
<p>_글로벌 컴포넌트_로 등록하면 <strong>모든 파일에서 컴포넌트를 사용할 수 있고</strong>, _로컬 컴포넌트_로 등록하면 <strong>컴포넌트를 등록한 파일에서만</strong> 해당 컴포넌트를 사용할 수 있다.</p>
<h2 id="컴포넌트-등록-예시">컴포넌트 등록 예시</h2>
<h3 id="1-글로벌-컴포넌트-등록">(1) 글로벌 컴포넌트 등록</h3>
<p><code>search-bar</code> 컴포넌트를 글로벌 등록할 때
<em>main.js</em></p>
<pre><code class="language-javascript">import { createApp } from &quot;vue&quot;;
import App from &quot;./App.vue&quot;;

//import 글로벌컴포넌트이름 from &quot;글로벌컴포넌트위치&quot;;
import SearchBar from &quot;./components/SearchBar.vue&quot;;

const app = createApp(App);

//app에 내장된 component 함수를 사용
//첫 번째 인자: html코드에서 컴포넌트를 사용할 때 쓸 태그 이름
//두 번째 인자: 글로벌 컴포넌트 이름
app.component(&quot;search-bar&quot;, SearchBar);

app.mount(&quot;#app&quot;);
</code></pre>
<h3 id="2-로컬-컴포넌트-등록">(2) 로컬 컴포넌트 등록</h3>
<p><code>search-bar</code> 컴포넌트를 로컬 등록할 때
<em>app.vue</em></p>
<pre><code class="language-vue">&lt;template&gt;
    &lt;search-bar&gt;&lt;/search-bar&gt;
&lt;/template&gt;

&lt;script&gt;
import SearchBar from &quot;./components/SearchBar.vue&quot;;

export default {
  components: {    //components 속성에 로컬 컴포넌트로 등록할 컴포넌트 이름을 넣는다.
    SearchBar,    // = SearchBar: SearchBar -&gt; 모던 자바스크립트 문법
  },
};
&lt;/script&gt;</code></pre>
<blockquote>
<p>component 등록할 때 components 속성에 넘겨주는 객체 안에 <code>html에서 사용할 컴포넌트 이름</code>: <code>컴포넌트 이름</code> 문법으로 넘겨주어야 하는데(ex. <code>&quot;search-bar&quot;</code>:  <code>SearchBar</code>), vue에서는 <code>SearchBar</code>: <code>SearchBar</code>라고 넘겨주어도 알아서 변형해서 잘 사용하기 때문에 위와 같이 써도 문제 없다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[html-기본 문법, 구조]]></title>
            <link>https://velog.io/@ujaa_223/html-%EB%B3%B5%EC%8A%B5-1</link>
            <guid>https://velog.io/@ujaa_223/html-%EB%B3%B5%EC%8A%B5-1</guid>
            <pubDate>Mon, 17 May 2021 12:56:05 GMT</pubDate>
            <description><![CDATA[<p><em>(html을 복습하기 위해 시작했습니다. 내용이 정확하지 않을 수도 있습니다. 배우면서 계속해서 수정해 나가고 있습니다.)</em></p>
<h1 id="htmlhypertext-markup-language">HTML(HyperText Markup Language)?</h1>
<p>html은 hypertext markup language다. 각 단어의 뜻을 해석해서 보면 이해하기 쉽다.
<strong>hypertext</strong>: 다른 곳으로 이동 가능한 텍스트
<strong>markup</strong>: 특정한 기호로 표시(mark)한 것
<strong>language</strong>: 언어</p>
<p>정리하면, html은 다른 곳으로 이동 가능한 텍스트가 있는 문서를 특정한 표시를 해서 만들 수 있는 언어이다.
웹페이지의 정보와 구조를 나타내는데 사용한다.</p>
<h2 id="1-html-기본-문법">1. html 기본 문법</h2>
<h3 id="1-태그-요소">(1) 태그, 요소</h3>
<ul>
<li><p>아래 코드에서 태그와 요소 구분</p>
<pre><code class="language-html">&lt;내용&gt;
사과는 &lt;글씨두껍게&gt;정말&lt;/글씨두껍게&gt; 맛있다
&lt;줄구분하기/&gt;
바나나는 &lt;글씨기울이기&gt;더&lt;/글씨기울이기&gt; 맛있다
&lt;/내용&gt;</code></pre>
</li>
<li><p><strong>태그</strong>
: <code>&lt;</code>와 <code>&gt;</code>을 포함한 감싸진 부분을 말한다. 
(<code>&lt;글씨두껍게&gt;</code>, <code>&lt;/글씨두껍게&gt;</code>, <code>&lt;줄구분하기/&gt;</code>, <code>&lt;글씨기울이기&gt;</code>, <code>&lt;/글씨기울이기&gt;</code>)
여기서 <code>&lt;글씨두껍게&gt;</code> 태그와 <code>&lt;글씨기울이기&gt;</code> 태그는 글씨를 꾸미는 효과를 시작할 위치와 끝날 위치를 알려주기 위해서 시작할 때 태그 하나를 사용하고, 끝날 때 <code>/</code>를 앞부분에 추가한 태그를 사용한다. 시작할 때 사용하는 태그를 <strong>시작 태그</strong>, 끝날 위치를 알려줄 때 사용하는 태그를 <strong>종료 태그</strong>라고 부른다.
<code>&lt;줄구분하기&gt;</code> 태그 같이 들어갈 내용이 없어 시작과 끝을 지정해줄 필요가 없는 태그는 한 번만 작성해주면 된다. 시작과 끝 표시를 위해 두 번씩 작성해야 하는 태그들과 구분하기 위해 태그를 <code>&gt;</code>로 닫기 전에 <code>/</code>을 써주며, 이러한 태그를 <strong>빈 태그(단일 태그)</strong>라고 부른다.</p>
<blockquote>
<p>위의 태그들은 html에서 사용하기로 약속한 태그들이 아니기 때문에 컴퓨터가 이해하지 못한다. 웹페이지를 만들고 싶으면 컴퓨터가 이해할 수 있는 태그들을 사용해야 한다. 글씨를 두껍게 하고 싶다면, <code>&lt;글씨두껍게&gt;</code>태그가 아니라 컴퓨터가 이해할 수 있는 <code>&lt;strong&gt;</code>태그를 사용해야 한다.</p>
</blockquote>
<blockquote>
<p><strong>- 태그의 종류(semantic &amp; non-semantic)</strong>
html에는 다양한 태그들이 있다. 그 중 컴퓨터가 태그를 보고 어떤 용도로 사용될지 알 수 있는 태그는 <code>시멘틱(semantic) 태그</code>, 용도를 명확히 알 수 없는 태그는 <code>non-semantic</code>태그라고 부른다. 대부분이 시멘틱 태그이며, 대표적인 논 시멘틱 태그에는 <code>&lt;span&gt;</code>태그와 <code>&lt;div&gt;</code>태그가 있다.</p>
<p>위에서 글씨를 두껍게 만들기 위해 <code>&lt;strong&gt;</code>태그를 사용했던 것처럼 <em>태그의 본래 용도에 맞게 의미론적으로 사용하는 것은 굉장히 중요하다.</em></p>
</blockquote>
</li>
</ul>
<ul>
<li><strong>요소</strong>
: 요소는 시작 태그, 내용, 끝 태그로 구성된 부분을 말한다.
(<code>&lt;내용&gt;
사과는 &lt;글씨두껍게&gt;정말&lt;/글씨두껍게&gt; 맛있다
&lt;줄구분하기/&gt;
바나나는 &lt;글씨기울이기&gt;더&lt;/글씨기울이기&gt; 맛있다
&lt;/내용&gt;</code>, <code>&lt;글씨두껍게&gt;정말&lt;/글씨두껍게&gt;</code>, <code>&lt;글씨기울이기&gt;더&lt;/글씨기울이기&gt;</code>)</li>
</ul>
<h3 id="2-속성">(2) 속성</h3>
<p>속성은 태그에 추가적인 정보를 주어야할 경우 사용하는 것이다. 예를 들어 이미지를 웹페이지에 넣고 싶다면 이미지 태그를 사용한 뒤에 <strong>사용할 이미지에 대한 정보(이미지의 위치)</strong>를 같이 알려주어야 한다. 이 때, 이미지의 위치 정보를 알려줄 수 있는 <code>src</code>속성에 이미지 위치 정보 값을 속성값으로 알려주면 된다. 속성값은 <code>따옴표</code>로 감싸주어야 한다.</p>
<pre><code class="language-html">&lt;이미지 주소=&quot;이미지가 위치한 주소\이미지 이름&quot;/&gt;
&lt;!--이미지: 태그 이름--&gt;
&lt;!--주소: 속성 이름--&gt;
&lt;!--&quot;c:\Users\...\banana.jpg&quot;: 이미지 위치 정보 값--&gt;
&lt;img src=&quot;C:\Users\username\OneDrive\바탕 화면\banana.jpg&quot;/&gt;</code></pre>
<h3 id="3-요소-중첩">(3) 요소 중첩</h3>
<p>하나의 태그 안에는 다른 태그가 들어있을 수도 있고, 다른 태그가 이 태그를 감싸고 있을 수도 있다.</p>
<pre><code class="language-html">&lt;!--외할아버지 태그는 엄마 태그를 감싸고 있고 엄마 태그는 아들 태그와 딸 태그를 감싸고 있다.--&gt;
&lt;외할아버지&gt;
  &lt;엄마&gt;
    &lt;아들&gt;&lt;/아들&gt;
    &lt;딸&gt;&lt;/딸&gt;
  &lt;/엄마&gt;
&lt;/외할아버지&gt;</code></pre>
<p>다른 태그를 감싸고 있는 태그를 <strong>부모 태그</strong>라고 부르고, 다른 태그 안에 들어있는 태그를 <strong>자식 태그</strong>라고 한다. <code>엄마</code>태그를 기준으로 부모 태그는 <code>&lt;외할아버지&gt;</code>태그이며, 자식 태그는 <code>&lt;아들&gt;</code>, <code>&lt;딸&gt;</code>태그이다. 부모와 자식의 관계는 상대적이다.</p>
<blockquote>
<p><code>&lt;list&gt;</code>태그나 <code>&lt;table&gt;</code>태그 같이 부모와 자식의 관계가 정해져 있는 태그들도 있다.</p>
</blockquote>
<h2 id="2-html-문서-기본-구조">2. html 문서 기본 구조</h2>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
 &lt;head&gt;
   &lt;!--웹페이지의 본문에 들어갈 내용 이외의 추가 정보를 넣는 곳이다--&gt;
 &lt;/head&gt;
 &lt;body&gt;
   &lt;!--웹페이지의 본문 내용이 들어가는 곳이다--&gt;
 &lt;/body&gt;
&lt;/html&gt;</code></pre>
<h3 id="1-doctype-html">(1) !DOCTYPE html</h3>
<p>html은 처음 등장했던 1993년 이후에도 계속해서 발전해왔기 때문에 다양한 버전이 존재한다. html의 각 버전은 조금씩 다른 특징을 가지고 있기 때문에, 웹 페이지를 화면 상에 출력하기 위해 브라우저가 html 코드를 해석할 때는 브라우저가 해당 코드의 html 버전을 아는 것이 좋다. 사용하는 html버전을 알려주기 위해서는 html문서 맨 처음에 사용한 html 버전을 알려줄 수 있는 태그를 작성하면 되는데, 이를 <strong>문서 형식 정의(DTD) 태그</strong>라고 한다. 가장 최근에 나온 html5같은 경우에는 문서 맨 처음에 <code>&lt;!DOCTYPE html&gt;</code>를 작성해주면 된다.</p>
<h3 id="2-head-body-태그">(2) head, body 태그</h3>
<p>웹페이지를 만들 때는 웹페이지의 화면에 보여지는 내용뿐만 아니라 웹페이지의 탭 제목 등 추가적인 정보를 제공해주어야 할 때가 많다. 이러한 태그들은 보통 <code>&lt;head&gt;</code>태그 안에 넣어 정리하고, 그 외의 본문 내용과 관련된 태그들은 <code>&lt;body&gt;</code>태그 안에 들어간다. 이렇게 head태그와 body태그를 사용하면 문서를 최대한 구조화시켜 웹페이지 소스를 잘 이해할 수 있다. </p>
<hr>
<ul>
<li>참고 내용:<pre><code>- [생활코딩 WEB1 - HTML &amp; Internet (처음부터 웹사이트 완성까지)](https://opentutorials.org/course/3084)
- [poiemaweb HTML5 (1,2,3,4 lesson)](https://poiemaweb.com/)
- [위키백과 - 하이퍼텍스트](https://ko.wikipedia.org/wiki/%ED%95%98%EC%9D%B4%ED%8D%BC%ED%85%8D%EC%8A%A4%ED%8A%B8)
- [위키백과 - 마크업](https://ko.wikipedia.org/wiki/%ED%95%98%EC%9D%B4%ED%8D%BC%ED%85%8D%EC%8A%A4%ED%8A%B8)
- [DOCTYPE html 선언 의미 및 버전별 허용 태그 표](https://dasima.xyz/doctype-html/)</code></pre></li>
</ul>
]]></description>
        </item>
    </channel>
</rss>