<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>eita_0731.log</title>
        <link>https://velog.io/</link>
        <description>기술 스택 : Javascript/Java/Spring Framework</description>
        <lastBuildDate>Tue, 15 Mar 2022 00:33:25 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. eita_0731.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/eita_0731" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[자기개발 챌린지(5주차_프로그래밍 첫걸음 시작하기:프로그래밍 기초)]]></title>
            <link>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%804%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88-rz21just</link>
            <guid>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%804%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88-rz21just</guid>
            <pubDate>Tue, 15 Mar 2022 00:33:25 GMT</pubDate>
            <description><![CDATA[<h1 id="5주차-후기">5주차 후기</h1>
<blockquote>
<p>5주차 강의는 웹 개발자 로드맵 내용으로 웹 퍼블리셔, 프론트엔드, 백엔드 직무를 하기 위해서 공부해야할 기술들을 소개하는 내용이였다.</p>
</blockquote>
<h2 id="느낀점">느낀점</h2>
<p>여러가지 배워야 할 내용을 한눈에 볼 수 있어서 좋았다. 그 중에서 혼자 따로 공부하는 내용들도 있어서 몇가지 정리를 해놓을까 한다. 아직 초보자라 생각하고 기초부터 탄탄히 다잡을 수 있도록 노력해야 겠다. </p>
<h3 id="1-git--github">(1) git &amp; Github</h3>
<p>개발자로 취직하기 위해서 여러가지 프로젝트를 경험해야 하고 포트폴리오도 작성을 해야한다는 생각은 가지고 있다. git &amp; Github는 협업을 하기 위해 사용하는 툴로 아직은 간단한 사용법만 알고 있다. 1일1커밋 이라는 말이 있는 것처럼 본 과정에 들어가면 꾸준히 해볼 예정이다.</p>
<h3 id="2-jquery">(2) jQuery</h3>
<p>쇠퇴하는 방식(아직 사용하는 회사들이 있지만 미리 익혀둘 필요 없음)이라고 소개를 하고 있었지만 경험한 나로써는 Javascript를 사용하는 것 보다 편한 것을 경험해서 틈틈히 공부해 놓을 생각이다.</p>
<h3 id="3-bootstrap">(3) Bootstrap</h3>
<p>웹 디자인 프레임워크로 css와 js 파일들을 가져와 연결함으로써 정형화된 디자인 요소들 사용한다.
확실히 초기 셋팅만 하면 가져다 쓰기만 하면 구현되는 거라 유용하다고 생각한다.
<img src="https://images.velog.io/images/eita_0731/post/3ab8d013-136a-4e16-85f1-fe28af21be88/%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%202022-03-15%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%209.16.09.png" alt=""></p>
<h3 id="4-ajax">(4) Ajax</h3>
<p>jQuery와 마찬가지로 따로 공부하면서 사용법을 배웠는데 이것도 틈틈히 공부해 놓을 생각이다.</p>
<h3 id="5-java--스프링">(5) Java &amp; 스프링</h3>
<p>내가 제일 많이 시간을 투자해야할 분야로 이 기술을 사용하는 회사로 취직을 하기 위해서 이 과정을 수강했다고 생각하면 될꺼 같다.</p>
<h3 id="6-python---mongodb--flask">(6) Python &amp;  mongoDB / Flask</h3>
<p>웹 서버를 만들고 처음 도메인 주소를 만든 웹페이지를 python 기반으로 만들었었다. java와 구문,문법은 크게 다르지 않아 어렵지 않게 배울 수 있었고 처음부터 끝까지 어떻게 구현하는지 경험할 수 있었다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹개발종합반 3주차 강의 후기]]></title>
            <link>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C%EC%A2%85%ED%95%A9%EB%B0%98-3%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C%EC%A2%85%ED%95%A9%EB%B0%98-3%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Tue, 08 Mar 2022 09:04:00 GMT</pubDate>
            <description><![CDATA[<h1 id="3주차-강의내용">3주차 강의내용</h1>
<blockquote>
<p>파이썬 기초문법 / 크롤링 / mongoDB사용하기</p>
</blockquote>
<h2 id="1-복습api값-가지고오기---ajax">(1) (복습)API값 가지고오기 - Ajax</h2>
<ul>
<li>나홀로 메모장 API로 정보 가지고 오기(폴더:sparta&gt;frontend&gt;index.html)</li>
</ul>
<pre><code class="language-jsx">&lt;script&gt;
    $(document).ready(function () {
        //cards-box값 비우기
        $(&#39;#cards-box&#39;).empty(&#39;&#39;);
        listing();
    });

    function listing() {
        $.ajax({
                  type: &quot;GET&quot;,
                  url: &quot;http://spartacodingclub.shop/post&quot;,
                  data: {},
                  success: function (response) {
                      let articles = response[&#39;articles&#39;];
                      for (let i = 0; i &lt; articles.length; i++) {
                          let article = articles[i];
                          let image = article[&quot;image&quot;];
                          let url = article[&quot;url&quot;];
                          let title = article[&quot;title&quot;];
                          let desc = article[&quot;desc&quot;];
                          let comment = article[&quot;comment&quot;];
                          let temp_html = `&lt;div class=&quot;card&quot;&gt;
                                             &lt;img class=&quot;card-img-top&quot; src=&quot;${image}&quot; alt=&quot;Card image cap&quot;&gt;
                                             &lt;div class=&quot;card-body&quot;&gt;
                                               &lt;a href=&quot;${url}&quot; target=&quot;_blank&quot; class=&quot;card-title&quot;&gt;${title}&lt;/a&gt;
                                               &lt;p class=&quot;card-text&quot;&gt;${desc}&lt;/p&gt;
                                               &lt;p class=&quot;card-text comment&quot;&gt;${comment}&lt;/p&gt;
                                             &lt;/div&gt;
                                           &lt;/div&gt;`;
                          $(&#39;#cards-box&#39;).append(temp_html);
                      }
                  }
                })
    }

    function openclose() {
        // id 값 post-box의 display 값이 block 이면
        if ($(&#39;#post-box&#39;).css(&#39;display&#39;) == &#39;block&#39;) {
            // post-box를 가리고
            $(&#39;#post-box&#39;).hide();
            $(&#39;#btn-posting-box&#39;).text(&#39;포스팅 박스 열기&#39;);
        } else {
            // 아니면 post-box를 펴라
            $(&#39;#post-box&#39;).show();
            $(&#39;#btn-posting-box&#39;).text(&#39;포스팅 박스 닫기&#39;);
        }
    }
&lt;/script&gt;</code></pre>
<p><img src="https://images.velog.io/images/eita_0731/post/9fa23955-2d07-457d-8f6d-71bb88775ed0/%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%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.46.19.png" alt=""></p>
<h2 id="2-python---패키지-사용하기requests">(2) python - 패키지 사용하기(requests)</h2>
<ul>
<li>서울시 대기 OpenAPI에서, IDEX_MVL 값이 60 미만인 구만 찍어주기<pre><code class="language-python">import requests # requests 라이브러리 설치 필요
</code></pre>
</li>
</ul>
<p>r = requests.get(&#39;<a href="http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99&#39;">http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99&#39;</a>)
rjson = r.json()</p>
<p>gus = rjson[&#39;RealtimeCityAir&#39;][&#39;row&#39;]</p>
<p>for gu in gus:
    if gu[&#39;IDEX_MVL&#39;] &lt; 60:
        print (gu[&#39;MSRSTE_NM&#39;], gu[&#39;IDEX_MVL&#39;])</p>
<pre><code>## (3) python - 크롤링(beautifulsoup4)

- 크롤링하여 영화제목 가지고 오기 
```python
import requests
from bs4 import BeautifulSoup

# URL을 읽어서 HTML를 받아오고,
headers = {&#39;User-Agent&#39; : &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36&#39;}
data = requests.get(&#39;https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&amp;date=20200303&#39;,headers=headers)

# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, &#39;html.parser&#39;)

# select를 이용해서, tr들을 불러오기
movies = soup.select(&#39;#old_content &gt; table &gt; tbody &gt; tr&#39;)

# movies (tr들) 의 반복문을 돌리기
for movie in movies:
    # movie 안에 a 가 있으면,
    a_tag = movie.select_one(&#39;td.title &gt; div &gt; a&#39;)
    if a_tag is not None:
        # a의 text를 찍어본다.
        print (a_tag.text)</code></pre><ul>
<li>bs4 기본 개념<pre><code class="language-python"># 선택자를 사용하는 방법 (copy selector)
soup.select(&#39;태그명&#39;)
soup.select(&#39;.클래스명&#39;)
soup.select(&#39;#아이디명&#39;)
</code></pre>
</li>
</ul>
<p>soup.select(&#39;상위태그명 &gt; 하위태그명 &gt; 하위태그명&#39;)
soup.select(&#39;상위태그명.클래스명 &gt; 하위태그명.클래스명&#39;)</p>
<h1 id="태그와-속성값으로-찾는-방법">태그와 속성값으로 찾는 방법</h1>
<p>soup.select(&#39;태그명[속성=&quot;값&quot;]&#39;)</p>
<h1 id="한-개만-가져오고-싶은-경우">한 개만 가져오고 싶은 경우</h1>
<p>soup.select_one(&#39;위와 동일&#39;)</p>
<pre><code>## (4) python - mongoDB조작하기(pymongo)
- 기본 셋팅
```python
from pymongo import MongoClient           # pymongo를 임포트 하기
client = MongoClient(&#39;localhost&#39;, 27017)  # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta                      # &#39;dbsparta&#39;라는 이름의 db를 만듭니다.</code></pre><ul>
<li>pymongo 기본 코드(저장,찾기,바꾸기,지우기)<pre><code class="language-python"># 저장 - 예시
doc = {&#39;name&#39;:&#39;bobby&#39;,&#39;age&#39;:21}
db.users.insert_one(doc)
</code></pre>
</li>
</ul>
<h1 id="한-개-찾기---예시">한 개 찾기 - 예시</h1>
<p>user = db.users.find_one({&#39;name&#39;:&#39;bobby&#39;})</p>
<h1 id="여러개-찾기---예시--_id-값은-제외하고-출력">여러개 찾기 - 예시 ( _id 값은 제외하고 출력)</h1>
<p>same_ages = list(db.users.find({&#39;age&#39;:21},{&#39;_id&#39;:False}))</p>
<h1 id="바꾸기---예시">바꾸기 - 예시</h1>
<p>db.users.update_one({&#39;name&#39;:&#39;bobby&#39;},{&#39;$set&#39;:{&#39;age&#39;:19}})</p>
<h1 id="지우기---예시">지우기 - 예시</h1>
<p>db.users.delete_one({&#39;name&#39;:&#39;bobby&#39;})</p>
<pre><code>
## (5) 크롤링 결과 DB에 저장/가져오기
```python
import requests
from bs4 import BeautifulSoup

from pymongo import MongoClient           # pymongo를 임포트 하기(패키지 인스톨 먼저 해야겠죠?)
client = MongoClient(&#39;localhost&#39;, 27017)  # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta                      # &#39;dbsparta&#39;라는 이름의 db를 만듭니다.

# URL을 읽어서 HTML를 받아오고,
headers = {&#39;User-Agent&#39; : &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36&#39;}
data = requests.get(&#39;https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&amp;date=20200303&#39;,headers=headers)

# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, &#39;html.parser&#39;)

# select를 이용해서, tr들을 불러오기
movies = soup.select(&#39;#old_content &gt; table &gt; tbody &gt; tr&#39;)

# movies (tr들) 의 반복문을 돌리기
for movie in movies:
    # movie 안에 a 가 있으면,
    a_tag = movie.select_one(&#39;td.title &gt; div &gt; a&#39;)
    if a_tag is not None:
        rank = movie.select_one(&#39;td:nth-child(1) &gt; img&#39;)[&#39;alt&#39;] # img 태그의 alt 속성값을 가져오기
        title = a_tag.text                                      # a 태그 사이의 텍스트를 가져오기
        star = movie.select_one(&#39;td.point&#39;).text                # td 태그 사이의 텍스트를 가져오기
        doc = {
            &#39;rank&#39; : rank,
            &#39;title&#39; : title,
            &#39;star&#39; : star
        }
        db.movies.insert_one(doc)

#매트릭스 평점 가지고 오기
target_movie = db.movies.find_one({&#39;title&#39;:&#39;매트릭스&#39;})
print (target_movie[&#39;star&#39;])

#매트릭스와 평점 같은 영화 제목 가지고 오기
target_star = target_movie[&#39;star&#39;]
movies = list(db.movies.find({&#39;star&#39;:target_star}))

for movie in movies:
    print(movie[&#39;title&#39;])

#매트릭스 평점 &#39;0&#39;으로 바꾸기
db.movies.update_one({&#39;title&#39;:&#39;매트릭스&#39;},{&#39;$set&#39;:{&#39;star&#39;:&#39;0&#39;}})</code></pre><h2 id="6-3주차-과제---지니뮤직-크롤링">(6) 3주차 과제 - 지니뮤직 크롤링</h2>
<pre><code class="language-python">import requests
from bs4 import BeautifulSoup

headers = {&#39;User-Agent&#39; : &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36&#39;}
data = requests.get(&#39;https://www.genie.co.kr/chart/top200?ditc=D&amp;ymd=20200403&amp;hh=23&amp;rtm=N&amp;pg=1&#39;,headers=headers)

soup = BeautifulSoup(data.text, &#39;html.parser&#39;)

trs = soup.select(&#39;#body-content &gt; div.newest-list &gt; div &gt; table &gt; tbody &gt; tr&#39;)

for tr in trs:
    title = tr.select_one(&#39;td.info &gt; a.title.ellipsis&#39;).text.strip()
    rank = tr.select_one(&#39;td.number&#39;).text[0:2].strip()
    artist = tr.select_one(&#39;td.info &gt; a.artist.ellipsis&#39;).text
    print(rank, title, artist)</code></pre>
<p><img src="https://images.velog.io/images/eita_0731/post/3e63337e-6d1c-43b6-a3fc-659de42b0b49/image.png" alt=""></p>
<h2 id="7-느낀점">(7) 느낀점</h2>
<p> 처음에 Javascript로 공부할때는 구문자체가 좀 복잡하다는 느낌이 있었는데 jQuery와 jAax가 사용하기 간편한 것 같다. python은 자바를 공부해놔서 인지 크게 어려움이 있지는 않았다. 크롤링 하는 것도 처음 접해보는 거라 재미있게 배울수 있었다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자기개발 챌린지(4주차_프로그래밍 첫걸음 시작하기:프로그래밍 기초)]]></title>
            <link>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%804%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%804%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Tue, 08 Mar 2022 08:15:21 GMT</pubDate>
            <description><![CDATA[<h1 id="4주차-후기">4주차 후기</h1>
<blockquote>
<p>4주차 강의는 Javascript 부분으로 웹사이트에서 동작에 따라 변화되는 내용을 만들어 보았다.</p>
</blockquote>
<h2 id="1실습-내용">(1)실습 내용</h2>
<ul>
<li>이번 Javascript부분은 별도 과제는 없이 같이 실습하면서 만들어나가는 과정으로 진행하였다.</li>
<li>header태그의 nav메뉴 선택시 화면 전환과 main태그 side-bar 보기옵션 클릭시 조건에 맞게 화면이 보여지는 기능을 만들면 된다.</li>
</ul>
<p><img src="https://images.velog.io/images/eita_0731/post/369804e2-9aba-4619-b7b0-b1e22699f6f8/%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%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.15.47.png" alt=""></p>
<h2 id="2실습-결과물">(2)실습 결과물</h2>
<h3 id="1️⃣-header태그의-nav-메뉴-선택시-화면-전환">1️⃣ header태그의 nav 메뉴 선택시 화면 전환</h3>
<p>[html]</p>
<pre><code class="language-html">&lt;nav class=&quot;nav&quot;&gt;
  &lt;ul&gt;
    &lt;li class=&quot;gallery on&quot; onclick=&quot;setMenu(&#39;gallery&#39;)&quot;&gt;사진들 보기&lt;/li&gt;
    &lt;li class=&quot;upload&quot; onclick=&quot;setMenu(&#39;upload&#39;)&quot;&gt;사진 올리기&lt;/li&gt;
    &lt;li class=&quot;myinfo&quot; onclick=&quot;setMenu(&#39;myinfo&#39;)&quot;&gt;내 정보&lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</code></pre>
<p>[Javascript]</p>
<pre><code class="language-javascript">function setMenu(_menu) {
    //main 요소 클래스 설정
    document.querySelector(&quot;main&quot;).className = _menu;
    //모든 메뉴 버튼의 on 해제하기
    let filterButtons = document.querySelectorAll(&quot;nav li&quot;);
    filterButtons.forEach(function(filterButton) {
        filterButton.classList.remove(&quot;on&quot;);        
    });
    //선택한 메뉴 버튼 on으로 설정하기
    document.querySelector(&quot;nav li.&quot;+_menu).classList.add(&quot;on&quot;);
}</code></pre>
<h3 id="2️⃣----upload메뉴에서-input에-입력한-글자수-표기">2️⃣    upload메뉴에서 input에 입력한 글자수 표기</h3>
<p>[html]</p>
<pre><code class="language-html">&lt;div class=&quot;instruction&quot;&gt;나만의 특별한 사진을 업로드합니다.&lt;/div&gt;
&lt;input class=&quot;description&quot; type=&quot;text&quot; maxlength=&quot;20&quot; placeholder=&quot;사진 설명을 20자 이내로 적어주세요.&quot; onkeyup=&quot;setDescLength()&quot;/&gt;
&lt;span class=&quot;descLength&quot;&gt;0/20&lt;/span&gt;</code></pre>
<p>[Javascript]</p>
<pre><code class="language-javascript">//글자수 입력 표기 함수
function setDescLength() {
    let descLength = document.querySelector(&quot;.descLength&quot;);
    let description = document.querySelector(&quot;.description&quot;);
    descLength.innerHTML = description.value.length + &quot;/20&quot;;
}</code></pre>
<h3 id="3️⃣-페이지-로드시-내정보-메뉴-셋팅">3️⃣ 페이지 로드시 내정보 메뉴 셋팅</h3>
<p>=&gt; init함수에 showMyInfo함수 호출/body 태그에 onload=&quot;init()&quot; 속성 추가</p>
<h3 id="4️⃣-내정보-수정확인취소-버튼-기능-만들기">4️⃣ 내정보 수정&amp;확인&amp;취소 버튼 기능 만들기</h3>
<p>[html]</p>
<pre><code class="language-html">&lt;div class=&quot;mi-dep non-edit button&quot; onclick=&quot;setEditMyInfo(true)&quot;&gt;수정&lt;/div&gt;
&lt;div class=&quot;mi-dep edit button&quot; onclick=&quot;updateMyInfo()&quot;&gt;확인&lt;/div&gt;
&lt;div class=&quot;mi-dep edit button cancel&quot; onclick=&quot;setEditMyInfo(false)&quot;&gt;취소&lt;/div&gt;</code></pre>
<p>[javascript]</p>
<pre><code class="language-javascript">//내정보 보여주기
function showMyInfo() {
    //my_info 항목 내용 채우기
    document.querySelector(&quot;#myInfoId&quot;).innerHTML = my_info.id;
    document.querySelector(&quot;#myInfoUserName&quot;).innerHTML = my_info.user_name;
    document.querySelector(&quot;#sp-intro&quot;).innerHTML = my_info.introduction;
    document.querySelector(&quot;#ip-intro&quot;).value = my_info.introduction;
    //radio타입 input 체크 설정
    document.querySelector(&quot;#myinfo input[type=radio][value=&quot;+my_info.as+&quot;]&quot;).checked = true;

    //checkbox타입 input 체크 설정
    //interest항목 전체 check해제 하기
    document.querySelectorAll(&quot;#myinfo input[type=checkbox]&quot;)
        .forEach(function(checkbox) {
            checkbox.checked = false;
        });
    //myinfo interest항목 check설정 하기
    my_info.interest.forEach(function(interest) {
        document.querySelector(&quot;#myinfo input[type=checkbox][value=&quot;+interest+&quot;]&quot;).checked = true;
    });
}

//myinfo 수정 모드 켜고 끄기
function setEditMyInfo (on) {
    //&quot;edit&quot;,&quot;non-edit&quot;요소 클래스 선택
    document.querySelector(&quot;#myinfo &gt; div&quot;).className = on ? &quot;edit&quot; : &quot;non-edit&quot;;
    //input항목 입력 활성화
    document.querySelectorAll(&quot;#myinfo input&quot;).forEach(function(input) {
        input.disabled = !on;
    });
    //수정하다 취소시 입력창 원상복구
    showMyInfo();
}

function updateMyInfo() {
    //소개input 수정한 값 저장
    my_info.introduction = document.querySelector(&quot;#ip-intro&quot;).value;
    //취미input 수정한 값 저장
    my_info.as = document.querySelector(&quot;#myinfo input[type=radio]:checked&quot;).value;
    //흥미input 배열로 수정한 값 저장
    let interests = [];
    document.querySelectorAll(&quot;#myinfo input[type=checkbox]:checked&quot;)
        .forEach(function(checked) {
            interests.push(checked.value);
        });
    my_info.interest = interests;
    //취소버튼 선택시 원래값 그대로 저장
    setEditMyInfo(false);
    //확인버튼 선택시 수정 저장된 값 반영하여 저장
    showMyInfo();
}</code></pre>
<h3 id="5️⃣-article-요소와-photo객체-보여주기">5️⃣ article 요소와 photo객체 보여주기</h3>
<p>[html]</p>
<pre><code class="language-html">&lt;section id=&quot;gallery&quot; class=&quot;dep _gallery &quot;&gt;
  &lt;article class=&quot;hidden&quot;&gt;
    &lt;div class=&quot;photo&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;info&quot;&gt;
      &lt;div class=&quot;like&quot;&gt;&lt;/div&gt;
      &lt;div class=&quot;author&quot;&gt;&lt;/div&gt;
      &lt;div class=&quot;desc&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
  &lt;/article&gt;
&lt;/section&gt;</code></pre>
<p>[Javascript]</p>
<pre><code class="language-javascript">//photos 객체 보여주기
function showPhotos() {
    //현존하는 썸네일 삭제
    let existingNodes = document.querySelectorAll(&quot;#gallery article:not(.hidden)&quot;);
    existingNodes.forEach(function(existingNode) {
        existingNode.remove();
    }); 
    //gallery클래스 선택
    let gallery = document.querySelector(&quot;#gallery&quot;);

    photos.forEach(function(photo) {
        //photos객체 보여주기 위한 클론노드 만들고 숨김 풀기
        let photoNode = document.querySelector(&quot;article.hidden&quot;).cloneNode(true);
        photoNode.classList.remove(&quot;hidden&quot;);

        //photos 객체 저장
        photoNode.querySelector(&quot;.author&quot;).innerHTML = photo.user_name;
        photoNode.querySelector(&quot;.desc&quot;).innerHTML = photo.description;
        photoNode.querySelector(&quot;.like&quot;).innerHTML = photo.likes;
        photoNode.querySelector(&quot;.photo&quot;).style.backgroundImage
            = &quot;url(&#39;./img/photo/&quot;+photo.file_name+&quot;&#39;)&quot;;

        // my_info like 선택 시 heart on 표시    
        if (my_info.like.indexOf(photo.idx) &gt; -1) {
            photoNode.querySelector(&quot;.like&quot;).classList.add(&quot;on&quot;);
        }
        // toggle버튼 리스너 
        photoNode.querySelector(&quot;.like&quot;).addEventListener(
            &quot;click&quot;, function () { toggleLike(photo.idx) }
        );
        //photoNode에 저장한 객체 gallery에 보내기
        gallery.append(photoNode);
    });
}

function toggleLike(idx) {
    if(my_info.like.indexOf(idx) === -1) {
        //my_info가 좋아요하지 않은 사진일 때 -&gt; 좋아요로 바꿈
        my_info.like.push(idx);
        for(let i=0 ; i&lt;photos.length ; i++) {
            if(photos[i].idx === idx) {
                photos[i].likes++;
                break;
            }
        }
    } else {
        //my_info가 좋아요한 사진일 때 -&gt; 좋아요 해제
        my_info.like = my_info.like.filter(function (it) {
            return it !== idx; 
        });
        for (var i = 0; i &lt; photos.length; i++) {
            if (photos[i].idx === idx) {
                photos[i].likes--;
                break;
            }
        }
    }
    showPhotos();
}</code></pre>
<h3 id="6️⃣-side-bar-정렬기능-넣기">6️⃣ side-bar 정렬기능 넣기</h3>
<p>[html]</p>
<pre><code class="language-html">&lt;ul id=&quot;sorts&quot; class=&quot;dep _gallery&quot;&gt;
  &lt;li class=&quot;recent on&quot; onclick=&quot;setSort(&#39;recent&#39;)&quot;&gt;최신순 보기&lt;/li&gt;
  &lt;li class=&quot;like&quot; onclick=&quot;setSort(&#39;like&#39;)&quot;&gt;좋아요 순 보기&lt;/li&gt;
&lt;/ul&gt;
&lt;ul id=&quot;filters&quot; class=&quot;dep _gallery&quot;&gt;
  &lt;li class=&quot;all on&quot; onclick=&quot;setFilter(&#39;all&#39;)&quot;&gt;전체 사진&lt;/li&gt;
  &lt;li class=&quot;mine&quot; onclick=&quot;setFilter(&#39;mine&#39;)&quot;&gt;내 사진 사진&lt;/li&gt;
  &lt;li class=&quot;like&quot; onclick=&quot;setFilter(&#39;like&#39;)&quot;&gt;좋아요 한 사진&lt;/li&gt;
  &lt;li class=&quot;follow&quot; onclick=&quot;setFilter(&#39;follow&#39;)&quot;&gt;팔로우 회원 사진&lt;/li&gt;
&lt;/ul&gt;</code></pre>
<p>[Javascript]</p>
<pre><code class="language-javascript">//정렬방식(최신순,좋아요순)
let sorts = {
    recent: function (a, b) { return (a.idx &gt; b.idx) ? -1 : 1 },
    like: function (a, b) { return (a.likes &gt; b.likes) ? -1 : 1 }
};
//현재 정렬방식(최신순)
let sort = sorts.recent;

//side-bar 메뉴 선택시 정렬 및 on 표시
function setSort(_sort) {
    //모든 메뉴 on 제거
    let sortButtons = document.querySelectorAll(&quot;#sorts li&quot;);
    sortButtons.forEach(function(sortButton) {
        sortButton.classList.remove(&#39;on&#39;);        
    });
    //선택한 메뉴에 on 표시
    document.querySelector(&quot;#sorts .&quot;+_sort).classList.add(&quot;on&quot;);
    sort = sorts[_sort];
    showPhotos();
}

//필터방식(전체,내사진,좋아요한 사진,팔로우한 사진)
let filters = {
    all: function (it) { return true; },
    mine: function (it) { return it.user_id === my_info.id; },
    like: function (it) { return my_info.like.indexOf(it.idx) &gt; -1; },
    follow: function (it) { return my_info.follow.indexOf(it.user_id) &gt; -1; }
}

//현재 필터방식(전체)
let filter = filters.all;

//side-bar 메뉴 선택시 필터 및 on 표시
function setFilter(_filter) {
    //모든 메뉴 on 제거
    let filterButtons = document.querySelectorAll(&quot;#filters li&quot;);
    filterButtons.forEach(function(filterButton) {
        filterButton.classList.remove(&#39;on&#39;);
    });
    //선택한 메뉴에 on 표시
    document.querySelector(&quot;#filters .&quot;+_filter).classList.add(&quot;on&quot;);
    filter = filters[_filter];
    showPhotos();
}</code></pre>
<p>⏹showphotos() 함수에 필터&amp;정렬 적용하기</p>
<pre><code class="language-javascript">    var filtered = photos.filter(filter);
    filtered.sort(sort);

    filtered.forEach(function(photo) {
        ...
    }</code></pre>
<p><img src="https://images.velog.io/images/eita_0731/post/387f665a-2e16-4940-9cd1-c15be7f12c3f/%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%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.41.20.png" alt=""></p>
<p><img src="https://images.velog.io/images/eita_0731/post/f2ddc5f5-acd0-4efd-a14d-ebcbce878b18/%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%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.41.39.png" alt=""></p>
<p><img src="https://images.velog.io/images/eita_0731/post/858e5360-95d8-4138-a2db-9ad04aed93f1/%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%202022-03-08%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.42.03.png" alt=""></p>
<h2 id="4주차-수강-후기">4주차 수강 후기</h2>
<p>기본 웹페이지에 생명을 불어 넣는다는 느낌이랄까. 버튼을 클릭 했을때 페이지가 보여지고 동작하는 것에 대한 재미가 느껴졌다. 처음 강의를 들을 때 객체나 배열의 자바스크립트 동작하는 게 아직은 버벅거리지만 두번째 혼자 하면서 함수 기능 및 동작을 제대로 이해할 수 있었다. 여러번 반복하다 보면 익숙해 질 것이라고 생각한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹개발 종합반 2주차 강의 후기]]></title>
            <link>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%A2%85%ED%95%A9%EB%B0%98-2%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%A2%85%ED%95%A9%EB%B0%98-2%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Fri, 25 Feb 2022 08:59:39 GMT</pubDate>
            <description><![CDATA[<h1 id="2주차-과제">2주차 과제</h1>
<p>JQuery와 Ajax로 환율API를 사용하여 홈페이지 주소 입력시 환율이 바로 보여지게 하기(1주차 과제 화면에 기능 추가)</p>
<h2 id="1-script부분">(1) script부분</h2>
<pre><code class="language-javascript">//홈페이지 주소 입력시 바로 환율정보 보여주는 기능
$(document).ready(function () {
    exchange();
})

function alarm() {
    alert(&#39;주문이 완료 되었습니다!&#39;);
}

//환율 API에서 환율정보 가지고 오기
function exchange() {
    $.ajax({
        type: &quot;GET&quot;,
        url: &quot;http://spartacodingclub.shop/sparta_api/rate&quot;,
        data: {},
        success: function (response) {
            let dollar = response.rate;
            temp_html = `&lt;p&gt;달러-원 환율 : ${dollar}&lt;/p&gt;`;
            $(&#39;#exchange-dollar&#39;).append(temp_html);
        }
    })
}</code></pre>
<h2 id="2-나머지bodystyle">(2) 나머지(body,style)</h2>
<p>div태그에 id=&quot;exchange-dollar&quot; class=&quot;doller&quot;로 명시하여</p>
<pre><code class="language-javascript">.dollar {
    color : blue;
    font-size: 1.5em;
    font-weight: bold;
}</code></pre>
<p>로 꾸며주었다.</p>
<h2 id="3-최종-화면">(3) 최종 화면</h2>
<p><img src="https://images.velog.io/images/eita_0731/post/f7b81c6b-7e79-4817-b653-1e799a6930f1/%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%202022-02-25%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.53.44.png" alt=""></p>
<h2 id="4-느낀점">(4) 느낀점</h2>
<p>JQuery와 Ajax는 처음 다뤄봤는데 자바스크립트랑 동일 선상이라는 느낌을 많이 받아서 크게 이해하기 어려운 부분은 없었던 거 같다. 그래도 강좌에서 배운 부분은 극히 일부분이라고 생각하고 나중에 다른 자료를 찾아서 조금 더 공부를 할 예정이다. API 정보를 가지고 올때 객체 정보를 잘 파악해서 어떤 값을 가지고 와야하는지 헤메지 않도록 반복 연습 잊지 말기!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[웹개발 종합반 1주차 강의 후기]]></title>
            <link>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%A2%85%ED%95%A9%EB%B0%98-1%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@eita_0731/%EC%9B%B9%EA%B0%9C%EB%B0%9C-%EC%A2%85%ED%95%A9%EB%B0%98-1%EC%A3%BC%EC%B0%A8-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Wed, 23 Feb 2022 04:07:36 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>패스트캠퍼스에서 백엔드과정 프리코스로 [프로그래밍기초] 수업을 듣고 있지만, 설 연휴기간에 스파르타코딩클럽에서 제공하는 무료강의 2개(덕담코딩,코딩용어)를 듣고 나서 핵심만 딱딱 집어준다는 느낌이 들어 웹개발종합반 국비지원 강의도 신청해서 듣게 되었다. 5주 코스인데 최대 8개 강의까지 들을 수 있어서 하루에 8개씩 쭉쭉 듣고 있는 중이다.
<img src="https://images.velog.io/images/eita_0731/post/166b2c9c-83e2-4204-8b43-808614d87502/%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%202022-02-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.48.10.png" alt=""></p>
</blockquote>
<h1 id="1주차-과제">1주차 과제</h1>
<p>아래 기획서를 보고, 부트스트랩을 활용해서 나만의쇼핑몰의 메인 페이지를 완성해주세요.(아이템은 랜덤)</p>
<ul>
<li>기능: 주문하기 버튼을 클릭했을 때 &#39;주문이 완료되었습니다.&#39;라는 얼럿을 띄워주세요.
<img src="https://images.velog.io/images/eita_0731/post/be4344c0-bc6a-40fa-9916-6d3e362a879b/%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%202022-02-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.53.40.png" alt=""></li>
</ul>
<h2 id="1-htmlbody부분">(1) html(body부분)</h2>
<p>input요소들은 부트스트랩에 있는 템플릿을 사용하였으니 참고하면 될꺼 같다.</p>
<pre><code>&lt;div class=&quot;wrap&quot;&gt;
    &lt;div class=&quot;product_photo&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;product_desc&quot;&gt;
        &lt;h1&gt;락앤락 퓨어텀블러&lt;span&gt;가격:12,500원/1개&lt;/span&gt;&lt;/h1&gt;
        &lt;p&gt;다섯가지 파스텔 컬러로 만나는 퓨어텀블러! 한손으로 간편하게 오픈하는 스윙형 뚜껑. 좌우로 돌려 간편하게 오픈하는 스윙형 마개로 운전 중에도
            한 손으로 캡을 열어 마실 수 있으며, 오픈 된 마개에 스트로우를 꽂아 사용할 수 있어 편리합니다. 아래가 좁아지는 디자인으로 그립감을 살려
            한 손에 들고 마시기 편리하며, 차량 컵 홀더에도 거치하기 좋아요.&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;input-group mb-3&quot;&gt;
        &lt;div class=&quot;input-group-prepend&quot;&gt;
            &lt;span class=&quot;input-group-text&quot; id=&quot;inputGroup-sizing-default&quot;&gt;주문자 이름&lt;/span&gt;
        &lt;/div&gt;
        &lt;input type=&quot;text&quot; class=&quot;form-control&quot; aria-label=&quot;Default&quot; aria-describedby=&quot;inputGroup-sizing-default&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;input-group mb-3&quot;&gt;
        &lt;div class=&quot;input-group-prepend&quot;&gt;
            &lt;label class=&quot;input-group-text&quot; for=&quot;inputGroupSelect01&quot;&gt;수량&lt;/label&gt;
        &lt;/div&gt;
        &lt;select class=&quot;custom-select&quot; id=&quot;inputGroupSelect01&quot;&gt;
            &lt;option selected&gt;--수량을 선택하세요--&lt;/option&gt;
            &lt;option value=&quot;1&quot;&gt;1&lt;/option&gt;
            &lt;option value=&quot;2&quot;&gt;2&lt;/option&gt;
            &lt;option value=&quot;3&quot;&gt;3&lt;/option&gt;
        &lt;/select&gt;
    &lt;/div&gt;
    &lt;div class=&quot;input-group mb-3&quot;&gt;
        &lt;div class=&quot;input-group-prepend&quot;&gt;
            &lt;span class=&quot;input-group-text&quot; id=&quot;inputGroup-sizing-default&quot;&gt;주소&lt;/span&gt;
        &lt;/div&gt;
        &lt;input type=&quot;text&quot; class=&quot;form-control&quot; aria-label=&quot;Default&quot; aria-describedby=&quot;inputGroup-sizing-default&quot;&gt;
    &lt;/div&gt;
    &lt;div class=&quot;input-group mb-3&quot;&gt;
        &lt;div class=&quot;input-group-prepend&quot;&gt;
            &lt;span class=&quot;input-group-text&quot; id=&quot;inputGroup-sizing-default&quot;&gt;전화번호&lt;/span&gt;
        &lt;/div&gt;
        &lt;input type=&quot;text&quot; class=&quot;form-control&quot; aria-label=&quot;Default&quot; aria-describedby=&quot;inputGroup-sizing-default&quot;&gt;
    &lt;/div&gt;
    &lt;button type=&quot;button&quot; class=&quot;btn btn-primary&quot; onclick=&quot;alarm()&quot;&gt;주문하기&lt;/button&gt;
&lt;/div&gt;</code></pre><h2 id="2-cssjavascript">(2) CSS,Javascript</h2>
<pre><code>&lt;style&gt;
    * {
        font-family: &#39;Nanum Pen Script&#39;, cursive;
    }

    .wrap {
        width: 600px;
        margin: 50px auto;
    }

    .product_photo {
        width: 400px;
        height: 400px;
        margin: 10px auto;
        background-image: url(&quot;http://img.danawa.com/prod_img/500000/990/828/img/8828990_1.jpg?shrink=330:330&amp;_v=20210309173752&quot;);
        background-position: center;
        background-size: cover;
    }

    .product_desc span {
        font-size: 24px;
    }

    .product_desc p {
        font-size: 20px
    }

    .btn-primary {
        display: block;
        margin: 0 auto;
    }
&lt;/style&gt;</code></pre><pre><code>&lt;script&gt;
    function alarm() {
        alert(&#39;주문이 완료 되었습니다!&#39;);
    }
&lt;/script&gt;</code></pre><h2 id="3-최종-화면">(3) 최종 화면</h2>
<p><img src="https://images.velog.io/images/eita_0731/post/3bb6d929-89c0-4162-a8ae-c4d983be1916/%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%202022-02-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.01.18.png" alt=""></p>
<h2 id="4-느낀점">(4) 느낀점</h2>
<p> 부트스트랩 템플릿을 이용하니 만족스러운 디자인으로 웹페이지를 만들수 있어서 좋은 거 같다. 처음부터 하나하나 짜보는 것도 중요하지만 필요한 기능을 찾아서 적절히 사용하는 것을 많이 할거 같아서 중요한 부분과 필요한 코드를 따로 정리하여 한눈에 볼 수 있도록 보관해야 겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자기개발 챌린지(3주차_프로그래밍 첫걸음 시작하기:프로그래밍 기초)]]></title>
            <link>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%803%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%803%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Wed, 23 Feb 2022 03:40:57 GMT</pubDate>
            <description><![CDATA[<h1 id="3주차-후기">3주차 후기</h1>
<blockquote>
<p>3주차 강의는 CSS부분 전체적인 내용으로 html,css문서를 따로 저장하여 작성하는 것까지 만들어 보았다. </p>
</blockquote>
<h2 id="1-과제-내용">(1) 과제 내용</h2>
<ul>
<li>아래 사이트에 CSS 요소들을 적용해 완성하는 과제이다.</li>
<li>대략적인 코드는 작성이 되어 있는 상태이고 main태그의 content클래스의 CSS를 입혀주면 된다.
<img src="https://images.velog.io/images/eita_0731/post/9f970871-b529-41cf-a641-f0c8f1063251/%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%202022-02-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.28.46.png" alt=""></li>
</ul>
<h2 id="2-과제-결과">(2) 과제 결과</h2>
<p><img src="https://images.velog.io/images/eita_0731/post/ab49312c-194a-46b3-9fca-98a0f15e9da4/%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%202022-02-23%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.26.00.png" alt=""></p>
<ul>
<li>원래는 주황색인 것을 보라색으로도 변경해 보았다.</li>
<li>크게 어려운 부분은 없었는데 gird 레이아웃의 개념이 처음에 잘 안잡혀서 별도로 개념 검색을 했는데 좋은 사이트를 발견해서 참고로 남겨둔다.(<a href="https://studiomeal.com/archives/533">https://studiomeal.com/archives/533</a>)</li>
</ul>
<h2 id="3주차-수강-후기">3주차 수강 후기</h2>
<p>CSS부분 강의로 듣고 나니 전반적으로 소스를 보면 어떤 속성들이 쓰였는지 확인이 가능할 정도가 된거 같다. 아직까지는 클론코딩 하는 것도 버벅 거리지만 많이 연습하다 보면 이것 또한 익숙해질 거라고 생각한다. 반복만이 살길!
grid 레이아웃을 생각할 때와 margin/padding을 어느 부모/자식에 넣어야 되는지가 헷갈리는데 이부분을 중점으로 확실히 집고 넘어갈 수 있도록 해야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자기개발 챌린지(2주차_프로그래밍 첫걸음 시작하기:프로그래밍 기초)]]></title>
            <link>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%802%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%802%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Wed, 16 Feb 2022 14:23:11 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/eita_0731/post/dbf9553b-4e49-49d8-920c-a0b4af079966/image.png" alt=""></p>
<h2 id="2주차">2주차</h2>
<blockquote>
<p>2주차 강의는 HTML 뼈대 만들기 내용으로 body태그 내에 작성되는 HTML기본 태그 위주의 강의였다. 주로 사용하는 div태그와 class명을 잘 주어야 하는 것, 좋은 코드를 위해 시맨틱 태그를 잘 활용해야 하는 점을 숙지하였다. 과제로 주어진 코드에 빈칸을 채우는 형식으로 aside클래스 부분 section intro클래스 부분, 테이블을 이용한 section form 클래스 부분을 만들어 보았다.</p>
</blockquote>
<h3 id="1-aside클래스-section-intro-클래스">(1) aside클래스, section intro 클래스</h3>
<ul>
<li>ul, li 태그를 이용해서 aside 클래스 작성<pre><code>&lt;aside class=&quot;aside&quot;&gt;
  &lt;div class=&quot;option-title&quot;&gt;사진 업로드&lt;/div&gt;
  &lt;!-- 이곳을 채워넣으세요. --&gt;
  &lt;ol&gt;
      &lt;li&gt;양식을 작성한다.&lt;/li&gt;
      &lt;li&gt;사진파일을 첨부한다.&lt;/li&gt;
      &lt;li&gt;올리기 버튼을 누른다.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/aside&gt;</code></pre></li>
<li>h1, p 태그를 이용해서 section intro 클래스 작성<pre><code>&lt;section class=&quot;section intro&quot;&gt;
   &lt;!-- 이곳을 채워넣으세요. --&gt;
  &lt;h1&gt;사진 올리기&lt;/h1&gt;
  &lt;p&gt;
  수많은 이용자들이 공유하는 멋진 &lt;b&gt;사진&lt;/b&gt;들을 구경하고&lt;br&gt;
  내가 직접 찍은 작품들을 공유하세요!
  &lt;/p&gt;
&lt;/section&gt;</code></pre><img src="https://images.velog.io/images/eita_0731/post/3a9de1ca-7b17-4995-a2b5-9bdf80420cc7/image.png" alt=""></li>
</ul>
<h3 id="2-section-form-클래스">(2) section form 클래스</h3>
<ul>
<li>table, form 태그를 이용하여 작성<pre><code>&lt;section class=&quot;section form&quot;&gt;
  &lt;!-- 이곳을 채워넣으세요. --&gt;
  &lt;table&gt;
      &lt;caption&gt;사진 업로드 폼&lt;/caption&gt;
      &lt;tr&gt;
          &lt;th&gt;저자 정보&lt;/th&gt;
          &lt;td&gt;
              &lt;label for=&quot;uName&quot;&gt;이름&lt;/label&gt;
              &lt;input id=&quot;uName&quot; type=&quot;text&quot; /&gt;
              &lt;br&gt;
              &lt;input id=&quot;public&quot; name=&quot;person&quot; type=&quot;radio&quot; checked /&gt;
              &lt;label for=&quot;public&quot;&gt;일반인&lt;/label&gt;
              &lt;input id=&quot;master&quot; name=&quot;person&quot; type=&quot;radio&quot; /&gt;
              &lt;label for=&quot;master&quot;&gt;전문가&lt;/label&gt;
          &lt;/td&gt;
          &lt;td rowspan=&quot;3&quot;&gt;
              &lt;p&gt;패스트캠퍼스 광고&lt;/p&gt;
              &lt;img src=&quot;img/fastcampus-ad.png&quot; alt=&quot;패스트캠퍼스 광고&quot;/&gt;
              &lt;p&gt;패스트캠퍼스의 프로그래밍 첫걸음 올인원 패키지 강좌로&lt;br&gt;여러분의 설레는 첫 코딩을 시작하세요!&lt;/p&gt;
              &lt;a href=&quot;https://fastcampus.co.kr/&quot; target=&quot;_blank&quot;&gt;패스트캠퍼스 사이트 바로가기&lt;/a&gt; 
          &lt;/td&gt;
      &lt;/tr&gt;
      &lt;th&gt;사진 정보&lt;/th&gt;
      &lt;td&gt;
          &lt;label for=&quot;title&quot;&gt;제목&lt;/label&gt;
          &lt;input id=&quot;title&quot; type=&quot;text&quot; /&gt;
          &lt;br&gt;
          &lt;label for=&quot;thema&quot;&gt;주제&lt;/label&gt;
          &lt;select id=&quot;thema&quot;&gt;
              &lt;option value=&quot;nature&quot;&gt;자연&lt;/option&gt;
              &lt;option value=&quot;city&quot;&gt;도시&lt;/option&gt;
              &lt;option value=&quot;object&quot;&gt;사물&lt;/option&gt;
              &lt;option value=&quot;people&quot;&gt;사람&lt;/option&gt;
              &lt;option value=&quot;animal&quot;&gt;동물&lt;/option&gt;
          &lt;/select&gt;
          &lt;br&gt;
          &lt;label for=&quot;explain&quot;&gt;설명&lt;/label&gt;
          &lt;textarea id=&quot;explain&quot; placeholder=&quot;사진에 담은 생각 등을 자유롭게 적어주세요.&quot; rows=&quot;15&quot;&gt;&lt;/textarea&gt;
      &lt;/td&gt;
      &lt;tr&gt;
          &lt;th colspan=&quot;2&quot; align=&quot;left&quot;&gt;
              &lt;label for=&quot;photo&quot;&gt;사진 첨부&lt;/label&gt;
              &lt;input id=&quot;photo&quot; type=&quot;file&quot; /&gt;
          &lt;/th&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th colspan=&quot;3&quot; align=&quot;left&quot;&gt;
              &lt;button type=&quot;submit&quot;&gt;올리기&lt;/button&gt;
              &lt;button type=&quot;button&quot;&gt;취소&lt;/button&gt;
          &lt;/th&gt;
      &lt;/tr&gt;
  &lt;/table&gt;
&lt;/section&gt;</code></pre><img src="https://images.velog.io/images/eita_0731/post/4866aa49-2035-46b4-914f-8c1b2cb63c61/image.png" alt=""></li>
</ul>
<h2 id="2주차-수강-후기">2주차 수강 후기</h2>
<p>아직 이해하기 어렵거나 복잡한 게 나오지 않아 특별히 어렵거나 힘든 점은 없다. 점점 진도가 나가면서 나오는 개념들을 따로 정리를 해서 반복적으로 볼수 있도록 단원화를 하고 있다. 아직 영타가 어색해서 느린편인데 예제 코드나 클론 코딩을 하면서 반복적으로 꾸준히 하다 보면 나아질 것이라고 생각한다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[자기개발 챌린지(1주차_프로그래밍 첫걸음 시작하기 : 프로그래밍 기초)]]></title>
            <link>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%801%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@eita_0731/%EC%9E%90%EA%B8%B0%EA%B0%9C%EB%B0%9C-%EC%B1%8C%EB%A6%B0%EC%A7%801%EC%A3%BC%EC%B0%A8%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B2%AB%EA%B1%B8%EC%9D%8C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Thu, 10 Feb 2022 09:03:26 GMT</pubDate>
            <description><![CDATA[<h2 id="수강하게-된-이유">수강하게 된 이유</h2>
<p>프로그래밍 기초를 배우는 건 아니였고 &quot;메가바이트 스쿨-핀테크 서비스 백엔드 개발자 취업 완성&quot;수강의 프리 코스로 수료시 가산점이 있다고 해서 수강하게 되었고, 기초도 다시 복기할 겸 빠르게 수강할 계획이다.</p>
<h2 id="1주차">1주차</h2>
<p><img src="https://images.velog.io/images/eita_0731/post/05a387d8-4ce6-4b91-89df-c52447726064/KakaoTalk_20220210_174150141.jpg" alt=""></p>
<blockquote>
<p>1주차 강의는 강의 진행방식과 프로그래밍 공부 시작 전 개요의 내용이 대부분으로 가볍게 들었고 그 중에 &quot;개발자와 대화하기&quot; 부분에서 익숙치 않은 키워드 중심으로 따로 정리를 해봤다. 기술 면접 등 개념을 익히는 정도로 보면 좋을꺼 같다.</p>
</blockquote>
<p>(1) 퍼블리셔 : 정해진 일정에 따라 인터넷상에서 정보나 콘텐츠를 수집하고 이용자에게 정보를 제공하는 서비스를 수행하는 프로그램(시각화를 위한 가벼운 코딩정도)</p>
<p>(2) 브라우저의 호환성</p>
<ul>
<li>웹 표준 : 어떤 브라우저를 쓰든 표준화에 맞춰서 제작(크롬,사파리 등)<pre><code>       ※인터넷 익스플로러 : 유일하게 웹 표준을 지키지 않는 존재</code></pre></li>
<li>호환성 : 어떤 브라우저를 사용하던 동일하게 보여지게 하는 것</li>
</ul>
<p>(3) Native, WebApp</p>
<ul>
<li>Native : 각 모바일 OS에 따라 맞춰서 개발(둘다 돌아가는 것도 있음:플러터)/해당환경에 최적화되어 있음,개발자를 따로 둬야함, 업데이트에 대한 불편(검토 및 심사시간발생)</li>
<li>WebApp : 앱 안에 웹사이트 형태로 올라가게 개발/바로 변경이 가능하다. 성능의 제약은 있음</li>
</ul>
<p>(5) 적응형, 반응형
크기에 따라 PC용/모바일용 따로 보여지는 사이트 → 적응형 웹
페이지를 하나만 만들어서 페이지 크기에따라 변화하는 사이트 → 반응형 웹</p>
<p>(6) 쿠키, 세션, 캐시</p>
<ul>
<li>쿠키 : 특정 정보가 사용자의 브라우저에 저장하게끔 하는 것/내가 직접 끌고 다니는 카트 개념/수정,삭제 가능</li>
<li>세션 : 서버에 저장하게끔 하는 것/마트측에서 보유한 나의 정보/보안상의 정보</li>
<li>캐시 : 용량이 큰 파일의 경우 재 접속했을 때 따로 보관하는 것(재사용)</li>
</ul>
<p>(7) 프레임워크 : 특정 종류의 소프트웨어를 만들기 위한 키트, 서버 프로그램 틀(뼈대)을 만들어놔서 손쉽게 쓸수 있게 하는것</p>
<p>(8) 호스팅, AWS, 클라우드</p>
<ul>
<li>호스팅 : 기업의 대용량 메모리 공간 일부를 이용하여 사용자의 홈페이지나 웹 서버 기능을 대행하는 서비스</li>
<li>AWS : 인프라를 빌려주는 클라우드 서비스</li>
<li>클라우드 : 데이터를 인터넷과 연결된 중앙컴퓨터에 저장해서 인터넷에 접속하기만 하면 언제 어디서든 데이터를 이용할 수 있는것</li>
</ul>
<h2 id="1주차-수강-후기">1주차 수강 후기</h2>
<p> 뒤늦게 전공을 살려서 취업하기 위해 투자하는 만큼 기본기부터 제대로 다져서 내 것으로 만들자라는 생각을 가지고 수강하였다. 이후 웹페이지 만드는 강의 부터는 좀 더 깊게 파보는 노력을 하기 위해 마음을 다 잡아야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[덕담 공유 코딩 만들기]]></title>
            <link>https://velog.io/@eita_0731/%EB%8D%95%EB%8B%B4-%EA%B3%B5%EC%9C%A0-%EC%BD%94%EB%94%A9-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@eita_0731/%EB%8D%95%EB%8B%B4-%EA%B3%B5%EC%9C%A0-%EC%BD%94%EB%94%A9-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Sun, 06 Feb 2022 12:58:31 GMT</pubDate>
            <description><![CDATA[<h2 id="덕담-공유-웹페이지-만들기">덕담 공유 웹페이지 만들기</h2>
<p>이번에 스파르타코딩클럽에서 설 무료강의로 덕담 공유 페이지 만들기 강좌가 있어서 맛보기 겸해서 수강하게 되었다. 가장 기본적인 HTML과 CSS코딩만 가지고 만들 수 있어서 프론트엔드에 관심있는 취준생에게는 좋은 강좌라고 생각한다.
이번 목표는 배포까지 하는 과정을 이해하는데에 의미를 두었다.</p>
<blockquote>
<p>VS Code 프로그램으로 코딩</p>
</blockquote>
<h3 id="html-body구조">HTML body구조</h3>
<pre><code>&lt;body&gt;
    &lt;div class=&quot;background&quot;&gt;
        &lt;div class=&quot;title&quot;&gt;
            &lt;h1&gt;덕담 하나 주면 안 잡아먹지!&lt;/h1&gt;
            &lt;p&gt;경철 님이 받은 덕담 : &lt;span&gt;2개&lt;/span&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;box&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;btn&quot;&gt;바구니에 덕담 남기기&lt;/div&gt;
    &lt;/div&gt;

&lt;/body&gt;</code></pre><p>크게 div구조로 4개의 구조로 클래스명으로 background, title, box, btn 으로 만들었다</p>
<h3 id="1-background클래스-css">(1) background클래스 CSS</h3>
<pre><code>.background {
    width: 100vw;
    height: 100vh;

    max-width: 450px;

    background-image: url(&#39;https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/bg_default.png&#39;);
    background-position: center;
    background-size: cover;
    margin: auto;
}</code></pre><p>이미지는 강좌에서 제공하는 이미지로 모바일 환경 기준으로 짤리지 않도록 viewpoint 너비,높이의 100%로 잡아주고 가운데 정렬하였다.</p>
<h3 id="2-title클래스-css">(2) title클래스 CSS</h3>
<pre><code>.title {
    color: #3f3732;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    padding-top: 5vh;
}

.title &gt; h1 {
    font-size: 22px;
    background-color: white;
    padding: 8px 16px;
    border-radius: 16px;

    margin-bottom: 16px;
}

.title &gt; p {
    font-size: 16px;
}

.title &gt; p &gt; span {
    font-size: 20px;
    font-weight: bold;
}
</code></pre><p><img src="https://images.velog.io/images/eita_0731/post/6e3db610-b880-4e0c-b7e2-5c4c838fc0de/image.png" alt="">
이 부분의 CSS로 여기서 h1태그와 p태그로 나눠서 따로 적용을 하였고
글을 쓸때마다 증가된 갯수를 카운트 하기위해 span태그와 속성을 따로 줘서 사용하였다.</p>
<h3 id="3box클래스-css">(3)box클래스 CSS</h3>
<pre><code>.box &gt; img {
    width: 70px;

    position: absolute;
    bottom: 50%;
    left: 50%;
}</code></pre><p><img src="https://images.velog.io/images/eita_0731/post/4657d9d7-2495-494e-99ce-fdc921491375/image.png" alt="">
가운데에 뿌려주는 이미지 공간으로 자유로운 배치를 위해 position:absolute; 속성을 주었다.</p>
<h3 id="4-btn클래스-css">(4) btn클래스 CSS</h3>
<pre><code>.btn {
    background-color: #3f3732;
    color: white;

    width:300px;
    height: 50px;
    border-radius: 10px;
    font-size: 18px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    cursor: pointer;

    position: fixed;
    bottom: 16px;

    left: calc(50% - 150px);
}</code></pre><p>덕담 남기기 버튼의 CSS 속성으로 배경기준 하단 고정된 위치에 가운데 정렬로 위치하고 마우스를 올렸을 때 손가락 모양의 커서도 같이 표현하였다.</p>
<p>하여 Javascript와 폰트 CSS까지 추가하고 강좌에서 미리 만들어 놓은 AWS를 통해 배포하면 다음과 같은 페이지가 완성된다.</p>
<blockquote>
<p><a href="https://deokdam.spartacodingclub.kr/PceF0ZBHIBrP/index.html">https://deokdam.spartacodingclub.kr/PceF0ZBHIBrP/index.html</a>
(덕담갯수가 3,6,9,...로 증가되면 background에 호랑이 그림이 바뀌는 숨은 javascript코드도 같이 있다)</p>
</blockquote>
<p><img src="https://images.velog.io/images/eita_0731/post/4ec1f691-0cf3-4066-8ee9-c4843bd00d98/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[백엔드 개발자 준비하기]]></title>
            <link>https://velog.io/@eita_0731/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@eita_0731/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0</guid>
            <pubDate>Mon, 24 Jan 2022 05:01:54 GMT</pubDate>
            <description><![CDATA[<p><img src="https://images.velog.io/images/eita_0731/post/ee802026-6cec-4162-9662-ec9c5e52326d/%EB%B0%B1%EC%97%94%EB%93%9C%20%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80%20%EB%90%98%EA%B8%B0%20%EC%9C%84%ED%95%9C%20%EC%B2%AB%EA%B1%B8%EC%9D%8C.png" alt=""></p>
<h2 id="개발자-전향을-하게된-이유">개발자 전향을 하게된 이유</h2>
<p>컴퓨터전공을 졸업했지만 20살때부터 서비스직 아르바이트를 하였고 졸업해서도 이 직종이 맞다고 판단하여 쉼 없이 일을 하였다.
2015년도에 졸업때만 해도 개발직군이 빛을 보지 못했는데 2020년 접어들면서 체감상 개발자 열풍이 불어온거 같았다. 그 때만 해도 매장(현장)쪽으로만 일을 해서 직종을 전환 하리라고는 생각지도 않았다. 왜냐면 월급 제때나오고 나름 만족하면서 살았었으니깐...
그러다 2021년 9월에 모빌리티 회사 플랫폼운영팀에서 CS업무로 이직을 해서 일을 하게 되었고, 고객CS 뿐만 아니라 서비스운영까지 일을 하다보니 앱서비스 런칭 전에 시범서비스 진행을 구글 시트 수기로 진행하였다. 그러다 보니 &quot;수기로 하는 일을 시스템화 하는게 오래 걸리고 어려운건가?&quot;라는 의문점으로 시작해서 지금 내가 하고 있는 일이 소모적일 뿐 내 커리어에 도움이 되지 않는다는 생각이 불현듯 들기 시작했다.</p>
<p>그래서 더 늦기전에 전공을 살려 일을 해보자 결심을 하게 되었고, 친구가 조언도 이것저것 해줘서 2022년 1월 인프런 강의부터 다시 복기하기 시작했다.
프론트보다는 백엔드 서버 개발이 경쟁력이 있다고 판단하였고 국비지원 찾아보던 중에 패스트캠퍼스에서 진행하는 백엔드 과정을 신청하였다.</p>
<blockquote>
<p>패스트캠퍼스 국비지원 강의명 : [핀테크 서비스 백엔드 개발자 양성 과정]
본 과정 : 2022년 3월 28일 개강(7개월) 13:00~22:00</p>
</blockquote>
<p>교육내용 : </p>
<table>
<thead>
<tr>
<th align="center">교육 기간</th>
<th>교육내용</th>
</tr>
</thead>
<tbody><tr>
<td align="center"><strong>8주</strong></td>
<td>•Git/Github을 활용한 코드리뷰</td>
</tr>
<tr>
<td align="center"></td>
<td>•컴퓨터사이언스 핵심</td>
</tr>
<tr>
<td align="center"></td>
<td>•컴퓨터의 이해, 소프트웨어 공학</td>
</tr>
<tr>
<td align="center"></td>
<td>•네트워크 및 웹의 이해</td>
</tr>
<tr>
<td align="center"></td>
<td>•컴퓨터구조</td>
</tr>
<tr>
<td align="center"></td>
<td>•알고리즘/자료구조</td>
</tr>
<tr>
<td align="center"></td>
<td>•운영체제/네트워크</td>
</tr>
<tr>
<td align="center"><strong>14주</strong></td>
<td>Java 프로그래밍 / OOP / Spring(Spring Boot)</td>
</tr>
<tr>
<td align="center"><strong>8주</strong></td>
<td>개발 프로젝트</td>
</tr>
<tr>
<td align="center"></td>
<td>디자인(figma), 백엔드(springboot),프론트엔드(react) 총 3개 과정의 교육생이 투입</td>
</tr>
<tr>
<td align="center"></td>
<td>1~10명 내외의 교육생 팀을 이뤄 기업과 1대1 매칭.전문가(현직자)의 코칭 하에 프로젝트를 진행</td>
</tr>
</tbody></table>
<p>처음에 신청서를 내고, 기초소양평가, AI면접까지 치르고 나서 그 후 프리코스 과정 수료 안내가 와서 현재는 수강 신청해서 대기 하고 있는 상태이다. </p>
<blockquote>
<p>Pre-course : 2022년2월9일 ~ 3월16일(5주과정)
강의명 : 패스트캠퍼스 K-디지털 크레딧 &#39;프로그래밍 첫걸음 시작하기&#39;
교육내용 : HTML/CSS/JavaScript</p>
</blockquote>
<p>원래는 직장 다니면서 하려했지만 올해 안에 전향하고자 1월까지만 회사를 다니고 길면 1년 짧으면 해당 과정 수료 후에 이직 하려고 한다.</p>
<p>정보처리기사도 올해 1차 필기시험 신청 완료하여 본 과정 들어가기 전에 필기 합격을 만들어 놓을 예정이다.</p>
<blockquote>
<p>2022년3월5일(토) 13:00 정보처리기사 필기시험</p>
</blockquote>
<p>늦은만큼 조바심도 나고 조급해진 것은 맞지만 올해 상반기 열심히 해서 좋은 결과가 나왔으면 좋겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[github에 eclipse 연동]]></title>
            <link>https://velog.io/@eita_0731/github%EC%97%90-eclipse-%EC%97%B0%EB%8F%99</link>
            <guid>https://velog.io/@eita_0731/github%EC%97%90-eclipse-%EC%97%B0%EB%8F%99</guid>
            <pubDate>Thu, 13 Jan 2022 07:44:57 GMT</pubDate>
            <description><![CDATA[<h2 id="github저장소-만들기">github저장소 만들기</h2>
<p>(1) 먼저 github에 회원가입 후 로그인 하면 아래 화면처럼 나타납니다.
<img src="https://images.velog.io/images/eita_0731/post/162d9f9e-740c-4bf0-b5a3-a7f6e32caa8e/image.png" alt="">
(2) new 버튼을 누르면 아래 화면으로 전환되며 github에 저장소 이름과 Public(전체공개)을 설정 후 Create repository를 입력합니다.
<img src="https://images.velog.io/images/eita_0731/post/0c78ee16-2647-4b85-b05c-615d9be768a8/image.png" alt="">
(3) github에 Test3 이름의 저장소가 생성되었고 이제 이 저장소에 eclipse에서 생성한 자바프로젝트를 연동을 합니다.
<img src="https://images.velog.io/images/eita_0731/post/4c6aa2b6-c22e-4f10-8b07-783976a3d9f7/image.png" alt=""></p>
<blockquote>
<p>추가적으로 eclipse에서 push 인증시 21.8.13부로 비밀번호 인증이 끝났고 토큰을 사용해야 하기 때문에 토큰 생성법을 알려드릴게요</p>
</blockquote>
<p><img src="https://images.velog.io/images/eita_0731/post/fc4c16e3-3c55-4c71-afc3-4496050f0733/image.png" alt="">
(1) github 우측 상단의 계정을 클릭하면 Settings 메뉴가 보입니다.
들어가셔서 왼쪽 메뉴 중에 &quot;Developer settings&quot;에 들어가서 &quot;Personal access tokens&quot;-&quot;Generate new token&quot;을 들어가주세요.
<img src="https://images.velog.io/images/eita_0731/post/67a97339-30e5-4b94-ae82-21119f077057/image.png" alt="">
(2) Note에 토근 이름을 작성하고 Select Scopes에서 repo를 체크한다.
 ※ 레퍼지터리 관리 정도만 할 거라면 repo에 체크해준다.
<img src="https://images.velog.io/images/eita_0731/post/5bc7de42-e5f3-4fe5-8a88-5e8d6f60e663/image.png" alt="">
(3) 토큰이 생성되었고 따로 보관을 위해 복사를 해놓는 것을 권장한다.
이제부터는 github에 push 등의 작업을 수행할 때, pw를 입력하라고 하면 방금 생성한 토큰을 입력하면 된다.
<img src="https://images.velog.io/images/eita_0731/post/02df63d8-0050-449d-9d5c-8cc4c6dea674/image.png" alt=""></p>
<h2 id="eclipse-연동하기">eclipse 연동하기</h2>
<blockquote>
<p>제가 알고 있는 방법으로 설명드리는 거라서 다른 방법대로 하는 것도 좋다고 생각합니다.
편하신 방법으로 사용해보세요!</p>
</blockquote>
<p>(1) 자바 프로젝트 우클릭-Team-share Project 클릭
<img src="https://images.velog.io/images/eita_0731/post/b969072f-38a5-41e8-b1b8-c3545affc89a/image.png" alt="">
(2) 첫번째 빨간색 상자 클릭 후 → 두번째 빨간색 상자를 클릭하면 Create Repository버튼 옆에 주소가 자동 입력되며 Create Repository버튼 클릭 → Finish버튼 클릭
<img src="https://images.velog.io/images/eita_0731/post/c35f04c3-8db5-4541-a618-c04fe41bf117/image.png" alt="">
(3) 자바 프로젝트 우클릭-Team-Add to Index클릭 후 자바 프로젝트 우클릭-Team-Commit 클릭(Commit은 local pc의 저장소에 변경된 내용을 반영하는 과정)
<img src="https://images.velog.io/images/eita_0731/post/2745658a-6230-4001-89cd-f05f1b76c171/image.png" alt="">
<img src="https://images.velog.io/images/eita_0731/post/5aac702e-623c-4365-9ea9-a070756db0a4/image.png" alt="">
(4) Commit Message에 간단하게 작성(예-Commit) 후 Commit and Push버튼 클릭
<img src="https://images.velog.io/images/eita_0731/post/2ff77cf3-0562-42f6-a727-d40b430fc412/image.png" alt="">
(5) URL에 생성한 github 저장소 주소를 넣고 아이디/토큰을 입력 후 Preview버튼 클릭
<img src="https://images.velog.io/images/eita_0731/post/6217731c-d062-4bc3-b996-82e04bf079b5/image.png" alt="">
(6) 각 생성되는 팝업창의 Preview/Push 버튼을 눌러주면 완료 / 마지막 팝업창의 Close버튼
<img src="https://images.velog.io/images/eita_0731/post/4d1f4b00-edd7-406a-8796-471bddd5142c/image.png" alt="">
<img src="https://images.velog.io/images/eita_0731/post/4e0b5ef1-6fc0-4606-b463-7fd44a459654/image.png" alt="">
<img src="https://images.velog.io/images/eita_0731/post/35b8e4f7-41c1-4239-bb03-440558da58d8/image.png" alt="">
(7)해당 github 저장소 가면 연동이 잘 되어있는 것을 확인할 수 있습니다.
<img src="https://images.velog.io/images/eita_0731/post/14b9d9ac-0df9-4412-bfbd-bb91cb3aebf8/image.png" alt=""></p>
<blockquote>
<p>여기까지 github에 eclipse 연동하기 였고요.
구글에 검색하면 많이 나와 있지만 한번 정리를 하면 좋을꺼 같아서 올려봤습니다.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>