<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>heo_jeongmin.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Sun, 12 Sep 2021 14:20:14 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>heo_jeongmin.log</title>
            <url>https://images.velog.io/images/heo_jeongmin/profile/36b51ee3-9fe1-4f82-a60e-71c3e4071715/쥐.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. heo_jeongmin.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/heo_jeongmin" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[웹 프로그래밍(자바스크립트2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B82</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B82</guid>
            <pubDate>Sun, 12 Sep 2021 14:20:14 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h4 id="typeof--데이터의-타입이-뭔지-사용자에게-알려주는-역할---변수명을-입력-가능"><strong>typeof</strong> : 데이터의 타입이 뭔지 사용자에게 알려주는 역할 -&gt; 변수명을 입력 가능</h4>
<p><code>console.log(typeof 10);</code>
<code>console.log(typeof &quot;Hello World&quot;);</code>
<img src="https://images.velog.io/images/heo_jeongmin/post/d3105e69-87f5-4046-8f1f-d1df7b9016ab/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-05%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.30.49.png" alt=""></p>
<h2 id="null-undefined">null, undefined</h2>
<p>🖤  <strong>공통점</strong> : 둘다 값이 없는 상태  </p>
<p>🖤 <strong>차이점</strong>(가끔 면접 질문에서 물어보니까 기억해두자)</p>
<ul>
<li><strong>null</strong> : 변수 초기화로 명시적으로 빈 값을 변수 안에 할당한 상태</li>
<li><strong>undefined</strong> : 변수를 선언만 한 상태 </li>
</ul>
<p><code>console.log(typeof null);</code>
<code>console.log(typeof undefined);</code>
<img src="https://images.velog.io/images/heo_jeongmin/post/df00da3b-30ac-4a37-b58a-c3d4307ee793/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-05%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.34.03.png" alt="">
<code>null</code>이 object로 출력되는 것은 버그이다. <code>null은 null</code>임</p>
<p>console.log(null == undefined);
console.log(null === undefined); : 데이터 타입이 다르기 때문에 False로 출력</p>
<h2 id="-부정">! (부정)</h2>
<p><code>console.log(!true);</code>
<code>console.log(!false);</code>
<img src="https://images.velog.io/images/heo_jeongmin/post/e699ba80-d0a0-4f47-adb7-f98639b8e4d1/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.17.53.png" alt="">
<code>console.log(!null);</code> ➜ true
<code>console.log(!!null);</code> ➜ !true(=false)
<img src="https://images.velog.io/images/heo_jeongmin/post/fbb1a008-31df-4ae0-b280-0c7bcd10d0f7/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.18.34.png" alt="">
<code>console.log(!undefined);</code> ➜ true
<code>console.log(!!undefined);</code> ➜ false
<img src="https://images.velog.io/images/heo_jeongmin/post/4bd6faa4-166d-4f07-87f9-10140998aa79/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.19.08.png" alt=""></p>
<p><code>console.log(10 + null);</code> 
➜ 10 (null -&gt; 0)
<code>console.log(10 + undefined);</code>
➜NaN(=Not a Number) (오류)</p>
<h2 id="참조타입">참조타입</h2>
<h3 id="함수-function">함수 (function)</h3>
<p><strong>• 임의 숫자 두 개를 전달받아서 덧셈을 하는 기능인 함수를 만들고 싶다</strong></p>
<p><code>console.log(10 + 10);</code>
<code>console.log(20 + 30);</code>
<code>console.log(5 + 10);</code> </p>
<h4 id="함수-선언">함수 선언</h4>
<p>• <strong>sum()</strong> : 함수명</p>
<pre><code>function sum() {

    console.log(&quot;Hello&quot;);
    console.log(10 + 10);

}</code></pre><h4 id="함수-호출">함수 호출</h4>
<p>sum();
<img src="https://images.velog.io/images/heo_jeongmin/post/029b6162-6d66-44bb-a8fb-f0dc321ea8a3/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.27.17.png" alt=""></p>
<h4 id="parameter-매개변수-argument-인수">Parameter (매개변수), Argument (인수)</h4>
<p><strong>• 매개변수 : num1, num2</strong></p>
<pre><code>function sum(num1, num2) {
    console.log(num1 + num2);
}</code></pre><p><strong>• 인수 : 호출시 전달되는 값</strong></p>
<p>sum(10, 20);
➜ 30
sum(100, 50);
➜ 150</p>
<pre><code>function fullName(firstName, lastName){
     console.log(firstName + &quot; &quot; + lastName)
}

fullName(&quot;Jeongmin&quot;, &quot;Heo&quot;)</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/c6caea71-fb9f-4c9a-be65-cb86fedabca2/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.30.33.png" alt=""></p>
<pre><code>function area(width, height) {
    console.log(width);
    console.log(height);

    var result = width * height;
    console.log(result);
}

area(10);</code></pre><blockquote>
</blockquote>
<p>• 누락된 매개변수가 있으면 undefined가 default 값으로 들어가게 됨 
• 매개변수와 인수가 쌍을 이룬 상태로 작성되어야 한다</p>
<p><strong>• 매개변수 안에 들어갈 수 있는 데이터 타입은 모든 데이터 타입이 들어갈 수 있다.</strong></p>
<pre><code>function test(a){
    console.log(a);
}

test(10);
test(&quot;Hello&quot;);
test(true);
test(null);</code></pre><h4 id="return">return</h4>
<pre><code>function sum(num1, num2) {
    // console.log(num1 + num2);
    return num1 + num2;
}

var result = sum(10, 20);
console.log(result)</code></pre><p>➜ 함수 호출 = 30, result = 30</p>
<pre><code>function area(hor, ver) {
    return hor * var;
}

var volume = area(10, 20) * 100;
console.log(volume);
➜ 20000</code></pre><h3 id="배열-array">배열 (Array)</h3>
<p><strong>• 하나의 데이터 안에 다 담을 수 있다 일종의 바구니 역할</strong></p>
<pre><code>var banana = &quot;바나나&quot;;
var apple = &quot;사과&quot;;
var melon = &quot;멜론&quot;;

var fruit = [&quot;바나나&quot;, &quot;사과&quot;, &quot;멜론&quot;];
console.log(fruit);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/783d5e1b-6d28-422e-bba3-1c5fedc75bb2/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2010.59.51.png" alt=""></p>
<h4 id="인덱스-index">인덱스 (index)</h4>
<pre><code>console.log(fruit[2]);
console.log(fruit[0]);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/6656f741-e7b0-46f2-bc95-59521d107cfe/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.01.08.png" alt=""></p>
<pre><code>fruit[2] = &quot;수박&quot;;
console.log(fruit);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/3a03105c-3a9e-4805-8331-3572a4b2114f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.01.39.png" alt=""></p>
<p><code>var arr = [10, &quot;Hello&quot;, true, null, undefined, fuction a() {}, [10,20,30], {name:&quot;kim&quot;}];</code></p>
<p><strong>❌ 주의점</strong>
<code>var num = [10,20,30, &quot;Hello World&quot;];</code> ❌
 ➜ 배열안에 있는 데이터는 동일한 데이터 타입을 가지고 있는게 좋다
 <code>var fruit = [&quot;사과&quot;, &quot;배&quot;, &quot;바나나&quot;, &quot;양상추&quot;];</code> 🙆‍♂️
➜ 동일한 성격을 갖고 있는 데이터로 배열안을 채우면 좋다</p>
<p>➡️ <strong>공통된 데이터 타입, 성격으로 배열을 만들기</strong></p>
<h4 id="배열-안에-있는-배열-데이터에-접근하는-방법">배열 안에 있는 배열 데이터에 접근하는 방법</h4>
<pre><code>var score = [[10,20,30],[100,200,300]];

console.log(score);
console.log(score[1]);
console.log(score[1][2]);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/92bdc3b1-d8ea-40c5-bd22-f92a11aa9219/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.07.02.png" alt=""></p>
<h4 id="객체-object">객체 (object)</h4>
<p>• 이름, 나이, 스킬, 성별
• <strong>key + value = property</strong></p>
<pre><code>var student = {
    name : &quot;jeno&quot;,
    age    : 22,
    skills: [&quot;자바스크립트&quot;, &quot;HTML&quot;, &quot;CSS&quot;]
};

console.log(student);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/7ea70bfd-029c-43fd-a3e4-9d15e3b934ee/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.08.34.png" alt=""></p>
<p><strong>• 객체안의 데이터에 접근하는 방법 2가지 - 둘 다 기억해놓기</strong></p>
<pre><code>console.log(student.name);
console.log(student[&#39;name&#39;]);</code></pre><p><strong>• 객체안에있는 배열 타입의 데이터에 접근하는 방법</strong>
<code>console.log(student.skills[1]);</code></p>
<p><strong>• 새로운 property 작성법 : 객체명 키를 작성하고 벨류 값을 작성해주면 된다</strong></p>
<pre><code>student.age = 100;
console.log(student);

student.gender = &quot;남자&quot;;

console.log(student);</code></pre><pre><code>var student = {
    name : &quot;jeno&quot;,
    age    : 22,
    skills: [&quot;자바스크립트&quot;, &quot;HTML&quot;, &quot;CSS&quot;],

    test1 : true,
    test2 : null,
    test3 : undefined,
    test4 : {color: &quot;red&quot;},

    // method (객체 안에 만들어진 함수)
    sum : function (num1, num2){
        return num1 + num2;
    }

};</code></pre><p>*<em>• 객체 밖에 만들어진 함수는 그냥 함수 *</em>
<code>function a() {};</code></p>
<pre><code>var result = student.sum(10, 20);
console.log(result);

student.sum(100, 200);
//자바스크립트가 이미 갖고 있는 객체가 console인 거임
console.log(&quot;Hello Future&quot;);</code></pre><h3 id="원시-타입과-참조-타입-차이점">원시 타입과 참조 타입 차이점</h3>
<h4 id="원시-타입">원시 타입</h4>
<pre><code>var str1 = &quot;Hello World&quot;;
var str2 = str1; </code></pre><p>➡️ 복사본에는 영향을 줄 수 없다 이게 원시타입의 특징이다</p>
<pre><code>str1 = &quot;Nice&quot;;
str2 = &quot;Nice&quot;;

console.log(str1);
console.log(str2);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/e8f1c3fb-c1f2-409e-9eed-15a1d01ba6bb/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.13.33.png" alt=""></p>
<h4 id="참조-타입">참조 타입</h4>
<pre><code>var obj1 = {name : &quot;jeno&quot;};
var obj2 = obj1;

obj2.name = &quot;Park&quot;;

console.log(obj1);
console.log(obj2);</code></pre><p>➡️ 참조 타입 특정 주소(메모리)에 저장된 데이터를 지정하는거라서 데이터가 같이 변한다 
<img src="https://images.velog.io/images/heo_jeongmin/post/75ae6cb8-90c1-4722-b285-f15068bc536a/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.15.08.png" alt=""></p>
<h3 id="버튼을-클릭했을-때-배경색깔이-변하는-기능">버튼을 클릭했을 때 배경색깔이 변하는 기능</h3>
<p><code>yellow, green, pink #dc143c ,rgba(123,123,123,0.5);</code></p>
<p><code>var colors = [&#39;yellow&#39;, &#39;green&#39;, &#39;pink&#39;, &#39;#dc143c&#39;, &#39;rgba(123,123,123,0.5)&#39;];</code></p>
<h4 id="document">document</h4>
<p>➜ html에 반응하는 객체 - 클라이언트 측 자바스크립트</p>
<p>• getElementById - method</p>
<p><code>var bg = document.getElementById(&#39;color_bg&#39;);</code>
<code>var btn = document.getElementById(&#39;btn&#39;);</code></p>
<p>• 익명함수 : 이름이 없는 함수
• 콜백 함수 : 호출 기호 없이 특정 조건 하에 호출 되는 함수</p>
<blockquote>
</blockquote>
<p>• btn - 객체로 인식</p>
<pre><code>btn.addEventListener(&#39;click&#39;, function(){
    var random = Math.floor(Math.random() * 5);
    // console.log(random);
    // console.log(colors[random]);
    //background-color, border-radius, margin-top | 자바스크립트는 캐멀케이스로 적용해야함
    bg.style.backgroundColor = colors[random];
})</code></pre><h4 id="1--6-숫자를-랜덤하게-가져오는-게임">1 ~ 6 숫자를 랜덤하게 가져오는 게임</h4>
<p><code>Math.random() : 0 ~ 0.99999~</code>
<code>Math.random() * 6 : 0 ~ 0.599999~</code>
<code>Math.floor(random() * 6) : 0~5 내림</code>
<code>Math.floor(random() * 6) + 1 : 1~6</code></p>
<pre><code>console.log(Math.random());
console.log(Math.random() * 6);
console.log(Math.floor(Math.random() * 6));
console.log(Math.floor(Math.random() * 6) + 1);</code></pre><h4 id="1--n-숫자를-랜덤하게-가져오는-게임">1 ~ n 숫자를 랜덤하게 가져오는 게임</h4>
<p><code>console.log(Math.floor(Math.random() * n) + 1);</code></p>
<h4 id="예약어">예약어</h4>
<p>➜ <strong>예약어를 변수로 사용하면 안된다</strong></p>
<blockquote>
<p>사용 ❌</p>
</blockquote>
<ul>
<li>var ,typeof ,fuction, null, undefined, false, true, console
<code>var var;</code>
<code>var function;</code></li>
</ul>
<h3 id="그외-알아둘-것">그외 알아둘 것</h3>
<blockquote>
</blockquote>
<ul>
<li>두개의 자바스크립트 파일을 연동시켜도 위에서 아래로 순차적으로 인식된다</li>
<li>먼저 존재하는 파일을 연동시키고 그 다음 써먹을 파일을 연동시켜야 한다</li>
<li>서로 다른 파일에 변수가 있고 함수가 있으면 이전에 작성된 변수와 함수를 사용할 수 있음</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(자바스크립트1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B81</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B81</guid>
            <pubDate>Fri, 03 Sep 2021 08:21:58 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="자바스크립트란">자바스크립트란?</h2>
<p>🖤 자바스크립트는 인간에게 친숙한 언어라고 볼 수 있다. 
high level language 중 하나가 자바스크립트 언어이다.
입문하는 단계에서 빠르게 습득할 수 있는 언어이다.</p>
<h2 id="자바스크립트-사용-분야">자바스크립트 사용 분야</h2>
<blockquote>
<p>🖤 <strong>하이브리드 앱</strong>
자바스크립트 css 익히게 되면 안드로이드 앱, 앱스토어 앱을 출시할 수 있게 됐다.<br>
🖤 <strong>node.js</strong>
자바스크립트 언어를 기반으로 node.js 툴을 이용해서 개발할 수 있다.
Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼
작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능<br>
🖤 <strong>자바스크립트 iot</strong>
웹사이트의 주요기능을 제작하는 것 뿐만 아니라 굉장히 다양하게 사용될 수 있따.</p>
</blockquote>
<h2 id="자바스크립트-3분야">자바스크립트 3분야</h2>
<blockquote>
<p>🖤 <strong>자바스크립트 코어</strong> : 개발언어의 문법적인 내용을 다루는 영역
🖤 <strong>클라이언트 측 자바스크립트</strong> : 브라우저를 제어할 때 사용하는 자바스크립트
🖤 <strong>서버 측 자바스크립트</strong> : node.js 영역 </p>
</blockquote>
<h2 id="자바스크립트-연동-방법">자바스크립트 연동 방법</h2>
<blockquote>
<p>🖤 js 파일 안에서 자바스크립트 언어를 작성하고 script태그에 src를 활용해서 파일을 연동시킬 수 있다.
위에서부터 순차적으로 실행된다는 것을 기억해두자 <br>
🖤 연동을 할 때 src로 하고 script 태그 안에 또 script태그 를 작성하면 적용이 되지 않는다. <br></p>
</blockquote>
<pre><code>&lt;script src=&quot;js/main.js&quot;&gt;&lt;/script&gt;
    &lt;script&gt;
        /*
        console.log(&quot;Hello&quot;);
        console.log(&quot;Comment&quot;); 전체 주석 (전체 주석 안에 한줄 주석을 넣을 수 있다)
        */
        // console.log(&quot;AAA&quot;) 한 줄 주석
    &lt;/script&gt;</code></pre><p>🖤 src로 연동하거나 script하나만 해야지 두가지를 혼용해서 사용하면 안된다. <br>
🖤 <code>console.log(“Hello&quot;);</code>
콘솔탭에 특정 언어를 출력할 때 사용되는 명령어 <br>
🖤 자바스크립트가 작성된 것을 확인하고 싶으면 console 버튼을 누르면 된다.</p>
<h2 id="자바스크립트-코어">자바스크립트 코어</h2>
<blockquote>
<p>-자바스크립트 변수  : 데이터를 저장하는 공간
<strong>이삿짐 박스가 변수</strong> (이삿짐 박스에 들어갈)<strong>물품이 데이터</strong>이다.
이삿짐 박스는 겉에다가 어떠한 내용물이 들어갈지 겉에 표기를 해줘야 한다.
예) 이삿짐 박스 = 만화책 박스-&gt;(변수명)</p>
</blockquote>
<blockquote>
<h4 id="데이터-타입데이터의-종류">데이터 타입=데이터의 종류</h4>
<p>(<em>공부할 때 영어 표기도 같이 기억하면 좋다</em>)<br>
•문자열 (String)
•숫자(Number)
•논리(Boolean) : true or false
•undefined
•null
——————————————————————————&gt; 원시 타입
•배열 (Array)
•함수 (Function)
•객체 (Object)
——————————————————————————&gt; 참조 타입</p>
</blockquote>
<h2 id="변수-입력-방법">변수 입력 방법</h2>
<h4 id="🖤-comic-박스를-생성한-상태">🖤 comic 박스를 생성한 상태</h4>
<p>//변수 선언
<code>var comic;</code></p>
<h4 id="🖤-comic-박스-안에-원피스-데이터를-할당한-상태">🖤 comic 박스 안에 원피스 데이터를 할당한 상태</h4>
<p>// 변수 초기화
<code>comic = &quot;원피스&quot;;</code></p>
<p><code>console.log(comic);</code></p>
<h4 id="🖤-변수를-선언함과-동시에-초기화를-진행해준-상태">🖤 변수를 선언함과 동시에 초기화를 진행해준 상태</h4>
<p><code>var apple = &quot;사과&quot;;</code></p>
<h4 id="🖤-변수-동시-선언-2가지-방법">🖤 변수 동시 선언 2가지 방법</h4>
<pre><code>var a;
var b;
var c;</code></pre><ol>
<li><p>줄 바꿈 없이
<code>var a, b, c;</code></p>
</li>
<li><p>줄 바꿈 있음</p>
<pre><code>var     a,
 b,
 c;</code></pre><h4 id="🖤-변수-동시-초기화">🖤 변수 동시 초기화</h4>
<pre><code>var d = 10;
var e = 20;
var f = 30;</code></pre></li>
<li><p>줄 바꿈 없이</p>
</li>
</ol>
<p><code>var d = 10, e = 20, f = 30;</code></p>
<ol start="2">
<li>줄 바꿈 있음<pre><code>var    d = 10, 
 e = 20, 
 f = 30;</code></pre></li>
</ol>
<h4 id="🖤-모든-변수는-선언과-동시에-undefined-자동으로-할당된다">🖤 모든 변수는 선언과 동시에 undefined 자동으로 할당된다.</h4>
<pre><code>var house;
cosole.log(house);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/bac31b47-5607-41d4-abff-edfc591396fb/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-03%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.05.43.png" alt="">
undefined -&gt; 집</p>
<pre><code>var house;
house = &quot;집&quot;;
console.log(house);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/9f38a914-e62a-477b-b3a4-771912e24c2d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-03%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.04.07.png" alt="">
집 -&gt; 아파트</p>
<pre><code>house = &quot;아파트&quot;;

console.log(house);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/6a4fb3ef-4b6b-432a-9cc8-c14c13999e73/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-03%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.04.49.png" alt=""></p>
<h2 id="변수명-작성-방법">변수명 작성 방법</h2>
<h4 id="🖤-캐멀-케이스">🖤 캐멀 케이스</h4>
<p><code>var mathScoreStudent = 10;</code></p>
<h4 id="🖤-스네이크-케이스">🖤 스네이크 케이스</h4>
<p><code>var math_score = 10;</code></p>
<h4 id="🖤-이렇게-작성하면-안됨">🖤 이렇게 작성하면 안됨</h4>
<p><code>var math-score-student=100;</code>
<code>var _math;</code>
<code>var $math;</code></p>
<p><code>var apple10;</code>
<code>var 10apple; 숫자가 먼저 나와서는 안된다</code></p>
<p><code>var w;</code> 다른 개발자가 알 수 있게 자세하게 작성해주어야 한다. 의미가 불분명한 단어 작성 x</p>
<h2 id="데이터-타입">데이터 타입</h2>
<h4 id="🖤-문자열-string">🖤 문자열 (String)</h4>
<ol>
<li>&quot;&quot; 사용
<code>var msg1 = &quot;Hello Future&quot;;</code></li>
<li>&#39;&#39; 사용
<code>var msg2 = &#39;Welcome&#39;;</code></li>
</ol>
<p><code>console.log(msg1);</code>
<code>console.log(msg2);</code></p>
<p><code>var msg3 = &quot;Nice to meet you&#39;</code></p>
<p><code>var msg4 = &quot;She&#39;s girl&quot;;</code></p>
<p><code>var msg5 = &#39;She\&#39;s girl&#39;;</code>
<strong>역 슬래쉬로 작은 따옴표를 넣어주면 인식이 된다.</strong></p>
<h4 id="🖤-숫자-number---파란-글씨로-나타난다">🖤 숫자 (number) - 파란 글씨로 나타난다</h4>
<pre><code>var num1 = 10;
var num2 = -10;
var num3 = 3.14;
var num4 = -3.14;</code></pre><pre><code>console.log(num1);
console.log(num2);
console.log(num3);
console.log(num4);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/34735001-a49b-4b13-899a-538f9fe5797b/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-03%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.15.02.png" alt=""> <br></p>
<p>** 계산이 가능하다 **</p>
<pre><code>console.log(num1 + num2);
console.log(num1 + num3);</code></pre><p><img src="https://images.velog.io/images/heo_jeongmin/post/6adec10f-58fd-49a9-a73c-13a9ec824bee/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-03%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.16.41.png" alt=""></p>
<h4 id="🖤-연산자">🖤 연산자</h4>
<p><strong>숫자 사칙연산</strong></p>
<pre><code>var a =20;
var b =10;

console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);
console.log(a % b);</code></pre><p><strong>문자열 사칙연산</strong></p>
<pre><code>var str1 = &quot;20&quot;;
var str2 = &quot;10&quot;;
console.log(str1 + str2); //글자를 이어 붙여버림
console.log(str1 - str2);
console.log(str1 * str2);
console.log(str1 / str2);
console.log(str1 % str2);

var fistName = &quot;Jeno&quot;;
var lastName = &quot;Lee&quot;;

console.log(fistName + &quot;      &quot; + lastName);

var str11 = &quot;현재 시간은&quot;;
var time = 10;
var str12 = &quot;시 입니다.&quot;;

console.log(str11 + time + str12); //문자열 데이터 타입으로 출력된다 (검정색 글씨)</code></pre><p><strong>++, -- 연산자</strong></p>
<pre><code>var num10 = 10;

num10 = num10 -1;

console.log(--num10); //9
console.log(--num10); //8

console.log(++num10);
console.log(++num10);

console.log(num10--); num10값을 출력시키고 그 다음에 -1을 하겠다는 의미 (한텀 쉬고 다음 num10에서 결과값이 출력됨)
console.log(num10);</code></pre><p><strong>+=, -=, *=, /= ,%= 본인의 값을 업데이트 하고 싶을 때</strong></p>
<pre><code>var num20 = 20;

num20 = num20 + 10;
num20 += 10;

console.log(num20);
</code></pre><p>** 비교 연산자 &gt;, &lt;, ==, ===, !=, !==, &lt;=, &gt;=**</p>
<pre><code>var a = 10;
var b = 20;
var c = 30;

console.log(a &gt; b);
console.log(a &lt; b);
console.log(a &gt;= b);
console.log(a &lt;= b);

console.log(a == b);
console.log(a === b);

console.log(a != b);
console.log(a !== b);</code></pre><pre><code>var num10 = 10;
var num20 = 20;

var str10 = &quot;10&quot;;
var str20 = &quot;20&quot;;

console.log(num10 == str10); 
console.log(num10 === str10); //데이터 타입 까지 비교하기 때문에 false가 나옴 
-&gt; 주료 사용

console.log(num20 != str20); //데이터 타입을 떠나서 내용물은 같기 때문에 false
console.log(num20 !== str20); //데이터 타입이 다르기 때문에 true -&gt; 주로 사용</code></pre><p>** 논리 연산자 : AND(&amp;&amp;), OR(||) **</p>
<pre><code>var num30 = 30;
var num40 = 40;
var num50 = 30;

console.log(num30 === num40 &amp;&amp; num30 === num50 &amp;&amp; num40 !== num50);
console.log(num30 === num40 || num30 === num50 || num40 &gt; num50);</code></pre><p>** 불리언(Boolean) : true , false **</p>
<pre><code>console.log(true);
console.log(false);
console.log(1 === 2);
console.log(10 &lt; 20);
console.log(10 === 10 || 20 ===30);

var bool = true;
bool = false;</code></pre><h1 id="마무리">마무리</h1>
<blockquote>
<p>자바스크립트를 처음 배웠다. 개념 부분이 컴활이랑 비슷한 부분이 있었다.
오늘은 기본적인 개념을 배웠는데 주말동안 남은 자바스크립트 강의를 다 들어야 겠다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (모바일 네이버 2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EB%84%A4%EC%9D%B4%EB%B2%84-2</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EB%84%A4%EC%9D%B4%EB%B2%84-2</guid>
            <pubDate>Thu, 02 Sep 2021 08:01:14 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/d1ad369fd0f5316305b6a455a49c3f51f7278a19/HTML%20%7C%20naver_mobile_2">HTML | naver_mobile_2</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/d1ad369fd0f5316305b6a455a49c3f51f7278a19/CSS%20%7C%20naver_mobile_2">CSS | naver_mobile_2</a></p>
<h2 id="모바일-네이버-2">모바일 네이버 2</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/e4be7354-5370-4ead-bfa9-cba305b97865/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-02%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.43.26.png" alt=""><img src="https://images.velog.io/images/heo_jeongmin/post/dd234334-d323-4732-a2d3-b52d7aee86f3/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-09-02%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.43.41.png" alt=""></p>
<blockquote>
<p>🖤 footer에서 before를 이용하여 만든 | 를 <strong>로그인, 이용약관</strong> 앞에서는 삭제하기 위하여 nth-child(1),nth-child(4)를 활용하여 삭제하려고 하였다.
하지만 html 코드에서 줄 바 꿈을 하기 위하여<code>&lt;br&gt;</code>을 작성했는데 그러면서 연속성이 깨져버렸다.
연속성이 깨지면 <strong>nth-child를 사용하지 못한다.</strong>
그래서 <code>div</code>로 윗 줄과 아랫줄로 공간을 나눠서 작성해주었다.
이때 class를 동일하게 작성해주었다.</p>
</blockquote>
<pre><code>.link:first-child{
content:&#39;&#39;;
}</code></pre><p>로 작성하여 | 를 지워주었다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 네이버 모바일을 오늘 카피캣 하면서 float을 쓰면서 overflow:hidden;을 사용하는게 이해가 되지 않아 인터넷으로 검색을 했다.
<a href="https://blog.naver.com/weekamp/222047417147">overflow:hidden;과 float 설명</a> <br>
💛 설명을 보는데도 너무 어려운 설명이라서 자식태그에 float를 사용하면 부모태그에 oveflow:hideen;을 작성하는걸 공식으로 생각하는게 편할 것 같다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(모바일 네이버 1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%AA%A8%EB%B0%94%EC%9D%BC-%EB%84%A4%EC%9D%B4%EB%B2%84-1</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%AA%A8%EB%B0%94%EC%9D%BC-%EB%84%A4%EC%9D%B4%EB%B2%84-1</guid>
            <pubDate>Wed, 01 Sep 2021 08:27:57 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫git-hub">🛫GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/c86555d84d36d1ec55a9f0ba0bdc905264036052/HTML%20%7C%20naver_mobile_1">HTML | naver_mobile_1</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/c86555d84d36d1ec55a9f0ba0bdc905264036052/CSS%20%7C%20naver_mobile_1">CSS | naver_mobile_1</a></p>
<h2 id="모바일-네이버-1">모바일 네이버 1</h2>
<blockquote>
<p>🖤 vh : 기기 화면의 높이값으로 100% 맞추겠다는 뜻이다.
vh = viewport height 약자임
vh는 화면의 기준으로 하기 때문에 반응형 웹사이트 제작 시에 유용하게 사용 
꼭 width height에서만 사용되는 게 아니라 폰트에서도 사용이 가능합니다. 
⭐️ <a href="https://blog.naver.com/yhs6119/221992477117">vh 설명</a> <br>
🖤 <strong>white-space : nowrap **
width 100px에 맞춰 내용이 줄바꿈이 자동으로 되어있는 거는 
white-space:wrap; 이 기본값이기 때문
풀이하자면 여백을 띄워 줄바꿈을 하게 하라 이런 느낌이다.
이때 한 줄로 바꿀려면 줄바꿈이 없어진 **white-space:nowrap;</strong> 사용<br>
🖤 <strong>스크롤바 사라지는 코드</strong></p>
</blockquote>
<pre><code>#main_nav ul {
    -ms-overflow-style: none; /* IE and Edge */
    scroll-width: none; /* Firefox */
}
#main_nav ul:-webkit-scrollbar {
    display: none; /* Chrome, Safari, Opera*/
}</code></pre><p>🖤 margin-left:20px;
<img src="https://images.velog.io/images/heo_jeongmin/post/9ccbee85-e138-4c1c-973b-2f2da52f15c5/margin-left.png" alt="">
➜ 컨텐츠 바깥쪽에 여백을 주기 때문에 wrap 부분과 딱 일치하게 됨<br>
🖤 padding-left:20px;
<img src="https://images.velog.io/images/heo_jeongmin/post/a15ea14c-99d6-467c-904c-28c89980d5aa/padding-left.png" alt="">
➜ 컨텐츠 안쪽에 여백을 주기 때문에 이미지가 wrap 부분에서 여유공간이 생김
❤️‍🔥 레이아웃의 디자인에 따라 <strong>padding, margin 구분해서 사용</strong>해야 함</p>
<h2 id="📝-마무리">📝 마무리</h2>
<blockquote>
<p>💛 네이버 모바일 버전을 카피캣해보았는데 스크롤을 숨기게 하는 코드도 배웠다 <br>
💛 flex가 통일되는 부분이 적어서 태그에 flex를 각자 작성해주어야 했다. class로 작성해서 주는 방법이 훨씬 수월하고 시간이 절약된다는 것을 깨달았다. <br>
💛 <code>flex_wrap:nowrap;</code> 으로 컨텐츠가 지정된 크기를 벗어나도 줄 바꿈 현상이 일어나지 않게 해주었다. <code>overflow-y:auto;</code>로 스크롤도 자동으로 생기게 해주었다. <br>
💛 now_wrap 부분에서 before로 <strong>|</strong> 를 작성했는데 now_wrap 부분에 position:relative;를 주지 않아서 위치가 제대로 잡히지 않았었다.  코드를 수정해서 올바른 위치에 작성해 주었다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(유튜브_5)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C5</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C5</guid>
            <pubDate>Tue, 31 Aug 2021 07:18:15 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/34babb712446ac5e0e52a5697ba745e190064330/HTML%20%7C%20%20youtube_channel">HTML | youtube_channel</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/34babb712446ac5e0e52a5697ba745e190064330/CSS%20%7C%20youtube_channel">CSS | youtube_channel</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/34babb712446ac5e0e52a5697ba745e190064330/HTML%20%7C%20youtube_explore">HTML | youtube_explore</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/34babb712446ac5e0e52a5697ba745e190064330/CSS%20%7C%20youtube_explore">CSS | youtube_explore</a></p>
<h2 id="📝-마무리">📝 마무리</h2>
<p>💛 평소에 많이 사용하는 유튜브 사이트 카피캣을 마무리 하였다.
카피캣을 여러번 진행하면서 position의 편리함을 깨닫는 중이다. 이미지 위에 글자를 올릴 때 너무 편하다.</p>
<p>💛 글자나 이미지가 레이아웃의 변형이 발생하면 크기를 적당히 조절해주면 된다.</p>
<p>💛 생각보다 많은 코드들을 배웠고 효과들을 적용시킬 수 있지만 과연 내가 이걸 창의적으로 적용할 수 있는지에 대한 많은 의문점이 든다.
배운 코드들을 꾸준히 복습해 나가야 겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(유튜브_4)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C3</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C3</guid>
            <pubDate>Mon, 30 Aug 2021 09:36:23 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습내용">💻 학습내용</h1>
<h2 id="🛫git-hub">🛫GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/be2a5d1c2d5960c1b4a7522e70e2d7240942eb0b/HTML%20%7C%20youtube_left_nav">HTML | youtube_left_nav </a>
<a href="https://github.com/jjjeongmin/AI-school/blob/be2a5d1c2d5960c1b4a7522e70e2d7240942eb0b/CSS%20%7C%20youtube_left_nav">CSS | youtube_left_nav</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/be2a5d1c2d5960c1b4a7522e70e2d7240942eb0b/HTML%20%7C%20youtube_main">HTML | youtube_main</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/be2a5d1c2d5960c1b4a7522e70e2d7240942eb0b/CSS%20%7C%20youtube_main">CSS | youtube_main </a></p>
<h2 id="left_nav_footer">left_nav_footer</h2>
<blockquote>
<p>⭐️ <a href="https://blog.naver.com/brusher3063/221690688823">word-break 설명</a></p>
</blockquote>
<pre><code>#youtube_left_content #youtube_footer .txt_wrap a{
    margin-right: 8px;
    color: #aaaaaa;
    font-size: 12px;
    font-weight: 500;
    word-break: keep-all;
}</code></pre><p>🖤 단어별로 줄바꿈을 하고 싶을 때 <code>keep-all</code>을 입력
🖤 글자 단위로 줄바꿈을 하고 싶을 때 <code>break-all</code></p>
<h2 id="main_content">main_content</h2>
<blockquote>
<pre><code>#youtube_main_content ul {
    width: 100%;
    height: 100%;
    align-items: flex-start;
}
#youtube_main_content ul li {
    width: 24%;
    background-color: #212121;
    margin-bottom: 40px;
}
#youtube_main_content ul  li .video_thumbnail {
    width: 100%;
}
#youtube_main_content ul  li .video_thumbnail a {
    position: relative;
    display: block;
    width: 100%;
}
#youtube_main_content ul  li .video_thumbnail img {
    width: 100%;
}</code></pre></blockquote>
<p>``` 
🖤 이미지를 자연스럽게 리사이즈 하기 위해서 정확한 픽셀값을 입력하지 않고 퍼센테이지로 입력한다.
🖤 이미지 한쪽에만 위드 100%르를 지정하면 비율은 유지하고 높이값은 자동으로 맞춰지게 된다
🖤 우리가 만들어놓은 li 24%에 맞춰서 비율은 유지하지만 크기가 바뀌게 된다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 이미지 크기를 정확하게 지정하지 않고 비율로 설정하는 걸 처음 해봤는데
화면이 줄어들면 자연스럽게 이미지의 크기도 조정되어서 신기했다
💛 left_nav 부분은 반복되는 디자인이어서 코드를 작성하는데 수월했다. 비슷한 구조의 코드들은 따로 저장해서 필요할 때 바로바로 쓸 수 있도록 하면 좋을 것 같다.
💛 공간의 크기를 잘 설정해주어야 레이아웃이 깨지지 않는다. 수치를 항상 신경쓰고 작성해야 한다는 것을 깨달았다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (유튜브_3)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9C%A0%ED%8A%9C%EB%B8%8C3</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9C%A0%ED%8A%9C%EB%B8%8C3</guid>
            <pubDate>Fri, 27 Aug 2021 10:09:16 GMT</pubDate>
            <description><![CDATA[<p><a href="https://github.com/jjjeongmin/AI-school/blob/e4f4e9d860bb19881b223eec52e1975f4ccc17ee/HTML%20%7C%20youtube_top_nav">youtub_left_nav</a></p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>오늘은 유튜브 레프트 부분과 메인 부분을 수업하였는데 트위치와 했던 방식이 비슷해서 따라하는데 큰 어려움은 없었다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(유튜브_2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C2</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C2</guid>
            <pubDate>Thu, 26 Aug 2021 08:18:47 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/e4f4e9d860bb19881b223eec52e1975f4ccc17ee/HTML%20%7C%20youtube_top_nav">HTML | youtube_top_nav</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/e4f4e9d860bb19881b223eec52e1975f4ccc17ee/CSS%20%7C%20youtube_top_nav">CSS | youtube_top_nav</a></p>
<h2 id="youtub_top_nav">youtub_top_nav</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/29738278-b910-4256-926c-5f2dd3182fca/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-27%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%208.48.10.png" alt=""></p>
<blockquote>
<p>🖤 youtube_top_nav 부분을 left / center / right 3 군데로 나누었다.
그 중 center 부분에 input 태그와 button 태그가 x축으로 정렬 되지 않고 button 태그 부분(grey 색깔)이 밑으로 내려가 버렸다.
flex를 줄때 center 부분으로 한 번 주고 그 다음 input과 button태그가 묶여 있는 search_wrap 부분에도 flex를 작성해 주어야 했던 것 이다.
flex로 제대로 된 정렬을 입력해 주자 사진과 같이 x축 정렬이 되었다.<br>
🖤 center 부분을 x축 중앙정렬을 해주었다.</p>
</blockquote>
<pre><code>#youtube_top_nav .nav_center{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}</code></pre><h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>저번 수업 시간에는 큰 틀만 작성하였는데 오늘 세세한 디자인 작업 까지 진행 하였다.
유튜브의 메인 헤더 부분을 만들어 보았는데, 맨날 보던 창을 내가 직접 만들어 보니
느낌이 색달랐고 생각보다 만드는 방법이 지금까지 연습했던 카피캣 만으로도
유사하게 만들어 낼 수 있어서 신기했다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(유튜브_1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C1</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9C%A0%ED%8A%9C%EB%B8%8C1</guid>
            <pubDate>Wed, 25 Aug 2021 05:37:08 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="html">HTML</h2>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;유튜브 튜토리얼&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/style.css&quot;&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;div id=&quot;wrapper&quot;&gt;
        &lt;nav id=&quot;youtube_top_nav&quot;&gt;

        &lt;/nav&gt;

        &lt;nav id=&quot;youtube_left_nav&quot;&gt;
            &lt;div id=&quot;youtube_left_content&quot;&gt;

            &lt;/div&gt;
        &lt;/nav&gt;

        &lt;main role=&quot;main&quot; id=&quot;youtube_main&quot;&gt;

        &lt;/main&gt;

    &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre><h2 id="css">CSS</h2>
<pre><code>* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    height: 100%;
}

ol, ul {
    list-style: none;
}

a{
    text-decoration: none;
}

img    {
    vertical-align: top;
}

button {
    background-color: transparent;
    border: none;
}

input {
    outline: none;
    border: none;
}

input:focus{
    outline: none;
}

#wrapper{
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 1320px;
}

/*유튜브 상단 메뉴*/
#youtube_top_nav{
    position: fixed;
    width: 100%;
    height: 56px;
    background-color: #212121;
}

#youtube_left_nav {
    overflow-y: auto;
    overflow-x: hidden;
    position: fixed;
    width: 240px;
    top: 56px;
    bottom: 0;
    left: 0;
    background-color: #212121;
}
/*왼쪽 사이드 메뉴*/
#youtube_left_content{
    position: absolute;
    width: 225px;
    height: 100%;
    background-color: grey;
}


/*유튜브 메인*/
#youtube_main {
    position: absolute;
    left: 240px;
    top: 56px;
    right: 0;
    bottom: 0;
    background-color: grey;
}</code></pre><h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 유튜브 카피캣을 오늘 시작하였다. 메인 페이지를 카피캣 하는데 오늘은 대충 큰 틀만 작성하는 부분이었다.
큰 틀만 대충 작성하는 부분이라서 크게 어려운 부분은 없었다.
position을 이용하여 공간의 크기를 설정했다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (reset, noramilze css , css 변수)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-reset-noramilze-css-css-%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-reset-noramilze-css-css-%EB%B3%80%EC%88%98</guid>
            <pubDate>Tue, 24 Aug 2021 02:23:27 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="resetcss">reset.css</h2>
<p>⭐️ <a href="https://meyerweb.com/eric/tools/css/reset/">reset.css</a></p>
<blockquote>
<p>사이트 카피캣을 진행할 때 초기화 작업을 해줬는데 이게 미리 작성된 코드가 있는데 그게 바로 <strong>reset.css</strong> 라고 한다</p>
</blockquote>
<ul>
<li>기존의 html태그가 갖고 있는 모든 걸 다 초기화 해준다.</li>
<li>브라우저마다 고유의 css를 갖고 있는데 그걸 전부 다 초기화</li>
<li>커스텀 작업은 style.css에서 다이렉트로 진행하면 된다.</li>
<li>브라우저 고유의 css -&gt; reset.css -&gt;style.css 
(나중에 작성된게 브라우저에 적용이 된다)
즉 <strong>style.css에서 작성한게 브라우저에 최종적으로 적용</strong>이 되는 것이다.<pre><code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/reset.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/style.css&quot;&gt;</code></pre></li>
</ul>
<h2 id="normalizecss">normalize.css</h2>
<p>⭐️ <a href="https://necolas.github.io/normalize.css/">normalize.css</a></p>
<blockquote>
<p>디자인을 입힌 형태로 재 정의 해주고 있다
기존의 디자인을 조금씩 가공한 상태라고 할 수 있다
오차를 줄이고 버그를 줄이는 방향으로 사용되고 있다
디자인은 적용되어 있고 단 여러 브라우저에서 디자인간의 오차를 줄일 수 있도록 적용되어 있다
🖤 다운로드 버튼에서 오른쪽 버튼을 눌러 &#39;다른이름으로 링크저장&#39;을 클릭하고 css폴더에 normalize.css로 저장해주면 된다</p>
</blockquote>
<pre><code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/style.css&quot;&gt;</code></pre><h2 id="css-변수">css 변수</h2>
<p>🖤 <strong>변수란?</strong>
어떤 박스가 있다 박스안에 a내용물을 넣는다고 할 때 박스를 변수라고 하고 a내용물을 값(밸류)라고 한다.<br>
🖤 <strong>변수의 장점</strong> 
변수는 원하는 이름으로 바꿀 수 있다.
변수를 사용하는 이유는 변수로 지정한 이름에서 값만 변화하면 일괄적으로 모두 수정이 가능하다
직관적인 코드 명으로 아주 유용하다</p>
<p>🖤 <strong>변수의 단점</strong>
익스플로러에서는 사용을 못한다.<br>
🖤 <strong>변수 작성법</strong></p>
<pre><code>:root {
    --black: #18181a;
    --purple :#9147ff;
    --font-size-40: 40px;
}

h1 {
    background-color: var(--black);
    font-size: var(--font-size-40);
    color: var(--purple);
}

#intro{
    --font-color : blue;
    --font-size: 50px;
}

#intro p {
    font-size: var(--font-size);
    color: var(--font-color);
}</code></pre><p>root에다가 변수를 입력하면 어디에서든 전부 다 사용이 가능한 변수가 된다
내가 사용한 변수가 영향력을 발휘하는 범위를 css선택자를 활용해서 지정을 할 수 있다
#intro같은 경우는 intro안에 있는 태그에만 디자인 적용이 가능해진다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 카피캣 수업을 진행할 때는 놓쳤던 부분들을 하나하나 설명해주시는 시간이었다.
새로운 카피캣 수업을 할 때 마다 초기화 작업을 매번 작성해야 해서 번거롭게 느껴졌는데 reset.css를 알게되서 좋았다. <br>
💛 트위치 수업을 할 때 보기 어렵게 되어 있어서 왜 이렇게 어렵게 했는지 이해가 되지 않았다. 그런데 오늘 수업에서 css 변수를 알게 되면서 트위치가 왜 그렇게 작업을 했는지 알게 되었다. 하나의 코드만 변경하면 굳이 다른 코드들을 수정할 필요가 없고 변수의 이름도 직관적으로 변경하면 다른 개발자가 보았을 때 쉽게 내용 파악이 가능할 것 같았다. 
하지만 아직 익스플로러에는 사용되지 않는 다고 하여 아쉬웠다.
또 변수는 자바스크립트에서 많이 사용되는 개념이라고 하였다.<br></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(트위치_3)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%ED%8A%B8%EC%9C%84%EC%B9%983</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%ED%8A%B8%EC%9C%84%EC%B9%983</guid>
            <pubDate>Mon, 23 Aug 2021 10:38:39 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫git-hub">🛫GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/46feaea8965f1bc70a76f8c54b25ae6a4a61e4e7/HTML%20%7C%20twitch_content_2_footer">HTML | twitch_content_2_footer</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/46feaea8965f1bc70a76f8c54b25ae6a4a61e4e7/CSS%20%7C%20twitch_content_2_footer">CSS | twitch_content_2_footer</a></p>
<h2 id="content">content</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/dcf7cde8-90bb-4273-b745-306d39f58ec1/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.29.17.png" alt=""></p>
<blockquote>
<p>🖤 *<em>이미지가 이동하는 효과 주는 방법 *</em></p>
</blockquote>
<pre><code>.video_section .video_wrap .image_wrap  img {
    width: 100%;
    height: 100%;
    transition: transform 0.15s linear ;
}
.video_section .video_wrap .image_wrap:hover img {
    transform: translate(10px, -10px);
}</code></pre><p>⭐️ <a href="https://blog.naver.com/tnguswlsgus9/222466320522">transition 태그 설명</a>
⭐️<a href="https://blog.naver.com/aldzkwp1912/222354827605">transform 태그 설명</a></p>
<h2 id="footer">footer</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/146670ca-b830-4e1d-ba1b-97d0a38fead5/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.29.22.png" alt=""></p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 트위치 카피캣이 모두 끝이 났다. 트위치를 카피캣 하면서 사이트를 통하여 알아낼 수 있는 코드가 별로 없어서 너무 어렵고 힘들게 느껴졌다.
선생님의 수업을 천천히 따라하면서 코드를 작성해 나가고 기존에 알던 태그와 가성선택자를 통하여 코드를 작성해 나갔다.
클래스 명을 미리 지정하여 스타일 효과를 준다는 것이 편하다라는 것을 또 알았다.
💛 오랜만에 transition과 transform을 통하여 애니메이션 효과를 주었다. 
간단해 보이지만 사이트에 적용된 효과는 항상 멋있는 것 같다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (트위치_2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B8%EC%9C%84%EC%B9%982</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B8%EC%9C%84%EC%B9%982</guid>
            <pubDate>Fri, 20 Aug 2021 11:20:16 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫git-hub">🛫GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/6d1cd3a1f43803b1a6277c7d4f8450bb2e1347db/HTML%20%7C%20twitch_content">HTML | twitch_content</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/6d1cd3a1f43803b1a6277c7d4f8450bb2e1347db/CSS%20%7C%20twitch_content">CSS | twitch_content</a></p>
<h2 id="content">content</h2>
<blockquote>
<p>🖤 트위치는 header영역을 제외하고 content 내부 에서만 스크롤이 만들어진다. 이럴 때는 <code>overflow-y: auto;</code> 코드를 작성해 주면 된다.
➜ <code>overflow-y: auto;</code> :  scroll과 비슷하며 content에서 넘치는 부분이 생겼을 때 자동으로 스크롤이 생긴다.
⭐️<a href="https://blog.naver.com/hyoie813/222450950684">overflow 정리</a><br>
🖤 <code>background</code>도 한 줄로 코드를 정리할 수 있다.</p>
</blockquote>
<pre><code>background: url(../img/notebook.jpg) no-repeat center;
background-size: cover;</code></pre><p>➜<code>background-size: cover;</code>는 우리가 사용하는 이미지를 만들어진 공간에 다 채울 수 있도록 자동으로 축소 확대 해주면서 가로세로 비율은 유지된다.
웹사이트를 줄이거나 키울때 자동으로 이미지를 줄였다 커졌다 해준다.
백그라운드 포지션으로 센터를 맞춰주면 이미지의 중심부를 중앙에 넣어주게 된다. 
그렇기 때문에 이미지를 제작할 때 센터에 주요 컨텐츠가 다 몰리도록 만들어 준다.
⭐️ <a href="https://blog.naver.com/inb7902/222387653411">background정리</a></p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 오늘은 background를 통하여 이미지를 배경으로 삽입 하였다. 그리고 위에 layer를 만들어 덮어씌워주는 것을 하였는데 background 이미지에 position:relative; 작성을 실수로 빼먹었다.
그렇게 되니까 layer 부분이 content 전체 부분을 채우게 되어버렸다.
실수한 부분을 찾기 위해 선생님이 작성하신 코드와 내가 작성한 코드를 비교하면서 찾아 갔다.
background이미지를 부모태그로 정해주지 않아서 content 부분 전체를 부모로 인식하고 layer가 적용되었던 것 이다.
앞으로는 부모태그를 확실하게 작성했는지 확인하는 작업이 필요할 것으로 보인다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (트위치_1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B8%EC%9C%84%EC%B9%981</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B8%EC%9C%84%EC%B9%981</guid>
            <pubDate>Thu, 19 Aug 2021 08:46:38 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/1526a7634b801f63b69f7e84b42733cb842cfac2/HTML%20%7C%20twitch_header">HTML | twitch_header</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/1526a7634b801f63b69f7e84b42733cb842cfac2/CSS%20%7C%20twitch_header">CSS | twitch_header</a> <br>
<a href="https://github.com/jjjeongmin/AI-school/blob/1526a7634b801f63b69f7e84b42733cb842cfac2/HTML%20%7C%20twitch_left_area">HTML | twitch_left</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/1526a7634b801f63b69f7e84b42733cb842cfac2/CSS%20%7C%20twitch_left">CSS | twitch_left</a></p>
<h2 id="css-기본값">CSS 기본값</h2>
<pre><code>* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    height: 100%;
}

body {
    background-color: #0e0e10;
}

ol, ul {
    list-style: none;
}

a{
    text-decoration: none;
}

img {
    vertical-align: top;
}

input {
    outline: none;
    border: none;
}

button {
    outline: none;
    border: none;
    background-color: transparent;
}

h1, h2, h3, h4, h5, h6, p, span, input, button, a {
    color: #ffffff;
}

.btn_purple {
    background-color: #9147ff;
    color: #fff;
}

.font_purple {
    color: #9147ff;
}</code></pre><h2 id="트위치_1">트위치_1</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/3ef25acc-514d-4067-a78a-196c888d2f53/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-19%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.49.50.png" alt=""></p>
<blockquote>
<p><strong>header</strong>
🖤상단 nav 영역에 fixed(3차원 영역)를 적용하고 width 값을 작성해줘야 한다.
그게 안되면  안에 작성된 크기가 width 값이 되기 때문에 레이아웃이 망가진다. <br>
🖤min-width 값을 주는데 브라우저의 크기를 줄여도 특정 지점이 되면 더 이상 줄어들게 하지 않게 하기 위해서이다.<br>
<strong>left</strong>
🖤position fixed는 브라우저를 기준으로 좌표가 적용 된다.
bottom 0을 주면 공간을 강제로 늘리게 된다. 순수 3차원에서만 적용된다
탑 바텀을 이용해서 전체로 채울수 있다 height 없이 높이 값은 브라우저의 크기에 따라 가변적으로 변하게 된다.<br>
🖤브라우저를 올렸을 때 왼쪽 영역에 대해서만 스크롤이 생겨야 하는데
overflow-y:auto;를 넣어주면 된다
오토를 하면 스크롤이 필요한 상황에 대해서만 반응한다</p>
</blockquote>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 외국 사이트를 처음으로 카피캣하였는데 되게 어렵게 작성되어 있어서 카피캣하기 너무나도 힘들었다. <br>
⭐️ <a href="https://gromo.github.io/jquery.scrollbar/demo/basic.html">jquery.scrollbar</a> 사이트를 활용해서 트위치와 비슷한 스크롤 유형을 만들어 낼 수 있다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (네이버 오디오_3)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A43</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A43</guid>
            <pubDate>Wed, 18 Aug 2021 09:25:27 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/2f0b672ef656e6a81c4d4e9388bb359326399944/HTML%20%7C%20naver_audio_main_right">HTML | naver_audio_main_right</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/2f0b672ef656e6a81c4d4e9388bb359326399944/CSS%20%7C%20naver_audio_main_right">CSS | naver_audio_main_right</a><br>
<a href="https://github.com/jjjeongmin/AI-school/blob/2f0b672ef656e6a81c4d4e9388bb359326399944/HTML%20%7C%20naver_audio_footer">HTML | naver_audio_footer</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/2f0b672ef656e6a81c4d4e9388bb359326399944/CSS%20%7C%20naver_audio_footer">CSS | naver_audio_footer</a><br>
<a href="https://github.com/jjjeongmin/AI-school/blob/e21f03c6a01987193eb849291807c2e9bcefa572/HTML%20%7C%20naver_audio_category">HTML | naver_audio_category</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/2f0b672ef656e6a81c4d4e9388bb359326399944/CSS%20%7C%20naver_audio_category">CSS | naver_audio_category </a></p>
<h2 id="main_right">main_right</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/879a1f59-ddf3-4a2d-9d9c-70bba6b7d9ed/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-18%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.07.36.png" alt=""></p>
<blockquote>
<p>🖤 <em><strong>더 많이 발견하기 1 / 5</strong></em> 색을 다르게 지정하기 위해 <code>&lt;span&gt;</code>으로 다른 색 끼리 지정해 주었다.</p>
</blockquote>
<h2 id="footer">footer</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/27637251-0dfd-41ea-a7f2-a21c1afb04a4/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-18%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.08.04.png" alt=""></p>
<blockquote>
<p>🖤 <strong>중앙정렬</strong>을 하기 위해서 <code>vertical-align: top; margin: 9px 7px 0;</code> 값을 준다.
중간에 주석 처리한 <code>/*margin: 4px 7px;*/</code> 은 네이버에서 실현한 중앙 정렬 방법이다.</p>
</blockquote>
<pre><code>#audio_footer .footer_nav li a:after {
    display: inline-block;
    content: &quot;&quot;;
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background-color: #959595;
    /*margin: 4px 7px;*/
    vertical-align: top;
    margin: 9px 7px 0;
}</code></pre><h2 id="audio_category">audio_category</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/ec56d78f-19f5-42b1-b089-251d255d0c5b/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-18%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%206.08.18.png" alt=""></p>
<blockquote>
<p>🖤 <strong>flex box에서 <code>justify-content: space-between;</code> 사용시 단점 **
➜ 윗쪽과 아랫쪽 갯수가 맞지 않을때 공백이 어그러지게 된다.
그렇기 때문에 이럴때 <code>justify-content: flex-start;</code>로 왼쪽으로 정렬 시킨 후에 공백을 준다<br>
🖤 *<em>nth-child 가상선택자 지정하는 법 *</em>
홀수 값 : nth-child(odd) 
짝수 값 : nth-child(even)
2배수 : nth-child(2n) <br>
  🖤</strong>이미지를 살짝 돌리는 법**</p>
</blockquote>
<pre><code>.audio_category .audio_category_lists .category_list a img {
    position: absolute;
    width: 78px;
    height: 78px;
    transform: rotate(25deg);
    right: -13px;
    bottom: 0;
}</code></pre><p>  ➜ transform : rotate(); 를 활용하면 해결된다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>⭐️ <a href="https://audioclip.naver.com/">오디오클립</a> <br>
  ⭐️ <a href="https://audioclip.naver.com/panels/category">카테고리:오디오클립</a> <br>
  💛 실제로 오디오클립 : 카테고리 부분과 비슷하게 연출하고 싶어서 각 칸 마다 컬러를 다른 값으로 주었다.
  html 코드에서 <code>style=&quot;background-color: #032609;&quot;</code> 작성하였다.<br>
  💛 flex-box가 모든 경우에 적용되지 않는 다는 것을 깨닫고 그럴 경우는 어떻게 해결해 나가야 하는지에 대한 방안을 위에 정리하였다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (네이버 오디오_2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A42</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A42</guid>
            <pubDate>Tue, 17 Aug 2021 11:15:40 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/2305330ed70b225787b45e08a6d2689ed70b3de6/HTML%20%7C%20naver_audio_main_left">HTML | naver_audio_main_left</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/2305330ed70b225787b45e08a6d2689ed70b3de6/CSS%20%7C%20naver_audio_main_left">CSS | naver_audio_main_left</a></p>
<h2 id="main_left">main_left</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/762c448f-2238-4430-b9ae-65dad4f5e3d6/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-17%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.59.21.png" alt="">
<img src="https://images.velog.io/images/heo_jeongmin/post/226c2bf7-922b-49c1-bd55-92c6c1ad3308/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-17%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%207.59.34.png" alt=""></p>
<blockquote>
<p>🖤   <code>.main_container{overflow:hidden;}</code>
코드를 작성할 경우 float 기능을 사용하지 못한다. <br>
🖤 <code>position: relative; ,posititon:absolute;</code> 를 활용하여 레이아웃을 겹쳐지도록 하였다. <br>
🖤 <code>#audio_channel .audio_body ul{align-items: flex-start;}</code> flex box를 이용하여 공간을 배치하였는데 제일 위에서부터 정렬 될 수 있도록 <code>{align-items: flex-start;}</code>를 추가적으로 작성해 주었다.</p>
</blockquote>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 반복적으로 적용되는 디자인은 동일한 클래스로 묶어서 작성하는것이 훨씬 더 편하다는 것을 알았다. <br>
💛 수업을 들으면서 저번 보다 div 태그를 작성하는데 덜 헷갈리게 되었다. div 태그를 먼저 작성하고 div태그 안에 들어갈 내용들만을 들여씌기 한 후에 닫힌 div태그를 작성해 주면 된다. <br></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (네이버 오디오_1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A41</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%98%A4%EB%94%94%EC%98%A41</guid>
            <pubDate>Fri, 13 Aug 2021 06:01:22 GMT</pubDate>
            <description><![CDATA[<h1 id="💻">💻</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/b9a8d4d8b16dd69a06983783fa90234cd9a26234/HTML%20%7C%20naver_audio_header">HTML | naver_audio_header</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/b9a8d4d8b16dd69a06983783fa90234cd9a26234/CSS%20%7C%20naver_audio_header">CSS | naver_audio_header </a></p>
<h2 id="css--audio_기본값">CSS | audio_기본값</h2>
<pre><code>.audio_container{
    width: 1080px;
    margin: 0 auto;
}

.audio_flex_between {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    align-content: stretch;
}

.audio_flex_start {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    align-content: stretch;
}

.audio_flex_center {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    align-content: stretch;
}

.audio_flex_end {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    align-content: stretch;
}</code></pre><h2 id="audio_header">audio_header</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/1687eeec-4b8c-432b-b168-fae298feb72d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-13%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.32.00.png" alt=""></p>
<blockquote>
<p>🖤 <strong>position 3차원 특성을 활용</strong>해서 디자인의 위치를 직접 조정하였다.</p>
</blockquote>
<pre><code>#audio_header .audio_nav_left li a.active span:after{
    display: block;
    position: absolute;
    content: &quot;&quot;;
    border-bottom: solid 3px #222;
    border-radius: 1.5px;
    z-index: 1;
    left: -4.5px;
    right: -5.5px;
    bottom: -17px;
}</code></pre><p>position 3차원을 활용해서 left,top,right,bottom을 전부 0으로 만들어주면 공간을 여백 없이 가득 채울 수 있다. 이 때 값을 직접 입력하여 수동으로 움직임을 줄 수 있게 된다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>💛 flex를 이용해서 공간 배치 작업을 하는데 flex를 class가 아닌 id에 입력하여 적용이 안됐었다. class를 추가하고 제대로 입력을 해주었다. <br>
💛 위에 실수한 부분을 제외하고는 크게 어려운 부분은 없었다. 본문에 작성한대로 새로운 공간 위치 작업하는 법을 배워서 뿌듯했다.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍(네이버 e스포츠_3)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%84%A4%EC%9D%B4%EB%B2%84-e%EC%8A%A4%ED%8F%AC%EC%B8%A03</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EB%84%A4%EC%9D%B4%EB%B2%84-e%EC%8A%A4%ED%8F%AC%EC%B8%A03</guid>
            <pubDate>Thu, 12 Aug 2021 05:35:25 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습내용">💻 학습내용</h1>
<h2 id="🛫git-hub">🛫GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/749975a81f495b96c6d36c8c0acd32739f65faaf/HTML%20%7C%20naver_esports_main_right">HTML | naver_esports_main_right</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/749975a81f495b96c6d36c8c0acd32739f65faaf/CSS%20%7C%20naver_esports_main_right">CSS | naver_esports_main_right</a></p>
<h2 id="main_right">main_right</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/4369819c-5ee6-4806-b328-05cdd72257ae/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-12%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.03.25.png" alt=""></p>
<blockquote>
<pre><code>#esports_news_view li a .image_wrap {
    position: relative;
    overflow: hidden;
    width: 84px;
    height: 48px;
    border: solid 1px rgba(0, 0, 0, .04);
    border-radius: 4px;
}
#esports_news_view .image_wrap img {
    position: absolute;
    width: 100%;
    height: 100%;
}</code></pre></blockquote>
<pre><code>🖤 이미지위에 레이아웃을 겹칠 때 image_wrap을 img사이즈와 동일하게 맞춰주고 position을 relative로 설정해준다.
img는 width 100%, height 100%를 입력해주고 position을 absolute를 주면서 겹칠 수 있도록 해준다.
🖤 overflow hidden을 주는 이유는 border-radius값을 설정해줬는데 이미지의 크기 때문에 적용되지 않은 것 처럼 보여서 넘치는 부분은 숨겨주면서 border-radius가 적용되도록 해주는 것이다.&lt;br&gt;</code></pre><p>#esports_schedule .schedule_wrap .schedule_header span{
    position: relative;
    font-size: 18px;
    font-weight: 800;
    top: 3px;
}</p>
<pre><code>🖤 날짜 부분이 x축으로 올바르게 정렬이 되지 않았는데 그 이유는 span 태그는 고유로 가지고 있는 공간이 있기 때문이다. 이럴 때는 직접 위치 조율을 해줘야 한다.
position relative를 주고 top값을 이용해서 위치를 조정해주었다.


## 구글 웹폰트
⭐️ [구글 웹폰트](https://fonts.google.com/)

&gt;```
&lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot;&gt;
&lt;link href=&quot;https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700;800&amp;family=Noto+Sans+KR:wght@100;300;400;500;700;900&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;</code></pre><pre><code>&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/style.css&quot;&gt;</code></pre><p>🖤 폰트 적용 링크를 먼저 작성하고 <strong>css와 연동</strong>하는 링크를 작성해줘야 오류가 발생하지 않는다.</p>
<pre><code>font-family: sans-serif;</code></pre><p>🖤 css에는 font-family를 이용하여 폰트 이름을 복사해서 붙여넣어주며 된다.
마지막 sans-serif는 필수로 작성해 줘야 한다. 모든 웹브라우저에 적용되는 폰트이기 때문이다.</p>
<h1 id="📝-마무리">📝 마무리</h1>
<p>💛 어제 내가 혼자 복습했던 이미지 위에 레이아웃이 겹치도록 하는걸 수업 시간에 또 해볼 수 있어서 좋았다.
image_wrap 크기를 img 크기로 설정해야 absolute 적용된 것들이 위치를 제대로 잡을 수 있다는 것을 알았다. <Br>
💛 폰트 적용하는 법을 다시 한번 배웠다. link 순서를 제대로 입력해주어야 한다는 것을 알았다. <br>
💛 어려운 부분은 크게 없었다.. 다만 저번에 작성해둔 나의 sublimetext가 사라져서...그 부분을 다시 작성하고 수정하는데 시간이 오래 걸렸다...^^
  저장을 꾸준히 하자 제발</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (네이버 e스포츠_2)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-esports2</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-esports2</guid>
            <pubDate>Wed, 11 Aug 2021 09:07:25 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/684e9d8b011a045bf4047e1bcb62fec7bc617f1d/HTML%20%7C%20naver_esports_main_left">HTML | naver_esports_main_left</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/684e9d8b011a045bf4047e1bcb62fec7bc617f1d/CSS%20%7C%20naver_esports_main_left">CSS | naver_esports_main_left</a></p>
<h2 id="esports_main_left">esports_main_left</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/776b4152-5181-4a97-b9bd-e7806891bf8a/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-11%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.54.42.png" alt=""><img src="https://images.velog.io/images/heo_jeongmin/post/e67c893d-e60a-4c33-859e-b94527056f95/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-11%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.55.20.png" alt=""></p>
<blockquote>
<p>🖤 header    부분이 main 레이어 뒤로 숨겨지지 않도록 z-index : 999999; 가장 큰 값을 주어서 어느 레이어라도 제일 앞으로 나오도록 했다<Br>
🖤 2줄 말줄임표를 만드는 방법</p>
</blockquote>
<pre><code>display: -webkit-box;
    overflow: hidden;
    max-height: 38px;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;</code></pre><p>이 방법은 익스플로어에서는 적용이 안될수도 있다
만약에 3줄로 바꾸고 싶으면 <code>line-clamp``````를 3으로 바꾸고</code>max-height```값을 조정하면 된다 <br></p>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>🖤 오늘 수업 시간에 <strong>많이 본 영상</strong> 부분은 수업을 진행하지 않았지만, 혼자 복습 차원에서 작성을 해보았다.
  생각보다 사이즈를 설정하고 찾는게 쉽지 않았고 absolute를 적용해도 원하는 위치로 가지 않아서 짜증이 났다...🥲
  원하는 결과물을 얻기는 했다..
  image_wrap 부분의 height를 image 크기와 동일하게 맞추고 display_flex가 적용이 되지 않길래 i,와 .time 부분에 따로 absolute를 적용하고 left, bottom, right를 이용해서 위치를 조정했다.
  그냥 위에 있는거 코드 복사 붙여넣기 해서 하면 될 줄 알았는데 생각보다 시간이 오래 걸려서 화딱지가 좀 나긴 했지만 어쨌든 원하는 결과물을 얻어서 뿌듯했다.
  직접 코드를 작성한다는 건 생각보다 많은 창의력을 요하는 것 같다</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹프로그래밍 (네이버 e스포츠_1)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-e%EC%8A%A4%ED%8F%AC%EC%B8%A01</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-e%EC%8A%A4%ED%8F%AC%EC%B8%A01</guid>
            <pubDate>Tue, 10 Aug 2021 04:58:09 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/d267fb2f750221717b436ddd82e3d62ef9a47b8d/HTML%20%7C%20naver_esports_header">HTML | naver_esports_header </a>
<a href="https://github.com/jjjeongmin/AI-school/blob/d267fb2f750221717b436ddd82e3d62ef9a47b8d/CSS%20%7C%20naver_esports_header">CSS | naver_esports_header</a><BR>
<a href="https://github.com/jjjeongmin/AI-school/blob/d267fb2f750221717b436ddd82e3d62ef9a47b8d/HTML%20%7C%20naver_esports_main_top">HTML | naver_esports_main_top</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/d267fb2f750221717b436ddd82e3d62ef9a47b8d/CSS%20%7C%20naver_esports_main_top">CSS | naver_esports_main_top</a></p>
<p>##esports 기본값</p>
<pre><code>.esports_flex_between {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    align-content: stretch;
}

.esports_flex_start {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
}


.esports_flex_center{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.esports_flex_end{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    align-content: stretch;
}


.esports_container {
    width: 1280px;
    margin: 0 auto;
}</code></pre><h2 id="esport_header">esport_header</h2>
<p>  <img src="https://images.velog.io/images/heo_jeongmin/post/822754ac-00b9-410e-a01f-91bf168a1f6d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-10%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.35.15.png" alt=""></p>
<blockquote>
<pre><code>#esports_header {
    position: fixed;
    width: 100%;
    background-color: #151618;
    left: 0;
    top: 0;
}</code></pre></blockquote>
<pre><code>🖤 스크롤이 움직이더라도 헤더부분은 위에 고정이 되어 있게 하기 위해서 **position을 fixed로 설정**하고
Fixed는 위치 값이 브라우저를 기준으로 하기 때문에 ```left:0; top:0;```을 주면서 브라우저 상단에 고정될 수 있는 위치값을 한번 더 설정해주는 것이다.

## esports_main_top

  ![](https://images.velog.io/images/heo_jeongmin/post/9e164565-a2d0-4f34-904a-52d79234ec7a/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-10%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.35.29.png)
  &gt;</code></pre><p>  #esports_main #esports_main_top .live_wrap ul li a {
    align-items: flex-start;
}</p>
<p> <code>🖤</code>align-items: flex-start;<code>을 설정해줘야 .live_wrap 부분이 제일 윗쪽으로 붙어서 정렬이 가능해진다.
 제일 윗쪽으로 붙게되면서 완성본의 레이아웃이 형성된다.
  ![](https://images.velog.io/images/heo_jeongmin/post/21d1d5f5-4739-475b-a8c5-d7c7007cd62d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-10%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.49.27.png)
 ❌</code>align-items: flex-start;```을 적용하지 않았을 때
  <img src="https://images.velog.io/images/heo_jeongmin/post/6cbe2723-ba05-4b33-a833-0c37c3156b1a/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-10%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.44.14.png" alt=""></p>
<h1 id="📝-마무리">📝 마무리</h1>
<p>  🖤 오늘은 position:fixed를 처음으로 작성해보았다.
  매번 relative와 absolute만 사용하다가 fixed를 처음으로 써보니 신기하고 재미있었다.
오늘은 위의 부분만 만들어서 스크롤이 생기지 않아서 fixed의 효과를 확인하지 못했지만, main부분을 다 채워서 header가 고정되어 있는 것을 빨리 확인하고 싶다.<br>
 🖤 hover가상선택자를 오랜만에 작성했다. 마우스의 커서가 올라가면 디자인이 변경되는 가상선택자인데 되게 간단한데 그럴듯한 효과를 낼 수 있어서 앞으로도 많이 사용할 수 있을 것 같다. <br>
 🖤 크롬의 검사 기능내에서 색깔을 추출해내는 방법을 배웠다.color부분 앞에 있는 색깔이 그려진 네모칸을 누르면 색을 추출해낼 수 있는 스포이트가 나타난다 그걸로 원하는 색이 있는 부분에 갖다 대면 색상값이 추출된다.<br>
  🖤 이제는 앞에서 사용했던 코드를 반복적으로 손에 익히는 연습을 하는 거라 크게 어려운 과정이나 개념이 등장하지 않았다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹 프로그래밍 (네이버 게임_3)]]></title>
            <link>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EA%B2%8C%EC%9E%843</link>
            <guid>https://velog.io/@heo_jeongmin/%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%84%A4%EC%9D%B4%EB%B2%84-%EA%B2%8C%EC%9E%843</guid>
            <pubDate>Mon, 09 Aug 2021 06:44:30 GMT</pubDate>
            <description><![CDATA[<h1 id="💻-학습-내용">💻 학습 내용</h1>
<h2 id="🛫-git-hub">🛫 GIT-HUB</h2>
<p><a href="https://github.com/jjjeongmin/AI-school/blob/bc9883de2448548ed239869c9196edd27ce4901b/HTML%20%7C%20naver_game_main_right">HTML | naver_game_main_right</a>
<a href="https://github.com/jjjeongmin/AI-school/blob/bc9883de2448548ed239869c9196edd27ce4901b/CSS%20%7C%20naver_game_main_right">CSS | naver_game_main_right</a></p>
<h2 id="main_right">main_right</h2>
<p><img src="https://images.velog.io/images/heo_jeongmin/post/49adff04-145b-4182-b3b2-c818d771d2ab/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-09%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%203.19.41.png" alt="">
<img src="https://images.velog.io/images/heo_jeongmin/post/7d288c1a-00e4-4187-83a1-73e7c4726ab9/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-09%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%203.19.55.png" alt="">
<img src="https://images.velog.io/images/heo_jeongmin/post/57617a34-3203-4570-b20f-dd017c50467e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-08-09%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%203.20.18.png" alt=""></p>
<blockquote>
<p>🖤 TOP5로 순위 매기는 두 부분은 스타일 적용값이 똑같았기 때문에 class로 &quot;rank_section&quot;을 동일하게 넣어주고 css값에서도 .rank_section을 작성해서 동일한 스타일이 적용되도록 해주었다.</p>
</blockquote>
<h1 id="📝-마무리">📝 마무리</h1>
<blockquote>
<p>🖤 main_left 보다 section도 적었고, 디자인도 비슷해서 공부하는데 훨씬 더 수월하게 느껴졌다.
의미 있는 순위들에 ol과 li를 쓴다는걸 헷갈리지 않고 기억하도록 해야 겠다.
last-child와 before, after 가상선택자의 활용도가 많이 높다는 것을 한번 더 배웠다.
오늘로써 게임 페이지 부분의 카피캣이 마무리 되었다.
수업을 다 듣고 최종본을 확인하는데 margin-top이 적용되어 있지 않아서 main_left와 main_right에 margin_top값을 주고 간격을 조정해주었다.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>