<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>la_sta.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 08 Feb 2023 04:02:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. la_sta.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/la_sta" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[94일차 - 웹기능사 팝업창]]></title>
            <link>https://velog.io/@la_sta/94%EC%9D%BC%EC%B0%A8-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%82%AC-%ED%8C%9D%EC%97%85%EC%B0%BD</link>
            <guid>https://velog.io/@la_sta/94%EC%9D%BC%EC%B0%A8-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%82%AC-%ED%8C%9D%EC%97%85%EC%B0%BD</guid>
            <pubDate>Wed, 08 Feb 2023 04:02:02 GMT</pubDate>
            <description><![CDATA[<h2 id="4-팝업-띄우기">4. 팝업 띄우기</h2>
<h3 id="4-1-공지사항-1번글-클릭-시-팝업창-뜨도록">4-1. 공지사항 1번글 클릭 시, 팝업창 뜨도록</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/41d0740b-f021-4b47-84ad-4ecf45e0ca57/image.png" alt=""></p>
<ul>
<li>&lt; body &gt; 맨 위? 아래? -&gt; 상관없음! <strong>&lt; /body &gt; 위에 작성</strong> (relative 때문에 css 꼬이잖아)
z-index 있으니까 먼저 읽어들여서 상관없음.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/fdec7ebf-7bd1-44d2-88fd-771466bea555/image.png" alt=""></p>
<h4 id="4-1-1-html">4-1-1) HTML</h4>
<pre><code>        &lt;div id=&quot;popupnm&quot; class=&quot;abs bg-white zup&quot;&gt;
            &lt;button class=&quot;abs&quot;&gt;닫기&lt;/button&gt;
            &lt;p&gt;팝업 컨텐츠 삽입하기&lt;/p&gt;
        &lt;/div&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/6c3064ce-2994-4bb5-8439-891f5c8a47f4/image.png" alt=""></p>
<h4 id="4-1-2-css">4-1-2) CSS</h4>
<pre><code>&lt;style&gt;

#popupnm{
    /* 내 너비를 모를 때 */ /* 알면 margin : 0 auto */
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

    background-color: white;
    padding: 20px;

    display: none;
    }

&lt;/style&gt;</code></pre><h4 id="4-1-3-제이쿼리">4-1-3) 제이쿼리</h4>
<ul>
<li><strong>공지사항 첫번째 글 클릭하면 팝업창 뜨도록</strong>
d-none 상태에서 addClass(&#39;d-block&#39;)</li>
</ul>
<p>CSS 추가</p>
<pre><code>.d-block{display:block !important}</code></pre><pre><code>&lt;script&gt;

    $(&#39;[href=&quot;#popupnm&quot;]&#39;).click(function(e){
        e.preventDefault;
        $(&#39;#popupnm&#39;).addClass(&#39;d-block&#39;);
    })

&lt;/script&gt;</code></pre><ul>
<li><p><strong>닫기 버튼 누르면 창 닫힘</strong>
공지사항 nth-child하게 생겼어? <strong>[href=&quot;#popupnm&quot;] 클릭!</strong></p>
<pre><code>&lt;script&gt;

  $(&#39;[href=&quot;#popupnm&quot;]&#39;).click(function(e){
      e.preventDefault;
      $(&#39;#popupnm&#39;).addClass(&#39;d-block&#39;);
  })
  // 닫기 버튼
  $(&#39;#popupnm button&#39;).click(function(e){
      e.preventDefault;
      $(&#39;#popupnm&#39;).removeClass(&#39;d-block&#39;);
  })
</code></pre></li>
</ul>
<p></script></p>
<pre><code>
**결과물**
![](https://velog.velcdn.com/images/la_sta/post/b6004929-f235-409c-9c08-cc20036585b4/image.png)</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[91일차 - 웹 기능사 실기 복습 (1)]]></title>
            <link>https://velog.io/@la_sta/91%EC%9D%BC%EC%B0%A8-%EC%9B%B9-%EA%B8%B0%EB%8A%A5%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%8B%9C%ED%97%98</link>
            <guid>https://velog.io/@la_sta/91%EC%9D%BC%EC%B0%A8-%EC%9B%B9-%EA%B8%B0%EB%8A%A5%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%8B%9C%ED%97%98</guid>
            <pubDate>Fri, 03 Feb 2023 03:32:30 GMT</pubDate>
            <description><![CDATA[<p>웹디자인 기능사 실기 시험 예제 소스 <a href="https://webstudybasic.pe.kr/landing/index.html">https://webstudybasic.pe.kr/landing/index.html</a></p>
<ul>
<li><strong>상대 경로로 쓰기</strong> ./</li>
<li>HTML 태그에 style 삽입 말고 필히 외부 연동</li>
<li>모든 파일명은 영어로!</li>
<li>이미지는 jpg로 제작하기 (사이즈 똑같이)</li>
</ul>
<h4 id="복습">복습</h4>
<ul>
<li>헤더
<a href="https://velog.io/@la_sta/5%EC%9D%BC%EC%B0%A8-%ED%97%A4%EB%8D%94-%EC%84%B8%ED%8C%85-%EB%B3%B5%EC%8A%B5%EB%A7%88%EB%AC%B4%EB%A6%AC">https://velog.io/@la_sta/5%EC%9D%BC%EC%B0%A8-%ED%97%A4%EB%8D%94-%EC%84%B8%ED%8C%85-%EB%B3%B5%EC%8A%B5%EB%A7%88%EB%AC%B4%EB%A6%AC</a></li>
<li>스와이퍼 애니메이션
<a href="https://velog.io/@la_sta/28%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%8B%9C%ED%97%98%EC%9A%A9">https://velog.io/@la_sta/28%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%8B%9C%ED%97%98%EC%9A%A9</a>
fade 처리
<a href="https://velog.io/@la_sta/29%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-2">https://velog.io/@la_sta/29%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-2</a></li>
<li>탭
<a href="https://velog.io/@la_sta/29%EC%9D%BC%EC%B0%A8-js-%ED%83%AD-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%82%AC%EC%8B%9C%ED%97%98%EC%9A%A9">https://velog.io/@la_sta/29%EC%9D%BC%EC%B0%A8-js-%ED%83%AD-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%82%AC%EC%8B%9C%ED%97%98%EC%9A%A9</a></li>
</ul>
<h2 id="1-에밋-짜기">1. 에밋 짜기</h2>
<p>&lt;A형&gt; <a href="https://webstudybasic.pe.kr/landing/source/A-2/index.html">https://webstudybasic.pe.kr/landing/source/A-2/index.html</a>
.container&gt;#hd+#swiper+#three+#ft</p>
<pre><code>&lt;!-- 컨테이너 .container{width:1200px; margin:0 auto} --&gt;
.container

  &lt;!-- 헤더 --&gt;
  header#hd&gt;h1&gt;a&gt;img^^ul#gnb&gt;li*4&gt;a{대분류}+ul&gt;li*5&gt;a{소분류}
  &lt;!-- 스와이퍼 --&gt;
  #swiper&gt;.swiper-wapper&gt;.swiper-slide*3&gt;img
  &lt;!-- 3단구조 --&gt;
  #three&gt;#notice&gt;h4+ul&gt;li*4^^#gallery&gt;h4+ul&gt;li*3^^#imgBanner&gt;a&gt;img
  &lt;!-- 푸터 --&gt;
  footer#ft&gt;h2&gt;a&gt;img^^span+select&gt;option*3</code></pre><hr>
<p>&lt;A형&gt; <a href="https://webstudybasic.pe.kr/landing/source/A-3/index.html">https://webstudybasic.pe.kr/landing/source/A-3/index.html</a></p>
<pre><code>&lt;!-- 컨테이너 --&gt;
.container

  &lt;!-- 헤더 --&gt;
  header#hd&gt;h1&gt;a&gt;img^^ul#gnb&gt;li*4&gt;a{대분류}+ul&gt;li*5&gt;a{소분류}
  &lt;!-- 스와이퍼 --&gt;
  #swiper&gt;.swiper-wapper&gt;.swiper-slide*3&gt;img
  &lt;!-- 3단구조 --&gt;
  div#three&gt;.tabs&gt;#notice&gt;h4+ul&gt;li*4^^#gallery&gt;h4+ul&gt;li*3
              .banner0&gt;a&gt;img
              .banner1&gt;a&gt;img
  &lt;!-- 푸터 --&gt;
  footer#ft&gt;.logo&gt;h2&gt;img&gt;a^^text&gt;ul&gt;li*3&gt;a^^p</code></pre><hr>
<p>&lt;C형&gt; <a href="https://webstudybasic.pe.kr/landing/source/C-1/index.html">https://webstudybasic.pe.kr/landing/source/C-1/index.html</a></p>
<pre><code>&lt;!-- 컨테이너 --&gt;
.container

  &lt;!-- 헤더 --&gt;
  header#hd.d-flex&gt;h1&gt;a&gt;img^^ul#gnb&gt;li*4&gt;a{대분류}+ul&gt;li*5&gt;a{소분류}
  &lt;!-- 컨텐트 --&gt;
  .content
        &lt;!-- 스와이퍼 --&gt;
      #swiper&gt;.swiper-wapper&gt;.swiper-slide*3&gt;img
        &lt;!-- 3단구조 --&gt;
      #three&gt;.tabs&gt;#notice&gt;h4+ul&gt;li*4^^#gallery&gt;h4+ul&gt;li*3
             .banner0&gt;a&gt;img
             .banner1&gt;a&gt;img
        &lt;!-- 푸터 --&gt;
      footer#ft&gt;h2&gt;a&gt;img^^div&gt;ul&gt;li*3^^p{copyright All rights reserved 해운대 빛축제}</code></pre><hr>
<h2 id="2-실습">2. 실습</h2>
<h3 id="2-1-기본-세팅">2-1. 기본 세팅</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/8a36e74e-390f-4e84-9abb-ae91272cab57/image.png" alt=""></p>
<p>+) 시험장에서 제공하는 제이쿼리 저장해두기 (인터넷 NO)
<img src="https://velog.velcdn.com/images/la_sta/post/72df958c-ddb9-414b-b189-ff5fded3d786/image.png" alt=""></p>
<h3 id="2-2-공통클래스-삽입">2-2. 공통클래스 삽입</h3>
<pre><code>*{ margin: 0; padding: 0; }
a{ color: black; text-decoration: none; }
ul, li{ list-style: none; }
a:hover{color: red;}

.red{background-color: red;} &lt;!-- 여기까지구나? 확인 차원 --&gt;

.container{width:1200px; margin:0 auto} &lt;!-- A형 --&gt;
&lt;!-- .container{width:1000px;} // C형 --&gt;
.w30{width:33.333%}

.d-block{display:block}
.d-flex{display:flex}
.justify-content-between{justify-content: space-between;}
.align-items-center{align-items:center}

.abs{position:absolute}
.rel{position:relative}
.zup{z-index: 100000;}
.ofh{overflow: hidden;}

.h100{height:100px}
.h200{height:200px}
.h350{height:350px}</code></pre><h3 id="2-3-에밋-짜기">2-3. 에밋 짜기</h3>
<h4 id="2-3-1-헤더">2-3-1) 헤더</h4>
<p>href alt 비워두지 말것</p>
<pre><code>&lt;a href=&quot;#none&quot;&gt;&lt;img src=&quot;&quot; alt=&quot;열심히&quot;&gt;&lt;/a&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/197f9534-3207-4a9c-8a7f-45fb427fdd6a/image.png" alt=""></p>
<h4 id="2-3-2-스와이퍼">2-3-2) 스와이퍼</h4>
<ul>
<li><strong>에밋</strong><pre><code>#swiper.ofh&gt;.swiper-wapper.100000.d-flex&gt;.swiper-slide.w1200.h350*3&gt;img</code></pre></li>
<li><strong>CSS</strong><pre><code>.w100000{width: 100000px;}
.w1200{ width: 1200px;}</code></pre></li>
<li><strong>제이쿼리</strong> (setInterval로 애니메이션 처리)<pre><code>&lt;script&gt;
</code></pre></li>
</ul>
<p>$(document).ready(function(){
    // $(&#39;body&#39;).css(&#39;background&#39;, &#39;red&#39;);</p>
<pre><code>setInterval(function(){
    $(&#39;.swiper-wapper&#39;).animate({&quot;marginLeft&quot;:-1200}, 400, function(){
        $(this).find(&#39;.swiper-slide&#39;).eq(0).appendTo( $(this) );
        $(this).css({&quot;marginLeft&quot;:0})
    })
}, 3000)</code></pre><p>})</p>
<p></script></p>
<p>```
<em>+) 28일차 - js 애니메이션 (웹기능시험용)</em>
<a href="https://velog.io/@la_sta/28%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%8B%9C%ED%97%98%EC%9A%A9">https://velog.io/@la_sta/28%EC%9D%BC%EC%B0%A8-js-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9B%B9%EA%B8%B0%EB%8A%A5%EC%8B%9C%ED%97%98%EC%9A%A9</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[90일차 - 노드 채우기 Z (3) db/dbconnect.js 그리고 xml 파일]]></title>
            <link>https://velog.io/@la_sta/90%EC%9D%BC%EC%B0%A8-%EB%85%B8%EB%93%9C-%EC%B1%84%EC%9A%B0%EA%B8%B0-Z-3-dbdbconnect.js-%EA%B7%B8%EB%A6%AC%EA%B3%A0-xml-%ED%8C%8C%EC%9D%BC</link>
            <guid>https://velog.io/@la_sta/90%EC%9D%BC%EC%B0%A8-%EB%85%B8%EB%93%9C-%EC%B1%84%EC%9A%B0%EA%B8%B0-Z-3-dbdbconnect.js-%EA%B7%B8%EB%A6%AC%EA%B3%A0-xml-%ED%8C%8C%EC%9D%BC</guid>
            <pubDate>Thu, 02 Feb 2023 06:06:11 GMT</pubDate>
            <description><![CDATA[<h2 id="1-sql---nodejs---react-협업-구도-생성">1. SQL - node.js - React 협업 구도 생성</h2>
<h3 id="1-1-사용-메뉴얼-이해-x">1-1. 사용 메뉴얼! (이해 x)</h3>
<p>깃클론해서 타이핑 치지 말고 외우기 <a href="https://github.com/4thdraw/node14cafeapp">https://github.com/4thdraw/node14cafeapp</a></p>
<p>+) <em>깃허브에 dbconfig(db정보 위험)와 node_modules는 빼고 올리기! ( .gitignore )</em></p>
<ul>
<li><p>notice.js 와 연동된 dbconnect.js
<img src="https://velog.velcdn.com/images/la_sta/post/78496f41-ab41-4480-b680-c3a54264e245/image.png" alt=""></p>
</li>
<li><p>sql문 xml파일에서 선택하기
<img src="https://velog.velcdn.com/images/la_sta/post/e572c3c9-990c-42ac-80e6-842c5927d714/image.png" alt=""></p>
</li>
<li><p>오류 메시지 출력 or 처리 결과를 리액트에 전송
<img src="https://velog.velcdn.com/images/la_sta/post/f5ebe713-48cc-4f43-a605-8023a1c6d62a/image.png" alt=""></p>
</li>
<li><p><strong>sql 저장해둔 xml 접근 모듈</strong> // 나중에 이렇게 쓸 것
<img src="https://velog.velcdn.com/images/la_sta/post/14c5e30b-9b68-4f30-a88f-4b3d0dfb0b4e/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[76일차 - 노드-react-axios 비동기통신 (2) 새끼 라우터와 리액트 연결]]></title>
            <link>https://velog.io/@la_sta/76%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@la_sta/76%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Wed, 11 Jan 2023 02:42:18 GMT</pubDate>
            <description><![CDATA[<p>강사님 깃 다운받아 실습
<a href="https://github.com/4thdraw/nodeBackreactFront.git">https://github.com/4thdraw/nodeBackreactFront.git</a></p>
<h4 id="先-node_modules-폴더-생성">先 node_modules 폴더 생성!</h4>
<ul>
<li>리액트 모듈 설치 <strong>npm i</strong></li>
<li>노드 모듈 설치 <strong>npm install underscore</strong> --save
<a href="https://velog.io/@kjh950330/Nodejs-NPM%EC%9C%BC%EB%A1%9C-%EB%AA%A8%EB%93%88-%EC%84%A4%EC%B9%98">https://velog.io/@kjh950330/Nodejs-NPM%EC%9C%BC%EB%A1%9C-%EB%AA%A8%EB%93%88-%EC%84%A4%EC%B9%98</a></li>
</ul>
<h2 id="1-노드">1. 노드</h2>
<h3 id="1-1-routes-방-안에-새끼-라우터-만들어-db-삽입하고-리액트와-연결">1-1. routes 방 안에 새끼 라우터 만들어 DB 삽입하고, 리액트와 연결</h3>
<p>새끼 파일 생성
<img src="https://velog.velcdn.com/images/la_sta/post/b3515ac5-f3ab-4d56-8a18-246c9ffd3416/image.png" alt=""></p>
<p><strong>server.js</strong> - localhost:8080/<strong>reactProxy</strong> ( contact.js )
<img src="https://velog.velcdn.com/images/la_sta/post/42b65cd8-1b0e-4784-a4ba-80b580987bc5/image.png" alt=""></p>
<p><strong>contact.js</strong> - get.js / post.js 연결 (require &amp; use)
<img src="https://velog.velcdn.com/images/la_sta/post/979eff64-77cf-4321-9e8b-02491b432581/image.png" alt=""></p>
<p><strong>get.js</strong> 채우기
<img src="https://velog.velcdn.com/images/la_sta/post/deb54500-25db-45f1-8fb0-8186a05467c5/image.png" alt=""></p>
<p><strong>post.js</strong> 채우기
<img src="https://velog.velcdn.com/images/la_sta/post/72327ffc-9a98-4a81-88ee-229b9a6dc0b6/image.png" alt=""></p>
<h3 id="1-2-getjs에서-보내는-data들-보다-복잡하게-만들어보자">1-2. get.js에서 보내는 data들 보다 복잡하게 만들어보자</h3>
<p>복잡한 DB를 리액트에 보내서 -&gt; 리액트가 받아내 출력하도록 하자!
<img src="https://velog.velcdn.com/images/la_sta/post/cda9d4ba-ba89-4745-ae65-0e9b315882ea/image.png" alt=""></p>
<hr>
<h2 id="2-리액트">2. 리액트</h2>
<p>리액트 접근 주소는? localhost:8080/<strong>reactProxy/list</strong> 가 된다</p>
<p>src 방의 <strong>contact.js</strong>
<img src="https://velog.velcdn.com/images/la_sta/post/aaa3d3d0-a4cf-4bf0-8ef0-f473c8095ef5/image.png" alt=""></p>
<h3 id="2-1-getjs가-보내는-db-받아내기-but-오류-발생">2-1. get.js가 보내는 DB 받아내기 BUT 오류 발생!</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/ac68dc14-bfcd-404d-a081-78e14dd2e6d1/image.png" alt=""></p>
<h3 id="2-2-화면-죽여두고-방법을-찾아보자">2-2. 화면 죽여두고, 방법을 찾아보자</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/65001391-9769-4678-953f-09ecf95f2460/image.png" alt=""></p>
<p><strong>힌트)</strong> <a href="https://www.daleseo.com/js-json/">https://www.daleseo.com/js-json/</a></p>
<blockquote>
<p>JSON 내장 객체는 JavaScript 객체와 JSON 문자열 간의 상호 변환을 수행해주는 두 개의 메서드를 제공합니다.</p>
</blockquote>
<ul>
<li>JSON<strong>.parse(</strong>str 변수<strong>)</strong>
└ JSON 문자열을 JavaScript 객체로 변환하는 메서드
└ JSON 문자열을 인자로 받고, 결과값으로 JavaScript 객체를 반환
└ reviver 함수를 인수로 전달할 경우, 결과를 반환하기 전에 변형할 수 있습니다.</li>
</ul>
<blockquote>
<p>콘솔에 출력해보면 JSON 문자열 형태의 데이터가 JavaScript 객체의 형태로 변환되어 출력되는 것을 확인할 수 있습니다.
<strong>JavaScript 객체와 JSON 문자열 간에는 아주 미묘한 차이</strong>가 있는 것을 알 수 있습니다.
JSON 문자열에서는 &quot;키(key)&quot;를 나타낼 때 반드시 &quot;쌍따옴표&quot;로 감싸줘야 하는 반면,
JavaScript 객체에서는 쌍따옴표를 꼭 사용할 필요는 없습니다. </p>
</blockquote>
<pre><code>{
    name: &quot;홍길동&quot;,
    age: 25,
    married: false,
    family: {
        father: &quot;홍판서&quot;,
        mother: &quot;춘섬&quot;
    },
    hobbies: [
        &quot;독서&quot;,
        &quot;도술&quot;
    ],
    jobs: null
}</code></pre><blockquote>
<p>이렇게 JavaScript 객체로 변환된 데이터는 . 혹은 [ ] 기호를 사용해 각 속성에 접근할 수 있습니다.</p>
</blockquote>
<ul>
<li>JSON<strong>.stringify()</strong>
└ 반대로 JavaScript 객체를 JSON 문자열로 변환할 때 사용하는 메서드
└ JavaScript 객체가 많은 양의 데이터를 담고 있는 경우, 3번째 인자로 들여쓰기 공백 지정<pre><code>&#39;{&quot;name&quot;:&quot;홍길동&quot;,&quot;age&quot;:25,&quot;married&quot;:false,&quot;family&quot;:{&quot;father&quot;:&quot;홍판서&quot;,&quot;mother&quot;:&quot;춘섬&quot;},&quot;hobbies&quot;:[&quot;독서&quot;,&quot;도술&quot;],&quot;jobs&quot;:null}&#39;</code></pre></li>
</ul>
<pre><code>&lt;script&gt;

const str2 = JSON.stringify(obj, null, 2); // 3번째 인자로 들여쓰기할 공백의 크기를 지정
console.log(str2);

&lt;/script&gt;</code></pre><p>보기 쉬워졌다</p>
<pre><code>{
  &quot;name&quot;: &quot;홍길동&quot;,
  &quot;age&quot;: 25,
  &quot;married&quot;: false,
  &quot;family&quot;: {
    &quot;father&quot;: &quot;홍판서&quot;,
    &quot;mother&quot;: &quot;춘섬&quot;
  },
  &quot;hobbies&quot;: [
    &quot;독서&quot;,
    &quot;도술&quot;
  ],
  &quot;jobs&quot;: null
}</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[69일차 - 노드(서버) 시작 (1)]]></title>
            <link>https://velog.io/@la_sta/69%EC%9D%BC%EC%B0%A8-%EB%85%B8%EB%93%9C%EC%84%9C%EB%B2%84-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@la_sta/69%EC%9D%BC%EC%B0%A8-%EB%85%B8%EB%93%9C%EC%84%9C%EB%B2%84-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Mon, 02 Jan 2023 02:20:15 GMT</pubDate>
            <description><![CDATA[<ul>
<li>js의 시간차 공격(data가 늦게 들어옴)을 안정적으로 보완하는 비동기통신</li>
<li>promise, restjs API 등</li>
</ul>
<h2 id="1-nodejs-패키지-생성-및-실행모듈-설치">1. Node.js 패키지 생성 및 실행(모듈 설치)</h2>
<p><a href="https://velog.io/@art-it/Npm-init-%EB%AA%A8%EB%93%88-%EC%84%A4%EC%B9%98">https://velog.io/@art-it/Npm-init-%EB%AA%A8%EB%93%88-%EC%84%A4%EC%B9%98</a></p>
<p>프로젝트 폴더 생성 후 <strong>npm init -y</strong> // package.json 생성</p>
<pre><code>npm init -y</code></pre><p>가장 기본적인 프로젝트 설정 끝
<img src="https://velog.velcdn.com/images/la_sta/post/b30d5dee-687c-487b-85bd-1433cee2a79d/image.png" alt=""></p>
<h2 id="2-packagejson">2. package.json</h2>
<ul>
<li><strong>&quot;main&quot;: &quot;server.js&quot;</strong>
서버 인덱스 파일명 &amp; 서버인덱스파일의 js파일을 생성 (서버실행파일)</li>
<li><strong>&quot;server&quot; : &quot;node index.js&quot;</strong>
&quot;server&quot; 와 &quot;index.js&quot; 이름 자유롭게 지정 -&gt; 노드 실행 시, npm run &quot;server&quot;
<img src="https://velog.velcdn.com/images/la_sta/post/b4ce319e-b108-41ec-a015-a03d54db07e6/image.png" alt=""><h4 id="-main과-server는-자유롭게-지정-가능">+) &quot;main&quot;과 &quot;server&quot;는 자유롭게 지정 가능</h4>
<img src="https://velog.velcdn.com/images/la_sta/post/d0225c36-a848-4c03-bf71-9905194d141e/image.png" alt=""></li>
</ul>
<h2 id="3-npm-install-express-서버-프레임워크-깔기">3. npm install express (서버 프레임워크 깔기)</h2>
<p><a href="https://ponyozzang.tistory.com/711">https://ponyozzang.tistory.com/711</a></p>
<pre><code>npm install express</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/6292a84e-454d-4233-af3d-8e9cdccd84a6/image.png" alt=""></p>
<h3 id="3-1-indexjs-서버-언어는-걍-검색복붙">3-1. index.js (서버 언어는 걍 검색/복붙)</h3>
<pre><code>&lt;script&gt;

    // Express을 Node.js에서 사용할 수 있게 require()로 호출. 이것으로 Node.js에서 Express 프레임워크를 사용할 수 있게 됩니다.
    const express = require(&#39;express&#39;); 
    const app = express();

    app.get(&#39;/&#39;, function (req, res) { // get메서드를 사용해 루틴(&#39; /&#39;)과 표시할 내용(&quot;Hello World Express&quot;)을 설정할 수 있습니다.
        res.send(&#39;Hello World Express&#39;); 
    }); 

    app.listen(8005);

&lt;/script&gt;</code></pre><h3 id="3-2-노드-실행하라-npm-run-server">3-2. &quot;노드 실행하라&quot; (npm run server)</h3>
<p><a href="http://localhost:8005">http://localhost:8005</a> 브라우저에 로컬 호스트 주소와 포트를 입력</p>
<ul>
<li>get이 눈에 보이는 주소창에, 눈에 보이는 주소를 쳐서 요청을 받아 처리하는 것이라면
post는 눈에 보이지 않는 주소를 요청받아 처리하는 것이다. 클라이언트에서 서버로 post 요청을 보내려면 ajax <a href="https://yahohococo.tistory.com/42">https://yahohococo.tistory.com/42</a> </li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/080eb6a0-4a8a-4bae-9c57-a67fcbcde3d1/image.png" alt=""></p>
<ul>
<li>/주소창에 치면 -&gt; get방식으로 서버쪽에서 (요청req, 응답res) 처리</li>
</ul>
<h3 id="3-3-주소창about-치면-about이-나왔네라고-뜨도록">3-3. 주소창/about 치면 &quot;about이 나왔네&quot;라고 뜨도록</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/34056f41-1bd2-4e09-899e-22584c6e74b5/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[64일차 - 리액트 라우트 (Link to 페이지 이동)]]></title>
            <link>https://velog.io/@la_sta/64%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%9D%BC%EC%9A%B0%ED%8C%85</link>
            <guid>https://velog.io/@la_sta/64%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EB%9D%BC%EC%9A%B0%ED%8C%85</guid>
            <pubDate>Mon, 26 Dec 2022 03:51:00 GMT</pubDate>
            <description><![CDATA[<h2 id="주소창을-확인하고-노출되는-컴퍼넌트">주소창을 확인하고 노출되는 컴퍼넌트</h2>
<p>외관상 웹페이지와 동일하게 보임</p>
<ul>
<li>&quot;페이지 이동&quot; 기능을 리액트에서는 리액트 라우터를 통해 처리할 수 있다.</li>
<li>a태그와 Link태그 잘 구분해서 쓰기!</li>
</ul>
<h3 id="1-1-라우트-돔-설치">1-1. 라우트 돔 설치</h3>
<pre><code>npm install react-router-dom</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/7c0d93ed-b0ad-432f-a068-2e1fe243ea78/image.png" alt=""></p>
<h3 id="1-2-indexjs-임포트--app-밖에--browserrouter--껴주기">1-2. index.js 임포트 &amp; App 밖에 &lt; BrowserRouter &gt; 껴주기</h3>
<p>&quot;App 바깥쪽에 이 기능 쓸게&quot; (하나만 삽입!)</p>
<pre><code>import { BrowserRouter } from &#39;react-router-dom&#39;;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/dc4b3d6c-a314-4e15-851d-eb63671e90de/image.png" alt=""></p>
<h3 id="1-3-appjs-임포트">1-3. App.js 임포트</h3>
<pre><code>import { Routes, Route } from &#39;react-router-dom&#39;;</code></pre><pre><code>    &lt;Routes&gt;

        &lt;Route&gt;&lt;/Route&gt;
        &lt;Route&gt;&lt;/Route&gt;
        &lt;Route&gt;&lt;/Route&gt;

    &lt;/Routes&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/e42361a8-9285-42bb-8825-92cf941a94a5/image.png" alt=""></p>
<h3 id="1-4-path-3개-삽입---컴퍼넌트-3개-준비-">1-4. path 3개 삽입 ( = 컴퍼넌트 3개 준비 )</h3>
<ul>
<li><p>주소창에 따라 컴퍼넌트가 선택되어 나감
즉, 주소창을 보고 웹페이지 노출 (컴퍼넌트만 보고 바꿔치기 됨)</p>
</li>
<li><p>각각 &lt; Notice /&gt;&lt; Gallery /&gt;&lt; Nopage /&gt; 3개의 컴퍼넌트 생성 <strong>(1-6)</strong></p>
</li>
<li><p><strong>/*/</strong> 사전에 정의하지 않은 경로로 접근하는 경우, Nopage 이동 처리
<img src="https://velog.velcdn.com/images/la_sta/post/ccd55125-0aa2-43c5-8c8a-5a6fc3549102/image.png" alt=""></p>
</li>
</ul>
<h3 id="1-5-link-태그-link-임포트">1-5. Link 태그 (+Link 임포트)</h3>
<ul>
<li><p>내 사이트 안에서 링크 이동 <strong>+ 서버 새로고침 안 함!</strong>
└&gt; <em>useState 아님! 외부링크 아님!</em> (렌더링x)</p>
</li>
<li><p>밖에서 볼 때는 a태그로 변환됨.
<img src="https://velog.velcdn.com/images/la_sta/post/d52c58bc-2ed3-4295-9f0c-11d30494ccbc/image.png" alt=""></p>
</li>
</ul>
<h3 id="1-6-컴퍼넌트-3개-생성-후-임포트">1-6. 컴퍼넌트 3개 생성 후 임포트</h3>
<pre><code>rsfp</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/0fa8ee7a-3e3b-4a1a-b62b-6ee0dfd6b815/image.png" alt=""></p>
<p>결과물
<img src="https://velog.velcdn.com/images/la_sta/post/7e8cb974-290b-4e55-adf2-42018d3b60cb/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/4e519f32-7842-447b-b50b-99bd00123ce8/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/242d2cd6-83e6-44d6-9ec7-4c7333e23017/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/f1dab502-4f07-4a2b-ba0e-0bffda239c45/image.png" alt=""></p>
<hr>
<p>설명 참고 <a href="https://goddaehee.tistory.com/305">https://goddaehee.tistory.com/305</a></p>
<h3 id="ex-쇼핑몰-사용-예시">ex) 쇼핑몰 사용 예시</h3>
<h4 id="①-라우터를-사용하기-전에-간단한-쇼핑몰-샘플-페이지-생성">① 라우터를 사용하기 전에, 간단한 쇼핑몰 샘플 페이지 생성</h4>
<p>App.js에 임포트할 3가지 페이지(=컴퍼넌트)</p>
<ul>
<li>헤더.js</li>
<li>메인페이지.js</li>
<li>상품페이지.js</li>
</ul>
<h4 id="②-아직은-헤더메인상품페이지가-같이-보인다">② 아직은 헤더/메인/상품페이지가 같이 보인다</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/8cad99d5-2cc7-4a5f-871a-ac38a487505f/image.png" alt=""></p>
<h4 id="③-라우트--link">③ 라우트 &amp; Link</h4>
<ul>
<li>&lt; BrowserRouter &gt;</li>
<li>&lt; Routes &gt; 와 &lt; Route &gt;</li>
<li>&lt; Link &gt; <strong>주소창을 바꿔치기 하는 놈!</strong></li>
</ul>
<h4 id="④-4개의-모듈을-모두-작성한-후-접속하면-페이지-분기-처리됨">④ 4개의 모듈을 모두 작성한 후 접속하면, 페이지 분기 처리됨</h4>
<p>ex) localhost:3000 → 메인 페이지
<img src="https://velog.velcdn.com/images/la_sta/post/4a156fb5-f68e-42a8-a0f4-0d476dc1e4c1/image.png" alt="">
ex) localhost:3000/product/1</p>
<p>ex) localhost:3000/kfdkdfre → NotFound 페이지(404 Error)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[61일차 - useState (3) 네비게이션 DB json 분리 후, 외부 데이터 연동]]></title>
            <link>https://velog.io/@la_sta/61%EC%9D%BC%EC%B0%A8-%EB%84%A4%EB%B9%84%EA%B2%8C%EC%9D%B4%EC%85%98-DB-json-%EB%B6%84%EB%A6%AC-%ED%9B%84-%EC%99%B8%EB%B6%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%97%B0%EB%8F%99</link>
            <guid>https://velog.io/@la_sta/61%EC%9D%BC%EC%B0%A8-%EB%84%A4%EB%B9%84%EA%B2%8C%EC%9D%B4%EC%85%98-DB-json-%EB%B6%84%EB%A6%AC-%ED%9B%84-%EC%99%B8%EB%B6%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%97%B0%EB%8F%99</guid>
            <pubDate>Wed, 21 Dec 2022 04:06:54 GMT</pubDate>
            <description><![CDATA[<h2 id="네비게이션-db-json-분리-후-외부-데이터-연동">네비게이션 DB json 분리 후, 외부 데이터 연동</h2>
<p>선생님 깃클론 후 npm i</p>
<h3 id="1-현-깃허브-작업에서-이전-커밋으로-돌아가기-깃-리셋">1. 현 깃허브 작업에서 이전 커밋으로 돌아가기 (깃 리셋)</h3>
<ul>
<li><strong>git reset --hard</strong> (파일까지 다 지우는 hard)</li>
<li>先 깃렌즈/깃히스토리 설치
<img src="https://velog.velcdn.com/images/la_sta/post/b5657ed6-edcd-423f-a8f5-7e8f3b87e24d/image.png" alt=""></li>
</ul>
<p>+) 깃 커밋 리셋
<a href="https://www.lainyzine.com/ko/article/git-reset-and-git-revert-and-git-commit-amend/">https://www.lainyzine.com/ko/article/git-reset-and-git-revert-and-git-commit-amend/</a>
① git log --one
② git reset --hard <em>로그넘버</em> (그 이전까지 사라짐)
<img src="https://velog.velcdn.com/images/la_sta/post/bf3c17b8-84b4-4e05-b66b-321eb455661f/image.png" alt=""></p>
<h3 id="2-src-안에-json-폴더-생성">2. src 안에 json 폴더 생성</h3>
<h4 id="2-1-src-안에-json-폴더-생성-→-navijson-파일-생성">2-1) src 안에 json 폴더 생성 → navi.json 파일 생성</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/314f9193-2838-4be5-a063-71eec0e4610e/image.png" alt=""></p>
<h4 id="2-2-화석화-쌍따옴표">2-2) 화석화 (쌍따옴표)</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/2831d2ed-acea-408d-8456-b3f063d8cacf/image.png" alt=""></p>
<h4 id="2-3-오브젝트로-만들기">2-3) {오브젝트}로 만들기</h4>
<pre><code>     &lt;!-- 키 : 밸류 형태 --&gt;
{ &quot;navijson&quot; : [{객체1}, {객체2}, {객체3}] }</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/caca6ed2-4092-4026-b4cb-383608906cd8/image.png" alt=""></p>
<h3 id="3-임포트--배열-외부연동">3. 임포트 &amp; 배열 외부연동</h3>
<p>임포트</p>
<pre><code>import naviDB from &quot;../json/navi.json&quot;;</code></pre><p>배열 외부연동</p>
<pre><code>naviDB.naviDBjson; &lt;!-- naviDB 안의 naviDBjson에 접근하라 --&gt;</code></pre><p>array가 map으로 돌게 됨
<img src="https://velog.velcdn.com/images/la_sta/post/fd061741-7483-495f-aef9-21e2d16841a6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[57일차 - 리액트 스와이퍼 (2)]]></title>
            <link>https://velog.io/@la_sta/57%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC-2</link>
            <guid>https://velog.io/@la_sta/57%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC-2</guid>
            <pubDate>Thu, 15 Dec 2022 07:10:31 GMT</pubDate>
            <description><![CDATA[<p><strong>깃허브 공부하는 법</strong></p>
<ul>
<li>강사님 깃 삭제/추가된 것 공부하고 -&gt; 할 수 있으면 내꺼에도 복붙/적용</li>
<li>git log --oneline</li>
<li>git reset <del>483753</del> (이 이후 작업 삭제)</li>
</ul>
<hr>
<p><em>&quot;나의 소개페이지 싱글페이지를 리액트로 구현하기&quot;</em></p>
<ul>
<li>네비게이션 (react-bootstrap )</li>
<li>스와이퍼 ( swiper )</li>
<li>나의 소개 ( aos )</li>
<li>사전인터뷰(폴더형식)</li>
<li>면접제안 ( react-bootstrap )</li>
<li>하단</li>
</ul>
<h2 id="0-강사님-깃클론---첫-화면">0. 강사님 깃클론 -&gt; 첫 화면</h2>
<p><img src="https://velog.velcdn.com/images/la_sta/post/a63cd501-0a53-4f49-949e-8bc804071db0/image.png" alt=""></p>
<h2 id="1-컴포넌트-분리시켜-데려오기">1. 컴포넌트 분리시켜 데려오기</h2>
<h3 id="1-1-hd-컴포넌트-빼서-부모자식-서열관계로-만든다">1-1. Hd 컴포넌트 빼서 부모자식 서열관계로 만든다</h3>
<p>(+scss 폰트도 삽입)</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/3fee9e80-8612-40e8-9763-5269ed2c1533/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/806570a4-019e-4242-aceb-57164894dba4/image.png" alt=""></p>
<h3 id="1-2-나머지-컴포넌트도-바깥으로-빼서-부모자식-서열관계로-만든다">1-2. 나머지 컴포넌트도 바깥으로 빼서 부모자식 서열관계로 만든다</h3>
<p>총 5개</p>
<pre><code>      &lt;Header&gt;&lt;/Header&gt;

      &lt;Navi&gt;&lt;/Navi&gt;

      &lt;Worksswiper&gt;&lt;/Worksswiper&gt;

      &lt;Preinterview&gt;&lt;/Preinterview&gt;

      &lt;Footer&gt;&lt;/Footer&gt;</code></pre><p>내보내면 export default Navi; 임포트 받기 import Navi from &#39;./Navi&#39;;
내보내면 export default Header; 임포트 받기 import Header from &#39;./Header&#39;;</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/fc9f6980-27cf-446b-8744-ecbe1f848239/image.png" alt=""></p>
<hr>
<h2 id="2-맵으로-스와이퍼-돌리기">2. 맵으로 스와이퍼 돌리기</h2>
<h3 id="2-1-json으로-db-분리">2-1. json으로 DB 분리</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/1be36342-4d3f-41eb-8322-ace600f3e7bd/image.png" alt=""></p>
<h3 id="2-2-db-json-글자노출-하려면">2-2. DB json 글자노출 하려면?</h3>
<pre><code>&lt;SwiperSlide&gt; 여기에 맵을 삽입/ slide 1 대신 DB json글자노출 &lt;/SwiperSlide&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/e27383fc-1aa5-4591-9a51-733a87f7f50a/image.png" alt=""></p>
<h3 id="2-3-맵-swiperinfomap--item-index-----">2-3. 맵 swiperinfo.map( ( item, index ) =&gt; { } )</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/48267278-cac4-4629-9e80-9fc617361eea/image.png" alt=""></p>
<p>return문 안에 &lt; SwiperSlide &gt;&lt; /SwiperSlide &gt; 삽입
<img src="https://velog.velcdn.com/images/la_sta/post/aba0f698-89ff-4d39-aadf-2160aa0a9649/image.png" alt=""></p>
<h3 id="2-4-cls클래스-삽입해서-추후-css-작업가능하도록">2-4. cls(=클래스) 삽입해서 추후 css 작업가능하도록</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/1b9ff19b-5394-4d08-a0a7-71733dab310f/image.png" alt=""></p>
<hr>
<h2 id="3-scss-반응형-처리">3. SCSS 반응형 처리</h2>
<p>강사님이 반응형 처리한 SCSS → 새롭게 깃클론!</p>
<h3 id="3-1-스와이퍼에-class-지정-나중에-작업하기-편하도록">3-1. 스와이퍼에 class 지정 (나중에 작업하기 편하도록)</h3>
<p>이건 &lt; Swiper &gt;만 가능! 특별히 내장된 기능임.</p>
<pre><code>&lt;Swiper className=&#39;workSection&#39;&gt;

&lt;/Swiper&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/45c4fa85-2106-4744-8d36-b4c9b7d78abf/image.png" alt=""></p>
<h3 id="3-2-강사님-깃-scss-작업된-것-새롭게-클론">3-2. 강사님 깃 scss 작업된 것 새롭게 클론</h3>
<p>원래 SCSS
<img src="https://velog.velcdn.com/images/la_sta/post/76273ef6-8e8d-4447-b47b-44c167a1ed03/image.png" alt=""></p>
<p><strong>아래로 추가된 모습</strong>
<img src="https://velog.velcdn.com/images/la_sta/post/0d448276-deaf-4e4d-a031-efa62736ef3c/image.png" alt=""></p>
<p><strong>+) scss에서의 static 경로</strong>
src 방에 위치한 scss는 public 방에 위치한 css와 모듈이 다름
<img src="https://velog.velcdn.com/images/la_sta/post/de44af7b-105f-49c1-958d-2df43ef0f8a0/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[56일차 - 리액트 스와이퍼]]></title>
            <link>https://velog.io/@la_sta/56%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC</link>
            <guid>https://velog.io/@la_sta/56%EC%9D%BC%EC%B0%A8-%EB%A6%AC%EC%95%A1%ED%8A%B8-%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC</guid>
            <pubDate>Wed, 14 Dec 2022 09:03:23 GMT</pubDate>
            <description><![CDATA[<h2 id="1-리액트-스와이퍼-설치-npm-i-swiper">1. 리액트 스와이퍼 설치 npm i swiper</h2>
<p><a href="https://swiperjs.com/react">https://swiperjs.com/react</a> 에서 설치식 및 사용법 확인
<img src="https://velog.velcdn.com/images/la_sta/post/043e55b1-70d3-4391-adce-981a19b37b06/image.png" alt=""></p>
<h2 id="2-리액트-스와이퍼-사용법">2. 리액트 스와이퍼 사용법</h2>
<h3 id="2-1-swiper--swiperslide-2개의-컴포넌트를-import">2-1. Swiper &amp; SwiperSlide 2개의 컴포넌트를 import</h3>
<p>+) css도
<img src="https://velog.velcdn.com/images/la_sta/post/b6bad9af-7765-4a0e-8aa2-2d7bd4fe639d/image.png" alt=""></p>
<h3 id="2-2-const-스와이퍼----return식-">2-2. const 스와이퍼 = ( )=&gt;{ return식 }</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/e6d019ca-74b4-4803-bb6e-9409458a7fec/image.png" alt=""></p>
<h4 id="2-2-1-위의-usage에서-그대로-복붙해-return-안에-삽입">2-2-1) 위의 Usage에서 그대로 복붙해 return 안에 삽입</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/db636903-f007-432b-9d6a-88a316f5e5f2/image.png" alt=""></p>
<p><em>이대로 끝내면 스와이퍼가 나오지 않음. 실행식을 써줘야!</em></p>
<h4 id="2-2-2-app--return-안에-선언한-스와이퍼-실행식-삽입-">2-2-2) APP( ){ return 안에 선언한 스와이퍼 실행식 삽입 }</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/282cee5c-1769-4f98-8437-e9ffed1104a2/image.png" alt=""></p>
<hr>
<h2 id="3-autoplay-추가로-넣고-싶다면-모듈로-호출">3. autoplay 추가로 넣고 싶다면, 모듈로 호출</h2>
<p>사용법 ex) <a href="https://swiperjs.com/react">https://swiperjs.com/react</a>
<img src="https://velog.velcdn.com/images/la_sta/post/0b66f68d-97d5-419e-83ad-368e46e0648b/image.png" alt=""></p>
<h3 id="3-1-복붙복붙">3-1. 복붙복붙</h3>
<pre><code>import { Navigation, Pagination, Scrollbar, A11y } from &#39;swiper&#39;;</code></pre><pre><code>import &#39;swiper/css/navigation&#39;;
import &#39;swiper/css/pagination&#39;;
import &#39;swiper/css/scrollbar&#39;;</code></pre><pre><code>modules={[Navigation, Pagination, Scrollbar, A11y]}</code></pre><pre><code>navigation
pagination={{ clickable: true }}
scrollbar={{ draggable: true }}</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/25cd420c-b017-4098-9bc9-f04d38e1d552/image.png" alt=""></p>
<h3 id="3-2-demos-→-autoplay-react-실행식-복붙">3-2 Demos → autoplay (react) 실행식 복붙</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/4fdb7e32-8934-43a2-8a27-79ac07bc75f7/image.png" alt=""></p>
<p><strong>결과물</strong>
Navigation, Pagination, Scrollbar, A11y 그리고 autoplay 적용된 것 확인
<img src="https://velog.velcdn.com/images/la_sta/post/c1a34712-a899-4f6c-af1a-9303f28e129b/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[12/12 평가 - 점수 기준]]></title>
            <link>https://velog.io/@la_sta/1212-%ED%8F%89%EA%B0%80-%EC%A0%90%EC%88%98-%EA%B8%B0%EC%A4%80</link>
            <guid>https://velog.io/@la_sta/1212-%ED%8F%89%EA%B0%80-%EC%A0%90%EC%88%98-%EA%B8%B0%EC%A4%80</guid>
            <pubDate>Mon, 12 Dec 2022 07:58:06 GMT</pubDate>
            <description><![CDATA[<h2 id="회원가입-폼-제작을-위한--db-테이블-생성">(회원가입 폼 제작을 위한)  DB 테이블 생성</h2>
<p><strong>평가 위해 첨부할 자료</strong></p>
<ul>
<li>DB 테이블 결과 캡쳐</li>
<li>sql 화면 캡쳐 CREATE TABLE</li>
<li><strong>노션</strong> &quot;<del>~</del> 원리로 제작했다. 어떤 부분은 미흡했다&quot;등
보고형식이 회의진행의 어려움이 없는가?</li>
</ul>
<hr>
<h3 id="1-시안이-들어오면">1. 시안이 들어오면</h3>
<ul>
<li><p>어떤 게 데이터가 되고,
<em>ex) 정보성 메일 수신에 동의합니다 / 인증버튼</em></p>
</li>
<li><p>어떤 게 DB가 되는지 파악
<em>ex) 이름, 휴대폰번호, 이메일</em></p>
</li>
<li><p>추후 DB 설계 변형에 대비, 여분필드 3개쯤 더 넣어두기
<em>(관계형 데이터베이스CMS를 잘 이해하고 설계하였는가?)</em></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/5b86d85b-585e-4810-9359-8ff5050256b8/image.png" alt=""></p>
</li>
</ul>
<hr>
<h3 id="2-테이블-생성---구조-몇개">2. 테이블 생성 - 구조 몇개?</h3>
<p>프라이머리키
이름 1
생년월일 (낱개 떨어진 애를 implode -&gt; 하나로 뭉쳐있는 DB) + 성별(char1) 3
아이디 4
휴대폰번호 5
이메일 (낱개 떨어진 애를 implode) 6</p>
<pre><code>CREATE TABLE pwa_sql
(   `id`          int           NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `pwa_name`    varchar(255)  NOT NULL,
    `pwa_bday`     varchar(255)    NOT NULL,
    `pwa_sex`         char(1)       NOT NULL,
    `pwa_id`         varchar(255)  NOT NULL,
    `pwa_phone`     char           NULL,
    `pwa_email`       varchar(255) NULL,
    `pwa_kakao`      varchar(255) NULL,
    `pwa_1`      varchar(255) NULL,
    `pwa_2`       varchar(255) NULL,
    `pwa_3`       varchar(255) NULL
);</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/7cd5e0c9-ee8a-4a70-864e-6cf403b5fdbb/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/bcdda35e-fed5-464d-9318-ad4c6a282719/image.png" alt=""></p>
<hr>
<h3 id="3-제작노트">3. 제작노트</h3>
<p><strong>개발환경</strong> : php7.4 mysql8.0 db접속</p>
<p><strong>제작현황</strong> : </p>
<ul>
<li>평가 시안 확인 후, 가장 먼저 어떤 항목이 데이터가 되고, 어떤 항목이 DB가 되는지 파악.
ㄴ<em>이름/생년월일/성별/아이디/휴대폰번호/이메일 항목을 구조로 갖는 sql table 생성</em></li>
<li>생년월일과 이메일은 데이터타입을 varchar(255)로 지정함.
ㄴ<em>추후 implode 처리하여 array를 받아내고자</em></li>
<li>향후 클라이언트 요청에 대비, DB 설계를 변형 가능토록 여분필드 4개를 더 삽입했음.</li>
</ul>
<p><strong>제작이슈</strong> : </p>
<ul>
<li><p>회원가입란에 사용자 비밀번호를 얻어내는 항목이 누락됨!
향후 인터페이스를 수정하고, 테이블의 여분 필드를 활용해 비밀번호를 받아내는 작업 요!
ㄴ<em>여분 필드의 데이터타입이 varchar(255) 이므로 비밀번호에 특수문자를 사용 가능.</em>
ㄴ<em>이는 사이트 보안 강화에 도움이 될 것.</em></p>
</li>
<li><p>&#39;휴대폰번호 인증버튼&#39;과 &#39;정보성 메일 수신 동의&#39; 여부는 추후 자바스크립트 처리토록.</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[53일차 - 내 폼태그와 sql 연동 (phpMyAdmin)]]></title>
            <link>https://velog.io/@la_sta/53%EC%9D%BC%EC%B0%A8-php</link>
            <guid>https://velog.io/@la_sta/53%EC%9D%BC%EC%B0%A8-php</guid>
            <pubDate>Thu, 08 Dec 2022 09:07:04 GMT</pubDate>
            <description><![CDATA[<h4 id="52일차-mysqli_connect">52일차) mysqli_connect</h4>
<ul>
<li><strong>query 함수</strong>
: DB를 서버언어가 쓸수있게 가공해주는 php 함수</li>
</ul>
<p>① 같은 서버 내에 있는 DB에 접속하고, 성공 여부 확인받는다.
② 성공했다면, 특정 테이블 선택해서 DB를 $sql 변수에 저장한다 (query 함수)
③ query함수로 DB를 php에서 쓸수있게 가공한 뒤, $result 변수에 저장!
④ html 출력문과 $result 변수 연결해, 화면 확인</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/f290ca6c-d88e-4b32-88ae-776197ddec4e/image.png" alt=""></p>
<hr>
<h2 id="1-sql문으로-게시판-테이블-만들기">1. sql문으로 게시판 테이블 만들기</h2>
<p>내 폼태그 DB 테이블 변수명
<img src="https://velog.velcdn.com/images/la_sta/post/c25b15c3-82db-4c6b-a098-7514f28b0495/image.png" alt=""></p>
<h3 id="1-1-폼태그-테이블-생성">1-1. 폼태그 테이블 생성</h3>
<pre><code>CREATE TABLE member_table
&lt;!-- 필드명    용량제한/데이터타입  필수인자 --&gt;
(   `id`            int           NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name`          varchar(100)  NOT NULL,
    `gender`      char          NULL,
    `age`         int(11)       NULL,
    `content`     text(300)     NULL
);</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/ae3ea979-bf26-4692-a9be-a8e3b4b4691b/image.png" alt=""></p>
<h3 id="1-2-insert-into-명령으로-db-5개-삽입해보기">1-2. insert into 명령으로 DB 5개 삽입해보기</h3>
<pre><code>INSERT INTO `test_table` ( `id`, `subject`, `content` )

VALUES
( NULL, &#39;제목1&#39;, &#39;가나다라마&#39; ),
( NULL, &#39;제목2&#39;, &#39;바사아자차&#39; ),
( NULL, &#39;제목3&#39;, &#39;카타파하가&#39; ),
( NULL, &#39;제목4&#39;, &#39;나다라마바&#39; ),
( NULL, &#39;제목5&#39;, &#39;사아자차카&#39; );</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/53998ee7-e613-4f9c-ae97-2a1e54b68a3b/image.png" alt=""></p>
<h3 id="1-3-php로-sql에-데이터-집어넣는-방법">1-3. php로 sql에 데이터 집어넣는 방법</h3>
<p>id는 자동생성<em>auto_increment</em> 이니까 지워도 됨
<img src="https://velog.velcdn.com/images/la_sta/post/4838954e-d280-4786-a1d6-3856f4645d5d/image.png" alt=""></p>
<hr>
<h2 id="2-폼태그와-php-연동">2. 폼태그와 php 연동</h2>
<h3 id="2-1-폼태그-생성--writephp-">2-1. 폼태그 생성 ( write.php )</h3>
<ul>
<li>action = &quot;insert.php&quot;</li>
<li>method = &quot;post&quot;</li>
<li>인풋 name과 php 변수 연결</li>
</ul>
<h3 id="2-2-인풋란을-post-방식으로-insertphp로-전송">2-2. 인풋란을 &quot;POST&quot; 방식으로 insert.php로 전송</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/a7cd9295-b5ae-4f6a-a940-c89a4e428c23/image.png" alt=""></p>
<h3 id="2-3-post-형식으로-받아서-출력">2-3. POST 형식으로 받아서 출력</h3>
<ul>
<li>write.php의 submit 버튼 클릭 시, action과 연동한 insert.php 페이지가 나타남</li>
<li><strong>insert.php 페이지 내용</strong> : $subject = $_POST[&#39;subject&#39;]
└&gt; $subject 변수에 post 방식으로 전송된 인풋 name=&#39;subject&#39; 저장
└&gt; sql의 테이블 test_table에 삽입할 값으로 subject $content 변수
└&gt; &quot;query 함수가 sql문 실행한다!&quot;
└&gt; echo 다음과 같이 화면 노출</li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/2e3e38cd-b8cd-469a-a3ff-bdc499820009/image.png" alt=""></p>
<hr>
<h2 id="3-폼태그의-checkbox배열값와-php-연동">3. 폼태그의 checkbox(배열값)와 php 연동</h2>
<p>체크박스와 같은 배열값 처리하기
참고 <a href="https://m.blog.naver.com/imm7745/221687698469">https://m.blog.naver.com/imm7745/221687698469</a></p>
<h4 id="인풋란-writephp">인풋란 write.php</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/0aea671e-478d-4440-b58c-0619e473b982/image.png" alt=""></p>
<h4 id="화면출력-insertphp">화면출력 insert.php</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/03e73602-d62e-4f19-9b10-43be14e83269/image.png" alt=""></p>
<p>즉, 배열값을 처리할 수 있다!</p>
<hr>
<h4 id="포폴-폼태그-적용하기--인풋란-writephp">포폴 폼태그 적용하기 : 인풋란 write.php</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/7f000e56-38c6-4e4b-b49b-4b0a80ae09ca/image.png" alt=""></p>
<h4 id="포폴-폼태그-적용하기--화면출력-insertphp">포폴 폼태그 적용하기 : 화면출력 insert.php</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/249d76ef-973b-4af3-bf74-464f0e471741/image.png" alt=""></p>
<hr>
<h2 id="4-페이지-바뀜-없이-폼태그-submit-하기iframe">4. 페이지 바뀜 없이 폼태그 submit 하기(+iframe)</h2>
<p>참고 <a href="https://m.blog.naver.com/kimstcool01/220937419440">https://m.blog.naver.com/kimstcool01/220937419440</a></p>
<p><strong>insert.php</strong></p>
<p><em>iframe</em>
└&gt; 다른 html 문서를 포함시킬 수 있도록 하는 태그.
└&gt; form의 target 속성을 이용하면 페이지 전환없이 인풋값을 submit 할 수 있다.
<img src="https://velog.velcdn.com/images/la_sta/post/8e24a8ea-9b5b-4718-80f3-ca9546944846/image.png" alt=""></p>
<p><strong>write.php</strong></p>
<pre><code>&lt;style&gt;
    /* iframe을 숨기기 위한 css */
    #if{
        width: 0px;
        height: 0px;
        border: 0px;
    }
&lt;/style&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/fc17d3bc-df1d-48a5-8e0a-a1f6306753b9/image.png" alt=""></p>
<hr>
<h2 id="5-내-포트폴리오-폼태그-완성하기-오후실습">5. 내 포트폴리오 폼태그 완성하기 (오후실습)</h2>
<h3 id="5-1-면접제안-폼수정불가능에서-글작성해-sql에-db-올리기">5-1. 면접제안 폼(수정불가능)에서 글작성해 sql에 DB 올리기</h3>
<p><em>+) 페이지 이동 없도록 아이프레임 처리!</em></p>
<p>4번처럼 만듦 <strong>(but 문제 발생)</strong></p>
<ul>
<li><p><strong>Q) id를 수동으로 13 14 15 입력해야 sql에 올라감</strong></p>
<p>테이블 생성할 때, id에 AUTO_INCREMENT 지정해야 했음!! 그러면 &#39;id&#39; &amp; value 안써도 됨.
&quot;MySQL은 자동 증가를 수행할 AUTO_INCREMENT 키워드를 사용합니다&quot;</p>
</li>
<li><p><strong>Q) 체크박스 position이 그냥 Array라고 뜸</strong></p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/d5105b35-d35e-4684-9fcd-d6e8e50eef1b/image.png" alt=""></p>
<p>아래 식 필요</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/93c04d76-63e8-46e8-8e3f-a733ebac415b/image.png" alt=""></p>
<p><strong>수정</strong>
sql 데이터 업로드
<img src="https://velog.velcdn.com/images/la_sta/post/24163088-7422-499a-9491-4cfd15a64ef8/image.png" alt=""></p>
<p>인풋란 &amp; 체크박스
<img src="https://velog.velcdn.com/images/la_sta/post/23573cc3-b4eb-4a69-8726-6a9ba1863cda/image.png" alt=""></p>
<hr>
<p><strong>결과물</strong></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/a6fccc08-9c86-42cf-b0b4-660321205c63/image.png" alt=""></p>
<p>폼태그에서 입력한 내용들이 sql 테이블에 저장됨
<img src="https://velog.velcdn.com/images/la_sta/post/8b659275-8df5-4473-91f4-ae1282d048f5/image.png" alt=""></p>
<hr>
<h3 id="5-2-사전인터뷰-폼수정가능-글작성해-sql에-db-올리기">5-2. 사전인터뷰 폼(수정가능) 글작성해 sql에 DB 올리기</h3>
<ul>
<li>글작성 &amp; 수정 가능하도록 if-else 사용</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[52일차 - 그누보드) 최신 게시글 (2)]]></title>
            <link>https://velog.io/@la_sta/52%EC%9D%BC%EC%B0%A8-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-%EC%B5%9C%EC%8B%A0-%EA%B2%8C%EC%8B%9C%EA%B8%80-2</link>
            <guid>https://velog.io/@la_sta/52%EC%9D%BC%EC%B0%A8-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-%EC%B5%9C%EC%8B%A0-%EA%B2%8C%EC%8B%9C%EA%B8%80-2</guid>
            <pubDate>Wed, 07 Dec 2022 13:48:26 GMT</pubDate>
            <description><![CDATA[<h2 id="7-mysqli-connect">7. mysqli connect</h2>
<p><strong>query</strong></p>
<ul>
<li>php함수</li>
<li>DB를 서버언어가 쓸수있게 가공해주는 함수</li>
</ul>
<p>① 같은 서버 내에 있는 DB에 접속하고, 성공 여부 확인받는다.
② 성공했다면, 특정 테이블 선택해서 DB를 $sql 변수에 저장한다 (query 함수)
③ query함수로 DB를 php에서 쓸수있게 가공한 뒤, $result 변수에 저장!
④ html 출력문과 $result 변수 연결해, 화면 확인</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/937d609f-6ac5-46d0-b660-ec4e23adac30/image.png" alt=""></p>
<p><strong>PHP7.4 MySQL 8.0 db접속 mysqli_connect</strong></p>
<ul>
<li>php버전 : PHP 7.4</li>
<li>DB : MySQL 8.0</li>
</ul>
<pre><code>&lt;?php
$db_con = mysqli_connect(&quot;DB서버주소&quot;, &quot;아이디&quot;, &quot;비번&quot;, &quot;DB명&quot;);
if ($db_con){
  echo &quot;DB 연결 성공&lt;p&gt;&quot;;
} else {
  echo &quot;DB 연결 실패&lt;p&gt;&quot;;
}
$sql = &quot;SELECT * FROM `cms_board`&quot;;
$result = $db_con-&gt;query($sql);
?&gt;</code></pre><hr>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;직접 서버와 연동하는 나의 php페이지&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div&gt;    
    &lt;?php
    if ($result -&gt; num_rows &gt; 0) {
        // output data of each row
        echo &quot;&lt;p&gt;&quot;.$result-&gt; num_rows.&quot;개의 게시글이 있습니다.&lt;/p&gt;&quot;;
        echo &quot;&lt;ul&gt;&quot;;
        while($row = $result-&gt;fetch_assoc()) {
            echo &quot;&lt;li&gt;게시판아이디: &quot; . $row[&quot;bo_table&quot;]. &quot; - 게시판제목: &quot; . $row[&quot;bo_subject&quot;].&quot;&lt;/li&gt;&quot;;
        }
        echo &quot;&lt;/ul&gt;&quot;;
    } else {
        echo &quot;&lt;p&gt;게시글이 없습니다.&lt;/p&gt;&quot;;
    }
    $db_con-&gt;close();    
    ?&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[52일차 - 그누보드) 최신 게시글 (1)]]></title>
            <link>https://velog.io/@la_sta/52%EC%9D%BC%EC%B0%A8-</link>
            <guid>https://velog.io/@la_sta/52%EC%9D%BC%EC%B0%A8-</guid>
            <pubDate>Wed, 07 Dec 2022 05:40:46 GMT</pubDate>
            <description><![CDATA[<h4 id="경로">경로</h4>
<ul>
<li><strong>G5_PATH</strong> : php가 쓰는 경로 (서버 언어에서만 사용)</li>
<li><strong>G5_URL</strong> : 도메인http:/부터 시작하는 경로 (프론트엔드가 사용! =태그에서 쓴다)
ex) G5_IMG_URL 화면 출력되는 경로를 프론트엔드쪽에서 쓰기 편하게끔 만들어준 변수</li>
</ul>
<pre><code>&lt;img src=&quot;http://~~~.dothome.co.kr/cms/img/logo.png&quot; alt=&quot;그누보드5&quot; title=&quot;&quot;&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/f4d3545f-cd3b-472b-8607-40fdf367d08c/image.png" alt=""></p>
<h4 id="변수-구분자">변수 (구분자)</h4>
<ul>
<li><em>게시판</em> 구분자 -&gt; $bo_table</li>
<li><em>내용관리</em> 구분자 -&gt; $co_id</li>
<li><em>게시글</em> 구분자 -&gt; $wr_id</li>
</ul>
<pre><code>$bo_subject // 게시판 제목
$wr_subject // 게시판의 게시글 제목 &lt;!-- $subject로 다시한번 변수지정(편하게) --&gt;
$wr_content // 게시글 내용 &lt;!-- $content (많이 쓰는 애들 간편하게 부르기) --&gt;
$thumb         // 이미지정보에 해당하는 변수 Array &lt;!-- $thumb[ src ] / $thumb[ ori ] --&gt;</code></pre><h4 id="q-이미지경로jpg가-이미지로-노출되게-thumb">Q) 이미지경로(~~.jpg)가 이미지로 노출되게 ($thumb)</h4>
<pre><code>&lt;?php
   echo &#39;&lt;img src=\&quot; &#39;.$thumb[ src ].&#39; \&quot; &gt;&#39;;
?&gt;</code></pre><hr>
<h2 id="1-최근게시글을-제작하려면-무엇부터-해야하나">1. 최근게시글을 제작하려면 무엇부터 해야하나?</h2>
<p>① 게시판 생성
② 게시글 삽입
③ 스킨 골라서 올바른 경로에 업로드
(그누보드에서 스킨 최신글 스킨 맘에 드는 것 골라서 latest 폴더에 업로드)
<strong>↓↓↓</strong>
<em>(4,5,6번은 그누보드에 있기 때문에, 그누보드에서 그냥 작업할 경우 생략)</em>
<strong>↑↑↑</strong> 
⑦ 최신글 스킨 튜닝하기</p>
<hr>
<h2 id="2-51일-복습-_commonphp">2. (51일 복습) ./_common.php</h2>
<p>오직 common.php를 호출하는 놈. 그 이외에는 역할 주지말것!
html 파일과 나란히 _common.php 두고, 그누보드 안의 common.php 호출</p>
<pre><code>&lt;?php
    include_once(&#39;./_common.php&#39;); &lt;!-- common.php 호출 --&gt;
    include_once(G5_LIB_PATH. &#39;/latest.php&#39;); &lt;!-- lib에서 latest.php 가져옴 --&gt;

    &lt;!-- latest 함수 호출 --&gt;
    echo latest(&#39;pic_list&#39;, &#39;notice&#39;, 4, 23); &lt;!-- 최근 게시골 노출 방식 --&gt;
    &lt;!-- latest( &#39;사용할 스킨&#39; , &#39;게시판id&#39;, 노출할 갯수, 글자수 ); --&gt;
?&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/2d25fad6-0ad2-4061-8a9b-e89a4340b100/image.png" alt=""></p>
<h4 id="quiz-free게시판의-최근-게시를-그누보드-본-스킨의-basic으로-출력되도록">Quiz) free게시판의 &#39;최근 게시&#39;를 그누보드 본 스킨의 basic으로 출력되도록</h4>
<pre><code>&lt;?php
    echo latest( &#39;basic&#39;, free, 5, 100바이트 );
?&gt;  &lt;!-- latest( &#39;스킨&#39;, &#39;게시판id&#39;, 노출할 갯수, 글자수 ); --&gt;</code></pre><hr>
<h2 id="3-스킨-골라서-올바른-경로에-업로드">3. 스킨 골라서 올바른 경로에 업로드</h2>
<p>sir.co.kr 스킨방 → 최신글 스킨 다운 → 압축풀고 그누보드 스킨방에 넣기 (+서버 업로드)</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/efea9f85-1ad8-4eaa-baf9-b35dc13f1f92/image.png" alt=""></p>
<hr>
<ul>
<li>그누보드 테마, 다 부숴도 되도록 베이직으로 변경 (그전까지 medicine 사용했음)</li>
<li>이제 그누보드 latest는 쓰는데, 테마방 안의 latest는 못 쓴다</li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/41b50c7a-0000-449f-b90d-ac55dd224434/image.png" alt=""></p>
<hr>
<h2 id="4-최신글-스킨-튜닝하기">4. 최신글 스킨 튜닝하기</h2>
<p><strong>결과물</strong>
index 페이지
<img src="https://velog.velcdn.com/images/la_sta/post/0eea4e87-ab79-4f2f-8a56-b9cf80d2e75a/image.png" alt=""></p>
<p>sub 페이지
<img src="https://velog.velcdn.com/images/la_sta/post/96d6bca9-d09c-4f75-8f8a-9eba292a3088/image.png" alt=""></p>
<hr>
<h2 id="5-스킨-골라서-올바른-경로에-업로드-최신글x슬라이더">5. 스킨 골라서 올바른 경로에 업로드 (최신글x슬라이더)</h2>
<p>① 그누보드에서 최신글 스킨 맘에 드는 것 골라서 다운&amp;압축해제 → latest 폴더에 집어넣기
② echo latest 함수로 노출하기</p>
<pre><code>그누보드 최신글 스킨을 이용한 메인 배너 스킨입니다.
스킨 적용위치는 상관없으나 head.php 파일의 &lt;div id=&quot;container_wr&quot;&gt; 상위에 위치시켜주시면 됩니다.

&lt;?php
/* thumb_width, thumb_width : 배너이미지 가로,세로 크기 */
$options = array();
$options[&#39;thumb_width&#39;] = &#39;1920&#39;;
$options[&#39;thumb_height&#39;] = &#39;680&#39;;
echo latest(&#39;theme/main_slider&#39;, &#39;main_slider&#39;, 5, 23, 0, $options);
?&gt;

여분필드 사용 // IMAGE01 - txt_big : 여분필드 wr_1을 사용
쉽게 관리하는 배너스킨 // txt_small : 여분필드 wr_2을 사용
더보기아이콘 // href : wr_link1값이 있을경우 wr_link1값 적용(기본:href)</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/af564565-1d78-49fd-96a4-6e888c187bda/image.png" alt=""></p>
<p>최신글x슬라이더 적용됨
<img src="https://velog.velcdn.com/images/la_sta/post/43b062ae-85a1-4943-ac5c-87816eeb3cd4/image.png" alt=""></p>
<p>③ 게시판 생성
④ 게시글 삽입</p>
<p>⑤-1) 썸네일 오리지널 이미지로 $thumb[&#39;ori&#39;]
⑤-2) 슬라이더에 게시판 제목/내용 삽입 - 관리하기 쉽도록</p>
<p><strong>결과물</strong>
<img src="https://velog.velcdn.com/images/la_sta/post/5b34ef09-050c-43de-a3f3-c28b9d23c8ab/image.png" alt=""></p>
<hr>
<h2 id="6-최신글-스킨---상단-튜닝">6. 최신글 스킨 - 상단 튜닝</h2>
<p>이렇게 만들어보자
<img src="https://velog.velcdn.com/images/la_sta/post/650b56a8-e97c-4e5c-bb1d-bf8fdd35ddf2/image.png" alt=""></p>
<p><strong>상단 웹 접근성을 지키기 위한 태그순서</strong>
<img src="https://velog.velcdn.com/images/la_sta/post/e2fed68b-738b-4370-baf3-7349983cfa73/image.png" alt=""></p>
<p><strong>여기까지, 태그 순서만 옮겼을때의 모습</strong>
<img src="https://velog.velcdn.com/images/la_sta/post/2cd986ab-cca0-4098-ba36-7337b844058c/image.png" alt=""></p>
<p><strong>CSS 삽입 후 완성된 형태</strong></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/650b56a8-e97c-4e5c-bb1d-bf8fdd35ddf2/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[51일차 - 내 폼태그와 그누보드 연동 (2)]]></title>
            <link>https://velog.io/@la_sta/51%EC%9D%BC%EC%B0%A8-2-y14c9weo</link>
            <guid>https://velog.io/@la_sta/51%EC%9D%BC%EC%B0%A8-2-y14c9weo</guid>
            <pubDate>Tue, 06 Dec 2022 07:01:07 GMT</pubDate>
            <description><![CDATA[<h3 id="quiz-그누보드-갤러리-게시판-수정">Quiz) 그누보드 갤러리 게시판 수정</h3>
<p>skin방 안의 gallery → list.skin.php에서
<img src="https://velog.velcdn.com/images/la_sta/post/dc62ffc1-e964-4eb5-8da6-e520ab050c9d/image.png" alt=""></p>
<hr>
<h2 id="7-php에서-데이터베이스-접속하기-db접속하기">7. PHP에서 데이터베이스 접속하기 (db접속하기)</h2>
<p><strong>mysql_connect 함수 이용</strong></p>
<ul>
<li>키워드 검색해서 → <em>php7.4 mysql8.0 db접속</em> → 찾아서 복붙</li>
<li>기본적으로 데이터베이스에 접속하는 기본 문장들 있음
└ 처음 4개는 DB에 따라 다르므로 각자에 맞게 설정해줘야</li>
</ul>
<pre><code>&lt;?php
$db_con = mysqli_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;터미널에서 MySQL 들어갈 때 치는 비밀번호&quot;);
if ($db_con){
  echo &quot;DB 연결 성공&lt;p&gt;&quot;;
} else {
  echo &quot;DB 연결 실패&lt;p&gt;&quot;;
}

$db_sec = mysqli_select_db($db_con, &quot;연결을 확인하고 싶은 데이터베이스명&quot;);
if ($db_sec) {
  echo &quot;DB select OK &lt;p&gt;&quot;;
} else {
  echo &quot;DB select NO &lt;p&gt;&quot;
}
?&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/3cd2e1d9-1338-4da2-acff-1a1484bc7748/image.png" alt=""></p>
<hr>
<h2 id="8-첫화면-indexphp만-다른-css-깔기-위해">8. 첫화면 index.php만 다른 css 깔기 위해</h2>
<p>ex) 첫화면 인덱스 페이지만 다른 게시판과 달리 max-width 빵빵하게 넣는다거나</p>
<h3 id="8-1-그누보드-포트폴리오--아이템을-정의한-변수-선언하기">8-1. 그누보드 포트폴리오 / 아이템을 정의한 변수 선언하기</h3>
<h3 id="8-2">8-2.</h3>
<hr>
<h3 id="quiz-메인-index-페이지만-하단-배경색-white--글자-black">Quiz) 메인 index 페이지만 하단 배경색 white + 글자 black</h3>
<p>나머지 페이지들에서는 하단 black + 글자 white</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/f6eed07e-da7f-4d64-a7cf-f762b614a76f/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/8500ea05-fecf-45a1-8e67-144f1dfe7967/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[51일차 - 내 폼태그와 그누보드 연동 (1)]]></title>
            <link>https://velog.io/@la_sta/51%EC%9D%BC%EC%B0%A8-</link>
            <guid>https://velog.io/@la_sta/51%EC%9D%BC%EC%B0%A8-</guid>
            <pubDate>Tue, 06 Dec 2022 05:54:56 GMT</pubDate>
            <description><![CDATA[<h2 id="1-그누보드-변수-2가지">1. 그누보드 변수 2가지</h2>
<ul>
<li><p><strong>define ( &#39;변수&#39; )</strong> 선언
대문자로 지정
정의값! (일반변수 아님! 사실 변하지 않음) ≒ const
한번 정의되면 끝! (그누보드 설치할 때 정의되고 끝!)</p>
</li>
<li><p><strong>$</strong>sql
달러로 시작하는 일반변수</p>
</li>
</ul>
<h3 id="1-1-define정의값-선언에-대해-알아보자">1-1. define(&#39;정의값&#39;) 선언에 대해 알아보자</h3>
<p>그누보드 본 index.php에 선언됨 ( 내가 설치한 테마ㄴㄴ )
첫 인덱스 페이지에 들어가는 정의값!</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/81e5fbb7-712d-4ab2-88c4-ba19069d2530/image.png" alt=""></p>
<p>ex) &#39;<strong>G5</strong>_THEME_PATH&#39; = &quot;네가 설정한 테마의 경로&quot;</p>
<h3 id="1-2-indexphp에-직접-정의값-선언해보기">1-2. index.php에 직접 정의값 선언해보기</h3>
<p>단, 이건 인덱스 페이지(index.php)만 인식하는 정의값!
<img src="https://velog.velcdn.com/images/la_sta/post/1d754916-fbb1-4da8-9c35-f48c01bb546a/image.png" alt=""></p>
<ul>
<li><strong>전 포폴 영역에 통하는 정의값을 선언하고 싶은데...</strong> 모든 페이지에 다 걸리는 걸로!
힌트) &quot;include&quot;...... php는 다 찢어져있잖아?</li>
<li><em>정답)*</em> 내가 쓸 테마의 head.sub에 변수 선언한다!</li>
</ul>
<h3 id="1-3-headsubphp에-정의값-선언하기">1-3. head.sub.php에 정의값 선언하기!</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/0391df53-e21b-421c-8582-2baab9ced130/image.png" alt=""></p>
<p><strong>&lt; head &gt;와 &lt; head.sub &gt;, 공통점과 차이점</strong>
└ 둘은 같이 다닌다, 하나로 생각!
└ head.sub( <em>변수선언/눈에 보이지 않는 js등</em> )이 head( <em>인터페이스</em> )보다 먼저 온다.
└ 페이지 호출 시, head.sub헤드섭 → head헤드 → index본페이지 → 푸터tail → 푸터섭tail.sub</p>
<hr>
<h2 id="2-그누보드-공통변수-commonphp">2. 그누보드 공통변수 common.php</h2>
<p>① index.php에서 <strong>include_once</strong>(&#39;./_common.php&#39;);
② _common.php에서 <strong>include_once</strong>(&#39;./common.php&#39;); 를 호출한다</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/f9937c18-a006-461d-8fd5-8865159fd3df/image.png" alt=""></p>
<h3 id="-indexphp가-가지는-if문-살펴보기">+) index.php가 가지는 if문 살펴보기</h3>
<ul>
<li><p><strong>&quot;개별 페이지 접근불가&quot;</strong> : 그누보드 정의값이 선언돼있지 않다면 exit
<img src="https://velog.velcdn.com/images/la_sta/post/e250fdfc-d6b8-41e6-8bf1-fde2f73889a1/image.png" alt=""></p>
</li>
<li><p><strong>&quot;테마 선언되어 있으면, 인덱스 첫페이지만 팝업창 띄우기&quot;</strong>
ex) &#39;G5_THEME_PATH&#39; = &quot;네가 설정한 테마의 경로&quot;
<img src="https://velog.velcdn.com/images/la_sta/post/1938f8b8-0679-4581-9041-faa92c67315c/image.png" alt=""></p>
</li>
</ul>
<hr>
<h2 id="3-내-html과-그누보드-시스템-연동하기">3. 내 html과 그누보드 시스템 연동하기</h2>
<p>① 그누보드 폴더 밖에 sir.html &amp; _common.php 만든 다음 → ./_common.php 호출</p>
<pre><code>    &lt;?php
        include_once(&#39;./_common.php&#39;);
        include_once(G5_LIB_PATH. &#39;/latest.php&#39;);

        echo &#39;&lt;h1&gt;&#39;.G5_PATH.&#39;&lt;/h1&gt;&lt;h1&gt;&#39;.G5_PATH.&#39;&lt;/h1&gt;&#39;;
    ?&gt;</code></pre><p>② _common.php가 그누보드(cms) 안의 <strong>common.php</strong> 호출함.</p>
<pre><code>    &lt;?php
        include_once(&#39;./cms/common.php&#39;);
    ?&gt;</code></pre><p>즉, <strong>그누보드가 쓰는 변수 다 갖고올 수 있다!</strong></p>
<p>③ 서버 업로드 후 확인 : 다음과 같이 뜬다 /host/home2/dotoho/html/cms</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/4aa43f6b-420f-4f9f-aa25-fc9ab5d0e1cd/image.png" alt=""></p>
<hr>
<h2 id="4-최근-게시-노출하는-함수">4. 최근 게시 노출하는 함수</h2>
<p>echo latest( <strong>스킨</strong>, <strong>게시판id</strong>, <strong>출력라인</strong>, <strong>글자수</strong> );</p>
<p>최근 게시를 노출하고 싶은 구역에 함수 호출 실행함.</p>
<pre><code>include_once(G5_LIB_PATH.&#39;/latest.lib.php&#39;);</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/e2cd2e0f-65ab-4675-a8f8-72e51c8a9cf1/image.png" alt=""></p>
<h4 id="테마의-스킨을-사용하려면-themebasic과-같이-지정">&quot;테마의 스킨을 사용하려면 theme/basic과 같이 지정&quot;</h4>
<ul>
<li>basic을 가져와 옷입히겠다 (그누보드 본래 skin의 latest의 basic)</li>
<li>theme/basic을 가져와 옷입히겠다 (내가 받은 테마 속 skin의 latest의 basic)</li>
</ul>
<hr>
<h2 id="5-php는-sql과-연동해서-화면-출력함">5. php는 sql과 연동해서 화면 출력함.</h2>
<p>태그 안에 php 있고 그럼</p>
<hr>
<h2 id="6-for문--list-목록">6. for문 = list (목록)</h2>
<p><img src="https://velog.velcdn.com/images/la_sta/post/39b00e76-4864-4add-8bb9-5148247cceba/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[50일차 - phpMyAdmin SQL]]></title>
            <link>https://velog.io/@la_sta/50%EC%9D%BC%EC%B0%A8-phpMyAdmin-SQL</link>
            <guid>https://velog.io/@la_sta/50%EC%9D%BC%EC%B0%A8-phpMyAdmin-SQL</guid>
            <pubDate>Mon, 05 Dec 2022 02:54:01 GMT</pubDate>
            <description><![CDATA[<p><strong>그누보드</strong> (≠백엔드)</p>
<ul>
<li>백엔드 언어로 만들어진 &#39;프레임워크&#39;  ex) 워드프레스</li>
<li>백엔드에 전달할 정보 : DB명 / DB테이블 / 접두어 / DB아이디 / DB패스***워드 / DB접속주소</li>
</ul>
<p><strong>Q) DB를 추가하는 방법이 없을까요?</strong>
wp_write_free여성사진가협회 / mm_write_free뫄뫄회사 / ss_write_free솨솨기업 등등
모든 DB가 다 &#39;dotoho&#39; 안에 있으면 무섭잖아. 실수로 딴거 삭제할까봐.</p>
<p><strong>A) 돈 주고 서버를 더 사세요.</strong></p>
<hr>
<h2 id="1-닷홈-phpmyadmin-로그인">1. 닷홈 phpMyAdmin 로그인</h2>
<ul>
<li>접두어_write(게시판)_gallery(아이디)</li>
<li>접두어_write(게시판)_notice(아이디)</li>
</ul>
<hr>
<h2 id="2-cms_board_file은-첨부파일-게시판">2. CMS_board_file은 &#39;첨부파일&#39; 게시판</h2>
<p>첨부파일은 CMS_board_file 게시판에서 따로 관리함.</p>
<hr>
<h2 id="3-phpmyadmin에서-즉시-free-게시판-수정하기">3. phpMyAdmin에서 즉시 &#39;free&#39; 게시판 수정하기</h2>
<h3 id="방법1-cms_write_free-수정-→-빈칸-바꾸기">방법1) CMS_write_free &#39;수정&#39; → 빈칸 바꾸기</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/4df902ef-c45b-47dd-9594-ccc72a77caa0/image.png" alt=""></p>
<h3 id="방법2-sql을-수정해주기-백틱">방법2) SQL을 수정해주기 (백틱)</h3>
<pre><code>UPDATE `CMS_write_free` SET `wr_hit` = &#39;1000&#39;, `wr_name` = &#39;접니다&#39; WHERE `CMS_write_free`.`wr_id` = 1;
    &lt;!-- 이 게시판을 수정 --&gt;  &lt;!--조회수를 1000으로--&gt;  &lt;!--글작성자 수정--&gt;    </code></pre><ul>
<li>UPDATE <code>CMS_write_free</code> /// <code>이 게시판</code>을 수정</li>
<li><code>wr_hit</code> = &#39;1000&#39; ////// 조회수를 1000으로 수정</li>
<li><code>wr_name</code> = &#39;접니다&#39; /// 글작성자 수정</li>
</ul>
<p>↓</p>
<p>수정 후, php 언어 변경된 것을 확인
<img src="https://velog.velcdn.com/images/la_sta/post/d7cd83e7-ef14-48e1-849d-f1b4ecf8499d/image.png" alt=""></p>
<p>아래처럼 게시글 컨텐츠 수정됨
ex1)
<img src="https://velog.velcdn.com/images/la_sta/post/f8f35844-d58b-41c7-9175-5e08f75f65db/image.png" alt=""></p>
<hr>
<h2 id="4-free-게시판에-새-글-삽입하기-3과-동일">4. free 게시판에 &#39;새 글&#39; 삽입하기 (3과 동일)</h2>
<h3 id="방법1-cms_write_free-삽입-→-빈칸에-new-내용-삽입하기">방법1) CMS_write_free &#39;삽입&#39; → 빈칸에 new 내용 삽입하기</h3>
<p>wr_subject 제목
wr_content 내용
wr_link1
wr_name 글작성자
wr_datetime 글작성시간
wr_1 2 3 4 ... 여분필드
<img src="https://velog.velcdn.com/images/la_sta/post/e4976115-af79-4b24-86cd-f27d13410e69/image.png" alt=""></p>
<h3 id="방법2-sql로-새글-삽입하기-백틱">방법2) SQL로 새글 삽입하기 (백틱)</h3>
<pre><code>          &lt;!-- 이 테이블로 --&gt;
INSERT INTO `cms_write_free` (`wr_id`, `wr_num`, `wr_reply`, `wr_parent`, `wr_is_comment`, `wr_comment`, `wr_comment_reply`, `ca_name`, `wr_option`, `wr_subject`, `wr_content`, `wr_seo_title`, `wr_link1`, `wr_link2`, `wr_link1_hit`, `wr_link2_hit`, `wr_hit`, `wr_good`, `wr_nogood`, `mb_id`, `wr_password`, `wr_name`, `wr_email`, `wr_homepage`, `wr_datetime`, `wr_file`, `wr_last`, `wr_ip`, `wr_facebook_user`, `wr_twitter_user`, `wr_1`, `wr_2`, `wr_3`, `wr_4`, `wr_5`, `wr_6`, `wr_7`, `wr_8`, `wr_9`, `wr_10`) 

VALUES &lt;!-- 각 값들을 삽입(insert into)한다 --&gt;
(NULL, &#39;0&#39;, &#39;&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;sQL에서 넣는 데이버베이스&#39;, &#39;내용&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;2022-12-05 10:17:38&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;, &#39;&#39;)</code></pre><ul>
<li>INSERT INTO <code>cms_write_free</code> (<del>~</del>) //// <code>이 테이블</code>로</li>
<li>VALUES ( , , , , <del>~</del> ) /// 각 값들을 삽입(insert into)한다</li>
</ul>
<hr>
<h4 id="-sql-1회로-새글-5개-작성하는-법-db를-한꺼번에-업로드">+) SQL 1회로 새글 5개 작성하는 법 (=DB를 한꺼번에 업로드)</h4>
<p>한꺼번에 5개의 새글이 작성됨
<img src="https://velog.velcdn.com/images/la_sta/post/61fb7058-88ae-4fc3-ae28-9899580bb3a3/image.png" alt=""></p>
<p>그누보드에서도 확인 가능 ↓
<img src="https://velog.velcdn.com/images/la_sta/post/790a204f-539e-4c7c-b7ee-86957b2808a6/image.png" alt=""></p>
<hr>
<h2 id="5-테이블-구조-살펴보기">5. 테이블 구조 살펴보기</h2>
<h3 id="5-1-cms_write_free의-테이블-구조-살펴보기">5-1. CMS_write_free의 테이블 구조 살펴보기</h3>
<ul>
<li>이름</li>
<li>데이터타입</li>
<li>null 필수입력</li>
<li>기본값</li>
</ul>
<h3 id="5-2-cms_board_file첨부파일-게시판-테이블-구조-살펴보기">5-2. CMS_board_file(첨부파일 게시판) 테이블 구조 살펴보기</h3>
<p>사진을 두 장 첨부하면 아래처럼 나타남.
<img src="https://velog.velcdn.com/images/la_sta/post/1c75bb3c-68b6-4e59-b499-9d770d76ed7b/image.png" alt=""></p>
<h3 id="5-3-cms_config그누보드-테마-있는곳-보기">5-3. cms_config(그누보드 테마 있는곳) 보기</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/fcf57b5a-0785-4ec0-9b05-6e22ad2c5665/image.png" alt=""></p>
<hr>
<h2 id="6-내가-만든-게시판-테이블-찾아가기--cms_content">6. 내가 만든 게시판 테이블 찾아가기 : CMS_content</h2>
<p><strong>bo_table</strong> 게시판
<strong>co_id</strong> 내용관리</p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/4369f2dc-eac5-4f86-a5e4-849913708bc0/image.png" alt=""></p>
<pre><code>wr_subject  // 게시판명
wr_content  // 내용
wr_name     // 글작성자
wr_datetime // 글작성시간
wr_hit         // 조회수</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/96f09a69-b6ee-4aed-870e-91fbbd16334f/image.png" alt=""></p>
<hr>
<h2 id="7-where-키워드로-원하는-데이터-정확히-뽑아내기">7. where 키워드로 원하는 데이터 정확히 뽑아내기</h2>
<p><strong>주로 사용되는 키워드들</strong>
where
order by wr_id desc(내림차순)
order by asc(오름차순)
group by 특정 필드</p>
<h4 id="예시1">예시1)</h4>
<pre><code>                               &lt;!-- 필드가   5 이상인 애들 추려 --&gt;
SELECT * FROM `CMS_write_free` where wr_id &gt;= 5;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/7fe84ca2-871f-4315-8f06-84ef59ff0969/image.png" alt=""></p>
<h4 id="예시2">예시2)</h4>
<pre><code>SELECT * FROM `CMS_write_free` where wr_name = &#39;행인&#39;;
                                &lt;!-- 조회수가 100 이상인 것만 --&gt;</code></pre><h4 id="예시3">예시3)</h4>
<pre><code>SELECT * FROM `CMS_write_free` where wr_hit &gt;= 100;</code></pre><h4 id="예시4-2개-필드에서만-조건-사항-추려내기">예시4) 2개 필드에서만 조건 사항 추려내기</h4>
<pre><code>SELECT wr_name, wr_subject FROM `CMS_write_free` where wr_hit &gt;= 100;</code></pre><h4 id="예시5-조건이-일치하는-필드의-갯수-세기">예시5) 조건이 일치하는 필드의 갯수 세기</h4>
<pre><code>SELECT count(wr_id) FROM `CMS_write_free` where wr_hit &gt;= 100;</code></pre><hr>
<h2 id="8-게시판-만들기---테이블-생성-및-데이터-입력">8. 게시판 만들기 - 테이블 생성 및 데이터 입력</h2>
<p>기본 틀 예시)</p>
<ul>
<li>필드명</li>
<li>용량제한/데이터타입</li>
<li>필수인자<pre><code>CREATE TABLE emp_table
&lt;!-- 필드명    용량제한/데이터타입  필수인자 --&gt;
(   `emp_id`      int           NOT NULL,
  `emp_name`    varchar(100)  NOT NULL,
  `gender`      char          NULL,
  `age`         int(11)       NULL,
  `content`     text(300)     NULL,
  PRIMARY KEY (emp_id)
);</code></pre></li>
</ul>
<p>+) <em>PRIMARY KEY란?</em>
<strong>컴퓨터가 관리하는 키</strong></p>
<hr>
<h3 id="포폴-사전인터뷰-폼-필드에-최적화된-테이블-만들기">포폴 사전인터뷰 폼 필드에 최적화된 테이블 만들기</h3>
<h4 id="①-기본-틀">① 기본 틀</h4>
<p><em>모양 A</em></p>
<pre><code>CREATE TABLE freeinterview_table
(   `id`          int           NOT NULL,
    `subject`    varchar(255)  NOT NULL,
    `content`      text          NULL
    PRIMARY KEY (emp_id)
);</code></pre><p><em>모양 B</em></p>
<pre><code>CREATE TABLE freeinterview_table
(   `id`          int           NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `subject`    varchar(255)  NOT NULL,
    `content`      text          NULL
);</code></pre><h4 id="②-emp_table--freeinterview_table-테이블-생성하기-ab-각각-예시">② emp_table &amp; freeinterview_table 테이블 생성하기 (A,B 각각 예시)</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/880ca8e9-0952-45d5-8157-80f29e772ba6/image.png" alt=""></p>
<h4 id="③-emp_table--freeinterview_table-테이블이-각각-생성됨">③ emp_table &amp; freeinterview_table 테이블이 각각 생성됨</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/fb861b86-2b6e-4439-b435-30eba47363a4/image.png" alt=""></p>
<hr>
<h2 id="9-게시글-순번-바르게-지정">9) &#39;게시글 순번&#39; 바르게 지정</h2>
<p>게시판 관리에서 직접 조정해준다 → 순번이 뒤죽박죽에서 깨끗이 정리됨.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[49일차 - 그누보드 테마) '게시판' 튜닝]]></title>
            <link>https://velog.io/@la_sta/49%EC%9D%BC%EC%B0%A8-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EB%82%B4-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%B3%80%ED%98%95</link>
            <guid>https://velog.io/@la_sta/49%EC%9D%BC%EC%B0%A8-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-%ED%85%8C%EB%A7%88-%EB%82%B4-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%B3%80%ED%98%95</guid>
            <pubDate>Fri, 02 Dec 2022 14:03:49 GMT</pubDate>
            <description><![CDATA[<p><strong>그누보드 &#39;게시판&#39;</strong></p>
<ul>
<li>내용이 바뀌거나 추가될 수 있다 (DB 차곡차곡 누적)
└&gt; <strong>&quot;이전 버젼을 이어가기 위해, 내용관리(덮어쓰기)보다 &#39;게시판&#39; 처리해 튜닝했습니다&quot;</strong></li>
<li>사용자들은 못 쓰지만, 관리자는 글씀</li>
<li>게시글 작성 후 메뉴설정란에 링크복붙 &amp; 댓글창 등은 d-none
ex) 공지사항
ex) 회사연혁 : .... 2018 2019 2020 2021 2022....</li>
</ul>
<hr>
<h4 id="8-6-태극당-시연-주소창에-있는-서버쪽-변수를-이용해---필터링">8-6. 태극당 시연) 주소창에 있는 서버쪽 변수를 이용해 -&gt; 필터링</h4>
<h2 id="9-주소창에-있는-서버쪽-변수-이용해-css-변경">9. 주소창에 있는 서버쪽 변수 이용해, CSS 변경</h2>
<p>하나의 레이아웃으로 여러 디자인을 만들 수 있음!</p>
<h3 id="9-1-요소검사-→-자바스크립트에서-사용하는-전역-변수-선언-확인">9-1. 요소검사 → 자바스크립트에서 사용하는 &#39;전역 변수 선언&#39; 확인</h3>
<pre><code>var g5_bo_table  = &quot;&quot;;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/72361ae0-96b7-47a7-bb34-acc214991ebc/image.png" alt=""></p>
<p>그럼 변수값은 어디?</p>
<h3 id="9-2-관리자-페이지에서-변수명--변수값-확인-가능">9-2. 관리자 페이지에서 변수명 &amp; 변수값 확인 가능</h3>
<blockquote>
<p>$(bo_table) : 게시판 아이디
co_id : 내용 아이디</p>
</blockquote>
<h3 id="9-3-주소창에-있는-서버쪽-변수-이용하는-법">9-3. 주소창에 있는 서버쪽 변수 이용하는 법</h3>
<p>다운받은 테마 medicine 폴더 → <strong>head.sub.php</strong>
페이지 소스에서 body class=&quot;&quot;로 bo_table 변수값 <strong>&quot;free&quot;</strong> 삽입됨
<img src="https://velog.velcdn.com/images/la_sta/post/0b0c5e22-dc62-4f47-bc5b-023edec28263/image.png" alt=""></p>
<p>ex) 페이지 소스에서 이런 식으로 나타남</p>
<pre><code>&lt;body class=&quot;gallery&quot;&gt;</code></pre><h3 id="9-4-클래스로-css-변경">9-4. 클래스로 CSS 변경</h3>
<h4 id="9-4-1-페이지-소스에서-어떤-css를-변경할지-찾기">9-4-1) 페이지 소스에서 어떤 CSS를 변경할지 찾기</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/8b99b9ba-c354-40a2-b4b0-14b0cfd19756/image.png" alt=""></p>
<hr>
<h3 id="10-원활한-서버-작업을-위한-echo-런타임-처리">10. 원활한 서버 작업을 위한 echo 런타임 처리</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/f3378145-d1f5-4042-a03f-3d7039494cf0/image.png" alt=""></p>
<h3 id="11-그누보드에-제이쿼리v2-cdn-삽입하기">11. 그누보드에 제이쿼리v2 cdn 삽입하기</h3>
<p>먼저 있던 제이쿼리v1 주석 후 cdn 삽입
같은 방법으로 스와이퍼 cdn도 복붙해라</p>
<hr>
<h2 id="12-게시판-튜닝하기">12. &#39;게시판&#39; 튜닝하기</h2>
<p><strong>+)</strong> !important 쓰지 않고, 우선순위 바꿔서 내께 먹히도록</p>
<p>결과가 이렇게 되도록
<img src="https://velog.velcdn.com/images/la_sta/post/52f8c978-de55-477c-a3f2-0286c4459175/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/la_sta/post/0456786d-9d97-40cb-9e42-1e33e42eb7d2/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[48일차 - php 라우팅]]></title>
            <link>https://velog.io/@la_sta/48%EC%9D%BC%EC%B0%A8-php-%EB%9D%BC%EC%9A%B0%ED%8C%85-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9Cmyphpadmin</link>
            <guid>https://velog.io/@la_sta/48%EC%9D%BC%EC%B0%A8-php-%EB%9D%BC%EC%9A%B0%ED%8C%85-%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9Cmyphpadmin</guid>
            <pubDate>Thu, 01 Dec 2022 06:13:52 GMT</pubDate>
            <description><![CDATA[<p>공통 구역(상단/하단/퀵)은 그대로고, 바디만 바뀌잖아? 그거임.</p>
<h3 id="1-공통-구역-생성---상단header--하단footer--퀵aside">1. 공통 구역 생성 - 상단header / 하단footer / 퀵aside</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/a6afb34a-d18a-4616-926c-d238778980fc/image.png" alt=""></p>
<h3 id="2-headhtml--indexhtml--footerhtml-생성">2. head.html / index.html / footer.html 생성</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/656b5ad3-9c69-45c6-9b1a-458a4a7a3bcb/image.png" alt=""></p>
<h3 id="3-자르기-자르기">3. 자르기 자르기</h3>
<p><strong>공통 구역(상단/하단/퀵)은 그대로</strong>고, 바디만 바뀌는 방식.
<img src="https://velog.velcdn.com/images/la_sta/post/e7b784bf-6088-4f71-b1b3-fbd174b3360d/image.png" alt=""></p>
<h3 id="4-분리된-파일-import-하기">4. 분리된 파일 import 하기</h3>
<p>서버는 절대경로! <strong>php는 상대경로!</strong></p>
<pre><code>&lt;?php include_once(&#39;상대경로&#39;); ?&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/0ad3db02-64b8-417c-8d73-15c515fe5728/image.png" alt=""></p>
<h3 id="5-boardhtml">5. board.html</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/d1a5fa93-8154-40a1-baac-2d559f677b94/image.png" alt=""></p>
<h3 id="6-loginhtml">6. login.html</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/eaa78c8e-d893-4a3c-bc91-4be87440e326/image.png" alt=""></p>
<h3 id="7-상하단퀵--얘네가-계속-들어옴">7. 상하단+퀵 : 얘네가 계속 들어옴</h3>
<p>서버에서 확인해보기
<img src="https://velog.velcdn.com/images/la_sta/post/6e10c4f0-7959-4f80-8c93-ac85033c3e6c/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[48일차 - 폼태그) 개인정보 정책 if-else]]></title>
            <link>https://velog.io/@la_sta/48%EC%9D%BC%EC%B0%A8-%ED%8F%BC%ED%83%9C%EA%B7%B8-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EC%A0%95%EC%B1%85-if-else</link>
            <guid>https://velog.io/@la_sta/48%EC%9D%BC%EC%B0%A8-%ED%8F%BC%ED%83%9C%EA%B7%B8-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EC%A0%95%EC%B1%85-if-else</guid>
            <pubDate>Thu, 01 Dec 2022 05:53:00 GMT</pubDate>
            <description><![CDATA[<h2 id="1-개인정보-정책-동의-시-페이지-이동">1. 개인정보 정책 동의 시, 페이지 이동</h2>
<h3 id="1-1-submit-버튼-클릭-시">1-1. &quot;submit 버튼 클릭 시&quot;</h3>
<p><strong>.on 메서드</strong> &amp; 클릭 이벤트 : 이벤트를 동시에 여러개 받는 방법
└&gt; click 혹은 submit ! 두 개를 다 받을 수 있다
<img src="https://velog.velcdn.com/images/la_sta/post/d92e2811-e674-43f4-84ad-52d6c75b589f/image.png" alt=""></p>
<h3 id="1-2-return-false-넘어가지마">1-2. return false; 넘어가지마</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/6ef56f99-4a00-4cc5-a8ba-b0ed5e8e6054/image.png" alt=""></p>
<h3 id="1-3-if-else-유효성검사">1-3. if-else 유효성검사</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/740f7ac4-363c-4533-83cb-7f14be5bf74d/image.png" alt=""></p>
<h3 id="1-4-prop--메서드--속성에-접근해서-참거짓-가져옴">1-4. .prop( ) 메서드 : 속성에 접근해서 &#39;참/거짓&#39; 가져옴</h3>
<ul>
<li><p>지정한 선택자를 가진 첫번째 요소의 속성값을 가져온다</p>
</li>
<li><p><strong>prop</strong> / <strong>hasClass</strong> / <strong>is<del>~</del></strong>
: 이런 형태의 메서드는 true/false를 return한다 <strong>(if 조건문 안으로 삽입!)</strong></p>
</li>
<li><p>※ HTML 입장에서의 속성(attribute)이 아닌 <em>JavaScript 입장에서의 속성(property)</em></p>
<pre><code>ㄴ _attr로 접근하면 안돼!_</code></pre><pre><code>&lt;script&gt;
  // prop / hasClass / is~~~
  // $(&#39;#agree&#39;).prop( &quot;checked&quot; ) : true
   // $(&#39;#agree&#39;).is( &quot;:checked&quot; ) : true

if( !( $(&#39;#agree&#39;).is(&quot;:checked&quot;) ) ){
        return false;
      }
if( !( $(&#39;#agree&#39;).prop(&quot;checked&quot;) ) ){
        return false;
      }
</code></pre></li>
</ul>
<p></script></p>
<pre><code>![](https://velog.velcdn.com/images/la_sta/post/a02380bb-ea30-4319-bfaa-f1cf27e5c5e3/image.png)

---

## 2. 12/05평가) 포폴 폼태그 작성
### 2-1. 팝업창 작성하고 CSS
폼에 폰트부터 삽입해라 (부트스트랩 틀어지니까)
### 2-2. 달력부분에 쓸 UI 제이쿼리 datepicker
https://jqueryui.com/datepicker/

### 2-3. 자바스크립트 &lt;-&gt; 제이쿼리로 바꿔보기
기초 제이쿼리와 자바스크립트 치환방식
https://tyrionlife.tistory.com/381

+) 리액트 갈 사람들은 **이메일 인증버튼** 받아서 글쓰기 버튼으로 넘어가도록</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[47일차 - 폼) 쇼핑몰 상세보기 목록들(배열)]]></title>
            <link>https://velog.io/@la_sta/47%EC%9D%BC%EC%B0%A8-%ED%8F%BC-%EC%87%BC%ED%95%91%EB%AA%B0-%EC%83%81%EC%84%B8%EB%B3%B4%EA%B8%B0-%EB%AA%A9%EB%A1%9D%EB%93%A4</link>
            <guid>https://velog.io/@la_sta/47%EC%9D%BC%EC%B0%A8-%ED%8F%BC-%EC%87%BC%ED%95%91%EB%AA%B0-%EC%83%81%EC%84%B8%EB%B3%B4%EA%B8%B0-%EB%AA%A9%EB%A1%9D%EB%93%A4</guid>
            <pubDate>Wed, 30 Nov 2022 04:10:24 GMT</pubDate>
            <description><![CDATA[<p>ex) 쇼핑몰 상세보기?
<img src="https://velog.velcdn.com/images/la_sta/post/af568086-9ca9-4928-953e-1bc259946587/image.png" alt=""></p>
<p><strong>시나리오</strong></p>
<blockquote>
<p>① 검색어 필드를 채우고 &#39;저장&#39; 클릭하면 차례대로 저장해 두었다가,
② &#39;확인하기&#39; 통해 한꺼번에 노출시킴</p>
</blockquote>
<h3 id="1-html-인풋란-작성">1. HTML 인풋란 작성</h3>
<p><img src="https://velog.velcdn.com/images/la_sta/post/adaca5d8-fd0c-4687-bb8a-2a64242fe3f1/image.png" alt=""></p>
<h3 id="2-저장하기-버튼-클릭-하는-제이쿼리-식-작성">2. &#39;저장하기&#39; 버튼 클릭! 하는 제이쿼리 식 작성</h3>
<p>근데 &lt; button &gt;에 class, id 없다면? (nth-child도 말고!)</p>
<p><em>그럼 뭘로 잡아서 addEventListener 해???</em>
<img src="https://velog.velcdn.com/images/la_sta/post/a590563a-e668-46ba-bff2-ca7797fee5a0/image.png" alt=""></p>
<h4 id="방법1-버튼에-class-삽입---addclass--thisindex---">방법1) 버튼에 class 삽입 - addClass( &#39; this<strong>.index( )</strong> &#39; )</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/bb329351-bb61-43b8-8fc3-2ca3fb39adde/image.png" alt=""></p>
<p>같은 표현
<img src="https://velog.velcdn.com/images/la_sta/post/bb2e2e98-ae76-414e-900c-3fa72543bd2f/image.png" alt=""></p>
<h4 id="방법2-버튼에-id-삽입---attr-id-btn--index순번-">방법2) 버튼에 id 삽입 - attr( &#39;id&#39;, &#39;btn + index순번&#39; )</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/d6bb2423-16f4-43a1-9c9d-6b3384c690a3/image.png" alt=""></p>
<h4 id="방법3-data-name으로-컨텐츠를-저장---data-nm확인하기">방법3) data-name으로 &#39;컨텐츠&#39;를 저장 - [data-nm=&quot;확인하기&quot;]</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/79f0af77-5742-4261-8bd2-8f31ac182d83/image.png" alt=""></p>
<p>① 콘솔창에서 확인해보기
<img src="https://velog.velcdn.com/images/la_sta/post/1a441718-56ea-4ce8-83bd-b140eab143eb/image.png" alt=""></p>
<p>② 버튼 순서를 바꿔보자! &#39;확인하기&#39; ↔ &#39;저장&#39;</p>
<p><strong>결론</strong> :  세번째 것이 제일 좋다! (버튼 순서 바껴도 그대로 있다였나?)
<img src="https://velog.velcdn.com/images/la_sta/post/6694529d-c9e5-4e31-978d-9dcc50e7fb7e/image.png" alt=""></p>
<p>③ CSS로 확인하기 ( 데이터-네임=&quot;저장&quot;에 경계선색 주기 )
<img src="https://velog.velcdn.com/images/la_sta/post/cf5aa7dc-5b3c-43ca-9d87-ccca572f6295/image.png" alt=""></p>
<p>④ 버튼 순서를 바꿔보자! &#39;확인하기&#39; ↔ &#39;저장&#39;
<img src="https://velog.velcdn.com/images/la_sta/post/0ab8ea7d-1b08-49de-ba9f-0dd97201f889/image.png" alt=""></p>
<h3 id="3-on--실체-없는-객체-안으로-자바스크립트-식-밀어넣기">3. on : 실체 없는 객체 안으로 자바스크립트 식 밀어넣기</h3>
<p>[data-nm=&quot;저장&quot;] 은 <strong>동적객체</strong> ( = 페이지 소스보기에 없는 애들! )</p>
<pre><code>$(부모).on( &#39;click&#39;, &#39;동적객체_페이지 소스보기 없는 애들&#39;, function(){
            &lt;!-- /////////////////// --&gt;
})</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/224004bf-26b4-48d7-ad4d-df1e3b2199e2/image.png" alt=""></p>
<p>배열 선언</p>
<pre><code>var stext = [ ];</code></pre><p>&#39;저장&#39; 버튼을 누를 때마다 → 사용자가 input에 넣은 숫자값을 이 배열에 .push</p>
<pre><code>$(부모).on( &#39;click&#39;, &#39;동적객체_페이지 소스보기 없는 애들&#39;, function(){
    &lt;!-- #search 인풋에 작성한 값을 배열에 push --&gt;
})</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/62f77bf9-5484-4f1b-8ed9-91566bddb35e/image.png" alt=""></p>
<h3 id="4-저장해둔-검색어는--stext--입니다-화면-출력">4. &#39;저장해둔 검색어는 ( stext ) 입니다&#39; 화면 출력</h3>
<h4 id="4-1-html에-append-하기">4-1) html에 append 하기!</h4>
<pre><code>    $(&#39;#search&#39;).append(&#39;&lt;div&gt;저장해둔 검색어는 &#39; + arrnms + &#39; 입니다.&lt;/div&gt;&#39;);</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/bb1cf439-fcd4-4327-b62a-f6456a44ac44/image.png" alt=""></p>
<h4 id="4-2-오류가-난다면-빈-배열-선언-방식-수정하기">4-2) 오류가 난다면, 빈 배열 선언 방식 수정하기</h4>
<p>var stext = [ ]; 대신
var stext = new Array( ); // 이게 더 좋다
<img src="https://velog.velcdn.com/images/la_sta/post/153c65da-e10d-4496-8327-38b7a287ef39/image.png" alt=""></p>
<p><em>근데 이 단계에서 아직 화면 출력 안됨</em></p>
<h3 id="5-인풋란이-비어있으면-처리-안되도록-if-else">5. 인풋란이 비어있으면 처리 안되도록 if-else</h3>
<pre><code>&lt;script&gt;
    $(&#39;body&#39;).on(&#39;click&#39;, &#39;[data-nm=&quot;저장&quot;]&#39;, function(){

        let searchText = $(&#39;[type=&quot;text&quot;]&#39;).val()

        if( searchText != &#39;&#39; ){
            stext.push( $(&#39;#search input&#39;).val() )
            console.log(stext);
            $(&#39;#search input&#39;).val(&#39;&#39;);
        }else{
            alert(&quot;검색어를 입력한 뒤 저장하세요&quot;)
            $(&#39;[type=&quot;text&quot;]&#39;).focus();
        }
    })
&lt;/script&gt;</code></pre><p><img src="https://velog.velcdn.com/images/la_sta/post/0c638a89-81b3-4555-b981-6fe7c9393131/image.png" alt=""></p>
<h3 id="6-사용자가-입력한-검색어가-매개인자로-들어가는-콜백함수">6. 사용자가 입력한 검색어가 (매개인자)로 들어가는 콜백함수</h3>
<p>이렇게 만들어봅시다
<img src="https://velog.velcdn.com/images/la_sta/post/c138ca86-2339-44cd-9c95-e7aa1b266832/image.png" alt=""></p>
<h4 id="6-1-강사님이-제시한-틀--이-식을-마저-완성해보자">6-1) 강사님이 제시한 틀 : 이 식을 마저 완성해보자!</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/723f0797-de85-4332-ab82-700f8b23e89e/image.png" alt=""></p>
<h4 id="6-2-저장해둔-검색어는--입니다-를-화면-출력">6-2) &#39;저장해둔 검색어는 ... 입니다&#39; 를 화면 출력</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/ea7dadda-4d4f-4e71-a597-6eb6f0c4e1c4/image.png" alt=""></p>
<h4 id="6-3-콜백함수-매개인자-arrnmstext-과-arrnmssearcontent">6-3) 콜백함수 매개인자 arrnm(=stext) 과 arrnms(=searContent)</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/44a066f2-5b2a-44c8-90c3-8fe0a2963609/image.png" alt=""></p>
<h4 id="6-4-확인하기-버튼을-클릭하면-마지막-컨텐츠에만----빼기">6-4) &#39;확인하기&#39; 버튼을 클릭하면 마지막 컨텐츠에만 &#39; , &#39; 빼기</h4>
<p><img src="https://velog.velcdn.com/images/la_sta/post/c38285aa-e252-4210-b0f2-f5e7fac60561/image.png" alt=""></p>
<ul>
<li><p>slice 사용 (근데 내껀 화면 적용이 안 됐음)
<img src="https://velog.velcdn.com/images/la_sta/post/910c9800-9d09-493e-ab0c-637c7106d677/image.png" alt=""></p>
</li>
<li><p><strong>join 메서드 사용</strong></p>
<blockquote>
<p>join( ) 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.</p>
</blockquote>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/la_sta/post/c89b9e17-051c-432e-8b01-bac3e498b96c/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>