<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>winter_ya.log</title>
        <link>https://velog.io/</link>
        <description>지금만이 내가 닿을 수 있는 시간</description>
        <lastBuildDate>Mon, 30 Aug 2021 15:00:37 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. winter_ya.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/winter_ya" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[TIL] Vue-router]]></title>
            <link>https://velog.io/@winter_ya/TIL-Vue-router</link>
            <guid>https://velog.io/@winter_ya/TIL-Vue-router</guid>
            <pubDate>Mon, 30 Aug 2021 15:00:37 GMT</pubDate>
            <description><![CDATA[<h2 id="vue-router-사용하는-방법">Vue Router 사용하는 방법</h2>
<ol>
<li><p>라우터 세팅하기 : npm install vue-router@4</p>
</li>
<li><p>템플릿에서 <code>&lt;router-link&gt;</code> 태그 설정하기 </p>
</li>
</ol>
<blockquote>
<p><code>&lt;router-link to=&quot;/home&quot;&gt; Home &lt;/router-link&gt;</code>
<code>&lt;router-link to=&quot;/servicees&quot;&gt; Services &lt;/router-link&gt;</code></p>
</blockquote>
<ol start="3">
<li><code>main.js</code> 에서 Vue와 Vue 라우터 import 하고 함수를 이용해 호출하기</li>
</ol>
<blockquote>
<p>import Vue from &#39;vue&#39;;
import VueRouter from &#39;vue-router&#39;;
</br>
Vue.use(VueRouter)</p>
</blockquote>
<ol start="4">
<li>라우트 컴포넌트를 정의하거나 import 한다. </li>
</ol>
<blockquote>
<p>const Home = { templete: <code>&#39;&lt;div&gt;Home&lt;/div&gt;</code> }
const Services = { templete : <code>&#39;&lt;div&gt;Services&lt;/div&gt;&#39;</code> }</p>
</blockquote>
<p>5.라우트를 정의합니다. 각 라우트는 반드시 컴포넌트와 매핑되어야 합니다.</p>
<blockquote>
<p>const routes = [
{ path: &#39;/home&#39; , component: Home },
{ path: &#39;/services&#39; , component: Services } 
]</p>
</blockquote>
<ol start="6">
<li>routes 옵션과 함께 router 인스턴스를 만듭니다.</li>
</ol>
<blockquote>
<p>const router = new VueRouter ({ routes })</p>
</blockquote>
<ol start="7">
<li>루트 Vue 인스턴스를 만들고 mount 합니다.</li>
</ol>
<blockquote>
<p>const app = new Vue({ router }).$mount(&#39;#app&#39;)</p>
</blockquote>
<h2 id="동적-라우트-매칭-매개변수와-라우트-사용하기-">동적 라우트 매칭 (매개변수와 라우트 사용하기 )</h2>
<blockquote>
<p>const User = {
  template: <code>&#39;&lt;div&gt;User {{ $route.params.name }}, PostId: {{ route.params.postid }}&lt;/div&gt;&#39;</code>
}
</br>const router = new VueRouter({
  routes: [
    { path: &#39;/user/:name/post/:postid&#39;, component: User }
    ]})</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 32 - Git, GitHub 이모저모 ]]></title>
            <link>https://velog.io/@winter_ya/TIL-32-GitHub-%EC%9D%B4%EB%AA%A8%EC%A0%80%EB%AA%A8</link>
            <guid>https://velog.io/@winter_ya/TIL-32-GitHub-%EC%9D%B4%EB%AA%A8%EC%A0%80%EB%AA%A8</guid>
            <pubDate>Sun, 08 Aug 2021 11:33:41 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>프로젝트를 진행하다보면 필연적으로 깃헙을 쓰게되는데, 사용하면서 여러 헷갈리던 기능 정리하기!</p>
</blockquote>
<h2 id="작업-중-새로운-브랜치-만들기">작업 중 새로운 브랜치 만들기</h2>
<ul>
<li>이번 프로젝트에서 바로 실수 했던 부분인데, 작업 중 새로운 브랜치를 만들고 싶을 때! 바로 작업 중인 브랜치에서 새로운 브랜치를 만들면 안된다! </li>
</ul>
<ol>
<li>진행중인 작업이 있다면 commit 을 한 후 main 브랜치로 이동한다. </li>
<li>main 브랜치에서 git branch &quot;새로운 브랜치 이름&quot;</li>
<li>git checkout &quot;새로운 브랜치 이름&quot;</li>
</ol>
<p>의 과정으로 진행해야 한다. 
그렇게 진행하지 않았을 때, 이전 브랜치에서 작업한 commit 내용이 같이 올라가서 매우 당황한 기억이 있다. 내역이 얼마되지 않아 브랜치를 삭제하거나 그러진 않았지만, 삭제한 경우도 있다고 들었기에 작업 중 새로운 브랜치는 꼭 main에 이동해서 만들자! </p>
<h2 id="작업-중-main에-merge-된-브랜치가-있을-때">작업 중 main에 merge 된 브랜치가 있을 때</h2>
<ul>
<li>거의 매일매일 일어났던 상황인데, 늘 익숙해지지 않아 한번 정리해본다. </li>
</ul>
<h3 id="미리-만들어뒀던-브랜치-라면">미리 만들어뒀던 브랜치 라면?</h3>
<ol>
<li>진행중인 작업이 있다면 commit 을 한 후 main 브랜치로 이동한다.</li>
<li>git pull origin main 으로 main 브랜치의 변경 내용을 업데이트 한다.
(한번 npm start로 확인하는 것도 좋은듯, 보면 꼭 오류가 발생하거나 깨지거나 하므로)</li>
<li>git checkout &quot;미리 만들어둔 브랜치 이름&quot;</li>
<li>git merge main 으로 작업하던 브랜치에도 merge 받은 모든 내역을 추가한다. </li>
<li><strong>conflict 발생</strong> 하므로 그걸 해결한 후 git add -&gt; git commit -&gt; git push 하면 작업하던 브랜치에 merge 내역이 추가되고 다음 작업을 진행하면 된다.</li>
</ol>
<p>사실 이것이 정답인지 아닌지는 확신할 수 없지만, 프로젝트 과정중 이렇게 진행해왔다. </p>
<h3 id="merge-후-브랜치를-만들고-싶다면">merge 후 브랜치를 만들고 싶다면?</h3>
<p>위 케이스와 동일하되 2번까지 작업하고 그냥 git branch로 브랜치를 만들면 된다. 이유를 물어봤을 때, main에서 새로운 브랜치를 만들때 이미 업데이트가 완료된 상태에서 새로운 브랜치를 만들기 때문에 추가적으로 merge 받을 필요가 없다고 하셨다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 02 - HTML]]></title>
            <link>https://velog.io/@winter_ya/TIL-02-HTML</link>
            <guid>https://velog.io/@winter_ya/TIL-02-HTML</guid>
            <pubDate>Mon, 31 May 2021 15:46:32 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>자기소개 홈 페이지 만들기 전,  [Codecademy How to make a Website] (<a href="https://www.codecademy.com/learn/make-a-website">https://www.codecademy.com/learn/make-a-website</a>) HTML 파트 이다.</p>
</blockquote>
<h1 id="html-태그">HTML 태그</h1>
<p>HTML은 태그들의 집합이다. 
다양한 태그들로 코드를 작성하면, 브라우저가 이를 인식해 내용을 표현한다.</p>
<pre><code>&lt;h1&gt;Hello, HTML&lt;/h1&gt;</code></pre><p>태그를 사용하는 기본적인 방식이며, 대부분의 태그는 시작 태그와 종료 태그로 이루어져 있다.</p>
<h3 id="속성이란">속성이란?</h3>
<p>속성은 태그에 추가적인 정보를 제공하거나 태그의 출력을 제어할 수 있는 설정값 이다.</p>
<pre><code>&lt;h1 id=&quot;Apple&quot; class=&quot;Banana&quot;&gt;Hello, HTML&lt;/h1&gt;</code></pre><p><code>&lt;h1&gt;</code> 태그에 id 속성과 class 속성을 선언한 코드이다.
예시와 같이 id, class 속성을 모두 사용한다면 id에 적용한 규칙은 class 규칙보다 우선적이다.</p>
<h3 id="빈-태그란">빈 태그란?</h3>
<p>태그는 보통 시작 태그와 종료 태그로 이루어져 있으나 그렇지 않은 일부 경우가 존재한다.
이를 <strong>빈 태그</strong> 라고 한다.</p>
<pre><code>&lt;br&gt;
&lt;img src=&quot;&quot;&gt;
&lt;input type=&quot;&quot;&gt;</code></pre><p>이러한 빈 태그의 경우 내용이 존재하지 않아 종료 태그가 필요하지 않다.
내용이 존재하지 않지만 다른 용도로 사용되는 경우 대체되는 태그라고 한다.</p>
<h3 id="공백">공백</h3>
<p>HTML은 두 칸 이상의 공백과 줄바꿈을 무시한다. 
줄바꿈을 하고 싶다면 빈 태그에서 언급된 <code>&lt;br&gt;</code> 태그를 사용한다.</p>
<h2 id="html-태그의-종류">HTML 태그의 종류</h2>
<p><code>&lt;H1&gt;</code>...<code>&lt;H6&gt;</code> : Heading 태그, 문서 내 제목 표시
                        <code>&lt;H1&gt;</code> 태그의 경우 페이지 당 하나가 규칙이나 더 사용할 수 있다. 하지만 글쓰기 규칙에 어긋나는 점은 참고하자.
<code>&lt;P&gt;</code> : Paragraph 태그, 새로운 단락이며 제목이 없는 내용<br><code>&lt;br&gt;</code> : 줄바꿈 태그 
<code>&lt;b&gt;</code> : bold, <strong>글자를 굵게</strong>
<code>&lt;i&gt;</code> : italic, <em>글자를 기울여서</em>  HTML5 버전에서 단순 표현용 태그에서 의미를 가지는 태그로 변경되었다.
<code>&lt;u&gt;</code> : underline, <u>글자에 밑줄</u>
<code>&lt;s&gt;</code> : strike, <del>글자에 중간선</del>
<code>&lt;div&gt;</code> : 의미가 없는 컨테이너 요소, 페이지를 나누기 위한 목적이며 그 나눠진 부분은 서로 독립적이며 각각의 구성, 이동, 스타일을 지정 할수 있다. <u>블록 레벨 태그</u>
<code>&lt;span&gt;</code> : 의미가 없는 컨테이너 요소, 요소들을 묶기 위해 사용한다. <u>인라인 레벨 태그</u></p>
<h3 id="html-앵커-요소">HTML 앵커 요소</h3>
<p><code>&lt;a&gt;</code>는 a태그, 앵커 등으로 부른다.
링크를 만들기 위해 <code>&lt;a&gt;</code> 태그는 반드시 href (hypertext reference) 속성을 가져야 한다.</p>
<pre><code>&lt;a href=&quot;http://www.naver.com/&quot; target=&quot;_blank&quot;&gt;네이버 홈페이지&lt;/a&gt;</code></pre><p>href 속성값은 링크의 목적지가 되는 URL 이며, href 속성을 사용하여 사용자를 웹 사이트에 연결한다. </p>
<p><code>target=&quot;_blank&quot;</code> 를 사용하면 연결된 URL이 별도의 창에서 열린다.</p>
<p><strong>내부 링크로 사용하기</strong> </p>
<p><code>&lt;a&gt;</code>를 통해 페이지 내부의 특정 요소로 이동할 수 있어 이를 내부 링크라고 한다. </p>
<pre><code>&lt;a href=&quot;#page-bottom&quot;&gt;홈페이지 맨 아래로 이동하기&lt;/a&gt;

.......

&lt;h1 id=&quot;page-bottom&quot;&gt;홈페이지 맨 아래&lt;/h1&gt;</code></pre><p>내부 링크로 사용할 때는 href 속성값에 #을 쓰고 페이지 내에서 이동할 요소의 id 속성값을 적는다. </p>
<h3 id="html-리스트-요소">HTML 리스트 요소</h3>
<p><code>&lt;ul&gt;</code>  순서가 없는, 정렬되지 않는 리스트를 표현할 때 사용한다. 
<code>&lt;ol&gt;</code> 순서가 있는 리스트를 표현할 때 사용한다. (요리)
각 태그를 정의 한 후 <code>&lt;li&gt;</code> 를 사용하여 각 항목을 나타낸다.</p>
<p><code>&lt;dl&gt;</code> 용어와 그에 대한 정의를 표현할 때 사용</p>
<pre><code>&lt;dl&gt;
    &lt;dt&gt;사자&lt;/dt&gt;
    &lt;dd&gt;사자는 식육목 고양이과 표범속으로 분류되는 포유류다.&lt;/dd&gt;
    &lt;dt&gt;호랑이&lt;/dt&gt;
    &lt;dd&gt;호랑이 또는 칡범, 갈범은 고양이과에 속하는 맹수다.&lt;/dd&gt;
&lt;/dl&gt;</code></pre><p><code>&lt;dt&gt;</code> 는 용어를 나타내는 태그, <code>&lt;dd&gt;</code> 는 용어에 대한 정의 및 설명을 표현하는 태그</p>
<h3 id="html-이미지-요소">HTML 이미지 요소</h3>
<p><code>&lt;img&gt;</code> 는 이미지를 삽입하는 태그이며 *<em>빈 태그 *</em>이다.</p>
<p><code>&lt;img src=&quot;chicken.png&quot; alt=&quot;치킨&quot;&gt;</code></p>
<li>src : 이미지의 필수 속성으로 이미지의 경로를 나타낸다. </li>
<li>alt : 이미지의 필수 속성으로 이미지의 대체 텍스트를 나타낸다.  </li>
            (대체 텍스트는 이미지를 대체하는 글로 웹 접근성에 중요하다)
<li>width/height : 이미지 크기 조정을 위함이며 선택적이다. </li>

<p><strong>상대경로와 절대경로</strong></p>
<pre><code>&lt;!-- 상대경로 --&gt;
&lt;img src=&quot;./images/chicken.png&quot; alt=&quot;치킨&quot;&gt;

&lt;!-- 절대경로 --&gt;
&lt;img src=&quot;C:/users/document/images/chicken.png&quot; alt=&quot;치킨&quot;&gt;
&lt;img src=&quot;http://www.naver.com/chicken.png&quot; alt=&quot;치킨&quot;&gt;</code></pre><p>상대경로 : 현재 웹 페이지를 기준으로 상대적으로 이미지의 위치를 나타내는 경로
상대경로의 <code>./</code>는 페이지가 있는 폴더 
절대경로 : 실제 그 이미지가 위치한 곳의 전체 경로</p>
<p><code>&lt;video&gt;</code> 는 동영상을 삽입하는 태그이며 닫는 태그가 필요하다. </p>
<li>width/height : 영상이 표시되는 화면의 크기 </li>
<li>controls : 재생 일시정지 및 볼륨 조절 키 추가 </li>
<li>source : 재생할 동영상의 url </li>
<li>type : 다양한 비디오 형식 (일반적인 동영상 video/mp4로 재생) </li>




<h2 id="문서의-기본-구조">문서의 기본 구조</h2>
<p><code>&lt;!DOCTYPE html&gt;</code> 웹 브라우저에 HTML 문서를 요청
<code>&lt;html&gt; ... &lt;/html&gt;</code> 모든 HTML 요소의 부모
<code>&lt;head&gt; ... &lt;/head&gt;</code> 제목과 같이 사이트에 대한 데이터를 포함
<code>&lt;title&gt; ... &lt;/title&gt;</code> 검색엔진에서 찾았을 때 뜨는 사이트의 제목
<code>&lt;meta charset=&quot;utf-8&quot;/&gt;</code> 사용할 문자 집합 이 경우 utf-8 임</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ko&quot;&gt;
    &lt;head&gt;
        &lt;meta charset=&quot;UTF-8&quot;&gt;
        &lt;title&gt;HTML&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;Hello, HTML&lt;/h1&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] 01 - Web개발의 이해 ]]></title>
            <link>https://velog.io/@winter_ya/TIL-01-Web%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@winter_ya/TIL-01-Web%EA%B0%9C%EB%B0%9C%EC%9D%98-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Sun, 30 May 2021 17:00:43 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>부스트코스(boostcourse) 웹 프로그래밍 기초</p>
</blockquote>
<h1 id="httphypertext-transfer-protocol">HTTP(Hypertext Transfer Protocol)</h1>
<p>서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜</p>
<h3 id="그렇다면-프로토콜은-무엇인가">그렇다면 프로토콜은 무엇인가?</h3>
<p>컴퓨터 내부 혹은 컴퓨터 사이에서 데이터의 교환 방식을 정의 하는 규칙 체계
기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구한다.
어떠한 데이터 형태도 전송할 수 있다. (이미지, 오디오, 텍스트 문서 등)</p>
<h3 id="http-작동방식">HTTP 작동방식</h3>
<p>클라이언트가 &quot;요청&quot;을 서버에 보내면 이 &quot;요청&quot;을 받아 서버가 클라이언트에게 &quot;응답&quot; 한다.</p>
<h3 id="http와-https-의-차이">HTTP와 HTTPS 의 차이</h3>
<p>암호화의 차이
HTTPS의 경우 암호화가 필요하기에 추가적인 시간 및 비용이 발생한다. 
HTTPS의 S는 secure socket 즉 보안 통신망이다. </p>
<h3 id="urluniform-resource-locator">URL(Uniform Resource Locator)</h3>
<p>인터넷 상의 자원의 위치
특정 웹 서버의 특정파일에 접근하기 위한 경로 혹은 주소
접근 프로토콜 + ip주소 또는 도메인 이름 + 문서의 경로 + 문서이름</p>
<h1 id="브라우저의-동작">브라우저의 동작</h1>
<p>브라우저는 월드와이드웹(WWW)에서 정보를 검색, 표현하고 탐색하기 위한 소프트웨어
서버에서 받은 문서(HTML, CSS, Javascript)를 해석하고 실행하여 화면에 표현하기 위한 해석기(Parser) 들을 가지고 있다.</p>
<h3 id="사파리-브라우저에서-처리되는-webkit렌더링엔진의-처리과정">사파리 브라우저에서 처리되는 webkit렌더링엔진의 처리과정</h3>
<p><img src="https://images.velog.io/images/winter_ya/post/aa55c65c-c03a-4b9b-ba2e-4e2070dcc2e9/webkitflow.png" alt=""></p>
<p>HTML을 해석해서 DOM Tree를 만들고, CSS를 해석해서CSS Tree(CSS Object Model)을 만든다. 
해석 과정에서 Parsing이 필요하며 해석 방식은 소스코드의 컴파일 과정과 비슷하다. 
DOM Tree와 CSS Tree는 연관되어 있으므로 Render Tree로 다시 조합된다.
이렇게 조합된 결과는 화면에 표현되는 크기와 위치 정보를 담고 있다. 
이후에 이렇게 구성된 Render Tree정보를 통해서 화면에 어떤 부분에 어떻게 색칠을 할지 Painting과정을 거치게 된다.</p>
<p> <strong>HTML / CSS 파싱 및 DOM트리 만들기 &gt; (HTML+CSS)렌더트리 만들기 &gt; 렌더트리 배치 &gt; 렌더트리 그리기</strong></p>
<h3 id="브라우저에서의-웹-개발">브라우저에서의 웹 개발</h3>
<p><strong>HTML 문서구조</strong>
CSS 코드는 보통 head 태그 안에 두며, 길어지면 link를 이용해서 따로 분리한다. 
Javascript 코드는 body 태그 밖에 두며, 길어지면 link 이용해서 따로 분리한다. 
Javascript 코드는 위치에 따라 body 태그 내용이 언제 나오는지 달라진다. 
JavaScript 코드는 body 태그 닫히기 전에 위치하는 것이 렌더링을 방해하지 않아 좋고, 
CSS코드는 head 안에 위치해서 렌더링 처리 시에 브라우저가 더 빨리 참고 할 수 있게 하는 것이 좋다.</p>
<h3 id="웹-서버란">웹 서버란?</h3>
<p>웹 서버는 소프트웨어를 말하지만 웹 서버 소프트웨어가 동작하는 컴퓨터를 칭한다.
클라이언트가 요청하는 HTML문서나 각종 리소스를 전달한다.
대표적으로 Apache, Microsoft, Nginx, Google 등</p>
<h2 id="wasweb-application-server"><strong>WAS(Web Application Server)</strong></h2>
<p>클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답 받은 결과를 사용한다.</p>
<p><strong>DBMS(Database Management System)</strong></p>
<p>다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어</p>
<p><img src="https://images.velog.io/images/winter_ya/post/b9cf4c28-91c7-404b-93c1-25307c20bf00/1_1_7_DBMS.png" alt=""></p>
<p>대표적으로 mySQL, Oracle 등</p>
<h3 id="미들웨어middleware"><strong>미들웨어(middleWare)</strong></h3>
<p>클라이언트와 DBMS 사이에 또다른 서버를 두는 방식이며 미들웨어에서는 대부분의 로직을 동작시킨다.
<img src="https://images.velog.io/images/winter_ya/post/d602bf3b-088e-4bae-86c9-da9c51e1371e/1_1_7_.png" alt=""></p>
<p>WAS는 일종의 미들웨어로 웹 클라이언트(웹 브라우저) 의 요청 중 보통 웹 애플리케이션이 동작하도록 지원하기 위함이다. </p>
<p>WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다. 
하지만 규모가 커질수록 웹 서버와 WAS를 분리한다. 그 목적은 장애 극복 기능(failover)인 경우가 많다. 즉, 웹 사이트를 무중단으로 운영하기 위해서 사용한다.</p>
]]></description>
        </item>
    </channel>
</rss>