<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>cherry.log</title>
        <link>https://velog.io/</link>
        <description> 🍒의 공부공간</description>
        <lastBuildDate>Wed, 23 Aug 2023 08:55:42 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>cherry.log</title>
            <url>https://velog.velcdn.com/images/cherry_eong/profile/ef875781-1cd6-439f-87cd-9519aa93cce8/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. cherry.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/cherry_eong" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[sql 문법정리]]></title>
            <link>https://velog.io/@cherry_eong/sql-%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@cherry_eong/sql-%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 23 Aug 2023 08:55:42 GMT</pubDate>
            <description><![CDATA[<p>select, </p>
<blockquote>
<p>테이블에 있는 데이터 조회 
select * from 테이블  </p>
</blockquote>
<p>order, </p>
<p>distinct, </p>
<p>where, </p>
<blockquote>
<p>조건문</p>
</blockquote>
<p>limit, 
in, </p>
<blockquote>
<p>이거나 
IN(24,25,26)
24거나 25거나 26</p>
</blockquote>
<p>between, </p>
<blockquote>
<p>~부터까지 </p>
</blockquote>
<p>like, </p>
<blockquote>
<p>로 시작하거나 포함하거나 끝나는 단어
%로 표현 </p>
</blockquote>
<p>join, 
inner, 
left, 
right, 
group, 
having, 
grouping, 
rollup, 
cube, 
avg, 
count, 
row_number, 
rank, 
lag, 
lead, 
union, 
intersect, 
except,
 case, 
cast, ...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[서버이전 총정리 ]]></title>
            <link>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EC%9D%B4%EC%A0%84-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
            <guid>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EC%9D%B4%EC%A0%84-%EC%B4%9D%EC%A0%95%EB%A6%AC</guid>
            <pubDate>Wed, 10 May 2023 02:51:13 GMT</pubDate>
            <description><![CDATA[<h3 id="서버이전-과정">서버이전 과정</h3>
<h4 id="test-서버-생성-👉-test-서버에서-작동확인-👉-본서버에-이전">test 서버 생성 👉 test 서버에서 작동확인 👉 본서버에 이전</h4>
<hr>
<h4 id="1-test-서버-생성">1. test 서버 생성</h4>
<p>1-1. DNS 추가 (메일플러그) _ awstest.bsjgsc7330.co.kr </p>
<p>1-2. putty에서 계정생성 
기존 아이디와 비밀번호 동일하게 </p>
<p>1-3. 기존 서버소스 압축 
기존 서버로 접속 - root 로 로그인 &gt; 소스 압축</p>
<pre><code>tar -zcvf 폴더명.tar.gz www</code></pre><p>1-4. 212 서버에 압축해제
기존 ftp 접속하여 압축파일 업로드
기존 서버 접속 - root 로 로그인 &gt; 소스 압축해제</p>
<pre><code>tar -xvzf 폴더명.tar.gz</code></pre><p>1-5. Vhost 설정 </p>
<pre><code>vi /etc/httpd/conf/vhost.conf</code></pre><p>1-6. 사용자 권한 설정 </p>
<pre><code>cd  /home</code></pre><pre><code>chmod 701 ID명</code></pre><p>1-7. RDS DB 설정 
DB 생성</p>
<ul>
<li><p>RDS.mysql.global_priv에 기존 DB 복사하여 User 변경 및 패스워드 입력
(기존 서버의 mysql.user 테이블 참조)</p>
</li>
<li><p>RDS.mysql.DB 행추가</p>
</li>
</ul>
<p>실행 : 권한부여</p>
<pre><code>flush privileges;</code></pre><p>1-8. 기존 DB 백업 및 Dump 
기존 서버 DB 도구 &gt; sql로 내보내기 &gt; 설정
RDS 도구 &gt; sql 파일 실행 &gt; 쿼리 실행</p>
<p>DB config rds로 수정</p>
<hr>
<h4 id="2-test-서버에서-작동확인">2. test 서버에서 작동확인</h4>
<p>2-1. board &gt; lib &gt;mysql-extension-wrapper.php 파일 넣기
2-2. 404에러발생</p>
<ul>
<li>https → http 코드수정</li>
<li><code>define(&#39;G5_HTTP_BBS_URL&#39;,  http_url(G5_BBS_DIR, true));</code></li>
<li><code>define(&#39;G5_HTTPS_BBS_URL&#39;, http_url(G5_BBS_DIR, false));</code></li>
<li><code>ini_set(&quot;display_errors&quot;, 1);</code>  주석처리</li>
</ul>
<p>2-3. 로그인 작동확인
2-4. 크론탭 작동확인 </p>
<blockquote>
<p>1) 크론탭은 상대경로 사용이 안되기 때문에 <code>mysql-extension-wrapper.php</code> include
2) 크론탭 수정
<code>00분 00시 * * * /usr/bin/php -q /경로</code>
3) log_crontab 확인해서 서버에서 크론탭 작동확인</p>
</blockquote>
<h4 id="3-본서버에-이전">3. 본서버에 이전</h4>
<p>3-1. dns 수정
3-2. vhost 수정
3-3. 데이터베이스 작업</p>
<blockquote>
<p>1) 기존 데이터베이스 삭제 
2) 백업 데이터베이스 import 작업
3-4. config.php에 define 이름 변경
3-5. test시에 변경했던 코드 수정 (복구)
3-6. 크론탭 db경로 변경하여 작동확인
3-7. 기존 데이터베이스 이름 변경
3-8. 접속 및 기능 테스트 (네이버 연동)</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[SQL _ SELECT / FROM / WHERE / AS / ORDER BY / GROUP BY]]></title>
            <link>https://velog.io/@cherry_eong/SQL-SELECT-FROM-WHERE-AS-ORDER-BY-GROUP-BY</link>
            <guid>https://velog.io/@cherry_eong/SQL-SELECT-FROM-WHERE-AS-ORDER-BY-GROUP-BY</guid>
            <pubDate>Fri, 21 Apr 2023 05:37:04 GMT</pubDate>
            <description><![CDATA[<h3 id="select">SELECT</h3>
<h4 id="원하는-테이블의-속성의-모든-값들을-가져올-수-있다">원하는 테이블의 속성의 모든 값들을 가져올 수 있다.</h4>
<blockquote>
<p>SELECT 속성 FROM 테이블명 </p>
</blockquote>
<h4 id="예시">예시</h4>
<pre><code>&lt;instructor&gt;

[{
id : 1,
name : James,
dept name : Physics,
salary : 95000},
{
id : 2,
name : Jhon,
dept name : Comp.Sci,
salary : 65000
}]</code></pre><h4 id="select-name-from-instructor">SELECT name FROM instructor</h4>
<p>instructor 테이블의 name 값을 가져온다.</p>
<h4 id="selcet--from-instructor">SELCET * FROM instructor</h4>
<p>instructor 테이블의 모든 값을 가져온다.</p>
<h4 id="selcet--from-instructor-where-id1">SELCET * FROM instructor WHERE id=1</h4>
<p>where 조건을 통해 id=1 인 값만 가져온다.</p>
<hr>
<h3 id="as">AS</h3>
<h4 id="속성이나-테이블의-이름을-새로-지정할-때-사용한다">속성이나 테이블의 이름을 새로 지정할 때 사용한다.</h4>
<blockquote>
<p>SELECT 지정할 속성 AS 별칭 FROM 테이블명</p>
</blockquote>
<h4 id="예시-1">예시</h4>
<pre><code>&lt;instructor&gt;

[{
id : 1,
name : James,
dept name : Physics,
salary : 95000},
{
id : 2,
name : Jhon,
dept name : Comp.Sci,
salary : 65000
}]</code></pre><h4 id="select-name-id-salary12-as-monthly_salary-from-instrucotr">SELECT name, id, salary/12 AS monthly_salary FROM instrucotr</h4>
<p>instructor 테이블에서 name과 id, 월급 값을 가져와서 monthly_salary 속성을 만든다.</p>
<h4 id="select-distinct-aname-br-from-instructor-as-ainstructor-as-b-br-where-a-salary--b-salary">SELECT DISTINCT A.name </br> FROM instructor AS A,instructor AS B <br> WHERE A salary &gt; B salary</h4>
<p>테이블명 뒤에도 별칭을 지정할 수 있다 위의 쿼리는 더 큰 salary의 값을 반환하도록 한다.
+DISTINCT : 중복된 자료를 제거한다. </p>
<hr>
<h3 id="like">LIKE</h3>
<h4 id="속성값을-비교-할-때-사용한다">속성값을 비교 할 때 사용한다</h4>
<h4 id="예시-2">예시</h4>
<pre><code>&lt;instructor&gt;
[{
id : 1,
name : James,
dept name : Physics,
salary : 95000},
{
id : 2,
name : Jhon,
dept name : Comp.Sci,
salary : 65000
}]
</code></pre><h4 id="select-name-from-instructor-where-name-like-j">SELECT name FROM instructor WHERE name LIKE &#39;J%&#39;</h4>
<p>instructor 테이블의 name 값중에 &#39;J&#39; 로 시작하는 name 값을 반환한다. </p>
<hr>
<h3 id="order-by">ORDER BY</h3>
<h4 id="데이터를-정렬하여-조회할-때-사용한다">데이터를 정렬하여 조회할 때 사용한다.</h4>
<blockquote>
<p>테이블명 ORDER BY 속성 방식 </p>
</blockquote>
<h4 id="예시-3">예시</h4>
<pre><code>&lt;instructor&gt;
[{
     id : 1,
    name : James,
    dept name : Physics,
    salary : 95000},
{
    id : 2,
    name : Jhon,
    dept name : Comp.Sci,
    salary : 65000,
  },
  {
    id : 3,
    name : Mark,
    dept name : Math,
    salary : 85000,
  }]

  &lt;ASC&gt;
[{
    id : 2,
    name : Jhon,
    dept name : Comp.Sci,
    salary : 65000,
  },
  {
    id : 3,
    name : Mark,
    dept name : Math,
    salary : 85000,
  },
  {
    id : 1,
    name : James,
    dept name : Physics,
    salary : 95000}
  ]

  &lt;DESC&gt;
  [
  {
    id : 1,
    name : James,
    dept name : Physics,
    salary : 95000},
 {
    id : 3,
    name : Mark,
    dept name : Math,
    salary : 85000,
  },
  {
    id : 2,
    name : Jhon,
    dept name : Comp.Sci,
    salary : 65000,
  }
]</code></pre><h4 id="select--from-----instructor-order-by-salary-desc">SELECT * FROM     instructor ORDER BY salary DESC</h4>
<p>instructor 테이블에서 salary 속성을 내림차순으로 정렬한 값을 반환한다. </p>
<p>*ASC를 사용하면 오름차순, DESC를 사용하면 내림차순이다.  </p>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[Vue.js 로그인 페이지 구동 ]]></title>
            <link>https://velog.io/@cherry_eong/Vue.js-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%AC%EB%8F%99</link>
            <guid>https://velog.io/@cherry_eong/Vue.js-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%AC%EB%8F%99</guid>
            <pubDate>Wed, 22 Mar 2023 02:32:48 GMT</pubDate>
            <description><![CDATA[<h2 id="🌲-vuejs-로그인-페이지-만들기">🌲 vue.js 로그인 페이지 만들기</h2>
<h4 id="1-loginviewvue-폴더-만들기-✅">1. LoginView.vue 폴더 만들기 ✅</h4>
<p>main.js, index.js에 LoginView.vue  import하기</p>
<h4 id="2-db와-연결하여-정보-확인하기">2. DB와 연결하여 정보 확인하기</h4>
<p>일치하면 로그인 성공</p>
<hr>
<h3 id="1-로그인-페이지-작성하기">1. 로그인 페이지 작성하기</h3>
<h4 id="1-src--view--loginviewvue-파일-생성하기">1) src &gt; view &gt; LoginView.vue 파일 생성하기</h4>
<h4 id="2-loginviewvue에-template-작성하기">2) LoginView.vue에 <code>&lt;template&gt;</code> 작성하기</h4>
<pre><code>&lt;template&gt;
  &lt;div&gt;
    &lt;div&gt;
      &lt;h2&gt;로그인&lt;/h2&gt;
      &lt;div id=&quot;loginForm&quot;&gt; 
        &lt;form @submit.prevent=&quot;fnLogin&quot;&gt; 
          &lt;p&gt;
            &lt;input class=&quot;w3-input&quot; name=&quot;uid&quot; placeholder=&quot;ID를 입력해주세요&quot; v-model=&quot;user_id&quot;&gt;&lt;br&gt;




          &lt;/p&gt;
          &lt;p&gt;
            &lt;input name=&quot;password&quot; class=&quot;w3-input&quot; placeholder=&quot;PW를 입력해주세요&quot; v-model=&quot;user_pw&quot; type=&quot;password&quot;&gt;
          &lt;/p&gt;
          &lt;p&gt;
            &lt;button type=&quot;submit&quot; class=&quot;w3-button w3-green w3-round&quot;&gt;Login&lt;/button&gt;
          &lt;/p&gt;
        &lt;/form&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/template&gt;</code></pre><h4 id="3-loginviewvue에-script-작성하기">3) LoginView.vue에 <code>&lt;script&gt;</code> 작성하기</h4>
<pre><code>&lt;script&gt;

export default {
  data() {
    return {
      user_id: &#39;&#39;,
      user_pw: &#39;&#39;
    }
  },
  methods: {
    fnLogin() {
      if (this.user_id === &#39;&#39;) {
        alert(&#39;ID를 입력하세요.&#39;)
        return
      }

      if (this.user_pw === &#39;&#39;) {
        alert(&#39;비밀번호를 입력하세요.&#39;)
        return
      }

      alert(&#39;로그인 되었습니다.&#39;)
    }
  }
}
&lt;/script&gt;
</code></pre><h3 id="2-로그인-페이지-import-하기">2. 로그인 페이지 import 하기</h3>
<h4 id="1-router--indexjs에-loginviewvue-import하기">1) router &gt; index.js에 LoginView.vue import하기</h4>
<pre><code>&lt;span style=&quot;color:#000&quot;&gt;import Login from &#39;../views/LoginView.vue&#39;&lt;/span&gt;&lt;span style=&quot;color:#000&quot;&gt;&lt;/span&gt;</code></pre><h4 id="2-router--indexjs에-로그인-컴포넌트-추가하기">2) router &gt; index.js에 로그인 컴포넌트 추가하기</h4>
<pre><code>
const routes = [
    {
    path: &#39;/login&#39;,
    name: &#39;Login&#39;,
    component: Login
    }
]</code></pre><h3 id="3-로그인-페이지-경로-표시하기">3. 로그인 페이지 경로 표시하기</h3>
<h4 id="1-src--appvue에-login-경로-router-link로-작성하기">1) src &gt; App.vue에 Login 경로 router-link로 작성하기</h4>
<pre><code>&lt;template&gt;
    &lt;nav&gt;
          &lt;router-link to=&quot;/login&quot;&gt;Login&lt;/router-link&gt;
    &lt;/nav&gt;
&lt;/template&gt;
</code></pre><h3 id="2-확인하기">2) 확인하기</h3>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/ddd5f93f-adb6-4e1a-a3dd-623aa5a9c4a8/image.png" alt=""></p>
<h3 id="4-로그인-성공시에-페이지-이동">4. 로그인 성공시에 페이지 이동</h3>
]]></description>
        </item>
        <item>
            <title><![CDATA[서버구동에 필요한 ]]></title>
            <link>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EA%B5%AC%EB%8F%99%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C</link>
            <guid>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EA%B5%AC%EB%8F%99%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C</guid>
            <pubDate>Mon, 20 Mar 2023 08:45:04 GMT</pubDate>
            <description><![CDATA[<h3 id="🌸-ec2">🌸 EC2</h3>
<p>클라우드 컴퓨팅 서비스 
키페어 = 퍼블릭키 + 프라이빗키(.pem) : 지정한 키페어 사용하여 인스턴스에 안전하게 연결 </p>
<h3 id="🌸-ftp-vsftpd">🌸 FTP (vsftpd)</h3>
<p>서버와 클라이언트 사이에서 TCP/IP를 통해 파일을 송수신하기 위해서 고안된 프로토콜 
오로지 파일 송수신만을 목적으로 만들어진것이라 보안에는 취약함 </p>
<h4 id="🧐-tcpip란-">🧐 TCP/IP란 ?</h4>
<p>전송조절 프로토콜인 TCP, 패킷통신 방식의 인터넷 프로토콜인 IP</p>
<h3 id="🌸-방화벽">🌸 방화벽</h3>
<h4 id="--인바운드">- 인바운드</h4>
<p>클라이언트 → 서버
네트워크에 들어오는 정보 <br>(ex. 첨부파일을 서버에 저장할때)</p>
<h4 id="--아웃바운드">- 아웃바운드</h4>
<p>클라이언트 ← 서버
네트워크에서 나가는 정보 <br>클라이언트의 요청을 처리하고 메세지가 서버에서 클라이언트로 다시 향하는 것 <br>(ex. 첨부파일을 다운로드 할 때)</p>
<h3 id="🌸-vhost">🌸 vhost</h3>
<p>가상호스트, 웹서버에는 기본적으로 존재하는 호스트가 있으며 이를 MainHost라고 한다 
메인호스트 이 외에도 별도의 디렉터리를 가진 서버를 설정하여 1개의 서버에서 여러개의 웹사이트를 운영할 수 있게함 </p>
<pre><code>&lt;virtualhost *:80&gt;
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
&lt;/VirtualHost&gt;
</code></pre><h3 id="🌸-php">🌸 PHP</h3>
<p>Apache 웹서버에서 PHP로 작성된 웹을  구동하기 위해서 설치</p>
<h3 id="🌸-apache">🌸 Apache</h3>
<p>거의 모든 운영체제에서 사용가능한 소프트웨어 웹서버 </p>
<h4 id="🧐-웹서버란-">🧐 웹서버란 ?</h4>
<p>클라이언트로부터 HTTP 요청을 받고 웹페이지를 반환하는 컴퓨터 프로그램  </p>
<h3 id="🌸-centos">🌸 Centos</h3>
<p>리눅스의 종류 중 하나 </p>
<h4 id="🧐-리눅스란-">🧐 리눅스란 ?</h4>
<p>컴퓨터 운영체제 중 하나로, 리눅스의 근본이 되는 유닉스가 애초부터 통신 네트워크를 지향하여 설계된 것 처럼 리눅스도 마찬가지로 서버로 작동하는데 최적화되어 있다. 따라서 서버용으로 많이 사용되는 운영체제</p>
<h4 id="🧐-dns란-">🧐 DNS란 ?</h4>
<p>일종의 주소록 , 도메인을 어느 IP나 도메인으로 연결시켜야할지 리스트화해서 가지고 있는 서버</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[RDS DB 서버생성]]></title>
            <link>https://velog.io/@cherry_eong/RDS-DB-%EC%84%9C%EB%B2%84%EC%83%9D%EC%84%B1</link>
            <guid>https://velog.io/@cherry_eong/RDS-DB-%EC%84%9C%EB%B2%84%EC%83%9D%EC%84%B1</guid>
            <pubDate>Mon, 13 Mar 2023 08:42:43 GMT</pubDate>
            <description><![CDATA[<h4 id="rds-db를-따로-생성하는-이유">RDS DB를 따로 생성하는 이유</h4>
<p>웹서버가 견딜 수 있는 능력치가 정해져있으므로 서버와 DB를 분리해서 운영하는 것이 효과적이다. 확장성과 보안성, 백업관련 이슈등의 장점이 있다.</p>
<hr>
<h3 id="전체-진행-과정">&lt; 전체 진행 과정 &gt;</h3>
<h4 id="1-aws에서-rds-db-생성하기-✅">1. AWS에서 RDS DB 생성하기 ✅</h4>
<h4 id="2-인바운드--인스턴스-수정하기-✅">2. 인바운드 / 인스턴스 수정하기 ✅</h4>
<h4 id="3-heidisql-로-접속하기-✅">3. Heidisql 로 접속하기 ✅</h4>
<hr>
<h3 id="1-aws에서-rds-db-생성하기">1. AWS에서 RDS DB 생성하기</h3>
<h4 id="■-엔진-mysql">■ 엔진 mysql</h4>
<h4 id="■-클래스-dbt3micro">■ 클래스 db.t3.micro</h4>
<h4 id="■-기존-보안그룹-사용">■ 기존 보안그룹 사용</h4>
<p>1) 새 데이터베이스 생성
2) 엔진유형 mysql 로 선택
3)  템플릿 프리티어 선택
4) 마스터 사용자 정보 및 암호 입력
5) 버스터블 클래스 - db.t3.micro 선택 
6) 기존 보안그룹 선택 ### 
7) 데이터베이스 생성하기 </p>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/e45e1445-478b-4d9c-b082-2e6c89388479/image.png" alt=""></p>
<hr>
<h3 id="2-인바운드--인스턴스-수정하기">2. 인바운드 / 인스턴스 수정하기</h3>
<p>1) 인바운드 규칙 수정👉 규칙저장
2) 인스턴스 수정하기 (퍼블릭엑세스 기능) 👉 즉시적용으로 수정완료하기 </p>
<ul>
<li>인바운드 규칙 편집
<img src="https://velog.velcdn.com/images/cherry_eong/post/26b2a77a-5b8d-4198-8db6-77c1cf185baf/image.png" alt=""></li>
</ul>
<ul>
<li>퍼블릭 엑세스 기능
<img src="https://velog.velcdn.com/images/cherry_eong/post/88528b94-989f-4a5c-a3f8-397275c249fa/image.png" alt=""></li>
</ul>
<ul>
<li>즉시적용으로 수정완료 
<img src="https://velog.velcdn.com/images/cherry_eong/post/b5eb93a6-223e-4856-9c97-4a9245c08665/image.png" alt=""></li>
</ul>
<hr>
<h3 id="3-heidisql로-접속하기">3. Heidisql로 접속하기</h3>
<h4 id="■-엔드포인트">■ 엔드포인트</h4>
<h4 id="■-포트-3306">■ 포트 3306</h4>
<p>1) 생성한 데이터베이스에서 엔드포인트와 포트 확인하기
2) Heidisql에서 엔드포인트로 접속하기</p>
<ul>
<li>엔드포인트 및 포트 확인
<img src="https://velog.velcdn.com/images/cherry_eong/post/b87641d2-aa7b-40c3-bf61-748cfe12aec9/image.png" alt=""></li>
</ul>
<ul>
<li>Heidisql 접속
<img src="https://velog.velcdn.com/images/cherry_eong/post/323cbc64-52b6-4f72-8676-af3bc611451a/image.png" alt=""></li>
</ul>
<blockquote>
<p>참조 : <a href="https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/TUT_WebAppWithRDS.html">https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/TUT_WebAppWithRDS.html</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[♻ Filesync - Git 으로 형상관리]]></title>
            <link>https://velog.io/@cherry_eong/Filesync-Git-%EC%9C%BC%EB%A1%9C-%ED%98%95%EC%83%81%EA%B4%80%EB%A6%AC</link>
            <guid>https://velog.io/@cherry_eong/Filesync-Git-%EC%9C%BC%EB%A1%9C-%ED%98%95%EC%83%81%EA%B4%80%EB%A6%AC</guid>
            <pubDate>Tue, 07 Mar 2023 00:52:27 GMT</pubDate>
            <description><![CDATA[<h3 id="♻-filesync를-이용하여-git으로-형상관리-하는-방법">♻ Filesync를 이용하여 Git으로 형상관리 하는 방법</h3>
<h4 id="1-filesync-프로그램을-설치한다">1. Filesync 프로그램을 설치한다</h4>
<h4 id="2-왼쪽의-구름창을-눌러서-ftp-설정을-한다-수정사항이-들어있는-소스코드">2. 왼쪽의 구름창을 눌러서 FTP 설정을 한다 (수정사항이 들어있는 소스코드)</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/13629f2d-4eb8-4cbc-ae43-c977da447d64/image.png" alt=""></p>
<h4 id="3-오른쪽의-찾아보기를-눌러서-git과-연동된-소스코드-파일의-경로설정을-한다">3. 오른쪽의 찾아보기를 눌러서 Git과 연동된 소스코드 파일의 경로설정을 한다.</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/ae42f960-1a86-4609-8e0a-ce052f41c5b2/image.png" alt=""></p>
<h4 id="4-필터기능으로-일부-항목들을-제외시킬-수-있다-ex-git파일">4. 필터기능으로 일부 항목들을 제외시킬 수 있다 (ex. git파일)</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/24c32798-fc20-49c5-895d-3d8ba8f1f54b/image.png" alt=""></p>
<ul>
<li>실수로 잘못된 파일을 제외했거나 디렉토리를 확인 및 복구 하고 싶을때는 
&lt;실행&gt; - &lt;필터설정&gt;에서 확인한다
<img src="https://velog.velcdn.com/images/cherry_eong/post/b33fb454-af0d-491a-824c-c93afa54c4f4/image.png" alt=""></li>
</ul>
<h4 id="5-남은-파일-동기화미러-진행">5. 남은 파일 동기화(미러) 진행</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/f2f90d18-28dc-41ef-9d8d-654f4ca5e5cb/image.png" alt=""></p>
<h4 id="6-vscode로-git연동된-폴더-열기">6. vscode로 git연동된 폴더 열기</h4>
<h4 id="7-커밋메세지-작성하고-커밋하기">7. 커밋메세지 작성하고 커밋하기</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/1c4a167a-a83b-496b-8cc1-29c3113c1e78/image.png" alt=""></p>
<h4 id="8-푸쉬하기동기화">8. 푸쉬하기(동기화)</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/36dad4ea-11ce-4eb6-8462-e24d75ec89a8/image.png" alt=""></p>
<h4 id="확인버튼">확인버튼</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/556ba6df-4f6e-49d9-af05-f4814511bdfa/image.png" alt=""></p>
<h4 id="8-git에-잘-올라갔는지-확인하기">8 Git에 잘 올라갔는지 확인하기</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/3102cecc-e728-418b-8a35-73b5ca25b538/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[📊 Javascript_ json 데이터배열 값 추출해서 Chart로 나타내기  ]]></title>
            <link>https://velog.io/@cherry_eong/Javascript-json-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B0%B0%EC%97%B4-%EA%B0%92-%EC%B6%94%EC%B6%9C%ED%95%B4%EC%84%9C-Chart%EB%A1%9C-%EB%82%98%ED%83%80%EB%82%B4%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/Javascript-json-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B0%B0%EC%97%B4-%EA%B0%92-%EC%B6%94%EC%B6%9C%ED%95%B4%EC%84%9C-Chart%EB%A1%9C-%EB%82%98%ED%83%80%EB%82%B4%EA%B8%B0</guid>
            <pubDate>Tue, 07 Feb 2023 08:47:07 GMT</pubDate>
            <description><![CDATA[<h4 id="템플릿에-chart-자리-만들기">템플릿에 Chart 자리 만들기</h4>
<pre><code class="language-&lt;template&gt;">  &lt;div&gt;
    &lt;canvas
      ref=&quot;MyChart&quot;/&gt;
  &lt;/div&gt;
&lt;/template&gt;
</code></pre>
<h4 id="chartjs를-import">chart.js를 import</h4>
<pre><code>
&lt;script&gt; 
import { Chart, registerables } from &#39;chart.js&#39;
Chart.register(...registerables)
&lt;/script&gt; </code></pre><h4 id="axios를-import">axios를 import</h4>
<p>axios : npm을 이용하여 다운로드 가능한 HTTP request 라이브러리</p>
<pre><code>import axios from &#39;axios&#39;</code></pre><h4 id="창이-실행되면-createchart가-실행">창이 실행되면 createchart가 실행</h4>
<pre><code>export default {
  mounted(){
    this.createChart()
  }</code></pre><h4 id="데이터의-배열값을-추출해보자">데이터의 배열값을 추출해보자</h4>
<h5 id="1-axiosget으로-데이터-가져오기">1. axios.get으로 데이터 가져오기</h5>
<p>returnData로 선언 </p>
<pre><code>export default {
      axios.get(&#39;실제데이터&#39;)
       .then(res =&gt;{
                  var returnData = res.data;

                  const arrLabels =[];
                  const arrData=[];
                }
</code></pre><h5 id="2-for문으로-차트용-데이터-배열을-만들어준다">2. for문으로 차트용 데이터 배열을 만들어준다</h5>
<p>returnData에서 key값을 가지고 오도록 함
Labels(arrLabels)에 추출한 데이터를 넣음 
data(arrData)에 추출한 데이터를 넣음</p>
<pre><code>export default {
                  for(var key in returnData) {
                    arrLabels.push(returnData[key].&quot;배열에서 추출하고자 하는값(1)&quot;)
                    arrData.push(returnData[key].&quot;배열에서 추출하고자 하는값(2)&quot;)
                    }
                    }</code></pre><h5 id="3-차트를-만들어준다">3. 차트를 만들어준다</h5>
<pre><code>                  new Chart(this.$refs.MyChart, {
                    type:&#39;bar&#39;,
                    data:{
                            //배열에서 추출하고자 하는값(1)
                            labels: arrLabels, 
                            datasets: [{
                            label: &#39;# of Votes&#39;,
                            //배열에서 추출하고자 하는값(2)
                            data: arrData, 
                            borderWidth: 1
                            }]
                          },
                    options:{
                              scales: {
                                y: {
                                  beginAtZero: true
                                 }
                              }
                            }      
                                                   }
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[📊 Vue.js에서 Chart.js 사용하기 ]]></title>
            <link>https://velog.io/@cherry_eong/Vue.js-Chart.js-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/Vue.js-Chart.js-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 03 Feb 2023 02:46:26 GMT</pubDate>
            <description><![CDATA[<p>Chart.js를 사용하는 순서는 아래와 같다</p>
<h4 id="1-chartjs-설치">1. chart.js 설치</h4>
<h4 id="2-chartjs-import">2. chart.js import</h4>
<h4 id="3-canvas-태그">3. canvas 태그</h4>
<h4 id="4-데이터와-함수">4. 데이터와 함수</h4>
<hr>
<h3 id="👩💻-chartjs-설치">👩‍💻 chart.js 설치</h3>
<pre><code>npm i chart.js</code></pre><h3 id="👩💻-chartjs-import">👩‍💻 chart.js import</h3>
<p>사용하고자 하는 vue 파일에 차트를 불러올 수 있도록 <code>chart.js</code>를 <code>import</code>해준다.</p>
<pre><code>&lt;template&gt;
  &lt;div&gt;&lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
import { Chart, registerables } from &#39;chart.js&#39;
Chart.register(...registerables)
&lt;/script&gt;

&lt;style&gt;

&lt;/style&gt;</code></pre><p>registerables는 모든 차트를 간편하게 불러올 수 있도록 함</p>
<h3 id="👩💻-canvas-태그">👩‍💻 canvas 태그</h3>
<p>js를 이용하여 콘텐츠를 그릴때 사용하는 canvas 태그를 넣어 차트가 나타날 수 있게 한다.
html에서는 canvas태그에 id나 class이름을 넣어서 사용하지만 vue에서는 <code>refs</code>를 사용한다.</p>
<pre><code>&lt;template&gt;
  &lt;div&gt;
  &lt;canvas
      ref=&quot;MyChart&quot;/&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
import { Chart, registerables } from &#39;chart.js&#39;
Chart.register(...registerables)
&lt;/script&gt;

&lt;style&gt;

&lt;/style&gt;</code></pre><h3 id="👩💻-데이터와-함수">👩‍💻 데이터와 함수</h3>
<p>데이터를 가져오기 위해서 <code>export default</code>구문을 넣어준다.
import한 Chart가 new Chart()로 만들어진다.
함수를 바로 실행시키기 위해서 <code>mounted</code>에 만든 함수를 넣어준다.</p>
<pre><code>&lt;template&gt;
  &lt;div&gt;
    &lt;canvas
      ref=&quot;MyChart&quot;/&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;script&gt;
import { Chart, registerables } from &#39;chart.js&#39;
Chart.register(...registerables)

export default {
  data:() =&gt; ({
    type: &#39;bar&#39;,
    data: {
      labels: [ &#39;Red&#39;, &#39;Blue&#39;, &#39;Yellow&#39;, &#39;Green&#39;, &#39;Purple&#39;, &#39;Orange&#39; ],
      datasets: [{
        label: &#39;# of Votes&#39;,
        data: [ 12, 19, 3, 5, 2, 3 ],
        backgroundColor: [
          &#39;rgba(255, 99, 132, 0.2)&#39;,
          &#39;rgba(54, 162, 235, 0.2)&#39;,
          &#39;rgba(255, 206, 86, 0.2)&#39;,
          &#39;rgba(75, 192, 192, 0.2)&#39;,
          &#39;rgba(153, 102, 255, 0.2)&#39;,
          &#39;rgba(255, 159, 64, 0.2)&#39;
        ],
        borderColor: [
          &#39;rgba(255, 99, 132, 1)&#39;,
          &#39;rgba(54, 162, 235, 1)&#39;,
          &#39;rgba(255, 206, 86, 1)&#39;,
          &#39;rgba(75, 192, 192, 1)&#39;,
          &#39;rgba(153, 102, 255, 1)&#39;,
          &#39;rgba(255, 159, 64, 1)&#39;
        ],
        borderWidth: 1
      }]
    },
    options: {
      scales: {
        y: {
          beginAtZero: true
        }
      }
    }
  }),
  mounted(){
    this.createChart()
  },
  methods:{
    createChart(){
      new Chart(this.$refs.MyChart, {
        type:&#39;bar&#39;,
        data:this.data,
        options:this.options
      })

    }
  }

}
&lt;/script&gt;

&lt;style&gt;

&lt;/style&gt;



</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/0d20a065-aa08-496d-b25f-654eade23949/image.png" alt="">
그러면 이렇게 차트가 그려진 것을 확인 할 수 있당! 
실제 데이터를 차트에 뿌리는것은 다음 포스팅에서 알아보겠다 🔥</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[💫 VScode-Git 연동해서 형상관리 하는법 ]]></title>
            <link>https://velog.io/@cherry_eong/vscode-git-%EC%97%B0%EB%8F%99%ED%95%B4%EC%84%9C-%ED%98%95%EC%83%81%EA%B4%80%EB%A6%AC</link>
            <guid>https://velog.io/@cherry_eong/vscode-git-%EC%97%B0%EB%8F%99%ED%95%B4%EC%84%9C-%ED%98%95%EC%83%81%EA%B4%80%EB%A6%AC</guid>
            <pubDate>Tue, 31 Jan 2023 07:22:09 GMT</pubDate>
            <description><![CDATA[<h4 id="1-git에서-소스코드-가져오기">1. git에서 소스코드 가져오기</h4>
<pre><code>git init 
git config user.name&quot;{유저명}&quot;
git config user.emial &quot;{유저이메일}&quot;
git config --list
git status
git clone {저장소URL}</code></pre><h5 id="❗-레퍼를-못불러오는-경우-저장소-url앞에-아이디-입력하기br❗❗-유저명이메일을-무조건-작성하는-것이-아니라-프라이빗-레퍼일-경우-해당-권한이-있는-유저명이메일인지-확인하기">❗ 레퍼를 못불러오는 경우, 저장소 URL앞에 {아이디@} 입력하기<br>❗❗ 유저명/이메일을 무조건 작성하는 것이 아니라 프라이빗 레퍼일 경우 해당 권한이 있는 유저명/이메일인지 확인하기</h5>
<h4 id="2-filesync에서-ftp본서버와-git과-연동된-소스코드-변경사항-비교하기">2. filesync에서 ftp(본서버)와 git과 연동된 소스코드 변경사항 비교하기</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/f75573d6-b82c-4812-85ae-a8c59566a4ef/image.png" alt=""></p>
<h5 id="❗-왼쪽-창-구름버튼에서-ftp-주소-설정하기-br❗❗-동기화는-반드시-미러-상태인-것-확인하기">❗ 왼쪽 창 구름버튼에서 FTP 주소 설정하기 <br>❗❗ 동기화는 반드시 &quot;미러&quot; 상태인 것 확인하기</h5>
<h4 id="3-변경사항이-있을시-git-commit">3. 변경사항이 있을시 git commit</h4>
]]></description>
        </item>
        <item>
            <title><![CDATA[🧩 Vue.js 설치 / 프로젝트 생성 / Router 설치]]></title>
            <link>https://velog.io/@cherry_eong/Vue.js-%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-Router-%EC%84%A4%EC%B9%98-Vuetify-%EC%84%A4%EC%B9%98</link>
            <guid>https://velog.io/@cherry_eong/Vue.js-%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1-Router-%EC%84%A4%EC%B9%98-Vuetify-%EC%84%A4%EC%B9%98</guid>
            <pubDate>Thu, 05 Jan 2023 07:54:29 GMT</pubDate>
            <description><![CDATA[<h2 id="🏃♀️-vue-시작하기">🏃‍♀️ Vue 시작하기</h2>
<h3 id="🛠-vue-설치">🛠 Vue 설치</h3>
<pre><code>npm install vue</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/fecc71ca-ac05-4bf4-a882-0cecb3ec1d82/image.png" alt=""></p>
<h3 id="🛠-vue-cli-설치">🛠 Vue CLI 설치</h3>
<pre><code>npm  install -g @vue/cli</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/137bdcbe-497d-4031-a50a-b4b780a54bc1/image.png" alt=""></p>
<h3 id="🛠-vue-프로젝트-생성">🛠 Vue 프로젝트 생성</h3>
<pre><code>vue create 프로젝트명</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/cdc67248-a0d1-4d1b-8205-13f7950c4b1e/image.png" alt=""></p>
<pre><code>cd 프로젝트명
npm run serve</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/292252d4-4b4c-4eb9-a6bd-be6a7e902c14/image.png" alt=""></p>
<hr>
<p>할당된 로컬서버 주소를 입력하면 vue 페이지를 띄울 수 있다 !  
<img src="https://velog.velcdn.com/images/cherry_eong/post/f296cd0d-23cd-41c0-af3a-3e6699ee967b/image.png" alt=""></p>
<hr>
<h3 id="🛠-vue-router-설치">🛠 Vue Router 설치</h3>
<h4 id="🧐-vue-router란">🧐 Vue Router란?</h4>
<p>Vue에서 라우팅기능을 구현 할 수 있도록 지원하는 공식 라이브러리이다. </p>
<h4 id="🧐-routing이란">🧐 Routing이란?</h4>
<p>웹페이지간의 이동방법을 말하는데, 페이지를 이동할 때 서버에 요청하여 새로 갱신하는 것이 아니라 해당 페이지를 받아 놓고 페이지 이동시에 클라이언트의 라우팅을 이용하여 화면을 갱신한다. 라우팅을 이용하면 화면간의 전환이 매끄러우며 Vue, React, Angular등 라우팅을 이용하여 화면을 전환한다. </p>
<hr>
<pre><code>vue add router</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/0e000ce6-7adf-4d34-bd6f-8ed2057d826a/image.png" alt=""></p>
<pre><code>Yes로 대답</code></pre><p><img src="https://velog.velcdn.com/images/cherry_eong/post/1f7fa0cc-bcdb-4376-b7aa-717ca887d712/image.png" alt=""></p>
<p>프로젝트 폴더에서 router폴더와 router폴더내에 index.js가 생성된 것을 확인 할 수 있다</p>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/33087438-ba86-46f8-a19b-90ffd4780ade/image.png" alt=""></p>
<hr>
<p>마지막으로 vue파일을 너무 잘 정리해놓은 사진을 발견해서 가지고 왔다
<img src="https://velog.velcdn.com/images/cherry_eong/post/4141dea2-daad-4d8d-b622-5a57ff7ed5d3/image.png" alt=""></p>
<blockquote>
<p>출처 : <a href="https://kkh0977.tistory.com/1952">https://kkh0977.tistory.com/1952</a> </p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript/jQuery] radio 체크 된 값 가져오기 ]]></title>
            <link>https://velog.io/@cherry_eong/Javascript-radio-%EC%B2%B4%ED%81%AC%EB%90%9C-%EA%B0%92-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/Javascript-radio-%EC%B2%B4%ED%81%AC%EB%90%9C-%EA%B0%92-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</guid>
            <pubDate>Wed, 23 Nov 2022 00:40:13 GMT</pubDate>
            <description><![CDATA[<p>라디오 버튼을 구현했을때 jQuery를 통해서 라디오 버튼의 체크여부를 확인 할 수 있다.
체크 여부를 확인하여 체크 여부에 따라 원하는 함수를 실행 할 수 있겠지 ? </p>
<p>먼저 라디오 버튼을 구현해보자 </p>
<pre><code class="language-jsx">
                &lt;input type = &quot;radio&quot; name=&quot;cherry&quot; value=&quot;1&quot;&gt;
                &lt;input type = &quot;radio&quot; name=&quot;cherry&quot; value=&quot;2&gt;
</code></pre>
<p>두가지의 라디오 버튼을 구현해보았는데 먼저 value에 설정한 값을 들고와보자. </p>
<pre><code class="language-jsx">                    var cherrylistd = $(&#39;input[name=cherry]:checked).val();</code></pre>
<p>그럼 if문으로 체크박스의 체크 여부를 확인해보자 
라디오 버튼이 체크되어 있으면 alert창을 띄우도록하는 예제이다.</p>
<pre><code class="language-jsx">
                    if($(&#39;input[name=&quot;cherry&quot;]:checked&#39;).val()){
                    alert (&quot;안녕하세요&quot;)
                    };</code></pre>
<p>라디오 버튼이 체크되어있지 않은경우도 알아보자.  </p>
<pre><code class="language-jsx">
                    if($(&#39;input[name=&quot;cherry&quot;]:not(&#39;checked&#39;).val()){
                    alert (&quot;안녕히가세요&quot;)
                    };</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Javascript] match _ 특정 텍스트 포함여부 확인하기 ]]></title>
            <link>https://velog.io/@cherry_eong/Javascript-match-%ED%8A%B9%EC%A0%95-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%8F%AC%ED%95%A8%EC%97%AC%EB%B6%80-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/Javascript-match-%ED%8A%B9%EC%A0%95-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%8F%AC%ED%95%A8%EC%97%AC%EB%B6%80-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 22 Nov 2022 05:52:21 GMT</pubDate>
            <description><![CDATA[<p>Input에 특정한 텍스트가 입력되면 alert 창을 띄우는 프로젝트를 진행하며 Match() 매서드를 알게 되었다.</p>
<p>indexOf()의 경우 또한 특정 문자를 찾을때 많이 사용하지만 indexOf()는 위치값을 반환하기 때문에 match()가 더 적합하다고 판단했다.</p>
<p>그럼 match에 대해서 함께 알아보자 </p>
<hr>
<h3 id="🧐-match-함수란-">🧐 Match() 함수란 ?</h3>
<p>위에서 말했던 것 처럼 특정 텍스트 안에 검색할 단어 또는 찾고싶은 단어가 있는 경우에 <code>match()</code>를 사용하면 해당 텍스트가 포함되는지 확인 할 수 있다. 
단어뿐만이 아니라 정규표현식을 사용하여 특정 패턴을 검색하는 것도 가능하다. </p>
<h3 id="👒-작성법">👒 작성법</h3>
<pre><code class="language-jsx">
해당 문자열.match(&quot;특정 텍스트&quot;)
</code></pre>
<h3 id="👒-예제로-알아보기">👒 예제로 알아보기</h3>
<p><code>fruits</code> 이름을 가진 input에 <code>cherry</code> 라는 특정문구가 입력되면, 해당 alert창이 뜨도록하는 예제이다. </p>
<pre><code class="language-jsx">var example = $(&#39;input[name=&quot;fruits&quot;]&#39;).val();

if(example.match(&quot;cherry&quot;){

                alert(&#39;체리가 있어요&#39;);

            }else{

                alert(&#39;체리가 없는데요?&#39;);
            }</code></pre>
<hr>
<blockquote>
<p>참조 : <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/match">https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/match</a>
참조 : <a href="https://webisfree.com/2014-11-28/%5B%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%5D-%EB%8F%99%EC%9D%BC%ED%95%9C-%EB%8B%A8%EC%96%B4%EB%A5%BC-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C-%EC%B0%BE%EA%B8%B0-match()-%ED%95%A8%EC%88%98">https://webisfree.com/2014-11-28/[%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8]-%EB%8F%99%EC%9D%BC%ED%95%9C-%EB%8B%A8%EC%96%B4%EB%A5%BC-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C-%EC%B0%BE%EA%B8%B0-match()-%ED%95%A8%EC%88%98</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[개발패턴의 종류 [ MVC패턴 / MVVM패턴 / Singleton 패턴 ]]]></title>
            <link>https://velog.io/@cherry_eong/%EA%B0%9C%EB%B0%9C%ED%8C%A8%ED%84%B4%EC%9D%98-%EC%A2%85%EB%A5%98-MVC%ED%8C%A8%ED%84%B4-MVVM%ED%8C%A8%ED%84%B4-Singleton-%ED%8C%A8%ED%84%B4</link>
            <guid>https://velog.io/@cherry_eong/%EA%B0%9C%EB%B0%9C%ED%8C%A8%ED%84%B4%EC%9D%98-%EC%A2%85%EB%A5%98-MVC%ED%8C%A8%ED%84%B4-MVVM%ED%8C%A8%ED%84%B4-Singleton-%ED%8C%A8%ED%84%B4</guid>
            <pubDate>Fri, 11 Nov 2022 08:31:29 GMT</pubDate>
            <description><![CDATA[<h3 id="💡-개발패턴의-종류와-의미-사용해야하는-이유에-대해서-알아보자">💡 개발패턴의 종류와 의미, 사용해야하는 이유에 대해서 알아보자</h3>
<p> MVC패턴과 MVVM패턴은 똑같은 소프트웨어 디자인 패턴이지만, 자세히 분류하면 다른 패턴의 종류라고 볼 수 있는데 먼저 소프트웨어 패턴에 대해서 확인해보자 :) </p>
<hr>
<h3 id="💡-소프트웨어-디자인-패턴">💡 소프트웨어 디자인 패턴</h3>
<h4 id="🔸-4인방패턴">🔸 4인방패턴</h4>
<ul>
<li>생성패턴 👉 Singleton 패턴  </li>
<li>구조</li>
<li>행동패턴</li>
<li>동시실행패턴 <h4 id="🔸-동시성패턴">🔸 동시성패턴</h4>
<h4 id="🔸-아키텍쳐-패턴👉-mvc패턴-mvvm패턴">🔸 아키텍쳐 패턴👉 MVC패턴, MVVM패턴</h4>
<h4 id="🔸-기타패턴">🔸 기타패턴</h4>
</li>
</ul>
<p>싱글턴패턴은 생성패턴으로 분류되며, MVC패턴, MVVM패턴은 아키텍쳐 패턴에 분류된다. </p>
<hr>
<h3 id="💡-singleton-패턴">💡 Singleton 패턴</h3>
<h4 id="전역변수를-사용하지-않고-객체를-하나만-생성하도록하며-생성된-객체를-어디에서든지-참조할-수-있도록-하는-패턴이다">전역변수를 사용하지 않고 객체를 하나만 생성하도록하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴이다.</h4>
<hr>
<h3 id="💡-mvc패턴">💡 MVC패턴</h3>
<h4 id="model---view---controller-세가지로-나눈-소프트웨어-개발-방법이다">Model - View - Controller 세가지로 나눈 소프트웨어 개발 방법이다.</h4>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/c4165135-bd89-41db-83ad-d645583d1ef2/image.png" alt=""></p>
<blockquote>
<h4 id="🔸-model">🔸 Model</h4>
<p>: 데이터베이스 테이블에 해당한다. 순수한 데이터로서 DB의 역할을 하거나 DB에 데이터를 요청해서 원하는 데이터를 받는역할을 한다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야하고, View나 Controller에 대한 정보는 알 수 없다. </p>
</blockquote>
<h4 id="🔸-view">🔸 View</h4>
<p>: Controller로 데이터를 받아서 html로 표현한다. 데이터를 따로보관하지않고 처리한다. 즉 화면에 나타내는 역할을 한다. </p>
<h4 id="🔸-controller">🔸 Controller</h4>
<p>: 사용자가 접근한 URl에 따라서 사용자의 요청사항을 파악한 우에 그 요청에 맞는 데이터를 Model에 의뢰하고, Model에서 받은 데이터를 View에 반영하여 사용자게에 알려주는 역할을 한다. </p>
<h4 id="🧶-mvvm패턴이-동작하는-순서">🧶 MVVM패턴이 동작하는 순서</h4>
<ol>
<li>사용자가 Controller를 한다. </li>
<li>Controller는 Model에서 해당 Data를 호출하고, Model은 Data를 가공하여 보낸다.</li>
<li>Controller는 Model이 보낸 결과를 View를 통해서 화면에 나타낸다. </li>
</ol>
<h4 id="🧐-왜-mvc패턴을-사용하는걸까-">🧐 왜 MVC패턴을 사용하는걸까 ?</h4>
<p>서로 분리해서 각자의 역할에만 집중하여 개발 할 수 있게한다. 
유지보수하기에도 용이하고 어플리케이션의 확장성과 유연성이 증가하며 중복된 코딩의 발생여부 또한 쉽게 해결 할 수 있다. </p>
<h4 id="🚨-mvc-패턴의-한계는-">🚨 MVC 패턴의 한계는 ?</h4>
<p>분리되어있기에 클래스가 더 많이 필요하여 복잡해질 수 있다는 단점이있다. 그래서 설계시간이 오래걸릴 수 있다. 또한 Model과 View과 완전히 분리될 수는 없기에 패턴이 모호해지며 변형이 올 수도 있다. 
이러한 한계를 보완하기 위해 나온것이 MVVM패턴이다. 함께 알아보자 </p>
<h4 id="✔--mvc-패턴의-예시">✔  MVC 패턴의 예시</h4>
<p>Google의 <code>Angular JS</code> , PHP의 <code>CODEIGNITER</code>, Python의 <code>django</code>,  Facebook의 <code>React</code>등을 예로 들 수 있다</p>
<hr>
<h3 id="💡-mvvm패턴">💡 MVVM패턴</h3>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/d5de3528-fea5-4dd6-aa6e-9a03973b80a7/image.png" alt=""></p>
<h4 id="mvvm패턴은-model---view---view-model로-이루어져있다">MVVM패턴은 Model - View - View Model로 이루어져있다.</h4>
<blockquote>
<h4 id="🔸-view-model">🔸 View Model</h4>
<p>: View를 표헌하기 위해서 만든 Model이자, View를 나타내기 위한 데이터를 처리하는 부분이다.</p>
</blockquote>
<h4 id="🧶-mvvm패턴이-동작하는-순서-1">🧶 MVVM패턴이 동작하는 순서</h4>
<ol>
<li>사용자의 Action들은 View를 통해서 들어오게 된다.</li>
<li>View에 들어온 Action은 Command 패턴으로 View Model에 Action을 전달한다. </li>
<li>View Model은 Model에게 데이터를 요청한다.</li>
<li>Model은 View Model에게 요청받은 데이터를 보내준다.</li>
<li>View Model은 응답받은 데이터를 가공하여 저장한다. </li>
<li>View는 View Model과 Data Binding을 하여 화면에 나타낸다 </li>
</ol>
<h4 id="🔨-mvvm패턴의-특징">🔨 MVVM패턴의 특징</h4>
<p><code>Commend 패턴</code> 과 <code>Data Binding 패턴</code> 두가지 패턴을 사용하여 구현되었으며,
<code>Commend 패턴</code> 과 <code>Data Binding 패턴</code> 을 이용하여 View와 View Model사이의 의존성을 없앴다. View Model과 View는 1:n 관계라는 것 또한 MVVM패턴의 특징이 될 수 있다.</p>
<h4 id="🧐-mvvm패턴의-장점은-무엇일까">🧐 MVVM패턴의 장점은 무엇일까?</h4>
<p>위에서 말했던 특징처럼 View와 View Model사이의 의존성이 없다. 각각의 부분이 독립적이기에 모듈화하여 개발이 가능하다. </p>
<h4 id="🚨-mvvm패턴의-단점은-">🚨 MVVM패턴의 단점은 ?</h4>
<p>View Model의 설계자체가 쉽지않다. </p>
<hr>
<blockquote>
<p>📚 </p>
</blockquote>
<ul>
<li><a href="https://developer.mozilla.org/ko/docs/Glossary/MVC">https://developer.mozilla.org/ko/docs/Glossary/MVC</a></li>
<li><a href="https://cocoon1787.tistory.com/733">https://cocoon1787.tistory.com/733</a></li>
<li><a href="https://opentutorials.org/course/697/3828">https://opentutorials.org/course/697/3828</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[SQL _ Join의 이해 (Inner Join과 Outer Join)]]></title>
            <link>https://velog.io/@cherry_eong/SQL-JOIN%EC%9D%98-%EC%9D%B4%ED%95%B4</link>
            <guid>https://velog.io/@cherry_eong/SQL-JOIN%EC%9D%98-%EC%9D%B4%ED%95%B4</guid>
            <pubDate>Tue, 08 Nov 2022 02:47:41 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-inner-join">📌 Inner Join</h2>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/c520b547-5177-4c5b-a704-3aac8f92895b/image.png" alt="inner join"></p>
<p>Inner Join을 간단하게 설명하자면 조건에 부합하는 행만 가져온다. 
위의 사진을 참고하여 교집합을 떠올리면 가장 적합하다. </p>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/8b77d6a8-fd45-4aae-a3ae-c6489e1e6939/image.png" alt=""></p>
<p>예를 들어보자, 위의 직책번호에서 교집합이 되는 직책번호가 있다.
이를 참고하여 Join 명령문을 작성해보자. </p>
<p><code>SELECT *  FROM 사원 INNER JOIN 직책 ON 사원.직책번호 = 직책.직책번호;</code>
<code>SELECT * FROM 사원 INNER JOIN 직책 WHERE사원.직책번호 = 직책.직책번호;</code></p>
<h5 id="🔨-span-stylecolore97777조인하려는-테이블-명을-join을-기준으로-양쪽에-써줍니다-br-🔨-교집합이-되는-각-테이블의-칼럼명을-on이나-혹은-where로-위와-같이-명시해-줍니다span">🔨 <span style="color:#E97777">조인하려는 테이블 명을 JOIN을 기준으로 양쪽에 써줍니다. </br> 🔨 교집합이 되는 각 테이블의 칼럼명을 ON이나 혹은 WHERE로 위와 같이 명시해 줍니다.</span></h5>
<p>이렇게 Join 명령문을 작성한다면,</p>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/9b63c8e8-da1c-4b3d-82b4-e137c1d0d77f/image.png" alt="">
위와 같이 겹치는 칼럼이 존재하는 경우에만 생성이 되는 것을 확인 할 수 있다.
만약 겹치지 않는 칼럼도 생성하고 싶은 경우에는 어떻게해야할까 ? 
Outer Join으로 이어 알아보자.</p>
<hr>
<h2 id="📌-outer-join">📌 Outer Join</h2>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/3567e5d9-bd93-4c21-b47b-eaa313bb603e/image.png" alt="outer join"></p>
<p>Outer Join을 설명하는 사진이다. </p>
<p>Inner Join과 동일하게 두가지의 테이블 정보를 가져오게 되는데
차이점은 outer 조인의 경우 교집합뿐만 아닌 교집합이 되지 않는 테이블의 정보도 가져온다. 
또한 기준이 되는 테이블이 필요하다.</p>
<p><code>기준이되는 테이블</code>과 <code>대상이되는 테이블</code>로 되어있다.
여기서 기준이되는 테이블을 <code>드라이빙 테이블</code>이라고 한다.</p>
<p>Outer join에는 <code>LEFT OUTER JOIN</code>, <code>RIGHT OUTER JOIN</code>,  <code>FULL OUTER JOIN</code> 세가지 종류가 있다.</p>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/5fe1ebc5-7571-4642-9d92-7b3b0e9d73cf/image.png" alt="">
왼쪽 테이블 명은 A, 오른쪽 테이블명은 B라고 생각하고, 위 사진을 예시로 알아보자. </p>
<hr>
<h3 id="🔹-1-left-outer-join">🔹 1. LEFT OUTER JOIN</h3>
<blockquote>
<p>LEFT OUTER JOIN은 기준 테이블을 왼쪽에 두고, OUTER JOIN을 수행한다.
  기준 테이블은 움직이거나 변형이 없고, 대상이 되는 테이블이 변형된다. </p>
</blockquote>
<p><code>SELECT *FROM A LEFT OUTER JOIN B ON A.학번 = B.학번</code></p>
<h5 id="🔨-span-stylecolore97777조인하려는-테이블-명을-left-outer-join-을-기준으로-양쪽에-써줍니다-br-🔨-교집합이-되는-각-테이블의-칼럼명을-on이나-혹은-where로-위와-같이-명시해-줍니다span">🔨 <span style="color:#E97777">조인하려는 테이블 명을 LEFT OUTER JOIN 을 기준으로 양쪽에 써줍니다. </br> 🔨 교집합이 되는 각 테이블의 칼럼명을 ON이나 혹은 WHERE로 위와 같이 명시해 줍니다.</span></h5>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/1ce75e49-ed2f-4b27-aa7e-bc7a66d7a481/image.png" alt=""></p>
<p>기준이되는 왼쪽테이블은 그대로 유지가 되며, 오른쪽에서 교집합이 되는 테이블은 생성이 된 것을 확인 할 수 있다. 교집합이 되지 않는 테이블도 <code>NULL</code>값으로 표시하며 나타나있는 것을 확인 할 수 있다. </p>
<hr>
<h3 id="🔹-2-right-outer-join">🔹 2. RIGHT OUTER JOIN</h3>
<blockquote>
<p>RIGHT OUTER JOIN은 기준 테이블을 오른쪽에 두고, OUTER JOIN을 수행한다.
기준 테이블은 움직이거나 변형이 없고, 대상이 되는 테이블이 변형된다. </p>
</blockquote>
<p><code>SELECT *FROM A RIGHT OUTER JOIN B ON A.학번 = B.학번</code></p>
<h5 id="🔨-span-stylecolore97777조인하려는-테이블-명을-right-outer-join-을-기준으로-양쪽에-써줍니다-br-🔨-교집합이-되는-각-테이블의-칼럼명을-on이나-혹은-where로-위와-같이-명시해-줍니다span">🔨 <span style="color:#E97777">조인하려는 테이블 명을 RIGHT OUTER JOIN 을 기준으로 양쪽에 써줍니다. </br> 🔨 교집합이 되는 각 테이블의 칼럼명을 ON이나 혹은 WHERE로 위와 같이 명시해 줍니다.</span></h5>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/6a95d115-db4b-4bf5-ac7d-429f642a8dfa/image.png" alt=""></p>
<p>기준이되는 B테이블은 전부 유지가 되어있는 모습을 확인 할 수 있으며, 
B테이블과 교집합이 되는 A테이블의 칼럼들이 생성되었다. 또한 교집합이 되지 않는 칼럼들도 <code>NULL</code>값으로 표시되어 나타나있다. </p>
<hr>
<h3 id="🔹-3-full-outer-join">🔹 3. FULL OUTER JOIN</h3>
<blockquote>
<p>FULL OUTER JOIN은 왼쪽과 오른쪽 테이블의 모든 데이터를 읽어 결과를 생성한다.
RIGHT OUTER JOIN과 LEFT OUTER JOIN의 결과를 합한 결과라고 보면된다. </p>
</blockquote>
<p><code>SELECT *FROM A FULL OUTER JOIN B ON A.학번 = B.학번</code></p>
<h5 id="🔨-span-stylecolore97777조인하려는-테이블-명을-full-outer-join-을-기준으로-양쪽에-써줍니다-br-🔨-교집합이-되는-각-테이블의-칼럼명을-on이나-혹은-where로-위와-같이-명시해-줍니다span">🔨 <span style="color:#E97777">조인하려는 테이블 명을 FULL OUTER JOIN 을 기준으로 양쪽에 써줍니다. </br> 🔨 교집합이 되는 각 테이블의 칼럼명을 ON이나 혹은 WHERE로 위와 같이 명시해 줍니다.</span></h5>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/48ecb59f-2cff-4dde-9e2c-4ea6a2844ce1/image.png" alt=""></p>
<p>A테이블과 B테이블 모두 유지가 되며, 교집합이 되지 않는 부분들은 <code>NULL</code>값으로 표시되어 나타나있는 것을 확인 할 수 있다. </p>
<hr>
<h5 id="🚨-outer-join은-테이블의-모든-영역을-가지고-오기때문에-쿼리의-성능에-있어서도-많은-영향을-끼칠수있다-ㅠ-그래서-주의해서쓰자-">🚨 OUTER JOIN은 테이블의 모든 영역을 가지고 오기때문에 쿼리의 성능에 있어서도 많은 영향을 끼칠수있다 ㅠ 그래서 주의해서쓰자 !</h5>
<blockquote>
<p>참조 : <a href="https://bramhyun.tistory.com/39">https://bramhyun.tistory.com/39</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[💨 서버이전 과정]]></title>
            <link>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EC%9D%B4%EC%A0%84-%EC%88%9C%EC%84%9C</link>
            <guid>https://velog.io/@cherry_eong/%EC%84%9C%EB%B2%84%EC%9D%B4%EC%A0%84-%EC%88%9C%EC%84%9C</guid>
            <pubDate>Thu, 03 Nov 2022 08:46:49 GMT</pubDate>
            <description><![CDATA[<h4 id="호스팅-서비스에서-dns-설정을-한-뒤-아래-순서에-따라서-서버이전이-진행된다">호스팅 서비스에서 DNS 설정을 한 뒤 아래 순서에 따라서 서버이전이 진행된다.</h4>
<hr>
<blockquote>
<h4 id="1-db-백업">1. DB 백업</h4>
</blockquote>
<h4 id="2-압축">2. 압축</h4>
<h4 id="3-데이터-전송">3. 데이터 전송</h4>
<h4 id="4-압축-해제">4. 압축 해제</h4>
<h4 id="5-db-복원">5. DB 복원</h4>
<h4 id="6-도메인-설정-변경">6. 도메인 설정 변경</h4>
<hr>
<h3 id="🧶-db-백업">🧶 DB 백업</h3>
<pre><code>$ mysqldump -u아이디 -p DB명 &gt; 백업파일명.sql 

$ 데이터베이스비밀번호</code></pre><hr>
<h3 id="🧶-압축">🧶 압축</h3>
<pre><code>$ tar cvzfp file1.tgz dir1 </code></pre><h4 id="dir1-전체를-file1tgz-파일로-퍼미션-보존-압축">dir1 전체를 file1.tgz 파일로 퍼미션 보존 압축</h4>
<hr>
<h3 id="🧶-데이터-전송">🧶 데이터 전송</h3>
<h4 id="🧵-rsync를-사용하는-방법-카페24에서는-rsync가-제공되지-않음">🧵 rsync를 사용하는 방법 (카페24에서는 rsync가 제공되지 않음.)</h4>
<p>1) 원격 서버의 디렉토리를 로컬 서버로 복사하기</p>
<pre><code>$ rsync -avzh root@175.123.253.69:/home/opeanut/opeanut20200503.tgz ./</code></pre><p>2) 로컬 서버에서 원격 서버로 디렉토리 복사하기</p>
<pre><code>$ rsync -avz public_html/ root@150.95.129.155:/home1/USERID/www/ </code></pre><h4 id="🧵-secure-copy를-사용하는-방법-카페24-이용시-사용">🧵 Secure Copy를 사용하는 방법 (카페24 이용시 사용)</h4>
<h4 id="1-remote-서버에서-파일-받기">1) Remote 서버에서 파일 받기</h4>
<pre><code>$ scp -P 22 root@175.123.253.69:/home/opeanut/opeanut20200503.tgz ./

$ yes or no? (yes)

$ password? (패스워드 입력)</code></pre><h5 id="remote-서버의-opeanut20200503tgz-파일을-local의--로-다운로드-받는다">remote 서버의 opeanut20200503.tgz 파일을 local의 ./ 로 다운로드 받는다.</h5>
<h4 id="2-remote-서버에-파일-올리기">2) Remote 서버에 파일 올리기</h4>
<pre><code>$ scp -P 22 /home/myhome/abc.tar oracle@123.456.78.9:/home/oracle/</code></pre><h5 id="abctar-파일을-123456789-서버의-22번-포트로-ssh-접속하여-oracle-사용자로-로그인-한-후-homeoracle-아래에-복사한다">abc.tar 파일을 123.456.78.9 서버의 22번 포트로 SSH 접속하여 oracle 사용자로 로그인 한 후 /home/oracle/ 아래에 복사한다.</h5>
<hr>
<h3 id="🧶-압축-해제">🧶 압축 해제</h3>
<pre><code>$ tar xvfz 압축한파일명.tar.gz</code></pre><hr>
<h3 id="🧶-db-복원">🧶 DB 복원</h3>
<pre><code>$ mysql -u아이디 -p DB명 &lt; 백업파일명 

$ 데이터베이스비밀번호</code></pre><hr>
<h3 id="🧶-도메인-설정-변경">🧶 도메인 설정 변경</h3>
]]></description>
        </item>
        <item>
            <title><![CDATA[리눅스에서 zip파일 압축해제하기]]></title>
            <link>https://velog.io/@cherry_eong/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-zip%ED%8C%8C%EC%9D%BC-%EC%95%95%EC%B6%95%ED%95%B4%EC%A0%9C%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C-zip%ED%8C%8C%EC%9D%BC-%EC%95%95%EC%B6%95%ED%95%B4%EC%A0%9C%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 27 Oct 2022 03:01:59 GMT</pubDate>
            <description><![CDATA[<h4 id="1-root에서-unzip-설치하기">1. root에서 unzip 설치하기</h4>
<pre><code>  yum install unzip</code></pre><h4 id="2-압축해제하기--파일-경로와-함께입력">2. 압축해제하기 + 파일 경로와 함께입력</h4>
<pre><code>  (ex _ 압축해제를 원하는 파일 : xxx.zip)

 unzip /home/cherry.zip
 unzip xxx.zip (현재 디렉토리에 풀림)               
 unzip xxx.zip -d ./yyy (현재 디렉토리 하위에 있는 yyy 디렉토리에 풀림)       </code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[MySQL _ 데이터타입 (Data Type) ]]></title>
            <link>https://velog.io/@cherry_eong/MySQL-%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%83%80%EC%9E%85-Data-Type</link>
            <guid>https://velog.io/@cherry_eong/MySQL-%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%83%80%EC%9E%85-Data-Type</guid>
            <pubDate>Thu, 27 Oct 2022 00:35:06 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/cherry_eong/post/45b6e6a3-eef3-4d09-a005-0dcc71cd89ae/image.png" alt=""></p>
<h4 id="🔵-데이터-타입이란-">🔵 데이터 타입이란 ?</h4>
<p>컴퓨터 시스템과 프로그래밍 언어에서 실수, 정수, 소수 자료형 등의 여러 종류의 데이터를 식별하는 타입으로, 자료형에 대한 가능한 값, 해당 자료형에서 수행을 할 수 있는 명령어, 데이터의 형태, 의미, 크기와 해당 자료형의 값이 저장되는 방식을 말한다. </p>
<hr>
<h4 id="🔵-데이터-타입의-종류">🔵 데이터 타입의 종류</h4>
<blockquote>
<ul>
<li>문자형 데이터타입</li>
</ul>
</blockquote>
<ul>
<li>숫자형 데이터 타입</li>
<li>날짜형 데이터 타입</li>
<li>이진 데이터 타입</li>
</ul>
<hr>
<h4 id="🔵-문자형-데이터-타입">🔵 문자형 데이터 타입</h4>
<h5 id="charn">CHAR(n)</h5>
<p>고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다.</p>
<h5 id="varcharn">VARCHAR(n)</h5>
<p>가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간은 채우지 않는다.</p>
<h5 id="tinytextn">TINYTEXT(n)</h5>
<p>문자열 데이터 타입(최대 255byte)</p>
<h5 id="textn">TEXT(n)</h5>
<p>문자열 데이터 타입(최대 65535byte)</p>
<h5 id="mediumtextn">MEDIUMTEXT(n)</h5>
<p>문자열 데이터 타입(최대 16777215byte)</p>
<h5 id="longtextn">LONGTEXT(n)</h5>
<p>문자열 데이터 타입(최대 4294967295byte)</p>
<h5 id="json">JSON</h5>
<p>JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.</p>
<h4 id="🔵-숫자형-데이터-타입">🔵 숫자형 데이터 타입</h4>
<h5 id="tinyintn">TINYINT(n)</h5>
<p>정수형 데이터 타입(1byte) -128 ~ +127 또는 0 ~ 255수 표현할 수 있다.</p>
<h5 id="smallintn">SMALLINT(n)</h5>
<p>정수형 데이터 타입(2byte) -32768 ~ 32767 또는 0 ~ 65536수 표현할 수 있다.</p>
<h5 id="mediumintn">MEDIUMINT(n)</h5>
<p>정수형 데이터 타입(3byte) -8388608 ~ +8388607 또는 0 ~ 16777215수 표현할 수 있다.</p>
<h5 id="intn">INT(n)</h5>
<p>정수형 데이터 타입(4byte) -2147483648 ~ +2147483647 또는 0 ~ 4294967295수 표현할 수 있다.</p>
<h5 id="bigintn">BIGINT(n)</h5>
<p>정수형 데이터 타입(8byte) - 무제한 수 표현할 수 있다.</p>
<h5 id="float길이-소수">FLOAT(길이, 소수)</h5>
<p>부동 소수형 데이터 타입(4byte) -고정 소수점을 사용 형태이다.</p>
<h5 id="decimal길이-소수">DECIMAL(길이, 소수)</h5>
<p>고정 소수형 데이터 타입고정(길이+1byte) -소수점을 사용 형태이다.</p>
<h5 id="double길이-소수">DOUBLE(길이, 소수)</h5>
<p>부동 소수형 데이터 타입(8byte) -DOUBLE을 문자열로 저장한다.</p>
<h4 id="🔵-날짜형-데이터-타입">🔵 날짜형 데이터 타입</h4>
<h5 id="date">DATE</h5>
<p>날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)</p>
<h5 id="time">TIME</h5>
<p>시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)</p>
<h5 id="datetime">DATETIME</h5>
<p>날짜와 시간 형태의 기간 표현 데이터 타입(8byte)</p>
<h5 id="timestamp">TIMESTAMP</h5>
<p>날짜와 시간 형태의 기간 표현 데이터 타입(4byte) -시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.</p>
<h5 id="year">YEAR</h5>
<p>년도 표현 데이터 타입(1byte)</p>
<h4 id="🔵-이진-데이터-타입">🔵 이진 데이터 타입</h4>
<h5 id="binaryn--byten">BINARY(n) &amp; BYTE(n)</h5>
<p>CHAR의 형태의 이진 데이터 타입 (최대 255byte)</p>
<h5 id="varbinaryn">VARBINARY(n)</h5>
<p>VARCHAR의 형태의 이진 데이터 타입 (최대 65535byte)</p>
<h5 id="tinyblobn">TINYBLOB(n)</h5>
<p>이진 데이터 타입 (최대 255byte)</p>
<h5 id="blobn">BLOB(n)</h5>
<p>이진 데이터 타입 (최대 65535byte)</p>
<h5 id="mediumblobn">MEDIUMBLOB(n)</h5>
<p>이진 데이터 타입 (최대 16777215byte)</p>
<h5 id="longblobn">LONGBLOB(n)</h5>
<p>이진 데이터 타입 (최대 4294967295byte)</p>
<hr>
<p>DB에 대해 영상은 여러번 봤지만 직접 해보려니까 확실히 다르긴 한 것 같다..
어렵다 ㅠㅠ </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🛠 Linux 서버 구축하기]]></title>
            <link>https://velog.io/@cherry_eong/Linux-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@cherry_eong/Linux-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0</guid>
            <pubDate>Wed, 19 Oct 2022 06:58:59 GMT</pubDate>
            <description><![CDATA[<h3 id="🔨-서버구축과정">🔨 서버구축과정</h3>
<blockquote>
<p>(사전에 DNS 도메인 설정 완료)</p>
</blockquote>
<h4 id="1-ec2-서버에-ssh로-접속">1. EC2 서버에 SSH로 접속</h4>
<ul>
<li>AWS(아마존웹서비스) EC2에서 인스턴스 실행 (CentOS)</li>
<li>키 다운로드 받아서 pem ➡ ppk로 변환 (puttygen)</li>
<li>PuTTy로 리눅스 접속 </li>
<li>passwd로 패스워드 설정 (ppk없이 ssh접속하기)<h4 id="2-vsftpd-설정하기">2. vsftpd 설정하기</h4>
</li>
<li>vsftpd 설치 및 계정생성<h4 id="3-apache--php-mysql-설치하기">3. Apache , PHP, MySQL 설치하기</h4>
</li>
<li>centOS에 Apache 설치</li>
<li>centOS에 PHP 설치</li>
<li>centOS에  MySQL 설치 및 비밀번호 설정하기 <h4 id="4-apache-설정하기">4. Apache 설정하기</h4>
</li>
<li>아파치 실행</li>
<li>아파치 도메인 설정</li>
<li>아파치 PHP와 연동<h4 id="5-php-설정하기">5. PHP 설정하기</h4>
</li>
<li>PHP 내부 설정<h4 id="6-vhost-설정하기">6. vhost 설정하기</h4>
<h4 id="7-db-연결하기">7. DB 연결하기</h4>
</li>
<li>MySQL 계정생성 및 권한부여</li>
<li>HeidiSQL 접속하기 <h4 id="8-그누보드-설치하기">8. 그누보드 설치하기</h4>
</li>
</ul>
<hr>
<h3 id="➰-ec2-서버에-ssh로-접속">➰ EC2 서버에 SSH로 접속</h3>
<h4 id="🔸-aws아마존웹서비스-ec2에서-인스턴스-실행-centos">🔸 AWS(아마존웹서비스) EC2에서 인스턴스 실행 (CentOS)</h4>
<ul>
<li><p>인스턴스 실행구조 
<img src="https://velog.velcdn.com/images/cherry_eong/post/e284da9a-a66f-479c-9739-9261d2d4bada/image.png" alt=""></p>
</li>
<li><p>인스턴스 생성 시에 보안그룹 인바운드 규칙 수정 
<img src="https://velog.velcdn.com/images/cherry_eong/post/3214a024-6dc3-4991-9db7-9359f2f99199/image.png" alt=""></p>
</li>
<li><p>탄력적 IP 할당</p>
</li>
<li><p>인스턴스 유형 : t2.micro</p>
</li>
<li><p>키페어 생성</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/55bfedbb-a50c-435c-8423-f56868da3877/image.png" alt=""></p>
<h4 id="🔸-putty로-리눅스-접속">🔸 Putty로 리눅스 접속</h4>
<ul>
<li>Putty 설치 후 Puttygen 실행</li>
<li>인스턴스 실행 시에 받아둔 키파일(.pem) 선택 </li>
<li>Save private key를 클릭하여 채워진 키 정보를 (.ppk)로 저장</li>
<li>Putty 실행하여 해당 인스턴스에 할당된 <code>탄력적IP</code> 정보를 기입</li>
<li>SSH - Auth 안에 Browse에 저장한 (.ppk) 파일선택 후 오픈 </li>
</ul>
<blockquote>
<p>참조 : <a href="https://sailer.tistory.com/entry/AWS-EC2-%EC%97%90-SSHPUTTY%EB%A1%9C-%EC%A0%91%EC%86%8D-%ED%95%98%EA%B8%B0-1">https://sailer.tistory.com/entry/AWS-EC2-%EC%97%90-SSHPUTTY%EB%A1%9C-%EC%A0%91%EC%86%8D-%ED%95%98%EA%B8%B0-1</a></p>
</blockquote>
<hr>
<h3 id="➰-vsftpd-설정">➰ vsftpd 설정</h3>
<h4 id="🔸-vsftpd-설치-및-계정생성">🔸 vsftpd 설치 및 계정생성</h4>
<ul>
<li><p>yum으로 vsftpd 설치하기</p>
<p>  yum -y install vsftpd</p>
</li>
<li><p>vsftpd.conf 파일 수정하기</p>
<p>  vi /etc/vsftpd/vsftpd.conf</p>
</li>
<li><p>수정내용
<code>anonymous_enable=NO</code>
<code>chroot_local_user=NO</code>
<code>listen=YES</code>
<code>listen_ipv6=NO</code>    </p>
</li>
<li><p>전송모드 세팅하기
passive mode
passive port : 40001-40010
<code>pasv_enable=Yes</code>
<code>pasv_max_port=11001</code>
<code>pasv_min_port=11050</code></p>
</li>
</ul>
<ul>
<li><p>재시작</p>
<p>  systemctl restart vsftpd</p>
</li>
<li><p>서버시작프로그램에 등록</p>
<p>  systemctl enable vsftpd</p>
</li>
</ul>
<blockquote>
<p>참조 : <a href="https://sailer.tistory.com/m/entry/CentOS-%EC%97%90-vsftpd-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0">https://sailer.tistory.com/m/entry/CentOS-에-vsftpd-설치하기</a>, <a href="https://www.hostwinds.kr/tutorials/create-ftp-accounts-server">https://www.hostwinds.kr/tutorials/create-ftp-accounts-server</a></p>
</blockquote>
<hr>
<h3 id="➰-apache--php-mysql-설치">➰ Apache , PHP, MySQL 설치</h3>
<h4 id="🔸-리눅스에-apache-설치">🔸 리눅스에 Apache 설치</h4>
<ul>
<li><p>서버에 접속하여  SSH를 통해 로그인</p>
<p>   ssh DSM 관리자계정@DSM IP주소 -p SSH 포트번호</p>
</li>
<li><p>Apache 설치하기</p>
<p>  yum install httpd -y</p>
</li>
<li><p>설치상태확인 </p>
<p>  httpd -v</p>
</li>
<li><p>서버구동 </p>
<p>  systemctl start httpd</p>
</li>
<li><p>작동상태확인 </p>
<p>  systemctl status httpd</p>
</li>
</ul>
<h5 id="👉-active로-상태가-확인되고-ip를-입력하여-다음과-같은-페이지로-연결되면-성공">👉 active로 상태가 확인되고, IP를 입력하여 다음과 같은 페이지로 연결되면 성공</h5>
<h4 id="🔸-php-설치">🔸 PHP 설치</h4>
<ul>
<li><p>Remi 레포지토리 활성화</p>
<p>  yum-config-manager --enable remi-php74</p>
</li>
<li><p>PHP 모듈 설치</p>
<p>   yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd   </p>
</li>
<li><p>설치상태 확인</p>
<p>   php -v</p>
</li>
</ul>
<h4 id="🔸-mysql-설치">🔸 MySQL 설치</h4>
<ul>
<li><p>패키지 설치</p>
<p>  yum install <a href="http://dev.mysql.com/get/mysql-community-release-e17-5.noarch.rpm">http://dev.mysql.com/get/mysql-community-release-e17-5.noarch.rpm</a></p>
</li>
<li><p>MySQL 서버 설치</p>
<p>  yum install mysql-community-server</p>
</li>
<li><p>설치상태 확인</p>
<p>  mysql --version</p>
</li>
<li><p>MySQL 실행</p>
<p>   systemctl enable mysqld</p>
</li>
<li><p>작동상태 확인 </p>
<p>  systemctl status mysql</p>
<h5 id="👉-active로-상태가-확인되면-성공">👉 active로 상태가 확인되면 성공</h5>
<blockquote>
<p>참조 : <a href="https://sailer.tistory.com/m/entry/Centos-7-%EC%97%90-MYSQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B056-or-57">https://sailer.tistory.com/m/entry/Centos-7-%EC%97%90-MYSQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B056-or-57</a></p>
</blockquote>
</li>
</ul>
<h4 id="🔸-mysql-비밀번호-설정">🔸 MySQL 비밀번호 설정</h4>
<ul>
<li><p>초기값 설정 </p>
<p>  mysql_secure_installation</p>
</li>
<li><p>대답내용
<code>Remove anonymous users? : y</code>
<code>Disallow root login remotely? : y</code>
<code>Remove test database and access to it? : y</code>
<code>Reload privilege tables now? : y</code></p>
</li>
<li><p>접속 가능 여부 확인</p>
<p>   mysql -u root -p</p>
</li>
</ul>
<hr>
<h3 id="➰-apache-도메인-설정">➰ Apache 도메인 설정</h3>
<h4 id="🔸-vhost-설정-첫번째">🔸 vhost 설정 첫번째</h4>
<ul>
<li><p>명령어작성</p>
<p>  include /ect/httpd/conf/vhost.conf</p>
</li>
<li><p>아래와 같이 기입</p>
<p>  &lt;Directory &quot;/home&quot;&gt;</p>
<pre><code>  AllowOverride None
  Require all granted </code></pre>  </Directory>

</li>
</ul>
<h4 id="🔸-vhost-설정-두번째">🔸 vhost 설정 두번째</h4>
<ul>
<li><p>명령어작성 </p>
<p>  vi /etc/httpd/conf/vhost.conf</p>
</li>
<li><p>아래와 같이 기입</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/cherry_eong/post/04aaf07e-1705-49ea-a422-c51f0dd70ee4/image.png" alt=""></p>
<h5 id="👉-설정한-도메인으로-접속했을때-testing-페이지가-뜨면-성공">👉 설정한 도메인으로 접속했을때 Testing 페이지가 뜨면 성공</h5>
<h4 id="🔸-apache-php-연동-apache가-php파일을-읽을-수-있도록-설정">🔸 Apache-PHP 연동 (Apache가 PHP파일을 읽을 수 있도록 설정)</h4>
<ul>
<li><p>명령어 작성</p>
<p>  vi /etc/httpd/conf/httpd.conf</p>
</li>
<li><p>해당내용 기입<br><img src="https://velog.velcdn.com/images/cherry_eong/post/15512c75-31c9-44a6-951f-82963e86bc8b/image.png" alt=""></p>
</li>
</ul>
<hr>
<h3 id="➰-php-설정">➰ PHP 설정</h3>
<h4 id="🔸-php-내부설정하기">🔸 PHP 내부설정하기</h4>
<ul>
<li><p>명령어작성</p>
<p> vi /etc/php.ini</p>
</li>
<li><p>해당내용 기입 
<img src="https://velog.velcdn.com/images/cherry_eong/post/79a3e5c3-1a5e-4c48-8012-0ad442f31f14/image.png" alt=""></p>
</li>
</ul>
<hr>
<h3 id="➰-vhost-설정">➰ vhost 설정</h3>
<h4 id="🔸-vhost-도메인-설정하기">🔸 vhost 도메인 설정하기</h4>
<ul>
<li><p>수정 할 파일 불러오기</p>
<p>  vi /etc/httpd/conf/vhost.conf</p>
</li>
<li><p>vhost.conf 파일 수정하기 </p>
<pre><code>&lt;virtualhost *:80&gt;
 ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /www/docs/dummy-host.example.com
 ServerName dummy-host.example.com
 ServerAlias www.dummy-host.example.com
 ErrorLog logs/dummy-host.example.com-error_log
 CustomLog logs/dummy-host.example.com-access_log common
&lt;/VirtualHost&gt;</code></pre></li>
</ul>
<hr>
<h3 id="➰-db-연결">➰ DB 연결</h3>
<h4 id="🔸-mysql-계정생성-및-권한부여">🔸 MySQL 계정생성 및 권한부여</h4>
<ul>
<li><p>서버접속</p>
<p>  mysql.server start</p>
</li>
<li><p>DB 로그인 </p>
<p>  mysql -u root -p</p>
</li>
<li><p>사용 중인 사용자 계정 확인</p>
<p>  (root 계정의 데이터베이스 중 &#39;mysql&#39; 이라는 데이터베이스 선택하기)
  mysql&gt; use mysql;</p>
<p>  (&#39;user&#39; 이라는 테이블의 정보에서 사용자 계정 확인하기)
  mysql&gt; select host, user from user;</p>
</li>
<li><p>계정생성    </p>
<p>  create user 계정ID; </p>
</li>
<li><p>localhost만 추가된 계정에 외부 host 접근 권한 추가</p>
<p>  mysql&gt; create user 계정ID@&#39;%&#39; identified by &#39;비밀번호&#39;;</p>
</li>
<li><p>모든 DB, 테이블 관리 권한 부여</p>
<p>  (privileges on [데이터베이스 이름].[테이블 이름])
  mysql&gt; grant all privileges on <em>.</em> to 계정ID@localhost idnetified by &#39;비밀번호&#39;;</p>
</li>
<li><p>권한 부여 내용 메모리에 반영</p>
<p>  mysql&gt; flush privileges;</p>
</li>
<li><p>권한이 잘 부여되었는지 확인</p>
<p>  mysql&gt; show grants for 계정ID@localhost;</p>
</li>
</ul>
<blockquote>
<p>참조 : <a href="https://velog.io/@ejayjeon/MYSQL-1.-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC">https://velog.io/@ejayjeon/MYSQL-1.-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC</a></p>
</blockquote>
<hr>
<h3 id="➰-그누보드-설치하기">➰ 그누보드 설치하기</h3>
<h4 id="🔸-ftp에-그누보드-설치하기">🔸 FTP에 그누보드 설치하기</h4>
<ul>
<li><p>설치원하는 경로를 명령어와 입력 </p>
<p>  #pwd </p>
</li>
<li><p>그누보드 설치하기 </p>
<p>  wget <a href="https://github.com/gnuboard/gnuboard5/commits/master">https://github.com/gnuboard/gnuboard5/commits/master</a> </p>
</li>
</ul>
<ul>
<li><p>압축풀기</p>
<p>  tar xvzf g5.tar.gz</p>
</li>
<li><p>해당 폴더로 이동하여 data 파일생성</p>
<p>  mkdir data</p>
</li>
<li><p>chmod 707 data 로 파일 권한도 변경  </p>
</li>
</ul>
<h4 id="🔸-도메인에-접속하여-그누보드-설치">🔸 도메인에 접속하여 그누보드 설치</h4>
<blockquote>
<p>참조 : <a href="https://idchowto.com/linux%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-gnuboard5-%EC%84%A4%EC%B9%98%ED%95%B4%EB%B3%B4%EA%B8%B0/">https://idchowto.com/linux%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C-gnuboard5-%EC%84%A4%EC%B9%98%ED%95%B4%EB%B3%B4%EA%B8%B0/</a></p>
</blockquote>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS _ EC2와 인스턴스 ]]></title>
            <link>https://velog.io/@cherry_eong/AWS-EC2%EC%99%80-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4</link>
            <guid>https://velog.io/@cherry_eong/AWS-EC2%EC%99%80-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4</guid>
            <pubDate>Sat, 15 Oct 2022 10:00:42 GMT</pubDate>
            <description><![CDATA[<h3 id="➰-amazon-ec2란-">➰ Amazon EC2란 ?</h3>
<h4 id="아마존-웹서비스인-aws-클라우드는-확장가능한-컴퓨터-용량을-제공한다-ec2를-사용하면-하드웨어에-선투자-할-필요가-없기때문에-더-빠르게-개발할-수-있다-br-ec2를-사용하면-원하는-수의-가상서버를-구축하고-보안-및-네트워킹을구성-할-수-있으며-스토리지-관리가-가능하다-br-확장-또는-축소를-통해서-요구사항-변경또는-사용량-스파이크를-처리-할-수-있어서-트레픽을-에측-할-필요성이-줄어든다">아마존 웹서비스인 AWS 클라우드는 확장가능한 컴퓨터 용량을 제공한다. EC2를 사용하면 하드웨어에 선투자 할 필요가 없기때문에, 더 빠르게 개발할 수 있다. <br> EC2를 사용하면 원하는 수의 가상서버를 구축하고, 보안 및 네트워킹을구성 할 수 있으며, 스토리지 관리가 가능하다. <br> 확장 또는 축소를 통해서 요구사항 변경또는 사용량 스파이크를 처리 할 수 있어서 트레픽을 에측 할 필요성이 줄어든다.</h4>
<h3 id="➰-ec2가-제공하는-기능">➰ EC2가 제공하는 기능</h3>
<h4 id="1-인스턴스">1. 인스턴스</h4>
<blockquote>
<p>가상컴퓨팅 화면</p>
</blockquote>
<h4 id="2ami">2.AMI</h4>
<blockquote>
<p>Amazon Mushine Image의 약자로, 인스턴트를 쉽게 만들 수 있는 템플릿이다. 서버에 필요한 운영체제와 소프트웨어들이 적절히 구성되어있다. </p>
</blockquote>
<h4 id="3-인스턴스를-위한-cpu--메모리-스토리지-네트워킹-용량-등-여러가지-구성">3. 인스턴스를 위한 CPU , 메모리, 스토리지, 네트워킹 용량 등 여러가지 구성</h4>
<h4 id="4-keypair">4. Keypair</h4>
<blockquote>
<p>인스턴스 로그인 정보를 보호해준다.</p>
</blockquote>
<h4 id="5-보안그룹">5. 보안그룹</h4>
<blockquote>
<p>인스턴스에 연결 할 수 있는 프로토콜과 포트, 소스 IP 범위를 지정하는 방화벽 기능이다. </p>
</blockquote>
<h4 id="6-탄력적-ip주소">6. 탄력적 IP주소</h4>
<blockquote>
<p>동적 클라우드 컴퓨팅을 통한 고정 IP4로, EIP라고 한다.</p>
</blockquote>
<p>내가 사용했던 기능들에 대해서만 간단하게 정리해보았다. 
그 밖에도 태그나, 볼륨등의 기능이 제공된다.</p>
<hr>
<h3 id="➰-인스턴스">➰ 인스턴스</h3>
<h4 id="클라우드-가상서버로-하나의-ami에서-다양한-인스턴스-유형을-실행-할-수-있다-br인스턴스의-유형에-따라서-인스턴스에서-사용되는-호스트-컴퓨터의-하드웨어가-기본적으로-결정된다-br-각-인스턴스-유형은-서로-다른-컴퓨팅-및-메모리-기능을-제공한다-인스턴스가-실행되면-컴퓨터와-동일한-방식으로-다루면-된다-br-완벽한-통제가-가능하며-루트권한이-필요한-명령은-sudo-명령어를-사용하면-된다">클라우드 가상서버로, 하나의 AMI에서 다양한 인스턴스 유형을 실행 할 수 있다. <br>인스턴스의 유형에 따라서 인스턴스에서 사용되는 호스트 컴퓨터의 하드웨어가 기본적으로 결정된다. <br> 각 인스턴스 유형은 서로 다른 컴퓨팅 및 메모리 기능을 제공한다. 인스턴스가 실행되면, 컴퓨터와 동일한 방식으로 다루면 된다. <br> 완벽한 통제가 가능하며, 루트권한이 필요한 명령은 sudo 명령어를 사용하면 된다.</h4>
<hr>
<p>다음에는 인스턴스를 생성하는 방법에 대해서 포스팅해보겠다.</p>
<p>회사에서 처음해봤을때 생소했는데
여러번 하다보니까 눈감고도 할 수 있을 것 ~
같지만 금방 까먹을 확률이 99%이기에 ^^ ... 
나는 날 믿지않아 </p>
]]></description>
        </item>
    </channel>
</rss>