<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>seo-B.log</title>
        <link>https://velog.io/</link>
        <description>como una abeja! 오늘보다 one more thing! </description>
        <lastBuildDate>Thu, 20 Jan 2022 05:47:24 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>seo-B.log</title>
            <url>https://images.velog.io/images/seo-b/profile/fb340844-375d-4bae-aac5-9125be43ebaa/seo-B.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. seo-B.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/seo-b" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[First Project] Project Repository 삭제 이슈 회고]]></title>
            <link>https://velog.io/@seo-b/First-Project-Project-Repository-%EC%82%AD%EC%A0%9C-%EC%9D%B4%EC%8A%88-%ED%9A%8C%EA%B3%A0</link>
            <guid>https://velog.io/@seo-b/First-Project-Project-Repository-%EC%82%AD%EC%A0%9C-%EC%9D%B4%EC%8A%88-%ED%9A%8C%EA%B3%A0</guid>
            <pubDate>Thu, 20 Jan 2022 05:47:24 GMT</pubDate>
            <description><![CDATA[<h2 id="project-repository-삭제-문제-발생">Project Repository 삭제 문제 발생</h2>
<ul>
<li>프로젝트 진행하면서 레포에 관한 merge, commit 등 에러를 최소화하기 위하 여 git branch 사용에 익숙해 질 필요가 있다고 판단하였다. 
팀원 한분이 git pull이 정상적으로 작동되지 않았고, 먼저 혼자 해결방법을 여러 방편으로 찾아 보았으나 해결방법을 모색하지 못했고, fork한 repository를 삭제 후 다시 clone을 통해 진행하려고 하였으나 fork한 repository인지 확인하지 못하고 original 프로젝트 repository를 삭제하여 문제가 발생하였다. </li>
</ul>
<h2 id="project-이슈로-인한-긍정적인-방향">Project 이슈로 인한 긍정적인 방향</h2>
<ul>
<li>결과는 좋지 못했으나 실전에 앞서 미리 연습하고 숙지하려고 한 것에 의의를 두고 지나간 문제에 서로 비난하지 말고 격려하며 앞으로의 일에 집중한 점이 더 힘이 되었다.</li>
</ul>
<h2 id="project-진행에-아쉬웠고-개선할-부분">Project 진행에 아쉬웠고 개선할 부분</h2>
<ul>
<li>프로젝트 진행에 혹시 모를 여러가지 이슈와 팀장 부재시 대비를 위해 레포지토리에 팀원 초대 할 당시 권한을 모두 admin으로 주었던 부분은 팀장만 admin 권한을 가지고 팀원들은 write권한을 가져 실수가 반복되지 않도록 한다.</li>
<li>레포지토리를 삭제할 때 조금 더 신중하게 생각을 해서 진행했어야 했으나 숙지가 잘 되지않은 상황에서 성급한 결정으로 인해 팀이 전체적으로 혼선을 겪음</li>
<li>서로 커뮤니케이션이 원활하게 잘 진행되고 있다고 생각하였으나 세심하게 서로를 상황을 숙지하지 못함</li>
<li>프로젝트를 시작하기에 앞서 사전에 git 사용법을 숙지하지 못함</li>
</ul>
<h2 id="개선점">개선점</h2>
<ul>
<li>레포지토리 admin 권한은 팀장, 팀원은 write 권한으로 진행</li>
<li>팀원들중에 문제가 발생시 바로 상황을 팀원 전체와 공유</li>
<li>사소한 것들도 쉽게 넘기지 않고 꼼꼼하게 살펴볼 것</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[BOJ 2562번]]></title>
            <link>https://velog.io/@seo-b/BOJ-2562%EB%B2%88</link>
            <guid>https://velog.io/@seo-b/BOJ-2562%EB%B2%88</guid>
            <pubDate>Mon, 25 Oct 2021 17:37:02 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[객체 지향 JavaScript]]></title>
            <link>https://velog.io/@seo-b/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-JavaScript</link>
            <guid>https://velog.io/@seo-b/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-JavaScript</guid>
            <pubDate>Mon, 23 Aug 2021 11:36:57 GMT</pubDate>
            <description><![CDATA[<h2 id="achievement-goals">Achievement Goals</h2>
<ul>
<li><input disabled="" type="checkbox"> 클래스와 인스턴스라는 용어를 이해할 수 있다.<ul>
<li><input disabled="" type="checkbox"> new 키워드의 사용법을 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> class 키워드의 사용법을 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> 현실 세계의 모델을 바탕으로 클래스의 메소드와 속성을 디자인할 수 있다.</li>
</ul>
</li>
<li><input disabled="" type="checkbox"> 객체 지향 프로그래밍 특징을 이해할 수 있다.<ul>
<li><input disabled="" type="checkbox"> 캡슐화</li>
<li><input disabled="" type="checkbox"> 상속</li>
<li><input disabled="" type="checkbox"> 추상화</li>
<li><input disabled="" type="checkbox"> 다형성</li>
</ul>
</li>
<li><input disabled="" type="checkbox"> JavaScript에서 객체 지향 프로그래밍을 구현할 수 있다.<ul>
<li><input disabled="" type="checkbox"> Prototype이 무엇인지 이해할 수 있다</li>
</ul>
</li>
<li><input disabled="" type="checkbox"> 객체 지향 프로그래밍의 상속(Inheritance)의 개념을 이해하고 코드로 작성할 수 있다.<ul>
<li><input disabled="" type="checkbox"> 상속관계를 가진 현실 세계의 모델을 코드로 작성할 수 있다.</li>
<li><input disabled="" type="checkbox"> 클래스 상속의 원리를 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> Prototype chain을 이해하고 설명할 수 있다. (<strong>proto</strong>)</li>
</ul>
</li>
</ul>
<h1 id="객체">객체</h1>
<ul>
<li><p>객체 지향 프로그래밍(OOP, Object-oriented programming)은 하나의 모델이 되는 청사진(blueprint)을 만들고(=&gt; class), 그 청사진을 바탕으로 한 객체를 만드는(=&gt; instance object) 프로그래밍 패턴이다. 절차 지향 프로그래밍과는 다르게 데이터와 기능을 한 곳에 묶어서 처리한다.</p>
</li>
<li><table>
<thead>
<tr>
<th></th>
<th><center>절차지향</th>
<th><center>객체지향</th>
</tr>
</thead>
<tbody><tr>
<td><center>특성</td>
<td><center>컴퓨터의 처리구조와 유사</td>
<td><center>사람의 사고방식에 가까움</td>
</tr>
<tr>
<td><center>메모리 사용</td>
<td><center>적음</td>
<td><center>많음</td>
</tr>
<tr>
<td><center>처리 속도</td>
<td><center>빠름</td>
<td><center>느림</td>
</tr>
<tr>
<td><center>재활용성</td>
<td><center>낮음</td>
<td><center>높음</td>
</tr>
<tr>
<td><center>코드 이해</td>
<td><center>어려움</td>
<td><center>쉬움</td>
</tr>
<tr>
<td><center>디버깅</td>
<td><center>어려움</td>
<td><center>쉬움</td>
</tr>
<tr>
<td>ex) 메모리 관리가 중요하다면 -&gt; 메모리를 적게 쓰는 <strong>절차지향</strong></td>
<td></td>
<td></td>
</tr>
<tr>
<td>ex) 사람들과의 협업이 필요하다면 -&gt; 코드 이해가 쉬운 <strong>객체지향</strong></td>
<td></td>
<td></td>
</tr>
</tbody></table>
</li>
<li><p>속성과 메소드가 하나의 &#39;객체&#39;라는 개념에 포함되며 이는 자바스크립트 내장 타입인 <strong>object</strong> 와는 다르게 <strong>클래스(Class)</strong> 라는 이름으로 불린다.</p>
</li>
</ul>
<h3 id="매소드-호출">매소드 호출</h3>
<ul>
<li>매소드 호출은 <code>객체.메소드()</code> 과 같이 객체 내에 메소드를 호출하는 방법을 의미하며 <u>매소드 호출 방식</u>은 <strong>화살표 함수를 쓰지 않는다.</strong></li>
</ul>
<h3 id="클로저를-이용해-매번-새로운-객체-생성">클로저를 이용해 매번 새로운 객체 생성</h3>
<ul>
<li>Singletion 패턴은 단 하나의 객체만 만들 수 있다. 똑같은 기능을 하는 카운터가 여러개 필요하다면 코드를 그대로 복사/붙여넣기는 재사용성이 떨어지므로 <strong>클로저 모듈 패턴을 이용한다.</strong></li>
</ul>
<h2 id="객체-지향-프로그래밍oop의-특성">객체 지향 프로그래밍(oop)의 특성</h2>
<ol>
<li><strong>캡슐화</strong> : 데이터(속성)와 기능(메소드)을 하나의 객체 안에 넣어서 묶는 것이다.</li>
<li><strong>추상화</strong> : 내부 구현은 복잡하지만 실제로 노출되는 부분은 단순하다.</li>
<li><strong>다향성</strong> : 똑같은 메소드라 하더라도, 다른 방식으로 구현될 수 있다.</li>
<li><strong>상속</strong> : 부모 클래스의 특징을 자식 클래스가 물려받는 것이다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[SPA & Route]]></title>
            <link>https://velog.io/@seo-b/SPA-Route</link>
            <guid>https://velog.io/@seo-b/SPA-Route</guid>
            <pubDate>Thu, 12 Aug 2021 13:28:07 GMT</pubDate>
            <description><![CDATA[<p>spa 장점</p>
<p>spa 단점 </p>
<p>route</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JavaScript 기초 - 3(조건문)]]></title>
            <link>https://velog.io/@seo-b/JavaScript-3%EC%A1%B0%EA%B1%B4%EB%AC%B8</link>
            <guid>https://velog.io/@seo-b/JavaScript-3%EC%A1%B0%EA%B1%B4%EB%AC%B8</guid>
            <pubDate>Wed, 21 Jul 2021 04:40:17 GMT</pubDate>
            <description><![CDATA[<h2 id="조건문">조건문</h2>
<hr>
<h3 id="achievement-goals">Achievement Goals</h3>
<ul>
<li><input disabled="" type="checkbox"> truthy와 falsy 가 조건문에서 작동하는 방식을 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> 비교연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> if 와 else if , else를 이해하고 무리없이 활용할 수 있다.</li>
<li><input disabled="" type="checkbox"> 논리연산자를 (&amp;&amp;, ||, ! ...)을 통해 복잡한 조건을 간결하게 작성할 수 있다.</li>
</ul>
<p><strong>다양한 비교 연산자</strong></p>
<table>
<thead>
<tr>
<th>===</th>
<th>!==</th>
<th>&gt;</th>
<th>&lt;</th>
<th>&gt;=</th>
<th>&lt;=</th>
</tr>
</thead>
<tbody><tr>
<td><center>같다</td>
<td><center>다르다</td>
<td><center>초과</td>
<td><center>미만</td>
<td><center>이상</td>
<td><center>이하</td>
</tr>
</tbody></table>
<p>``` javascript
if (조건1) {
  // 조건1이 통과할 경우
} else if (조건2) {
  // 조건1이 통과하지 않고
  // 조건2가 통과할 경우
} else {
  // 모든 조건이 통과하지 않는 경우
}</p>
<p>  and 연산자는 falsy 한 값을 만나면 그 값을 출력
  undefined &amp;&amp; 10 // undefined
  5 &amp;&amp; false // false</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JavaScript 기초 - 1(변수, 타입)]]></title>
            <link>https://velog.io/@seo-b/JavaScript-%EA%B8%B0%EC%B4%88-1</link>
            <guid>https://velog.io/@seo-b/JavaScript-%EA%B8%B0%EC%B4%88-1</guid>
            <pubDate>Tue, 20 Jul 2021 00:29:17 GMT</pubDate>
            <description><![CDATA[<h1 id="변수variable">변수(variable)</h1>
<hr>
<div>변수는 각 데이터 보관함의 이름을 일컫는다.
이 변수를 통해 보관함에 있는 데이터를 사용할 수 있다.</div>

<h3 id="achievement-goals">Achievement Goals</h3>
<ul>
<li><input disabled="" type="checkbox"> 프로그래밍은 데이터 처리를 하는 것임을 이해한다.</li>
<li><input disabled="" type="checkbox"> 변수 사용은 데이터를 편리하게 저장하고 꺼내 쓰는 것임을 이해한다.</li>
<li><input disabled="" type="checkbox"> 변수의 선언과 값의 할당에 대해서 설명하고 코드로 작성할 수 있다.</li>
<li><input disabled="" type="checkbox"> 값으로 변환된 표현문이 변수에 할당되어 담기는 과정을 설명할 수 있어야 한다.</li>
<li><input disabled="" type="checkbox"> 자바스크립트에서 변수의 선언과 값의 할당에 대해서 설명할 수 있다.</li>
<li><input disabled="" type="checkbox"> 변수 선언과 값 할당에 사용되는 용어에 대해서 정확하게 알 수 있다.</li>
<li><input disabled="" type="checkbox"> =가 &quot;같다&quot;라는 의미가 아니라 할당연산자임을 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> num = num + 1이 &quot;같다&quot;라는 의미가 아니라 값을 할당하는 것임을 설명할 수 있다.</li>
</ul>
<h3 id="선언declaration">선언(declaration)</h3>
<p>선언이란 보관함을 확보 즉 저장공간을 확보하는 것을 의미한다.</p>
<ul>
<li>let, const, var 3가지의 방법이 있다.</li>
</ul>
<pre><code class="language-javascript">1. let userName; // let은 재선언 x 재할당 o 

2. const myBirthday; // const는 재선언 x 재할당 x  

3. var message; / var는 재선언 o 재할당 o </code></pre>
<ul>
<li><p>반드시 영문자, 숫자, 그리고 _만 사용하여야 한다.</p>
<ul>
<li>let Anything1234; (O)   /   let 조영현; (X)</li>
</ul>
</li>
<li><p>첫글자는 숫자로 시작할 수 없다.</p>
<ul>
<li>let 1234Anything; (X)</li>
</ul>
</li>
<li><p>여러 단어를 연결할 변수 이름은 중간에 대문자를 섞어서 명명한다.**</p>
<ul>
<li>let getAnything; (O)</li>
</ul>
</li>
<li><p>미리 예약된 키워드를 사용할 수 없다.</p>
<ul>
<li>let const; (X) : const는 상수를 선언하는 키워드이므로 사용할 수 없다.</li>
</ul>
</li>
<li><p>대소문자를 구분하여 작성하여야 한다.</p>
<ul>
<li>let Anything ≠ let anything</li>
</ul>
</li>
<li><p>변수의 이름은 변수의 용도와 의미에 부합해야 한다.</p>
<ul>
<li>let age; : 나이를 담는 변수임을 암시</li>
</ul>
</li>
<li><p>한번에 여러 변수를 선언하는 것도 가능하다 </p>
</li>
</ul>
<pre><code class="language-javascript">let userName = &#39;Tom&#39;, age = 20, message = &#39;Hello&#39;; // A타입 한줄에 여러 변수를 작성.</code></pre>
<pre><code class="language-javascript">let userName = &#39;Tom&#39;, 
    age = 20, 
    message = &#39;Hello&#39;; // B타입 한줄에 하나의 변수를 작성.</code></pre>
<p>A타입과 B타입은 서로 기술적인 차이가 있지 않으며, A타입이 다소 짧지만 가독성을 위해 B타입을 권장한다.</p>
<h3 id="할당assignment">할당(assignment)</h3>
<p>등호기호 &quot; = &quot; 는 할당연산자로 &quot;같다&quot; 라는 뜻이 아닌 데이터를 저장한다는 의미로 사용된다.</p>
<pre><code class="language-javascript">userName = &#39;Tom&#39;;</code></pre>
<p>선언과 할당을 같이 사용하면 아래와 같이 작성할 수 있다.</p>
<pre><code class="language-javascript">let userName = &#39;Tom&#39;;</code></pre>
<br>
변수는 상황에 따라 변할 수 있는 값으로 동일한 변수를 이용해 대입도 가능하며 결과를 다시 변수로 둘 수 있다. 할당이 없다면 undefinded(정의되지 않은) 값이 된다.

<pre><code class="language-javascript">let sum = 1;
sum = sum + 2;
sum = sum + 3; // 동일한 변수를 이용해 대입할 수 있다.</code></pre>
<pre><code class="language-javascript">let sadius = 5;
pi * radius * radius; // 반지름이 5인 원의 넓이

let areaOfCircle = pi * radius * radius; // 결과물을 다시 변수로 담을 수 있다.</code></pre>
<h2 id="--문제--">- 문제 -</h2>
<p>임의의 값을 입력받아 수(number)의 형태로 리턴해야 합니다.</p>
<p><strong>입출력 예시</strong></p>
<pre><code class="language-javascript">let output = convertToNumber(&#39;123&#39;);
console.log(output); // --&gt; 123

let output2 = convertToNumber(&#39;hello&#39;);
console.log(output2); // --&gt; NaN

let output3 = convertToNumber(&#39;3.141952&#39;);
console.log(output3); // --&gt; 3.141952</code></pre>
<p><strong>코드 작성</strong></p>
<pre><code class="language-javascript">function convertToNumber(anything) {
  let anything = Number(anything);
    return anything;
}</code></pre>
<p>매개변수(parameter) anything을 <code>Number()</code> 함수를 이용해 숫자로 결과 값을 받는 코드를 작성했다.
<img src='https://images.velog.io/images/seo-b/post/846921c1-62ea-4645-a046-85ec9274f039/0720.png' width="500" >
하지만 문법 오류 즉 매개변수 anything이 중복 선언이 되었다고 나왔다.</p>
<pre><code class="language-javascript">function convertToNumber(anything) {
 let result = Number(anything);
    return result;
} // 이처럼 result를 새로 선언을 하여 값으로 할당을 해주어도 되지만</code></pre>
<pre><code class="language-javascript">function convertToNumber(anything) {
  return Number(anything);
} //매개변수가 하나이기에 새로 선언을 해주지 않고 바로 &#39;Number()&#39; 함수 값을 받는 코드로 작성을 해주니 훨씬 간편하고 직관적인 코드라 더 낫다고 생각한다.
</code></pre>
<h1 id="타입">타입</h1>
<hr>
<h3 id="achievement-goals-1">Achievement Goals</h3>
<ul>
<li><input disabled="" type="checkbox"> 자바스크립트에서 원시 자료형과 참조 자료형이 무엇인지 알 수 있다.</li>
<li><input disabled="" type="checkbox"> 원시 자료형 string, number, boolean, undefined의 의미를 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> 타입마다 다른 속성과 메소드가 있다는 것을 이해할 수 있다.</li>
<li><input disabled="" type="checkbox"> typeof 를 활용하여 특정 값의 타입을 확인할 수 있다.</li>
<li><input disabled="" type="checkbox"> 비교 시 엄밀한 비교( === 과 !== )의 필요성을 이해할 수 있다.</li>
</ul>
<h3 id="숫자형number-type">숫자형(number type)</h3>
<p><code>let n = 123;</code></p>
<h3 id="문자형string">문자형(string)</h3>
<ol>
<li><code>let str = &quot;Hello&quot;;</code> // 큰따옴표, <strong>Hello</strong></li>
<li><code>let str2 = &#39;Hello&#39;;</code>  // 작은따옴표, <strong>Hello</strong></li>
<li><code>let name = &quot;Tom&quot;;</code><br><code>console.log(`${str}, ${name}!`);</code>   // 역 따옴표(백틱) <strong>Hello, Tom!</strong></li>
</ol>
<ul>
<li>큰따옴표와 작은따옴표는 ‘기본적인’ 따옴표로, 자바스크립트에서는 이 둘에 차이를 두지 않는다.</li>
<li>역 따옴표로 변수나 표현식을 감싼 후 <strong>${ }</strong> 안에 넣어주면 원하는 변수나 표현식을 문자열 중간에 넣을 수 있다.</li>
</ul>
<h3 id="불리언boolean">불리언(Boolean)</h3>
<p>불리언은 논리타입으로 긍정을 의미하는 <strong>true</strong>와 부정을 의미하는 <strong>false</strong> 두가지 값 밖에 없다.  </p>
<h3 id="undefined">undefined</h3>
<p>undefined는 &#39;값이 할당되지 않은 상태’를 나타낼 때 사용하며, </p>
<p>변수는 선언했지만 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당된다.</p>
<p>undefined 또한 데이터형인 동시에 값인 것으로 볼 수 있다.</p>
<h3 id="null">null</h3>
<p><strong>JavaScript</strong>에선 null을 변수에 할당이 이루어졌지만 <u>‘존재하지 않는 (nothing) ’ 값</u> , <u>‘비어 있는(empty)’ 값</u> , <u>‘알 수 없는(unknown)’ 값</u> 을 나타내는 데 사용한다.</p>
<pre><code class="language-javascript">let age = null; // 값이 없음을 명하시하는 경우 null 또한 데이터형인 동시에 값이라고 할 수 있다.</code></pre>
<h3 id="typeof">typeof</h3>
<p>typeof 연산자는 두가지 형태의 문법을 지원하며 변수를 호출하면 인수의 자료형을 반환한다.</p>
<pre><code class="language-javascript">typeof undefined // &quot;undefined&quot;

typeof 0 // &quot;number&quot;

typeof true // &quot;boolean&quot;

typeof &quot;foo&quot; // &quot;string&quot;

typeof Math // &quot;object&quot;  

typeof null // &quot;object&quot;  </code></pre>
]]></description>
        </item>
    </channel>
</rss>