<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>yura_1026.log</title>
        <link>https://velog.io/</link>
        <description>.</description>
        <lastBuildDate>Wed, 08 Feb 2023 14:41:42 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>yura_1026.log</title>
            <url>https://images.velog.io/images/yura_1026/profile/47d0503b-0ff6-4443-a38d-2495c5dea696/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. yura_1026.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/yura_1026" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[docker 사용해보기]]></title>
            <link>https://velog.io/@yura_1026/docker-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0</link>
            <guid>https://velog.io/@yura_1026/docker-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0</guid>
            <pubDate>Wed, 08 Feb 2023 14:41:42 GMT</pubDate>
            <description><![CDATA[<p>국비학원 다니면서 만들어두었던 oracle cloud 인스턴스를 활용!
OS 버전 : oracle-linux-7.9</p>
<blockquote>
</blockquote>
<ul>
<li>버전 확인<pre><code>$ cat /etc/*release*</code></pre></li>
<li>시스템 업데이트<pre><code>$ sudo yum -y update</code></pre><blockquote>
</blockquote>
</li>
</ul>
<blockquote>
</blockquote>
<h4 id="docker-설치">docker 설치</h4>
<pre><code>$ sudo yum install docker-engine -y</code></pre><h4 id="시스템-등록">시스템 등록</h4>
<pre><code>$ sudo systemctl enable docker.service</code></pre><h4 id="등록한-도커-실행">등록한 도커 실행</h4>
<pre><code>$ sudo systemctl start docker.service</code></pre><blockquote>
</blockquote>
<blockquote>
</blockquote>
<h4 id="mariadb-이미지-설치-버전-미지정-시-최신버전으로-자동-설치">mariadb 이미지 설치 :버전 미지정 시 최신버전으로 자동 설치</h4>
<pre><code>$ sudo docker pull mariadb</code></pre><pre><code>$ sudo docker pull mariadb:버전</code></pre><h4 id="mariadb-컨테이너-만들고-실행">mariadb 컨테이너 만들고 실행</h4>
<pre><code>$ sudo docker run --name mariadb -d -p 3306:3306 --restart=always -e  
MYSQL_ROOT_PASSWORD=1234 mariadb</code></pre><pre><code>--name: 만들어서 사용할 컨테이너의 이름을 정의  
-d: 컨테이너를 백그라운드에서 실행
-p: 호스트와 컨테이너 간의 포트를 연결 (host-port:container-port)   
    호스트에서 3306 포트 연결 시 컨테이너 3306 포트로 포워딩
--restart=always: 도커가 실행되는 경우 항상 컨테이너를 실행
-e: 기타 환경설정(Enviorment)
  MYSQL_ROOT_PASSWORD=root // mariadb의 root 사용자 초기 비밀번호를 설정
mariadb: 컨테이너를 만들 때 사용할 이미지 이름</code></pre><h4 id="mariadb-컨테이너-접속--컨테이너-생성-시-적용한-이름으로-접속">mariadb 컨테이너 접속 : 컨테이너 생성 시 적용한 이름으로 접속</h4>
<pre><code>$ sudo docker exec -it mariadb /bin/bash</code></pre><blockquote>
</blockquote>
<p>참고링크 :<a href="https://feellikeghandi.tistory.com/51">docker 설치</a>, <a href="https://7942yongdae.tistory.com/130">mariadb 설치</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[form 동적 생성]]></title>
            <link>https://velog.io/@yura_1026/%EB%8F%99%EC%A0%81-form-%EC%83%9D%EC%84%B1</link>
            <guid>https://velog.io/@yura_1026/%EB%8F%99%EC%A0%81-form-%EC%83%9D%EC%84%B1</guid>
            <pubDate>Mon, 06 Feb 2023 15:32:14 GMT</pubDate>
            <description><![CDATA[<hr>
<h1 id="jquery">jQuery</h1>
<pre><code class="language-javascript">    let $form = $(&#39;&lt;form&gt;&lt;/form&gt;&#39;); // 폼 태그 생성
    $form.attr(&#39;action&#39;, url);         // 폼 속성 설정
    $form.attr(&#39;method&#39;, &#39;get&#39;);
    $form.append($(&#39;&lt;input /&gt;&#39;, { type: &#39;hidden&#39;, name: &#39;name&#39;, value: &#39;value&#39; }));    // 자식태그 생성

       $form.append(&#39;&lt;input type=&quot;hidden&quot; name=&quot;name&quot; value=&quot;value&quot; /&gt;&#39;); -&gt; 문자열로 append 가능 

    $form.appendTo(&#39;body&#39;); // body태그에 추가
    $form.submit(); // 전송</code></pre>
<h1 id="javascript">Javascript</h1>
<pre><code class="language-javascript">    let form = document.createElement(&#39;form&#39;); // 폼 태그 생성
    form.setAttribute(&#39;action&#39;, url); // 태그 속성 설정
    form.setAttribute(&#39;method&#39;, &#39;get&#39;);

    let input = document.createElement(&#39;input&#39;); // 자식 요소 input 태그 생성
    input.setAttribute(&#39;type&#39;, &#39;hidden&#39;); // 태그 속성 설정
    input.setAttribute(&#39;id&#39;, &#39;inputId&#39;);
    input.setAttribute(&#39;value&#39;, &#39;value&#39;);

    form.appendChild(input); // input태그를 form태그의 자식요소로 만듦
    document.body.appendChild(form) // form태그를 body태그의 자식요소로 만듦
    form.submit(); // 전송
</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[window.print]]></title>
            <link>https://velog.io/@yura_1026/window.print</link>
            <guid>https://velog.io/@yura_1026/window.print</guid>
            <pubDate>Wed, 02 Nov 2022 02:06:36 GMT</pubDate>
            <description><![CDATA[<p>media css 설정으로 프린터로 출력할 화면의 css를 입힐 수 있다.</p>
<p>```
@media print {
    * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
  }
  @page{
      size: A4;
      margin: 0;
    }
    html {
        font-size: 6px;
    }
    html, body {
    margin:0;
    padding:0;
    page-break-after: avoid;
    page-break-before: avoid;
    background: #fff;
  }
  .body, .page {margin-top:-1px}</p>
<pre><code>#header, #headerMo, .all-mask, #container, #footer, .modal .btn-area {
    display: none;
}
.img-modal-wrap .dim {
    background: #fff;
}
.print-content {
    overflow:hidden;
position:relative;
width:210mm;
height:297mm; /*서브픽셀 해결1 사용시*/
height:calc(297mm - 1px); /*서브픽셀 해결2 - IE는 미지원*/
page-break-before: always;

}
.modal {
    transform: translate(-50%, -55%)
}
.modal-con {
    overflow: hidden;
}
.modal .close {
    display: none;
}
.mo-estimate-box {

}</code></pre><p>}</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[mac 명령어]]></title>
            <link>https://velog.io/@yura_1026/mac-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
            <guid>https://velog.io/@yura_1026/mac-%EB%AA%85%EB%A0%B9%EC%96%B4</guid>
            <pubDate>Thu, 20 Oct 2022 01:53:35 GMT</pubDate>
            <description><![CDATA[<h2 id="디렉토리-생성-mkdirmake-directory">디렉토리 생성 mkdir(make directory)</h2>
<blockquote>
<ul>
<li>기본 디렉토리 생성<ul>
<li>$mkdir directory1 </li>
</ul>
</li>
<li>2개의 디렉토리 한번에 생성<ul>
<li>$mkdir directory1 directory2</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>공백을 포함한 이름을 가진 디렉토리 생성 
폴더 명을 쌍따옴표(&quot;&quot;)로 둘러주거나 &#39;역슬래시 + 공백&#39;으로 나타내 주어야 함)<ul>
<li>$mkdir directory\ has\ space</li>
<li>$mkdir &quot;directory has space 2&quot;</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>디렉토리 이름에 패턴이 있는 경우, 와일드카드 활용
&#39;test01&#39;부터 &#39;test06&#39;까지 &#39;{}&#39;와일드카드를 활용해 한번에 생성 가능<ul>
<li>$mkdir test{01, 02, 03, 04, 05, 06}</li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="디렉토리-삭제-rm--r">디렉토리 삭제 rm -r</h2>
<blockquote>
<ul>
<li><p>단일 파일(디렉토리) 삭제</p>
<ul>
<li>$rm -r test</li>
</ul>
</li>
<li><p>전 디렉토리 내 모든 파일(디렉토리) 삭제</p>
<ul>
<li>$rm -r *</li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="폴더-이름-정렬-리스팅">폴더 이름 정렬 리스팅</h2>
<blockquote>
<ul>
<li>기본<ul>
<li>$ls | sort -f</li>
</ul>
</li>
<li>역순<ul>
<li>$ls | sort -r</li>
</ul>
</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[Java List<VO> to JSONArray]]></title>
            <link>https://velog.io/@yura_1026/Java-ListVO-to-JSONArray</link>
            <guid>https://velog.io/@yura_1026/Java-ListVO-to-JSONArray</guid>
            <pubDate>Mon, 19 Sep 2022 17:02:44 GMT</pubDate>
            <description><![CDATA[<p>참고 링크
<a href="https://aljjabaegi.tistory.com/388">to JSONArray</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[mac 자바 환경변수 설정]]></title>
            <link>https://velog.io/@yura_1026/mac-%EC%9E%90%EB%B0%94-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@yura_1026/mac-%EC%9E%90%EB%B0%94-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 02 Aug 2022 05:54:46 GMT</pubDate>
            <description><![CDATA[<h2 id="맥에서-자바-환경변수-설정하기">맥에서 자바 환경변수 설정하기</h2>
<ol>
<li>터미널에서 JDK 버전 확인<ul>
<li>cd /Library/Java/JavaVirtualMachines</li>
<li>ls jdk1.8.0_291.jdk</li>
</ul>
</li>
</ol>
<ol start="2">
<li><p>vi에디터 열기</p>
<ul>
<li>cd /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home</li>
<li>vi ~/.bash_profile</li>
</ul>
</li>
<li><p>환경변수 설정하기</p>
<ul>
<li>i를 눌러 입력모드로 전환<ul>
<li>export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home</li>
<li>export CLASSPATH=.:$JAVA_HOME/lib/tools.jar        </li>
<li>export PATH=$JAVA_HOME/bin</li>
</ul>
</li>
<li>명령어 입력 후 ESC 키를 눌러 편집모드를 빠져나옴</li>
<li>:wq를 눌러 저장 후 종료</li>
</ul>
</li>
<li><p>자바 버전 확인 명령어</p>
<ul>
<li>java -version</li>
<li>javac -version</li>
</ul>
</li>
</ol>
<h2 id="자바-버전-변경하기">자바 버전 변경하기</h2>
<ol>
<li><p>현재 로컬에 설치되어있는 Java 버전 확인하기</p>
<ul>
<li>/usr/libexec/java_home -V</li>
</ul>
</li>
<li><p>Java 다른 버전 변경하기</p>
<ul>
<li>Java 8로 변경할 경우<ul>
<li>export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)</li>
<li>source ~/.bash_profile (bash 사용하는 경우에만 적용)</li>
</ul>
</li>
<li>Java 11로 변경 할 경우<ul>
<li>export JAVA_HOME=$(/usr/libexec/java_home -v 11)</li>
<li>Java 11은 뒤에 버전을 명시할 때 1.x형식으로 해주지 않아도 됨</li>
</ul>
</li>
</ul>
</li>
<li><p>터미널 재시작 시 버전이 다시 원래대로 돌아가는 경우</p>
<ul>
<li>MacOS 카탈리나 버전 이상부터는 zxh 쉘을 사용</li>
<li>~/.zxhrc의 파일을 열어 export JAVA_HOME=$(/usr/libexec/java_home -v 11) 명령어가 제대로 입력되었는지 확인</li>
<li>vim ~/.zshrc</li>
<li>입력이 안 되어있는 경우 i를 눌러 편집모드로 변경 후 입력해주고 :wq로 종료하면 됨</li>
</ul>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[typescript 에러]]></title>
            <link>https://velog.io/@yura_1026/typescript-%EC%97%90%EB%9F%AC</link>
            <guid>https://velog.io/@yura_1026/typescript-%EC%97%90%EB%9F%AC</guid>
            <pubDate>Thu, 09 Jun 2022 16:15:36 GMT</pubDate>
            <description><![CDATA[<p><a href="https://reactnative.dev/docs/typescript">npx react-native init MyApp --template react-native-template-typescript 에러 시 참고 링크</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[REACT, REACT-NATIVE]]></title>
            <link>https://velog.io/@yura_1026/REACT-REACT-NATIVE</link>
            <guid>https://velog.io/@yura_1026/REACT-REACT-NATIVE</guid>
            <pubDate>Thu, 09 Jun 2022 16:03:57 GMT</pubDate>
            <description><![CDATA[<h2 id="리액트-네이티브-프레임워크의-작동-원리">리액트 네이티브 프레임워크의 작동 원리</h2>
<blockquote>
<ul>
<li><h4 id="물리dom과-가상dom">물리DOM과 가상DOM</h4>
<ul>
<li>물리 DOM 구조는 웹 브라우저에서 자바스크립트 코드가 생성하는 실제 DOM 구조</li>
<li>가상 DOM 구조는 리액트 코드가 생성한 자바스크립트 객체 구조</li>
<li>리액트는 특정 시점에서 이 가상 DOM 구조를 물리 DOM 구조로 만드는데, 이를 &#39;리액트가 렌더링한다&#39; 하고, 이 기능을 수행하는 패키지를 renderer라 함</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="리액트-프레임워크와-리액트-네이티브-프레임워크의-차이">리액트 프레임워크와 리액트 네이티브 프레임워크의 차이</h4>
<ul>
<li>리액트는 가상 DOM 구조를 react-dom이란 렌더러 패키지를 사용하여 물리 DOM 구조로 렌더링하는 방식의 프레임워크</li>
<li>리액트 네이티브는 react-native라는 렌더러 패키지를 사용하여 렌더링하는 방식의 프레임워크</li>
<li>리액트에서는 react-dom 렌더러를 DOM 렌더러라 하고 react-native 렌더러를 네이티브 렌더러라 함</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="react-패키지의-역할">react 패키지의 역할</h4>
<ul>
<li>리액트와 리액트 네이티브 프레임워크는 모두 react라는 패키지를 사용</li>
<li>react 패키지는 App.tsx파일을 가상 DOM 구조로 만드는 역할을 하는 패키지</li>
<li>네이티브 렌더러는 리액트 요소를 안드로이드 프레임워크나 IOS용 UIKit 프레임워크의 화면 UI객체로 바꿔주는 역할을 함</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="브리지-방식-렌더링">브리지 방식 렌더링</h4>
<ul>
<li>모든 것이 자바스크립트로 동작하는 리액트에서는 React.render라는 DOM 렌더러의 동작을
 코드로 확인할 수 있지만 리액트 네이티브에서는 네이티브 렌더러의 모습을 확인할 수 없다.</li>
<li>리액트 네이티브는 프로젝트의 android와 ios 디렉터리에 있는 자바나 오브젝트-C로 구현한 네이티브 모듈
 쪽에서 렌더링이 진행 되기 때문</li>
<li>네이티브 모듈 쪽에는 JavaScriptCore라는 이름의 자바스크립트 엔진이 동작 함</li>
<li>이 C++ 언어로 구현된 JavaScriptCore 엔진은 안드로이드에서는 JNI(Java Native Interface) 방식으로,
 IOS에서는 오브젝트-C의 FFI(Foreign Function Interface) 방식으로 연결되어 동작</li>
</ul>
</li>
</ul>
</blockquote>
<blockquote>
</blockquote>
<ul>
<li>리액트 네이티브 앱을 폰에 설치하고 실행하면 리액트 네이티브의 네이티브 모듈이 실행되면서 
네이티브(안드로이드 프레임워크나 IOS UIKit 프레임워크 쪽 렌더링)를 담당하는 UI 스레드와 App.tsx와 같은 자바스크립트 코드를 실행하는 자바스크립트 엔진 스레드 2개가 동시에 동작</li>
<li>이 두 스레드는 message queue 방식으로 서로 렌더링과 관련된 데이터를 주고 받음</li>
<li>사용자가 화면을 터치하거나 하면 UI 스레드는 이 내용을 자바스크립트 쪽 스레드에 이벤트 형태로 넘김</li>
<li>이런 방식으로 동작하는 프레임워크를 bridge 방식 프레임워크라 함</li>
</ul>
<blockquote>
</blockquote>
<ul>
<li>RN전용 패키지에는 자바스크립트 스레드에서 동작하는 쪽과 UI 스레드에서 동작하는 쪽이 따로 있음 이 때문에 자바스크립트 쪽만 설치하고 네이티브, 즉 UI 스레드에서 동작하는 쪽을 설치하지 않으면 패키지가 정상 동작하지 않음</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Window Scoop]]></title>
            <link>https://velog.io/@yura_1026/Window-Scoop</link>
            <guid>https://velog.io/@yura_1026/Window-Scoop</guid>
            <pubDate>Thu, 09 Jun 2022 13:26:39 GMT</pubDate>
            <description><![CDATA[<p>소프트웨어 설치 시 사이트에서 내려받지 않고 Scoop이라는 설치프로그램을 사용
이렇게 사용하면 scoop update * 명령으로 한꺼번에 최신 버전으로 업데이트 할 수 있다.</p>
<blockquote>
<h2 id="sccop-설치">Sccop 설치</h2>
<ul>
<li>sccop 프로그램 설치는 관리자 모드로 실행한 윈도우 파워셀에서 진행</li>
</ul>
</blockquote>
<ul>
<li>윈도우10의 시작버튼을 마우스 오른쪽으로 클릭하고 [Window PowerShell(관리자)] 메뉴로 실행<blockquote>
</blockquote>
</li>
</ul>
<blockquote>
<h4 id="실행-규칙-변경">실행 규칙 변경</h4>
<blockquote>
<ul>
<li>명령어 실행 후 &#39;모두 예&#39;를 의미하는 A를 입력 
<img src="https://velog.velcdn.com/images/yura_1026/post/1e5d5921-cce1-417d-a5cb-398dc717e0c2/image.PNG" alt=""></li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>&#39;SCOOP&#39;이라는 이름의 파워셀 환경 변수 설정
Scoop으로 설치한 모든 프로그램은 C:\Scoop 디렉터리에 위치하게 됨
<img src="https://velog.velcdn.com/images/yura_1026/post/cca3b177-27c5-4d2d-9dda-41d6f5d135b2/image.PNG" alt=""></li>
</ul>
</blockquote>
</blockquote>
<blockquote>
<h4 id="환경-변수-설정">환경 변수 설정</h4>
<blockquote>
<ul>
<li>위에서 파워셀 환경 변수 설정은 파워셀에서 Scoop으로 프로그램을 설치할 때마다 실행해야 하는 번거로움이 생김</li>
<li>이 과정 생략을 위해 윈도우의 환경 변수로 설정
<img src="https://velog.velcdn.com/images/yura_1026/post/bae67ccf-be51-4e1c-afeb-810afe979f0c/image.PNG" alt=""></li>
</ul>
</blockquote>
</blockquote>
<blockquote>
<h4 id="설치">설치</h4>
<blockquote>
<ul>
<li>명령어를 실행해야 하는데 관리자 모드로는 안된다 ..
<img src="https://velog.velcdn.com/images/yura_1026/post/53437e20-dbbc-4fa2-a926-af8f549d2d36/image.PNG" alt=""></li>
<li>파워셀 창을 새로 띄워서 명령어를 실행하면 c:\Scoop 경로에 설치된 것을 확인할 수 있다.
<img src="https://velog.velcdn.com/images/yura_1026/post/bda87869-22eb-4f56-9a3c-922d381d5616/image.PNG" alt=""></li>
</ul>
</blockquote>
</blockquote>
<p>회사에서 react-native 프로젝트를 진행하게 되어 Do it! 리액트 네이티브 앱 프로그래밍 책으로 공부 중 
node.js, vscode, android studio 등 소프트웨어 설치를 웹 사이트에서가 아닌 Scoop 프로그램 사용하는 방법이 나와있어 정리 해 본다.
이미 웹 사이트를 통해 다 설치 했지만 나중에 한번 사용해봐도 좋을 듯 하다.</p>
<p><a href="https://m.blog.naver.com/vanstraat/221732533202">powershell 실행정책 참고링크</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Stack Navigator Header]]></title>
            <link>https://velog.io/@yura_1026/Stack-Navigator-Header</link>
            <guid>https://velog.io/@yura_1026/Stack-Navigator-Header</guid>
            <pubDate>Thu, 21 Apr 2022 04:43:58 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yura_1026/post/d232cc40-6178-4f00-9382-05f2b2c4d9ea/image.png" alt=""></p>
<h2 id="stack-navigator의-header만-직접-커스텀-가능">Stack Navigator의 header만 직접 커스텀 가능</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[MongoDB]]></title>
            <link>https://velog.io/@yura_1026/MongoDB</link>
            <guid>https://velog.io/@yura_1026/MongoDB</guid>
            <pubDate>Sun, 17 Apr 2022 13:49:00 GMT</pubDate>
            <description><![CDATA[<p>관계형 데이터베이스
행과 열
MySQL
MariaDB
Oracle
MS SQL Server</p>
<p>NoSQL
파일 생성 후 자료 입력
Object 자료형으로 입출력 가능</p>
<p>Dynamo
Oracle NoSQL
MongoDB
Redis
Cassandra</p>
<p>무료 호스팅 받아 사용</p>
<p>mongodb atlas
가입 -&gt; db create </p>
<p>라이브러리 설치
npm install <a href="mailto:mongodb@3.6.4">mongodb@3.6.4</a></p>
<p>EJS 
HTML을 조금 더 쓰기 쉽게 만들어 주는 엔진
npm install ejs</p>
<p>ejs 파일은 views폴더 내부에 생성</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[REST API]]></title>
            <link>https://velog.io/@yura_1026/REST-API</link>
            <guid>https://velog.io/@yura_1026/REST-API</guid>
            <pubDate>Sun, 17 Apr 2022 11:48:27 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h2 id="restapi">restapi</h2>
<p>서버 만들 때 REST하게 API를 짜는게 좋아요~</p>
</blockquote>
<p>API - Application Programming Interface
프로그램들 간의 통신규약 </p>
<p>웹 개발시
: 웹서버와 고객간의 소통방법
: 어떻게 해야 서버와 통신을 할 수 있을까</p>
<p>API를 어떤식으로 만들어야 좋은 API일까 
HTTP 요청 시스템을 너무 막 사용해 REST 원칙에 의해 사용하면 좋을 것 같다</p>
<ul>
<li>Roy Fielding(2000 Architecture for the web) 졸업 논문</li>
</ul>
<p>REST 원칙 6개
1번이 가장 중요</p>
<ol>
<li>Uniform interface 
 : 하나의 자료는 하나의 URL로
 : URL 하나를 알면 둘을 알 수 있어야 함
 : 요청과 응답은 정보가 충분히 들어있어야 함</li>
<li>Client-Server 역할구분
 : 브라우저는 요청만
 : 서버는 응답만</li>
<li>Stateless
 : 요청1과 요청2는 의존성이 없어야함</li>
<li>Cacheable
 : 서버에서 보내주는 정보들은 캐싱이 가능해야함
 : 캐싱을 위한 버전 같은 것도 관리 잘해야함 (브라우저가 잘 해줌)</li>
<li>Layered System</li>
<li>Code on Demand</li>
</ol>
<p>이름짓기 원칙:</p>
<ul>
<li>URL을 명사로 작성추천</li>
<li>하위문서를 나타낼 땐 /</li>
<li>파일확장자(.html)쓰지말기</li>
<li>띄어쓰기는 대시(-) 이용</li>
<li>자료 하나당 하나의 URL</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Node 서버]]></title>
            <link>https://velog.io/@yura_1026/node-get-request</link>
            <guid>https://velog.io/@yura_1026/node-get-request</guid>
            <pubDate>Sun, 17 Apr 2022 10:52:44 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>엔트리 포인트로 설정해 준 이름 그대로 server.js 파일 생성</p>
</blockquote>
<blockquote>
<ul>
<li><h4 id="서버를-띄우기-위한-기본-셋팅express-라이브러리">서버를 띄우기 위한 기본 셋팅(express 라이브러리)</h4>
const express = require(&#39;express&#39;);
const app = express();
app.listen(); - 서버를 열어주는 함수 listen(서버띄울 포트번호, 띄운 후 실행할 코드) {});</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li>서버 실행
terminal -&gt; node server.js 명령어 실행 
로컬 환경
localhost:8080 -&gt; 8080포트 들어가는 방법</li>
</ul>
</blockquote>
<blockquote>
<h4 id="get-request">GET REQUEST</h4>
</blockquote>
<pre><code>app.get(경로, function(req, res) {    </code></pre><blockquote>
</blockquote>
<pre><code>}) </code></pre><blockquote>
<h4 id="서버-재실행-자동화-시키기">서버 재실행 자동화 시키기</h4>
<pre><code>npm install -g nodemon</code></pre><h4 id="설치-후">설치 후</h4>
<pre><code>nodemon server.js </code></pre></blockquote>
<blockquote>
<blockquote>
<h4 id="powershell-보안-오류-시">powershell 보안 오류 시</h4>
<p>powershell 관리자 실행
executionpolicy 입력
-&gt; restricted : 허가한 스크립트만 실행할 수 있음 
set-executionpolicy unrestricted 입력 -&gt; y</p>
</blockquote>
</blockquote>
<blockquote>
<p>nodemon 실행 성공 시 스크립트 수정시마다 자동 starting 해줌</p>
</blockquote>
<blockquote>
<h4 id="post-request">POST REQUEST</h4>
<p>요청 관련 라이브러리 설치</p>
</blockquote>
<pre><code>npm install body-parser</code></pre><blockquote>
<p>설치 후 
코드 추가</p>
</blockquote>
<pre><code>const bodyParser = require(&#39;body-parser&#39;);
app.use(bodyParser.urlencoded({extended : true}));</code></pre><p>body-parser는 요청 데이터(body) 해석을 쉽게 도와줌
form 데이터의 경우 input name속성 사용 </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[node 시작]]></title>
            <link>https://velog.io/@yura_1026/node-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@yura_1026/node-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Fri, 15 Apr 2022 16:00:51 GMT</pubDate>
            <description><![CDATA[<blockquote>
<ul>
<li><h3 id="node-설치">node 설치</h3>
</li>
<li><h3 id="vscode-설치">vscode 설치</h3>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="npm--라이브러리-설치를-도와주는-도구---node설치시-같이-설치-됨">npm : 라이브러리 설치를 도와주는 도구 -&gt; node설치시 같이 설치 됨</h4>
</li>
<li><h4 id="packagejson--npm으로-라이브러리-설치-시-어떤-라이브러리를-설치했는지-기록해주는-파일">package.json : npm으로 라이브러리 설치 시 어떤 라이브러리를 설치했는지 기록해주는 파일</h4>
</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="express-라이브러리-설치">express 라이브러리 설치</h4>
터미널 
npm init
명령 실행 후 엔터
entry point에서 내가 원하는 파일명 설정
npm install express</li>
</ul>
</blockquote>
<blockquote>
<ul>
<li><h4 id="라이브러리를-설치하는-순간-node-modules-파일-설치-됨">라이브러리를 설치하는 순간 node-modules 파일 설치 됨</h4>
</li>
<li><blockquote>
<p>라이브러리와 관련 된 파일들을 다 담고 있음</p>
</blockquote>
</li>
</ul>
</blockquote>
<pre><code>express 설치하면 관련 라이브러리 같이 설치 됨</code></pre><blockquote>
<ul>
<li><h4 id="npm-install-설치-시-권한이-없어요-에러">npm install 설치 시 권한이 없어요 에러</h4>
mac permission denied 에러</li>
</ul>
</blockquote>
<pre><code>npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access &#39;/usr/local/lib/node_modules</code></pre><blockquote>
</blockquote>
<pre><code>sudo chown -R ownerName: 에러 뜬 경로
sudo chown -R $USER 에러 뜬 경로</code></pre><blockquote>
</blockquote>
<ul>
<li><h4 id="yarn-사용">yarn 사용</h4>
yarn 설치 후 PC 재시작
npm install 대신 yarn add 명령어 사용 가능</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[react-native-webview]]></title>
            <link>https://velog.io/@yura_1026/react-native-webview</link>
            <guid>https://velog.io/@yura_1026/react-native-webview</guid>
            <pubDate>Fri, 15 Apr 2022 06:46:20 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><img src="https://velog.velcdn.com/images/yura_1026/post/c0881940-2669-4a1e-a9a4-035d185136ae/image.png" alt="">
react-native-webview 설치 후 ios build 실패 에러</p>
</blockquote>
<blockquote>
<h3 id="해결방법">해결방법</h3>
<p>app.json 파일 내부 react-native-webview 버전 11.15.0 -&gt; 11.14.3으로 변경</p>
</blockquote>
<ul>
<li>회사에서 사용 중인 맥이 OS업데이트가 안되서 xcode12.5 사용중인데 xcode13을 사용하면 생기지 않을 문제일 수 있다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Android Google Login]]></title>
            <link>https://velog.io/@yura_1026/Android-Google-Login</link>
            <guid>https://velog.io/@yura_1026/Android-Google-Login</guid>
            <pubDate>Thu, 14 Apr 2022 15:56:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/yura_1026/post/a97f0650-d1ce-4750-8986-7e89351a1529/image.png" alt=""></p>
<blockquote>
<h2 id="sha-1-인증서-디지털-지문">SHA-1 인증서 디지털 지문</h2>
</blockquote>
<p>안드로이드 스튜디오를 통해 배포용 앱을 생성하기 위해서는 별도의 서명 과정이 필요
이때 사용되는 것이 디지털 인증서인데 이를 SHA-1지문이라 부름</p>
<h4 id="sha-1-지문-형태">SHA-1 지문 형태</h4>
<ul>
<li>debug 인증서: 개발, 테스트 과정에서 사용</li>
<li>release 인증서 : 실제 배포 과정에서 사용</li>
</ul>
<h4 id="sha-1-확인-방법">SHA-1 확인 방법</h4>
<p>터미널 작성
<img src="https://velog.velcdn.com/images/yura_1026/post/40830880-5fc5-408a-9597-ce1ad1e43f1b/image.png" alt=""></p>
<p>BUILD SUCCESSFUL 완료 화면이 나오면 스크롤을 올려 SHA1 항목 확인 가능</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[npm start reset cache]]></title>
            <link>https://velog.io/@yura_1026/npm-start-reset-cache</link>
            <guid>https://velog.io/@yura_1026/npm-start-reset-cache</guid>
            <pubDate>Thu, 14 Apr 2022 15:09:03 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h2 id="npm-cache-clean">npm cache clean</h2>
</blockquote>
<h4 id="-to-clear-a-cache-in-npm-we-need-to-run-the-npm-cache-clean---force-command-in-our-terminal"># To clear a cache in npm, we need to run the npm cache clean --force command in our terminal:</h4>
<p>: npm cache clean --force</p>
<h4 id="-clean-it-deletes-the-all-data-from-your-cache-folder"># clean: It deletes the all data from your cache folder</h4>
<h4 id="-you-can-also-verify-the-cache-by-running-the-following-command"># You can also verify the cache, by running the following command:</h4>
<ul>
<li>npm cache verify</li>
<li>npm cache clear --force</li>
<li>npm cache rm --force</li>
<li>npm cache verify</li>
</ul>
<h4 id="-how-to-clean-the-npm-cache"># how to clean the npm cache</h4>
<ul>
<li>npm cache clear --force</li>
<li>npm cache rm --force</li>
<li>npm cache verify</li>
</ul>
<h4 id="-clean-remove-npm-with-cache"># clean remove npm with cache</h4>
<ul>
<li>rm package-lock.json</li>
<li>rm -R node_modules</li>
<li>npm cache clean --force</li>
</ul>
<h4 id="-yarn-start-reset-cache"># yarn start-reset-cache</h4>
<ul>
<li>watchman watch-del-all &amp;&amp; rm -f yarn.lock &amp;&amp; rm -rf node_modules &amp;&amp; yarn start --reset-cache</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[javascript & jQuery 노드 찾기]]></title>
            <link>https://velog.io/@yura_1026/javascript-jQuery-%EB%85%B8%EB%93%9C-%EC%B0%BE%EA%B8%B0</link>
            <guid>https://velog.io/@yura_1026/javascript-jQuery-%EB%85%B8%EB%93%9C-%EC%B0%BE%EA%B8%B0</guid>
            <pubDate>Thu, 17 Mar 2022 07:36:24 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h1 id="javascript">javascript</h1>
</blockquote>
<h4 id="childnodes">childNodes</h4>
<pre><code>    - 자식 노드를 찾을 때 사용, 모든 자식을 찾을 때에는 childNodes를 사용하며 배열 형태로 저장 됨

    - element.childNodes; 
        : 모든 자식노드
        : 이 경우 주석(Comment)이나, 요소 앞뒤에 있는 공백(text)이 자식노드로 함께 포함이 됨
        : .nodeName 속성을 통해 요소 종류 확인 가능

    - element.children; 
        : 해당 HTML 요소의 자식요소를 배열의 형태로 반환
        : childNodes와는 다르게 주석이나 줄바꿈 또는 텍스트는 제외

    - element.firstChild; 
        : 첫번째 자식노드

    - element.lastChild; 
        : 마지막 자식노드

    - element.childNodes[i] 
        : 특정 순서의 자식 노드</code></pre><h4 id="parentnode">parentNode</h4>
<pre><code>    - 부모 노드를 찾을 때 사용

    - element.parentNode; 
        : 해당 노드의 부모노드

    - element.parentNode.parentNode; 
        : 해당 노드의 조상노드</code></pre><h4 id="sibling">Sibling</h4>
<pre><code>    - 형제 노드 찾을 때 사용

    - 자바스크립트에서는 해당 노드의 앞, 뒤 형제만 찾을 수 있다. 
        : 특정 형제노드를 찾으려면 제이쿼리 사용해야 함

    - element.previousSibling; 
        : 해당 노드의 앞 형제노드

    - element.nextSibling; 
        : 해당 노드의 뒤 형제노드</code></pre><blockquote>
<h1 id="jquery">jQuery</h1>
</blockquote>
<h4 id="children선택자">children([선택자])</h4>
<pre><code>    - $(e).children(); 
        : 자식 검색,

    - $(e).children.(선택자)
        : 특정 자식노드 찾기

    - 텍스트노드를 반환하지 않음 
        : 텍스트 및 주석 노드를 포함한 모든 자식을 얻으려면 
        =&gt; .children().find().children().contents()

    - 첫번째 자식노드
        : $(e).children().first();
        : $(e).children().eq(0);
        : $(e).children(&quot;:first&quot;);
        : $(e).children(&quot;:eq(0)&quot;);

    - 마지막 자식노드
        : $(e).children().last();
        : $(e).children(&quot;:last&quot;);
        : $(e).children().eq($(e).children.length-1);
        : $(e).children(&quot;:eq(&quot;+($(e).children().length-1)+&quot;)&quot;);
        : $(e).children().eq(-1);
        : $(e).children(&quot;:eq(-1)&quot;);

    - n번째 자식노드
        : $(e).children().eq(index);
        : $(e).children(&quot;:eq(&quot;+index+)&quot;);</code></pre><h4 id="parent-parents선택자">parent(), parents([선택자])</h4>
<pre><code>    - $(e).parent(); 
        : 부모노드 찾기

    - $(e).parents(); 
        : 조상노드 찾기

    - $(e).parents(선택자); 
        : 특정 조상노드 찾기</code></pre><h4 id="prev-prevall선택자-next-nextall선택자-siblings선택자">prev(), prevAll([선택자]), next(), nextAll([선택자]), siblings(선택자)</h4>
<pre><code>    - $(e).prev(); 
        : 특정 노드의 이전 형제노드 찾기

    - $(e).prevAll(); 
        : 특정 노드의 모든 이전 형제노드 찾기

    - $(e).prevAll(선택자); 
        : 이전 형제노드 중 특정 노드 찾기

    - $(e).next(); 
        : 특정 노드의 다음 형제노드 찾기

    - $(e).nextAll();
        : 특정 노드의 모든 다음 형제노드 찾기

    - $(e).nextAll(선택자); 
        : 다음 형제노드 중 특정 노드 찾기

    - $(e).siblings(선택자); 
        : 특정 형제노드 찾기</code></pre><h4 id="filter선택자-find선택자-eqindex">filter([선택자]), find([선택자]), eq(index)</h4>
<pre><code>    - 요소 필터링, 자손노드찾기

    - $(e).filter(선택자); 
        : 찾은 노드 중에서 특정 노드만 필터링

    - $(e).find(선택자); 
        : 현재 노드의 자손노드 중 특정 노드 찾기

    - $(e).eq(index) 
        : index 번호에 해당하는 요소 찾기</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[javascript & jQuery 요소 찾기]]></title>
            <link>https://velog.io/@yura_1026/javascriptjQuery-%EC%9A%94%EC%86%8C-%EC%B0%BE%EA%B8%B0</link>
            <guid>https://velog.io/@yura_1026/javascriptjQuery-%EC%9A%94%EC%86%8C-%EC%B0%BE%EA%B8%B0</guid>
            <pubDate>Thu, 17 Mar 2022 06:54:32 GMT</pubDate>
            <description><![CDATA[<h1 id="요소-탐색">요소 탐색</h1>
<blockquote>
<h3 id="javascript">javascript</h3>
</blockquote>
<pre><code class="language-javascript">    document.getEelmentsByTagName(태그이름)
    document.getEelmentById(아이디);
    document.getEelmentsByClassName(클래스이름); //    HTMLCollection 반환
    document.getElementsByName(name속성값);         
    document.querySelector(CSS 선택자);         //    선택자에 해당하는 첫번째요소만 선택
    document.querySelectorAll(CSS 선택자)       //    선택자에 해당하는 모든요소, 반환객체(nodeList)</code></pre>
<pre><code>* HTMLCollection
    - 요소의 문서 내 순서대로 정렬된 일반 컬렉션(arguments 처럼 배열과 유사한 객체)
    - 리스트에서 선택할 때 필요한 메서드와 속성을 제공    


* 속성
    - HTMLCollection.length
        : 컬렉션 항목의 갯수를 반환


* 메서드
    - HTMLCollection.item(index)
        : 리스트에서 주어진 인덱스의 노드를 반환, 인덱스가 범위 밖일 경우 null을 반환
        : HTMLCollection[index] 같은 기능
    - HTMLCollection.namedItem(name or id)
        :  리스트에서 ID 또는 이름 속성이 주어진 문자열과 일치하는 노드를 반환, 
            이름 속성판별은 HTML에서만 최후의 수단으로 쓰이며 참조하는 요소가 name 속성을 지원해야 함, 
        : 일치하는 요소가 없으면 null을 반환
        : HTMLCollection.name(or id) 같은 기능</code></pre><blockquote>
<h3 id="jquery">jQuery</h3>
</blockquote>
<p>```javascript
        $(&#39;*&#39;);             //모든 엘리먼트 선택
        $(&#39;div&#39;);             // Tag 이름으로 노드 찾기
        $(&#39;#idName&#39;)         // id 이름으로 노드 찾기
        $(&#39;.className&#39;);     // class 이름으로 노드 찾기
        $(&#39;ul.className&#39;);    // ul엘리먼트 중 class 이름이 className인 엘리먼트 선택
        $(&#39;ul, div&#39;);         // ul 및 div 태그 선택
        $(&#39;div img&#39;);         // div의 자손노드 중 Tag 이름이 img인 모든 엘리먼트 선택
        $(&#39;ul .className&#39;); // ul의 자손노드 중 class 이름이 className 인 엘리먼트 선택
        $(&#39;ul&gt;li&#39;);         // ul Tag의 바로 아래 자식노드 중 li Tag인 엘리먼트 선택</p>
<pre><code> * 필터
    :not(selector)        // 셀렉터와 일치하지 않는 요소들 리턴
    :first                // 선택된 요소 중 첫 번째 요소
    :last                // 선택된 요소 중 마지막 요소
    :even                // 선택된 요소 중 짝수 인덱스 요소들
    :odd                // 선택된 요소 중 홀수 인덱스 요소들
    :eq(index)            // 선택된 요소 중 지정된 index 번호를 가진 요소
    :gt(index)            // 선택된 요소 중 지정된 index 번호보다 큰 인덱스 요소들
    :lt(index)            // 선택된 요소 중 지정된 index 번호보다 작은 인덱스 요소들 
    :header                // h1 ~ h6 요소들
    :animated            // 애니메이션이 적용된 모든 요소들
    :focus                // 현재 포커스를 가지고 있는 요소
    :contains(&quot;text&quot;)    // &quot;text&quot;를 가지고 있는 요소들
    :empty                // 자식 요소가 없는 모든 요소들
    :parent                // 자식 요소를 가지고 있는 모든 요소들
    :has(selector)        // selector에 부합하는 요소를 하나 이상 가지고 있는 요소들
    :hidden                // 화면에서 숨겨진 모든 요소들
    :visible            // 공간을 차지하고 있는 모든 요소들
    :nth-child(expr)    // expr 순번의 자식 요소
    :first-child        // 첫번째 자식 요소
    :last-child            // 마지막 자식 요소
    :only-child            // 요소의 자식 요소가 하나뿐인 요소

    //예시
    $(&#39;div:not(&quot;#summary&quot;)&#39;);    // #summary를 제외한 나머지 div 태그들을 선택
    $(&quot;li&quot;).eq(3);                // 찾은 노드 중 4 번째 노드에 접근하기
    $(&quot;div:has(p)&quot;);            // &lt;p&gt; 요소를 가진 모든 &lt;div&gt; 요소들
    $(&quot;ul li:nth-child(2)&quot;);    // 두 번째 &lt;li&gt; 요소


* 속성옵션 필터
    $(&quot;[attr]&quot;);                // attr 속성을 가진 모든 요소들
    $(&quot;el[attr]&quot;);                // 속성 attr 를 포함한 모든 el 노드 찾기
    $(&quot;el[attr=val]&quot;);            // 속성 attr 의 값이 val 인 모든 el 노드 찾기
    $(&quot;el[attr!=val]&quot;);            // 속성 attr 의 값이 val이 아닌 모든 el 노드 찾기
    $(&quot;el[attr^=val]&quot;);            // 속성 attr 의 값이 val 로 시작하는 모든 el 노드 찾기
    $(&quot;el[attr$=val]&quot;);            // 속성 attr 의 값이 val 로 끝나는 모든 el 노드 찾기
    $(&quot;el[attr*=val]&quot;);            // 속성 attr 의 값이 val 을 포함하고 있는 모든 el 노드 찾기
    $(&quot;[attribute|=&#39;value&#39;]&quot;);    // 속성값이 value값과 일치하거나 value- 으로 시작하는 요소들
    $(&quot;[attr1][attr2]&quot;);        // 지정된 속성중 하나를 가진 모든 요소들

    // 예시
    $(&quot;div[class*=test]&quot;);        // class의 값이 test를 포함하고 있는 모든 div 노드

  * 폼 요소
    폼 요소의 값 조회하기
    &lt;input&gt;,&lt;textarea&gt;,&lt;select&gt; 요소의 값을 알아낸다.
    .val()
     폼 필터
    :input, :text, :password, :radio, :checkbox, :submit,
    :image, :reset, :button, :file, :selected
    :enabled, :disabled, :checked

    //예시
    $(&#39;input[name=&quot;checkbox&quot;]:checked&#39;); 
    // name 속성의 값이 checkbox인 input 태그 중 checked 되어있는 요소 찾기</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[img 태그 속성 onerror]]></title>
            <link>https://velog.io/@yura_1026/img-%ED%83%9C%EA%B7%B8-%EC%86%8D%EC%84%B1-onerror</link>
            <guid>https://velog.io/@yura_1026/img-%ED%83%9C%EA%B7%B8-%EC%86%8D%EC%84%B1-onerror</guid>
            <pubDate>Thu, 17 Mar 2022 05:42:06 GMT</pubDate>
            <description><![CDATA[<h4 id="onerror"><em>onerror</em></h4>
<p>로컬서버와 개발서버가 같은 DB를 바라보고 있는 경우
DB에는 값이 있어 경로는 가져와지는데 
실제 디렉토리에 이미지가 없어 엑박이 뜨는 경우가 생김 ..</p>
<blockquote>
<p>이미지가 없을 시 엑박 대처 속성 onerror 사용</p>
</blockquote>
<pre><code class="language-html">&lt;img src=&quot;/image/img.jpg&quot; onerror=&quot;this.src=&#39;대처이미지경로.jpg&#39;&quot; alt=&quot;&quot; /&gt;</code></pre>
<h4 id="css-백그라운드-이미지-로드"><em>CSS 백그라운드 이미지 로드</em></h4>
<blockquote>
<p><code>&lt;img /&gt;</code> 태그를 사용하지 않고 style 속성을 사용하는 경우
노드에 둘 이상의 배경이미지를 가지게 할 수 있음</p>
</blockquote>
<pre><code class="language-html">&lt;div style=&quot;background-image:url(&#39;/image/img.jpg&#39;) ,url(&#39;대처이미지경로.jpg&#39;)&quot;&gt;&lt;/div&gt;</code></pre>
]]></description>
        </item>
    </channel>
</rss>