<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>kirakira.log</title>
        <link>https://velog.io/</link>
        <description>Front/Back Beginner</description>
        <lastBuildDate>Fri, 24 Mar 2023 09:45:22 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>kirakira.log</title>
            <url>https://velog.velcdn.com/images/kiiiaraa_/profile/4d701b17-86ce-4e86-b00d-70675931fc67/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. kirakira.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/kiiiaraa_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Javascript] 객체에 대하여]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-%EA%B0%9D%EC%B2%B4%EC%99%80-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-%EA%B0%9D%EC%B2%B4%EC%99%80-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0</guid>
            <pubDate>Fri, 24 Mar 2023 09:45:22 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/e2ae6e1b-a426-44e6-87ed-55d33ee271a1/image.png" alt=""></p>
<blockquote>
<p>일급 객체인 Javascript를 완벽하게 이해하기 위해서는 객체와 함수에 대한 충분한 지식과 이해가 요구된다. 가장 처음으로 알아야 하는 것은 객체라고 생각한다!</p>
</blockquote>
<h1 id="💎-객체object">💎 객체(Object)</h1>
<p>: <strong>원시 값을 제외한 나머지 값(<code>function</code>, <code>array</code>, 정규 표현식 등)은 모두 객체라고 볼 수 있다.</strong> 원시 타입(primitive type)은 변경 불가능(immutable value)한 단 하나의 값이지만, 객체 타입(object/reference type)은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조이면서, 변경 가능한 값(mutable value)을 갖는다.</p>
<h1 id="💎-객체의-구성">💎 객체의 구성</h1>
<p>: 객체는 0개 이상의 프로퍼티로 구성된 집합으로, 프로퍼티는 키(key)와 값(value)으로 구성된다.</p>
<pre><code class="language-js">let today = {
  weather : &quot;맑음&quot;,
  date : 24
}</code></pre>
<blockquote>
<p>객체 이름 : <code>today</code>
프로퍼티 : <code>{ weather : &quot;맑음&quot;, date : 24 }</code>
프로퍼티의 키 : <code>weather, date</code>
프로퍼티의 값 : <code>&quot;맑음&quot;, 24</code></p>
</blockquote>
<h1 id="💎-프로퍼티와-메서드">💎 프로퍼티와 메서드</h1>
<p>: JS에서의 모든 값은 프로퍼티의 값이 될 수 있고, JS의 함수는 일급 객체이기 때문에 함수를 프로퍼티 값으로 이용할 수 있다. 프로퍼티의 값이 함수인 경우를 <strong>메서드(method)</strong>라고 부른다.</p>
<pre><code class="language-js">var counter = {
    num : 0,                    //프로퍼티
      increase : function() {        //메서드 
      this.num++
}</code></pre>
<p>프로퍼티와 메서드에 관한 자세한 내용은 <a href="https://velog.io/@kiiiaraa_/Javascript-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EC%99%80-%EB%A9%94%EC%84%9C%EB%93%9C">여기!!</a> </p>
<h1 id="💎-객체-리터럴에-의한-객체-생성">💎 객체 리터럴에 의한 객체 생성</h1>
<p>프로토타입 기반 객체지향 언어인 <code>Javascript</code>는 객체 리터럴, Object 생성자 함수, 생성자 함수, Object.create 메서드, 클래스(ES6) 등의 다양한 객체 생성 방법을 지원하지만 가장 일반적으로 사용하는 것은 <strong>객체 리터럴</strong>이다. </p>
<pre><code class="language-js">let weather = {
  predict : &quot;흐림&quot;,
  broadcast : function() {
    console.log(`내일의 날씨는 ${this.predict}으로 예상됩니다.`);
  }
};

console.log(typeof weather)     //object
console.log(weather)            //{ predict: &#39;흐림&#39;, broadcast: [Function: broadcast] }</code></pre>
<blockquote>
<p>객체 이름 : <code>weather</code>
프로퍼티 : 1개 ( 키 : <code>predict</code>, 값 : <code>&quot;흐림&quot;</code> )
메서드 : 1개 ( 키 : <code>broadcast</code>, 값 : <code>function</code> )</p>
</blockquote>
<p>객체 리터럴은 중괄호<code>{}</code> 내에 0개 이상의 프로퍼티를 정의하고, 중괄호 내에 프로퍼티를 정의하지 않으면 빈 객체가 생성된다.</p>
<pre><code class="language-js">const empty = {};            //빈 객체 생성 후 변수에 할당함
console.log(empty);            //{ }
console.log(typeof empty);    //object</code></pre>
<h2 id="🗝️-객체의-중괄호는-코드-블럭일까">🗝️ 객체의 중괄호는 코드 블럭일까?</h2>
<p>결론부터 말하자면 객체의 중괄호는 코드 블럭을 의미하는 것이 아니다. 객체 리터럴은 표현식이기 때문에 닫는 중괄호 뒤에 세미콜론<code>;</code>을 붙이지만, 코드 블록의 닫는 중괄호 뒤에는 붙이지 않는다.</p>
<pre><code class="language-js">function repeat(input) {        //함수의 중괄호는 코드 블록을 의미함
  console.log(input);
}                                //; 생략 가능

let clock = {                    //객체의 중괄호는 표현식을 의미함
  hours : 6,
  mins : 30 
};                                //; 생략 불가능
</code></pre>
<p><del>하지만 실제로 실행해보면 세미콜론<code>;</code>의 여부와 상관없이 정상적으로 실행된다 ...</del></p>
<hr>

<p>*<em>Ref. *</em>
모던 자바스크립트 Deep Dive : 자바스크립트의 기본 개념과 동작 원리</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] 프로퍼티에 대하여]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EC%99%80-%EB%A9%94%EC%84%9C%EB%93%9C</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EC%99%80-%EB%A9%94%EC%84%9C%EB%93%9C</guid>
            <pubDate>Fri, 24 Mar 2023 09:38:49 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/1c1d552d-5670-4bbe-a11d-0e51e4a36104/image.png" alt=""></p>
<h1 id="💎-프로퍼티property">💎 프로퍼티(property)</h1>
<p>: 키(key)와 값(value)으로 구성된다.</p>
<pre><code class="language-js">var example = {
    keyname : &quot;value&quot;
}</code></pre>
<hr>

<h2 id="🗝️-프로퍼티-키property-key">🗝️ 프로퍼티 키(property key)</h2>
<p>: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값을 의미한다. </p>
<h3 id="🐾-식별자-네이밍-규칙">🐾 식별자 네이밍 규칙</h3>
<p>프로퍼티의 식별자 역할을 하지만 식별자 네이밍 규칙을 항상 따라야 하는 건 아니다. 그래도 식별자 네이밍 규칙을 따를 것을 권장한다!</p>
<h4 id="--식별자-네이밍-규칙을-따른-경우">- 식별자 네이밍 규칙을 따른 경우</h4>
<pre><code class="language-js">let person = {
    name : &quot;Kiara&quot;,
      age : 25
};

console.log(person);        //{ name: &#39;Kiara&#39;, age: 25 }</code></pre>
<h4 id="--식별자-네이밍-규칙을-따르지-않은-경우">- 식별자 네이밍 규칙을 따르지 않은 경우</h4>
<pre><code class="language-js">let person = {
    &#39;My-name&#39; : &quot;Kiara&quot;,
      &#39;My-age&#39; : 25            
};

console.log(person);        //{ &#39;My-name&#39;: &#39;Kiara&#39;, &#39;My-age&#39;: 25 }</code></pre>
<p>일반적으로 <code>-</code>는 연산자로 인식되기 때문에 <code>&#39;&#39;</code> 없이 <code>My-name</code>이나 <code>My-age</code>를 키로 작성한다면 <code>Syntax Error</code>가 발생할 것이다. 따라서 식별자 네이밍 규칙을 따르지 않을 때는 반드시 따옴표를 사용해야 한다.</p>
<h3 id="🐾-프로퍼티-키-동적-생성">🐾 프로퍼티 키 동적 생성</h3>
<p>빈 객체를 할당받은 변수 <code>obj</code>와 문자열을 할당받은 변수 <code>key</code>를 이용하여 동적으로 프로퍼티의 키를 생성해보자. </p>
<pre><code class="language-js">var obj = {};
var key = &quot;hello&quot;;

obj[key] = &quot;world&quot;;        //객체 obj의 프로퍼티 키를 &quot;hello&quot;로, 값을 &quot;world&quot;로 저장함

console.log(obj);        //{ hello : &#39;world&#39; }</code></pre>
<p>식별자 네이밍 규칙을 따르지 않는 문자열을 변수 <code>key</code>에 저장해도 정상적으로 출력될까?</p>
<pre><code class="language-js">var obj = {};
var key = &quot;hello-everyone&quot;;

obj[key] = &quot;world&quot;;

console.log(obj);        //{ &#39;hello-everyone&#39;: &#39;world&#39; }</code></pre>
<p>객체를 출력한 결과를 보면, 프로퍼티 키가 <code>&#39;&#39;</code>를 포함하여 정상적으로 출력된 걸 확인할 수 있다. </p>
<h3 id="🐾-빈-문자열">🐾 빈 문자열</h3>
<pre><code class="language-js">const foo = {
  &#39;&#39; : &#39;&#39; // 빈 문자열을 키와 값으로 받을 수 있다.
};
console.log(foo); // {&#39;&#39;: &#39;&#39;}</code></pre>
<h3 id="🐾-암묵적-타입-변환">🐾 암묵적 타입 변환</h3>
<p>키에 문자열이나 심벌 값 외의 값을 사용하면 문자열로 암묵적 타입 변환이 이뤄진다. </p>
<pre><code class="language-js">let foo = {
    0: 1,
      1: 2,
      2: 3
};

console.log(foo); // { 0: 1, 1:2, 2:3 }</code></pre>
<p>다음 코드에서 키로 사용된 숫자 리터럴 <code>0</code>, <code>1</code>, <code>2</code>,는 따옴표는 붙지 않지만 문자열로 변환된 값이다. </p>
<h3 id="🐾-중복-선언-시">🐾 중복 선언 시</h3>
<p>에러 발생 없이 나중에 선언된 프로퍼티가 이전에 선언한 프로퍼티를 덮어쓴다.</p>
<pre><code class="language-js">let day = {
    today : &quot;Monday&quot;,
      today : &quot;Tuesday&quot;
};

console.log(day);    //{today: &#39;Tuesday&#39; }</code></pre>
<hr>

<h2 id="🗝️-프로퍼티-값property-value">🗝️ 프로퍼티 값(property value)</h2>
<p>: Javascript에서 사용할 수 있는 모든 값</p>
<h3 id="🐾-프로퍼티-값-갱신">🐾 프로퍼티 값 갱신</h3>
<p>이미 존재하는 프로퍼티에 값을 할당하면 값이 갱신된다.</p>
<pre><code class="language-js">let coffee = {
  type : &quot;americano&quot;
};

coffee.type = &quot;latte&quot;;
console.log(coffee.type);     //latte</code></pre>
<h3 id="🐾-프로퍼티-동적-생성">🐾 프로퍼티 동적 생성</h3>
<p>존재하지 않는 프로퍼티에 값을 할당하면 프로퍼티가 동적으로 생성되어 프로퍼티 값이 할당된다.</p>
<pre><code class="language-js">let menu = {
  coffee : &quot;americano&quot;
};

menu.dessert = &quot;choco cake&quot;;         //프로퍼티 동적 생성
console.log(menu);     //{ coffee: &#39;americano&#39;, dessert: &#39;choco cake&#39; }
</code></pre>
<h3 id="🐾-프로퍼티-삭제--delete-연산자-이용">🐾 프로퍼티 삭제 : <code>delete</code> 연산자 이용</h3>
<pre><code class="language-js">let menu = {
  coffee : &quot;americano&quot;
};

menu.dessert = &quot;choco cake&quot;; 

delete menu.coffee;    

console.log(menu);            //{ dessert: &#39;choco cake&#39; }</code></pre>
<p><code>delete</code> 연산자는 객체의 프로퍼티를 삭제할 수 있고, 연산자의 피연산자는 프로퍼티 값에 접근할 수 있는 표현식이어야 한다. </p>
<pre><code class="language-js">let menu = {
  coffee : &quot;americano&quot;
};
delete menu.dessert;    
console.log(menu);             //{ coffee: &#39;americano&#39; }</code></pre>
<p>존재하지 않는 프로퍼티를 삭제하려고 하면 에러 없이 무시된다.</p>
<hr>

<h2 id="🗝️-프로퍼티-접근-방식">🗝️ 프로퍼티 접근 방식</h2>
<p><strong>프로퍼티 키가 식별자 네이밍 규칙을 따를 때 사용할 수 있다!!</strong></p>
<h3 id="🐾-마침표-표기법">🐾 마침표 표기법</h3>
<p>: 마침표 프로퍼티 접근 연산자<code>.</code>를 사용하는 방식</p>
<pre><code class="language-js">let person = { 
  name : &quot;Kiara&quot;
};
//마침표 표기법에 의한 프로퍼티 접근
console.log(person.name);        //Kiara</code></pre>
<br>

<pre><code class="language-js">let ex = { 
  1: 0
};
//대괄호 표기법에 의한 프로퍼티 접근
console.log(ex.1);            //SyntaxError
console.log(ex.&#39;1&#39;);        //SyntaxError</code></pre>
<p>프로퍼티 키가 숫자로 이뤄진 문자열의 경우에는 따옴표 표기법을 사용하면 에러가 발생한다.</p>
<h3 id="🐾-대괄호-표기법">🐾 대괄호 표기법</h3>
<p>: 대괄호 프로퍼티 접근 연산자<code>[...]</code>를 사용하는 방식</p>
<pre><code class="language-js">let person = { 
  name : &quot;Kiara&quot;
};
//대괄호 표기법에 의한 프로퍼티 접근
console.log(person[&#39;name&#39;]);        //Kiara</code></pre>
<p>대괄호 표기법을 사용할 때는 대괄호 프로퍼티 접근 연산자 내부에 지정하는 프로퍼티 키는 따옴표로 감싼 문자열이어야 한다. 쉽게 말하면 접근하고자 하는 프로퍼티의 키 앞뒤에 따옴표를 꼭 써야 한다는 뜻이다.</p>
<pre><code class="language-js">let person = { 
  name : &quot;Kiara&quot;
};
//대괄호 표기법에 의한 프로퍼티 접근
console.log(person[name]);        //ReferenceError 발생</code></pre>
<p>따옴표로 감싸지 않은 경우에는 식별자로 해석하여 에러가 발생한다.</p>
<pre><code class="language-js">let ex = { 
  1: 0
};
//대괄호 표기법에 의한 프로퍼티 접근
console.log(person[1]);            //0
console.log(person[&#39;1&#39;]);        //0</code></pre>
<p>그러나 프로퍼티 키가 숫자로 이뤄진 문자열인 경우 따옴표를 생략할 수 있다.</p>
<hr>

<p><strong>Ref.</strong>
모던 자바스크립트 Deep Dive</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] 변수의 데이터 타입]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-%EB%B3%80%EC%88%98%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-%EB%B3%80%EC%88%98%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85</guid>
            <pubDate>Wed, 15 Mar 2023 19:58:42 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/b0c38d5e-f89f-417c-952a-9a2826d5a2cd/image.png" alt=""></p>
<h1 id="💎-원시-자료형primitive-type">💎 원시 자료형(primitive type)</h1>
<p>: 원시 자료형이 할당될 때에는 변수에 <strong>값(value) 자체</strong>가 담긴다.</p>
<h2 id="🗝️-특징">🗝️ 특징</h2>
<ul>
<li>원시 데이터 값이므로 변경이 불가능하다.</li>
<li>같은 데이터는 하나의 메모리를 사용한다.</li>
</ul>
<h2 id="🗝️-종류">🗝️ 종류</h2>
<ul>
<li><code>number</code> : 데이터 타입이 숫자일 때</li>
<li><code>string</code> : 데이터 타입이 문자열일 때</li>
<li><code>boolean</code> : 데이터가 True 또는 False의 값을 반환할 때</li>
<li><code>undefined</code> : 데이터 값이 할당되지 않았을 때</li>
<li><code>null</code> : 데이터 값이 없을 때</li>
<li><code>symbol</code> : 다른 값과 중복되지 않는 고유한 심볼을 생성할 때 ( <code>new</code> 생성자 사용 불가능)<h2 id="🗝️-undefined-vs-null">🗝️ undefined vs null</h2>
</li>
<li><code>undefined</code> : 데이터 값이 있는지 없는지 불확실한 상태<pre><code class="language-javascript">let unknown;
console.log(unknown); //undefined
</code></pre>
</li>
</ul>
<p>//데이터 타입 확인
console.log(typeof unknown); //&quot;undefined&quot;</p>
<pre><code>
- `null` : 데이터 값이 확실히 없을 때
```javascript
let data = null;
console.log(data); //null

//데이터 타입 확인
console.log(typeof data); //&quot;object&quot;</code></pre><h2 id="🗝️-변수-복사-방식--copy-by-value">🗝️ 변수 복사 방식 : Copy by value</h2>
<p>원시 자료형의 데이터를 복사하면, <strong><em>데이터의 값</em></strong>이 복사된다.</p>
<pre><code class="language-javascript">var num1 = 2023;
var num2 = num1;

num1 = 2022;

console.log(num2);    // 2023;</code></pre>
<p><code>num1</code>의 값을 2022로 변경하기 전에 <code>num1</code>의 값을 복사했기 때문에 <code>num2</code>의 값을 출력하면 변경 전의 <code>num1</code>의 값인 2023이 나온다.</p>
<h1 id="💎-자료-참조형reference-type">💎 자료 참조형(reference type)</h1>
<p>: 자료 참조형이 할당될 때에는 변수에 <strong>값을 가르키는 주소(reference)</strong>가 담긴다.</p>
<h2 id="🗝️-특징-1">🗝️ 특징</h2>
<ul>
<li>참조형 데이터 값으로 가변성을 가지고 이미 생성된 값의 변경이 가능하다.</li>
<li>같은 메모리 주소를 갖는 데이터는 같은 값을 갖는다.</li>
</ul>
<h2 id="🗝️-종류-1">🗝️ 종류</h2>
<ul>
<li><code>object</code> : 연관된 데이터를 묶어서 보관하는 데이터 타입. <code>key</code>와 <code>value</code>로 구성된다.<pre><code class="language-javascript">let objectEx = {        // key : value 순서로 구성됨
name : &quot;Apple&quot;,        // key = name, value = Apple
color : &quot;Red&quot;,        // key = color, value = Red
count : 3        // key = count, value = 3
};</code></pre>
</li>
<li><code>array</code> : 배열 데이터</li>
<li><code>function</code> : 함수 데이터</li>
</ul>
<h2 id="🗝️-변수-복사-방식--copy-by-reference">🗝️ 변수 복사 방식 : Copy by reference</h2>
<p>자료 참조형 데이터를 복사하면, <strong>참조값(메모리 주소)</strong>를 복사한다.</p>
<pre><code class="language-javascript">var info = { 
  name : &quot;Kiara&quot; 
};
var copyInf = info;

info.name = &quot;Kirakira&quot;;

console.log(copyInf);    // name : &quot;Kirakira&quot;
</code></pre>
<p>설명 수정</p>
<hr>
<b>Ref.</b>
<a href = "https://velog.io/@surim014/JavaScript-Primitive-Type-vs-Reference-Type">Surim014 님 /</a>
<a href = "https://justmakeyourself.tistory.com/entry/javascript-string-number">RunningWater 님 /</a>
<a href = "https://seons-dev.tistory.com/entry/JAVASCRIPT-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-null-undefined">서근 님</a>
]]></description>
        </item>
        <item>
            <title><![CDATA[[CSS] Transform]]></title>
            <link>https://velog.io/@kiiiaraa_/CSS-Transform</link>
            <guid>https://velog.io/@kiiiaraa_/CSS-Transform</guid>
            <pubDate>Wed, 15 Mar 2023 19:44:38 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/35ed7794-af52-410b-949d-d49b90179127/image.png" alt=""></p>
<h1 id="transform">Transform</h1>
<p>: HTML 요소의 모양, 크기, 위치 등을 자유롭게 바꿀 수 있는 속성</p>
<h2 id="--translate">- Translate</h2>
<p>: 선택한 오브젝트의 위치를 변경하는 속성</p>
<pre><code class="language-css">.translate { transform: translate(50px, 100px); }
/*현재 위치에서 x축으로 50px, y축으로 100px만큼 이동함*/</code></pre>
<h3 id="예제">예제</h3>
<blockquote>
<p><code>&lt;div&gt;</code>의 위치를 x축으로 100px, y축으로 200px만큼 이동하려고 할 때 코드를 수정해보자.</p>
</blockquote>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;style&gt; 
div {
  width: 200px;
  height: 100px;
  background-color: pink;
  border: 2px solid red;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;The translate() Method&lt;/h1&gt;
&lt;div&gt;Example&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/f5a6ccdd-bc98-435e-9db7-5c6a0523555a/image.png" alt=""></p>
<p><code>&lt;div&gt;</code> 안에 <code>traslate</code> 속성을 추가해서 아래와 같이 변경하면,</p>
<pre><code class="language-css">div {
  width: 200px;
  height: 100px;
  background-color: pink;
  border: 2px solid red;
  transform: translate(100px,100px);
}</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/c5b4857a-85d0-46fe-8f06-627405bacddc/image.png" alt=""></p>
<p><code>&lt;div&gt;</code> 의 위치가 변경된 것을 확인할 수 있다.</p>
<h2 id="--skew">- Skew</h2>
<p>: 오브젝트를 x축과 y축을 기준으로 입력한 각도만큼 비트는 속성</p>
<pre><code class="language-css">.skew { transform: skew(20deg, 10deg); }
/* 오브젝트를 x축으로 20도, y축으로 10도 비틀기 */
</code></pre>
<h3 id="예제-1">예제</h3>
<blockquote>
<p><code>&lt;div&gt;</code>를 x축으로 10도, y축으로 20도만큼 기울이려고 할 때 코드를 수정해보자.</p>
</blockquote>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;The skew() Method&lt;/title&gt;
        &lt;style&gt;
            div {
                width : 300px;
                height : 100px;
                background-color : yellow;
                border : 2px solid orange;
            }
        &lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;The skew() Method&lt;/h1&gt;
        &lt;div&gt;This is an example of skew() Method.&lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/0f2a1d54-2cde-46a1-8edc-de9bd979fc9b/image.png" alt=""></p>
<p><code>&lt;div&gt;</code> 안에 <code>skew</code> 속성을 추가해서 아래와 같이 변경하면,</p>
<pre><code class="language-css">div {
    width : 300px;
    height : 100px;
    background-color : yellow;
    border : 2px solid orange;
    transform : skew(10deg, 20deg);
}</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/69801a0a-46f9-4e5a-b645-674109fb57bb/image.png" alt=""></p>
<p><code>&lt;div&gt;</code> 의 각도가 비틀어져서 나타난 것을 확인할 수 있다.</p>
<h2 id="--rotate">- Rotate</h2>
<p>: 오브젝트를 주어진 각도만큼 시계방향/반시계방향으로 회전시키는 속성</p>
<pre><code class="language-css">.rotate { transform: rotate(20deg); }
/* 오브젝트를 시계방향으로 20도 회전하기 */
.rotate { transform: rotate(-40deg); }
/* 오브젝트를 반시계방향으로 20도 회전하기 */</code></pre>
<h3 id="예제-2">예제</h3>
<blockquote>
<p>클래스 <code>example1</code>를 시계방향으로 15도, 클래스 <code>example2</code>를 반시계방향으로 30도 회전시키자. </p>
</blockquote>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;The rotate() Method&lt;/title&gt;
        &lt;style&gt;
            div {
                width : 200px;
                height : 150px;
                background-color : skyblue;
                border : 2.5px solid black;
                  margin : 50px;
            }
        &lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;The rotate() Method&lt;/h1&gt;
        &lt;div class=&quot;example1&quot;&gt;Example1&lt;/div&gt;
      &lt;br&gt;
          &lt;div class=&quot;example2&quot;&gt;Example2&lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/b114cc5f-8e1f-465b-aa96-31d23de11c3b/image.png" alt=""></p>
<p><code>&lt;style&gt;</code> 안에 <code>rotate</code> 속성을 추가해서 아래와 같이 변경하면,</p>
<pre><code class="language-css">&lt;style&gt;
    div {
        width : 200px;
        height : 150px;
        background-color : skyblue;
        border : 2.5px solid black;
        margin : 50px;
    }

    .example1 {
        transform : rotate(15deg);
    }
    .example2 {
        transform : rotate(-30deg);
    }
}</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/d1cfcf71-2a2c-4fb5-8d21-d550f22deac3/image.png" alt="">
<code>&lt;example1&gt;</code> 은 우측으로 15도,<code>&lt;example2&gt;</code> 는 좌측으로 30도 기울어져 나타난 것을 확인할 수 있다.</p>
<h2 id="--scale">- Scale</h2>
<p>: 오브젝트의 크기를 변형시키는 속성</p>
<pre><code class="language-css">/* increase scale */
.scale { transform: scale(2, 3); }
/* width의 2배, height의 3배인 크기로 변형하기 */

/* decrease scale */
.scale { transform: scale(0.5, 0.5); }
/* width의 0.5배, height의 0.5배인 크기로 변형하기 */
</code></pre>
<h3 id="예제-3">예제</h3>
<blockquote>
<p>가로가 300px, 세로가 100px인 박스를 <code>scale</code> 속성을 이용하여 기존 박스에서 가로가 1.5배, 세로가 2배된 박스로 변형시키자.</p>
</blockquote>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta charset=&quot;UTF-8&quot;&gt;
        &lt;html lan = &quot;EN&quot;&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;index.css&quot;&gt;
        &lt;title&gt;The scale() Method&lt;/title&gt;
        &lt;style&gt;
            div {
                width : 300px;
                height : 100px;
                background-color : pink;
                border : 3px solid red;
                margin : 100px;
            }
        &lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;The scale() Method&lt;/h1&gt;
        &lt;div&gt;Example&lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/d92283d6-6599-432f-9f05-37a00665926d/image.png" alt=""></p>
<p><code>&lt;style&gt;</code> 시트 안에 있는 <code>div</code> 내부에 <code>transform : scale(1.5, 2);</code> 을 추가해주면,</p>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/1c52129d-30fd-4041-87c4-e5645da7c64b/image.png" alt="">
기존에 설정한 <code>width</code>의 1.5배, <code>height</code>의 2배인 크기의 <code>&lt;div&gt;</code> 박스가 나타난다. </p>
<h2 id="--matrix">- Matrix</h2>
<p>: 모든 <code>Tramsform</code> 속성을 하나로 결합한 속성</p>
<pre><code class="language-css">matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())</code></pre>
<pre><code class="language-css">.matrix { transform: matrix(1, -0.3, 0, 1, 0, 0); }
/* 기존 오브젝트에서 scale(1, 0), skew(-0.3, 0), translate(0,0)을 전부 적용 */</code></pre>
<hr>
<b>Ref.</b>
<a href = https://www.w3schools.com/>w3schools</a>]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] readline 입력 받기 ]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-readline-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-readline-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0</guid>
            <pubDate>Wed, 15 Mar 2023 19:03:48 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/81fdae1c-b85c-4b65-aef0-7d5d6df259a7/image.png" alt=""></p>
<h1 id="💎-readline">💎 readline</h1>
<blockquote>
<p>콘솔을 통해 값을 입력 받는 모듈</p>
</blockquote>
<h1 id="💎-기본-구문">💎 기본 구문</h1>
<pre><code class="language-js">const readline = require(&quot;readline&quot;);

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.on(&quot;line&quot;, (x) =&gt; { 
  console.log(x);
  rl.close();
}).on(&#39;close&#39;, () =&gt; {
  process.exit();
});</code></pre>
<p>가장 많이 쓰이는 코드로, 입력 받은 한 줄을 그대로 출력해주는 코드다.</p>
<h2 id="li-모듈-불러오기-li"><li> 모듈 불러오기 </li></h2>
<pre><code class="language-javascript">const readline = require(&#39;readline&#39;);
//키워드 변수명 = require(&#39;모듈 이름&#39;); </code></pre>
<p>변수명이나 모듈 이름은 변경해도 된다. 변수 키워드도 변경해도 되지만, 오류가 발생할 수 있는 <code>var</code>보다는 <code>let</code>이나 <code>const</code>를 사용하는 걸 추천합니다.</p>
<h2 id="lireadline-인터페이스-객체-생성-li"><li>readline 인터페이스 객체 생성 </li></h2>
<pre><code class="language-javascript">const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});</code></pre>
<p><code>createInterface()</code> 메서드를 이용해 객체를 만들어 <code>rl</code> 변수에 저장합니다.</p>
<h2 id="lion-메서드를-이용하여-이벤트-실행li"><li>on 메서드를 이용하여 이벤트 실행</li></h2>
<p><code>on</code> 메서드를 이용하여 이벤트가 발생할 때 실행할 동작을 지정할 수 있습니다.</p>
<hr>

<blockquote>
<p><code>line</code> : 사용자가 콘솔에 입력을 할 때 발생하는 이벤트</p>
</blockquote>
<p>입력 스트림에 줄바꿈을 나타내는 <code>\n, \r, \r\n</code> 등의 제어 문자가 나타나거나, 사용자가 <code>Enter</code> 또는 <code>Return</code>을 누를 때 발생합니다.</p>
<blockquote>
<p><code>close</code>  : 입력 스트림을 종료하는 이벤트</p>
</blockquote>
<p>더 이상 입력받을 것이 없을 때, <code>rl.close()</code>를 호출하여 발생시킵니다.</p>
<hr>

<p><code>on</code> 메서드를 통해 <code>line</code> 이벤트와 <code>close</code> 이벤트를 사용한 코드는 다음과 같습니다.</p>
<pre><code class="language-js">/* 일반적인 함수 */
rl.on(&quot;line&quot;, function (x) {
    rl.close(); //close가 없으면 입력을 무한히 받는다.
})
    rl.on(&quot;close&quot;, function () {
  // 입력이 끝난 후 실행할 코드 
});</code></pre>
<pre><code class="language-javascript">/* 화살표 함수 */
rl.on(&quot;line&quot;, (line) =&gt; { 
    rl.close();
});
    rl.on(&#39;close&#39;, () =&gt; {
})</code></pre>
<hr>
Ref) <a href = "https://velog.io/@longlive-jonghan">jonghan 님의 벨로그 </a>]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] var, let, const의 차이점]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Sun, 12 Mar 2023 17:31:07 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/05db165e-4cb7-4e45-89ee-1b2c5452fb6b/image.png" alt=""></p>
<h1 id="💎-var-let-const의-차이점">💎 var, let, const의 차이점</h1>
<table>
<thead>
<tr>
<th align="center">키워드</th>
<th align="center">중복 선언</th>
<th align="center">재할당</th>
<th align="center">변수 스코프 유효범위</th>
<th align="center">호이스팅</th>
</tr>
</thead>
<tbody><tr>
<td align="center">var</td>
<td align="center">O</td>
<td align="center">O</td>
<td align="center">함수 레벨 스코프</td>
<td align="center">O</td>
</tr>
<tr>
<td align="center">let</td>
<td align="center">X</td>
<td align="center">O</td>
<td align="center">블록 레벨 스코프</td>
<td align="center">X</td>
</tr>
<tr>
<td align="center">const</td>
<td align="center">X</td>
<td align="center">X</td>
<td align="center">블록 레벨 스코프</td>
<td align="center">X</td>
</tr>
<tr>
<td align="center"><br></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
</tbody></table>
<h3 id="li-중복-선언재할당-가능-여부-li"><li> 중복 선언/재할당 가능 여부 </li></h3>
<h4 id="--var--중복-선언-o-재할당-o">- <code>var</code> : 중복 선언 O, 재할당 O</h4>
<pre><code class="language-javascript">var a = 10; //변수 선언+할당
console.log(a); // 10

//중복 선언+재할당
var a = 20; 
console.log(a); // 20

//중복 선언
var a; 
console.log(a); // 20</code></pre>
<p>키워드 <code>var</code>는 중복 선언과 재할당이 전부 가능해서 예상치 못한 값을 반환할 수도 있다. </p>
<h4 id="--let--중복-선언-x-재할당-o">- <code>let</code> : 중복 선언 X, 재할당 O</h4>
<pre><code class="language-javascript">let name = &quot;Kiara&quot;;
console.log(name); // Kiara

// 중복 선언
let name = &quot;Kirakira&quot;; // Uncaught SyntaxError: Identifier &#39;name&#39; has already been declared

// 재할당
name = &quot;Kirakira&quot;; 
console.log(name); // Kirakira</code></pre>
<p>키워드 <code>let</code>은 중복 선언은 안되지만, 재할당은 가능하다. </p>
<h4 id="--const--중복-선언-x-재할당-x">- <code>const</code> : 중복 선언 X, 재할당 X</h4>
<pre><code class="language-javascript">const name; // Uncaught SyntaxError: Missing initializer in const declaration
const name = &quot;Kiara&quot;;</code></pre>
<p>키워드 <code>const</code>는 중복 선언과 재할당 모두 불가능하다. 키워드<code>let</code>과 다른 점은 <strong>선언과 초기화가 반드시 동시에 진행되어야 한다는 것</strong>이다. </p>
<pre><code class="language-javascript">// 원시값의 재할당 X (상수 키워드 const는 값을 변경할 수 없음)
const name = &quot;Kiara&quot;;
name = &quot;Kiara&quot;; // Uncaught TypeError: Assignment to constant variable.

// 객체의 재할당
const student = {
 name : &quot;Kiara&quot;
}
student.name = &quot;Kirakira&quot;;

console.log(student); // { name : &quot;Kirakira&quot; }</code></pre>
<p>원시값의 재할당은 불가능하지만 객체의 재할당은 가능하다. </p>
<h3 id="li-변수-스코프-유효범위-li"><li> 변수 스코프 유효범위 </li></h3>
<h4 id="--var--함수-레벨-스코프">- <code>var</code> : 함수 레벨 스코프</h4>
<pre><code class="language-javascript">var name = &quot;Kiara&quot;; //전역 변수

while (true) {
  var name = &quot;Kiara&#39;s velog&quot;; //전역 변수로 취급됨
}

console.log(name); //Kiara&#39;s velog</code></pre>
<p><code>console.log(name)</code>이 <code>Kiara</code>가 아닌 &#39;Kiara&#39;s velog&#39;가 나오는 이유는 함수가 아닌 다른 블록 내에서 선언된 키워드 <code>var</code> 변수는 지역 변수가 아닌 전역 변수로 취급되기 때문이다.</p>
<h4 id="--letconst--블록-레벨-스코프">- <code>let</code>/<code>const</code> : 블록 레벨 스코프</h4>
<pre><code class="language-javascript">// 전역 변수 초기화
let name = &quot;Kiara&quot;; 
const color = &quot;Blue&quot;;

while (true) {
  let name = &quot;Kiara&#39;s velog&quot;; // 지역 변수
  const color = &quot;Pink&quot;;    // 지역 변수
}

console.log(name); //Kiara
console.log(color); //Blue</code></pre>
<p>위와 같은 코드에서 키워드를 <code>var</code>에서 <code>let</code>과 <code>const</code>로 바꿨을 때, 출력값은 while문 내에서 선언된 값이 아닌 전역 변수의 값이 반환된다.</p>
<h3 id="li-호이스팅-가능-여부-li"><li> 호이스팅 가능 여부 </li></h3>
<h4 id="--var--호이스팅-가능">- <code>var</code> : 호이스팅 가능</h4>
<pre><code class="language-javascript">&lt;!-- var로 선언된 변수의 호이스팅 --&gt;
console.log(a);      // undefined
var a = 10;      // var로 선언된 변수에 10이라는 값을 할당함
console.log(a);      // 10</code></pre>
<p>값을 할당하기 전에 <code>console.log()</code>로 값을 참조했을 때 오류가 발생하지 않고 <code>undefined</code>가 나타난다.</p>
<h4 id="--letconst--호이스팅-불가능">- <code>let</code>/<code>const</code> : 호이스팅 불가능</h4>
<pre><code class="language-javascript">&lt;!-- let으로 선언된 변수의 호이스팅 --&gt;
console.log(a);      // Uncaught ReferenceError: Cannot access &#39;a&#39; before initialization
let a = 20;      
&lt;!-- const로 선언된 변수의 호이스팅 --&gt;
console.log(PI); //Uncaught ReferenceError: Cannot access &#39;PI&#39; before initialization
const PI = 3.14;</code></pre>
<p><code>var</code>와 다르게 키워드 <code>let</code>과 <code>const</code>는 변수에 값을 할당하기 전에 출력을 했을 때 오류가 뜨는 것을 확인할 수 있다. 이는 호이스팅이 불가능하기 때문이다. 즉, 콘솔에 출력하는 명령어를 실행하기 전에 변수가 선언되지 않았기 때문에 정상적으로 실행되지 않는다. </p>
<h1 id="💎-var-의-한계점">💎 <code>var</code> 의 한계점</h1>
<blockquote>
<h2 id="1-중복-선언">1. 중복 선언</h2>
</blockquote>
<h2 id="2-함수-레벨-스코프">2. 함수 레벨 스코프</h2>
<h2 id="3-변수-호이스팅">3. 변수 호이스팅</h2>
<p> 이러한 이유들로 변수를 선언할 때 <code>var</code>보다는 <code>let</code>이나 <code>const</code>를 사용하여 오류 발생률을 낮춘다.</p>
<hr>
<b>Ref)</b> <br>
<a href="https://curryyou.tistory.com/192">카레유 님</a>
<br>
     <a href="https://espania.tistory.com/m/404">에스파니아 님</a>
     <br>
     <a href="https://developer.mozilla.org/ko/">MDN wed docs</a><br>
     <a href="https://www.howdy-mj.me/javascript/var-let-const">MJ Kim 님</a>]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] 간단한 용어 정리 ]]></title>
            <link>https://velog.io/@kiiiaraa_/Javascript-%EB%B3%80%EC%88%98%EC%99%80-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
            <guid>https://velog.io/@kiiiaraa_/Javascript-%EB%B3%80%EC%88%98%EC%99%80-var-let-const%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90</guid>
            <pubDate>Sun, 12 Mar 2023 11:38:36 GMT</pubDate>
            <description><![CDATA[<p><strong>*<mark>관련 용어를 계속해서 추가하고 있습니다!</mark>*</strong></p>
<h1 id="💎-변수variables">💎 변수(variables)</h1>
<blockquote>
<p><strong>데이터를 저장하는 저장소나 공간</strong>으로, 변수를 선언하거나 값을 할당하고 저장된 데이터를 변경하거나 추가할 수도 있다.</p>
</blockquote>
<h3 id="--전역-변수">- 전역 변수</h3>
<p>: 어디서든 사용 가능한 변수, 함수 외부에서 선언한 변수</p>
<h3 id="--지역-변수">- 지역 변수</h3>
<p>: 특정 코드 블록(함수,if문, while문 등) 내에서 선언된 변수, 함수 내부에서 선언한 변수</p>
<h1 id="💎-용어-정리">💎 용어 정리</h1>
<h2 id="식별자">식별자</h2>
<p>: 메모리 공간을 식별하기 위한 단어 ex) 변수 이름</p>
<pre><code class="language-javascript">var random; // 식별자(변수 이름) : &#39;random&#39;</code></pre>
<h2 id="키워드var-let-const">키워드(var, let, const)</h2>
<pre><code class="language-javascript">var name = &quot;Kiara&quot;; // 키워드 var로 선언된 변수 name의 값은 Kiara
let age = 25; // 키워드 let으로 선언된 변수 age의 값은 25
const PI = 3.14; // 키워드 const로 선언된 상수 PI의 값는 3.14</code></pre>
<h2 id="객체object">객체(object)</h2>
<p>: 0개 이상의 프로퍼티로 구성된 집합으로 변경 가능한 값(mutable value)이다. 원시 값을 제외한 나머지 값(<code>function</code>, <code>array</code>, 정규 표현식 등)이 객체에 해당한다. </p>
<blockquote>
<p>객체 = 프로퍼티 + 메서드</p>
</blockquote>
<h2 id="프로퍼티property">프로퍼티(property)</h2>
<p>: 객체의 상태를 나타내는 값(data)으로, 키(key)와 값(value)으로 나뉜다.</p>
<pre><code class="language-js">let color = {
  favorite : &quot;skyblue&quot;,     // 키 : favorite + 값 : &quot;skyblue&quot; = 프로퍼티
  hate : &quot;yellow&quot;            // 키 : hate + 값 : &quot;yellow&quot; = 프로퍼티
};</code></pre>
<h2 id="함수function">함수(function)</h2>
<p>: 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록</p>
<pre><code class="language-js">// 두 개의 값을 parameter로 받아서 둘의 합을 반환하는 함수
function addNum(x, y) {
    return x + y; 
}</code></pre>
<h2 id="메서드method">메서드(method)</h2>
<p>: 일반적인 함수와 비교하기 위해 함수를 호출할 때 객체가 있는 경우를 메서드라고 부른다.</p>
<pre><code class="language-js">let example = {
  a : function() {
    console.log(&#39;메서드 호출&#39;);
  }
}</code></pre>
<blockquote>
<p>함수와 메서드 비교는 추후에 ! </p>
</blockquote>
<h2 id="참조reference">참조(reference)</h2>
<p>: 변수에 저장된 값을 읽어 들이는 것</p>
<h2 id="변수-선언variable-declare">변수 선언(variable declare)</h2>
<p>: 키워드를 사용해 변수를 정의하는 것</p>
<pre><code class="language-javascript">var name;</code></pre>
<h2 id="변수-할당variable-assignment">변수 할당(variable assignment)</h2>
<p>: 변수가 선언된 후에 대입 연산자(=)를 통해 값을 저장하는 것</p>
<pre><code class="language-javascript">var name;
name = &quot;Kiara&quot;;</code></pre>
<h2 id="변수-초기화variable-initialize">변수 초기화(variable initialize)</h2>
<p>: 변수를 선언함과 동시에 값을 넣어주는 것</p>
<pre><code class="language-javascript">var name = &quot;Kiara&quot;;</code></pre>
<h2 id="프로토타입prototype">프로토타입(prototype)</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[[CSS]기초 및 실습]]></title>
            <link>https://velog.io/@kiiiaraa_/CSS%EA%B8%B0%EC%B4%88-%EB%B0%8F-%EC%8B%A4%EC%8A%B5</link>
            <guid>https://velog.io/@kiiiaraa_/CSS%EA%B8%B0%EC%B4%88-%EB%B0%8F-%EC%8B%A4%EC%8A%B5</guid>
            <pubDate>Thu, 02 Mar 2023 09:37:28 GMT</pubDate>
            <description><![CDATA[<h1 id="정의">정의</h1>
<ul>
<li>CSS(Casacading Style Sheet) : HTML과 함께 웹 페이지의 디자인을 구성하는 언어</li>
</ul>
<h1 id="구조">구조</h1>
<ul>
<li>기본 <pre><code class="language-css">selector {
  property: value;
  property: value;
}</code></pre>
</li>
</ul>
<h2 id="선택자selector">선택자(selector)</h2>
<ul>
<li>전체 선택자 <code>*</code>  : 모든 HTML 요소에 스타일을 적용함
```css</li>
<li>{        <!-- 모든 요소에 적용함 --><br>  text-align : center ;
}
```</li>
<li>태그 선택자 <code>tag name</code> : 특정 HTML 요소에 스타일을 적용함<pre><code class="language-css">p {        &lt;!-- &lt;p&gt;에만 적용함 --&gt;  
  background-color : blue ;
}</code></pre>
</li>
<li>클래스 선택자 <code>.</code> : class 속성을 지정하여 스타일을 적용함<pre><code class="language-css">.food {        &lt;!-- food 클래스에만 적용함 --&gt;  
  font-style : italic ;
}</code></pre>
</li>
<li>ID 선택자 <code>#</code>  : ID 속성을 지정하여 스타일을 적용함<pre><code class="language-css">#change {        &lt;!-- change ID에만 적용함 --&gt;  
  width : 300px ;
}</code></pre>
</li>
<li>그룹 선택자 : 다양한 유형의 요소를 한번에 선택할 때 쉼표<code>,</code>를  사용함<pre><code class="language-css">h1, p, .cla {        &lt;!-- &lt;h1&gt;와 &lt;p&gt; 그리고 클래스 cla에 적용함 --&gt;  
  color : red ;
}</code></pre>
</li>
</ul>
<h1 id="스타일-우선순위">스타일 우선순위</h1>
<h4 id="--적용-방법에-따른-우선순위">- 적용 방법에 따른 우선순위</h4>
<ol>
<li>인라인(Inline) 스타일 : HTML 요소 내부에 위치한 스타일 <pre><code class="language-html">&lt;h1 style=&quot;background-color : black&quot;&gt;True of False?&lt;/h1&gt;</code></pre>
</li>
<li>내부/외부 스타일 시트 : <head> 태그 안에 위치에 따라 결정됨</li>
</ol>
<ul>
<li>내부 스타일 시트 : <head> 안에 <style> 태그 사용<pre><code class="language-html">&lt;head&gt;
&lt;style&gt;
  * {
      background-color : white ;
      text-align : right ;
  }
&lt;/style&gt;
&lt;/head&gt;
</code></pre>
</li>
</ul>
<pre><code>- 외부 스타일 시트 : &lt;head&gt; 태그 안에 &lt;link&gt; 태그를 사용하여 스타일 정보를 가진 별도의 파일을 불러옴
```html
&lt;link rel=&quot;stylesheet&quot; href=&quot;example.css&quot;&gt;
&lt;!-- href 뒤에는 외부 스타일 시트의 파일 경로를 넣어줌--&gt;</code></pre><ol start="3">
<li>웹 브라우저 기본 스타일</li>
</ol>
<h4 id="--적용-범위에-따른-우선순위">- 적용 범위에 따른 우선순위</h4>
<ol>
<li><code>!important</code> : 가장 높은 우선순위를 둘 속성과 값 뒤에 쓴다<pre><code class="language-css">&lt;style&gt;
p { 
 color : green; !important;
 }</code></pre>
</li>
<li>인라인(Inline) 스타일 </li>
<li>아이디(ID) 스타일 <code>#</code></li>
<li>클래스(Class) 스타일 <code>.</code> </li>
<li>태그(Tag) 스타일 <code>p, h1, ul ...</code></li>
</ol>
<h1 id="문제">문제</h1>
<pre><code class="language-html">&lt;p style=&quot;color : pink&quot; id=&quot;kiara&quot; class=&quot;kirakira&quot;&gt;Good Luck&lt;/p&gt;</code></pre>
<pre><code class="language-css">p { color : black ; }

#kiara { color : blue ; }

.kirakira { color : red ; }</code></pre>
<blockquote>
<p>이 때 출력되는 &#39;Good Luck&#39;의 색상은? </p>
</blockquote>
<p>style &gt; ID &gt; class &gt; tag/type 순서로 우선순위가 높기 때문에 <strong>black</strong>이 나온다.</p>
<p>다음 코드를 실제로 실행해보면,</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta charset=&quot;UTF-8&quot;&gt;
        &lt;html lan = &quot;EN&quot;&gt;
        &lt;link rel=&quot;stylesheet&quot; href=&quot;priority.css&quot;&gt;
        &lt;title&gt;practice&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1 style=&quot;color : pink&quot; id=&quot;kiara&quot; class=&quot;kirakira&quot;&gt;Good Luck&lt;/h1&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>
<pre><code class="language-css">&lt;!-- file name : priority.css --&gt;
p { color : black ; }

#kiara { color : blue ; }

.kirakira { color : red ; }</code></pre>
<p>  가장 높은 우선순위에 있던 인라인 스타일이 적용된다.
  <img src="https://velog.velcdn.com/images/kiiiaraa_/post/e76df85b-a928-4e30-9a5b-6301da9432a3/image.png" alt="실행 결과"></p>
<p> 위와 같은 코드에서 <code>&lt;h1&gt;</code>만 다음과 같이 변경해서 실행하면,</p>
<pre><code>  &lt;h1 id=&quot;kiara&quot; class=&quot;kirakira&quot;&gt;Good Luck&lt;/h1&gt;</code></pre><p>  <img src="https://velog.velcdn.com/images/kiiiaraa_/post/105b123b-33dc-4a9a-b020-25a0afa547ad/image.png" alt=""></p>
<p>  인라인 다음 우선순위인 ID 스타일이 적용된 걸 확인할 수 있다.
  <hr>
  Ref. 박규하 코치님, <a href="https://blueshare.tistory.com/" >blueshare님 블로그</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[HTML]태그 및 속성]]></title>
            <link>https://velog.io/@kiiiaraa_/HTML%ED%83%9C%EA%B7%B8-%EC%86%8D%EC%84%B1</link>
            <guid>https://velog.io/@kiiiaraa_/HTML%ED%83%9C%EA%B7%B8-%EC%86%8D%EC%84%B1</guid>
            <pubDate>Thu, 02 Mar 2023 05:45:33 GMT</pubDate>
            <description><![CDATA[<h1 id="태그tag">태그(Tag)</h1>
<p>: HTML 문서를 구성하는 기본 요소(Element)</p>
<h2 id="종류">종류</h2>
<ul>
<li><code>&lt;!DOCTYPE html&gt;</code> : HTML 문서 타입 </li>
<li><code>&lt;h1&gt; ~ &lt;/h1&gt;</code> : head 부분, h1부터 h6까지 가능</li>
<li><code>&lt;p&gt; ~ &lt;/p&gt;</code> : paragraph 부분</li>
<li><code>&lt;a&gt; ~ &lt;/a&gt;</code> : 하이퍼링크 만들기</li>
<li><code>&lt;b&gt; ~ &lt;/b&gt;</code> : 텍스트 굵기를 두껍게 만들기</li>
<li><code>&lt;img&gt;</code> : 이미지 가져오기</li>
<li><code>&lt;br&gt;</code> : 한 줄의 공백 삽입</li>
<li><code>&lt;hr&gt;</code> : 가로 구분선 생성</li>
<li><code>&lt;button&gt; ~ &lt;/button&gt;</code> : 버튼 생성</li>
<li><code>&lt;ul&gt; Unordered List &lt;/ul&gt;</code> : 순서가 없는 리스트 불러오기</li>
<li><code>&lt;ol&gt; Ordered List &lt;/ol&gt;</code> : 순서가 있는 리스트 불러오기</li>
</ul>
<h3 id="실습">실습</h3>
<pre><code>&lt;!DOCTYPE html&gt;         
&lt;html&gt;                     
    &lt;head&gt;
        &lt;html lan=&quot;EN&quot;&gt;            
        &lt;meta charset=&quot;UTF-8&quot;&gt;        
        &lt;title&gt; 간단한 자기소개 &lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1 style=&quot;color:#FF0080&quot;&gt; Simple Self-Introduction &lt;/h1&gt;
        &lt;img src=&quot;https://i.pinimg.com/564x/11/b9/de/11b9de8d5ba49e72e4c1ad6e9dde022f.jpg&quot; alt=&quot;kiara&quot; width = 300px height = 300px&gt;
        &lt;br&gt;
        &lt;h2 style=&quot;color:#F781BE&quot;&gt; Name : Kiara &lt;/h2&gt;
        &lt;hr&gt;
        &lt;h2 style=&quot;color:#F5A9D0&quot;&gt; Birth : January &lt;/h2&gt;
        &lt;hr&gt;
        &lt;h2 style=&quot;color:#F781BE&quot;&gt; Favorite&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li style=&quot;color:#F5A9D0&quot;&gt;&lt;b&gt;Singer :&lt;/b&gt; Newjeans&lt;/li&gt;
            &lt;li style=&quot;color:#F5A9D0&quot;&gt;&lt;b&gt;Weather :&lt;/b&gt; Winter&lt;/li&gt;
            &lt;li style=&quot;color:#F5A9D0&quot;&gt;&lt;b&gt;Cartoon :&lt;/b&gt; Chainsaw man, Tokyo Revengers&lt;/li&gt;
            &lt;li style=&quot;color:#F5A9D0&quot;&gt;&lt;b&gt;Anime :&lt;/b&gt; CyberFunk 2077&lt;/li&gt;
        &lt;/ul&gt;
        &lt;hr&gt;
        &lt;h2&gt;&lt;button&gt;&lt;a href = &quot;https://velog.io/@kiiiaraa_&quot;&gt;Velog&lt;/button&gt;&lt;/a&gt;&lt;/h2&gt;
        &lt;h2 title=&quot;This is Secret&quot;&gt;&lt;button&gt;&lt;a href = &quot;https://www.instagram.com/---/&quot;&gt;Instagram&lt;/button&gt;&lt;/a&gt;        
        &lt;!-- 실제 인스타로 이동할 수 있게 구현했지만 개인정보 상 지웠습니다--&gt;
    &lt;/body&gt;     
&lt;/html&gt;</code></pre><p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/0d0ea3b3-3b83-45b0-acd9-ba7a0acfd345/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/d9dd7053-b0ea-4819-bd6b-23bb12ae3711/image.png" alt=""></p>
<p>마우스 커서가 보이진 않지만 <code>title</code>도 정상적으로 적용된 것을 확인할 수 있음</p>
<h1 id="속성attributes">속성(Attributes)</h1>
<p>: HTML 문서를 구성하는 기본 요소(Element)</p>
<h2 id="종류-1">종류</h2>
<ul>
<li><code>title</code> : title text에 툴팁(Tooltip) 효과를 줌<pre><code>&lt;h1 title=&quot;Kirakira&quot;&gt; Shining Star &lt;/h1&gt;
&lt;!-- Shining Star 위에 커서를 올리면 Kirakira 라는 추가 정보가 뜸 --&gt; </code></pre></li>
<li><code>href</code> : 태그 <code>&lt;a&gt;</code>와 함께 쓰는 HTML 링크 속성<pre><code>&lt;a href=&quot;https://velog.io/@kiiiaraa_&quot;&gt; Kiara&#39;s Velog &lt;/a&gt;
&lt;!-- Kiara&#39;s Velog를 누르면 링크 주소로 이동함 --&gt; </code></pre></li>
<li><code>width &amp; height</code> : 태그 <code>&lt;img&gt;</code>와 쓰는 가로와 세로 길이를 설정하는 속성</li>
<li><code>alt</code> : 시각장애인 등 이미지를 보기 어려운 사용자를 위한 이미지 대체 텍스트로, 태그 <code>&lt;img&gt;</code>에 대한 정보를 담고 있음 <pre><code>&lt;img src=&quot;https://i.pinimg.com/564x/11/b9/de/11b9de8d5ba49e72e4c1ad6e9dde022f.jpg&quot; alt=&quot;girl&quot; width = 300px height = 300px&gt;
&lt;!-- 링크에 연결된 이미지의 크기를 300 x 300(px)로 변환함. 이미지의 대체 텍스트는 girl로 뜸--&gt; </code></pre></li>
<li><code>style</code> : 글꼴이나 크기, 색상 등의 스타일 요소들을 추가하는 속성<pre><code>&lt;h1 style=&quot;color:red&quot;&gt; Hello World! &lt;/h1&gt;
&lt;!-- Hello World!를 red 컬러로 출력--&gt; </code></pre></li>
<li><code>lang</code> : 태그 <code>&lt;html&gt;</code>의 속성으로 웹 페이지의 언어를 선언할 때 쓰임<pre><code>&lt;html lan=&quot;EN&quot;&gt;            &lt;!--HTML 문서 언어를 영어로 설정--&gt;</code></pre></li>
</ul>
<hr>
<p>Ref. <a href="https://www.w3schools.com/">W3C(https://www.w3schools.com/)</a></p>
<p>기본적인 것들만 정리했고 공부하면서 더 추가할 예정입니다 :)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[HTML]기초 및 실습]]></title>
            <link>https://velog.io/@kiiiaraa_/HTML%EA%B8%B0%EC%B4%88-%EB%B0%8F-%ED%83%9C%EA%B7%B8-%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@kiiiaraa_/HTML%EA%B8%B0%EC%B4%88-%EB%B0%8F-%ED%83%9C%EA%B7%B8-%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 01 Mar 2023 19:27:40 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/1c8c0b07-2eb1-4d7a-96a6-f26653fa7fb8/image.png" alt=""></p>
<h1 id="정의">정의</h1>
<ul>
<li>HTML(Hyper Text Mark-up Language)</li>
<li>Mark-up Language : 태그 Tag 등을 이용하여 문서나 데이터의 구조를 명시하는 언어의 한 가지</li>
</ul>
<h1 id="구조">구조</h1>
<ul>
<li><p>기본 </p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;         
&lt;html&gt;                     
  &lt;head&gt;
      &lt;meta&gt;
      &lt;title&gt; 문서 제목 &lt;/title&gt;
      ...
  &lt;/head&gt;
  &lt;body&gt;
      문서 내용
      ...
  &lt;/body&gt;
 &lt;/html&gt;</code></pre>
</li>
<li><p><code>&lt;!DOCTYPE html&gt;</code> : 문서 형식을 HTML5로 지정함</p>
</li>
<li><p><code>&lt;html&gt; ~ &lt;/html&gt;</code> : HTML 문서의 최상위 요소 </p>
</li>
<li><p><code>&lt;head&gt; ~ &lt;/head&gt;</code> : 문서의 메타데이터를 포함함</p>
</li>
<li><p><code>&lt;meta&gt;</code> : 문서 세트 정보를 포함함</p>
</li>
<li><p><code>&lt;title&gt; ~ &lt;/title&gt;</code> : 문서의 제목을 지정함</p>
</li>
<li><p><code>&lt;body&gt; ~ &lt;/body&gt;</code> : 문서의 본문을 포함함</p>
</li>
</ul>
<h1 id="요소--태그">요소 &amp; 태그</h1>
<p>다양한 요소(Element)를 태그(Tag)로 표시함</p>
<h3 id="제목과-단락">제목과 단락</h3>
<pre><code class="language-html">&lt;h1&gt; Hello World! &lt;/h1&gt;                
&lt;p&gt; Nice to meet you. &lt;/p&gt;            </code></pre>
<ul>
<li><code>h1</code> : h1부터 h6까지 있으며 숫자가 커질수록 문자의 크기는 작아짐</li>
<li><code>p</code> : 단락 요소</li>
</ul>
<h3 id="링크">링크</h3>
<pre><code class="language-html">&lt;a href=&quot;링크 주소&quot;&gt;링크 텍스트&lt;/a&gt;            </code></pre>
<ul>
<li><code>a</code> : 링크 요소</li>
</ul>
<h3 id="이미지">이미지</h3>
<pre><code class="language-html">&lt;img src=&quot;이미지 주소&quot; alt=&quot;대체 텍스트&quot;&gt;            </code></pre>
<ul>
<li><code>img</code> : 이미지 요소</li>
<li><code>src &amp; alt</code> : 주소 &amp; 대체 텍스트 지정하는 속성</li>
</ul>
<h1 id="실습">실습</h1>
<h3 id="간단한-자기소개-페이지-제작">간단한 자기소개 페이지 제작</h3>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;         
&lt;html&gt;                     
    &lt;head&gt;
        &lt;html lan=&quot;EN&quot;&gt;            &lt;!--HTML 문서 언어를 영어로 설정--&gt;
        &lt;meta charset=&quot;UTF-8&quot;&gt;        &lt;!--한글 표시를 위한 문자 세트 설정--&gt;
        &lt;title&gt; 간단한 자기소개 &lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt; Simple Self-Introduction &lt;/h1&gt;
        &lt;img src=&quot;https://i.pinimg.com/564x/b7/74/33/b7743329415bfee90b19624dd9936bdd.jpg&quot; alt=&quot;image test&quot;&gt;
        &lt;h2&gt; name : Kiara &lt;/h2&gt;
        &lt;h2&gt; age : 25 &lt;/h2&gt;
        &lt;h2&gt; favorite &lt;/h2&gt;
            &lt;p&gt; Singer : Newjeans&lt;/p&gt;
            &lt;p&gt; Weather : Winter&lt;/p&gt;
        &lt;h3&gt; cartoon, games, drawing etc ...&lt;/h3&gt;
    &lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/3d556405-6df8-4a54-b45b-0ba28d309faf/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[About Web]웹 시작하기]]></title>
            <link>https://velog.io/@kiiiaraa_/About-Web%EC%9B%B9-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@kiiiaraa_/About-Web%EC%9B%B9-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 01 Mar 2023 18:08:17 GMT</pubDate>
            <description><![CDATA[<h1 id="웹-webworld-wide-web"><strong>웹 Web(=World Wide Web)</strong></h1>
<p>: HTML, CSS, Jacascript 등의 프로그래밍 언어를 사용하여 만들어진 웹 페이지</p>
<h1 id="htmlhyper-text-mark-up-language"><strong>HTML(Hyper Text Mark-up Language)</strong></h1>
<p>: 웹 페이지의 구조와 콘텐츠를 정의하는 마크업 언어
<em>ex) 웹툰을 만들 때 스토리보드와 같은 뼈대 역할</em></p>
<h1 id="csscasacading-style-sheet"><strong>CSS(Casacading Style Sheet)</strong></h1>
<p>: 스타일과 레이아웃을 정의하는 스타일 시트
<em>ex) 웹툰을 만들 때 채색 기법이나 말풍선 모양 등 시각적 연출과 같은 역할</em></p>
<h1 id="javascript"><strong>Javascript</strong></h1>
<p>: 웹 페이지의 동적인 부분을 만드는 스크립트 언어
<em>ex) 애니메이션이나 게임과 같은 콘텐츠를 웹 페이지에서 사용 가능</em></p>
<h1 id="웹-개발-필수-요소">웹 개발 필수 요소</h1>
<ul>
<li>개발 도구</li>
<li>HTML/CSS</li>
<li>웹 표준과 접근성</li>
<li>버전 관리 시스템</li>
<li>Javascript</li>
<li>웹 서버</li>
<li>웹 프레임워크</li>
<li>API (Application Programing Interface)</li>
<li>데이터 베이스</li>
<li>서버 측 기술, 웹 성능 최적화, 웹 디자인, 클라우드 서비스 ···</li>
</ul>
<h2 id="웹-사이트-제작-시-고려-사항">웹 사이트 제작 시 고려 사항</h2>
<h3 id="--웹-표준web-standards">- 웹 표준(Web Standards)</h3>
<p>: 브라우저 종류 및 버전에 따른 기능 차이에 대해 호환 가능하게 제시되었는 지</p>
<ul>
<li>장점 : 수정 및 운영관리 용이, 접근성 향상, 검색엔진 최적화(Search Engine Optimization), 파일 크기 축소로 인한 서버 저장 공간 확보, 호환성 가능<h3 id="--웹-호환성cross-browsing">- 웹 호환성(Cross Browsing)</h3>
: 공통 요소를 사용하여 모든 브라우저와 기기에서 이용할 수 있게 제작되었는 지<h3 id="--웹-접근성web-accessibility">- 웹 접근성(Web Accessibility)</h3>
: 모든 사용자가 어떠한 기술이나 환경에서도 전문적인 능력 없이 웹사이트에서 제공하는 모든 정보를 차별없이 사용할 수 있는 지</li>
</ul>
<p><img src="https://velog.velcdn.com/images/kiiiaraa_/post/91d96e63-8cb3-4d18-87dc-087ac889112f/image.png" alt=""></p>
<p>Ref. 박규하 코치님</p>
]]></description>
        </item>
    </channel>
</rss>