<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>combi_areum.log</title>
        <link>https://velog.io/</link>
        <description>쿄쿄쿄</description>
        <lastBuildDate>Tue, 11 Oct 2022 15:08:59 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright (C) 2019. combi_areum.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/combi_areum" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[컴퓨터구조&운영체제]  컴퓨터 구조 시작]]></title>
            <link>https://velog.io/@combi_areum/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@combi_areum/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Tue, 11 Oct 2022 15:08:59 GMT</pubDate>
            <description><![CDATA[<h2 id="컴퓨터-구조를-알아야-하는-이유">컴퓨터 구조를 알아야 하는 이유</h2>
<h3 id="1-문제해결">1. 문제해결</h3>
<ul>
<li>컴퓨터 구조를 이해하고 있다면 문제상황을 빠르게 진단 할 수 있고 문제해결의 실마리를 다양하게 찾을 수 있음</li>
<li>컴퓨터를 내려다보며 문제를 해결 할 수 있음</li>
<li>컴퓨터 구조를 이해하면 문제해결 능력이 향상 됨</li>
</ul>
<h3 id="2-성능-용량-비용">2. 성능, 용량, 비용</h3>
<ul>
<li>사용자가 많은 프로그램은 필연적으로 성능, 용량,비용이 고려 됨</li>
<li>프로그래밍 언어의 문법만 알아서는 성능, 용량, 비용을 고려할 수X</li>
<li>컴퓨터 구조는 성능, 용량, 비용과 직결됨</li>
<li>컴퓨터 구조를 이해하면 문법만으로는 알기 어려운 성능, 용량, 비용을 고려하여 개발 할 수 있음</li>
</ul>
<p><br><br></p>
<h2 id="컴퓨터-구조의-큰-그림">컴퓨터 구조의 큰 그림<img src="https://velog.velcdn.com/images/combi_areum/post/b9296908-9538-47d0-9f86-f62aa79296a0/image.png" alt=""></h2>
<h3 id="컴퓨터가-이해하는-정보">컴퓨터가 이해하는 정보</h3>
<ul>
<li>컴퓨터는 0과 1로 표현된 정보만을 이해함
0과 1로 표현되는 정보는 <strong>데이터</strong>와 <strong>명령어</strong> 가 있음</li>
</ul>
<h3 id="1-데이터">1. 데이터</h3>
<ul>
<li><p>숫자, 문자, 이미지, 동영상 같은 정적인 정보
ex) &#39;1과2&#39;, &#39;안녕하세요&#39;, &#39;cat.jpg&#39;</p>
</li>
<li><p>명령어를 위한 재료</p>
</li>
</ul>
<h3 id="2-명령어">2. 명령어</h3>
<ul>
<li>데이터를 움직이고 <strong>컴퓨터를 작동</strong>시키는 정보
ex) &#39;더하라,1과2를&#39;, &#39;출력하라, 안녕하세요를&#39;, &#39;USB 메모리에 저장하라 cat.jpg를&#39;</li>
</ul>
<br>

<h3 id="컴퓨터의-4가지-핵심부품">컴퓨터의 4가지 핵심부품</h3>
<h3 id="1-cpu-중앙처리장치">1. CPU (중앙처리장치)</h3>
<h3 id="2-메모리-주기억장치">2. 메모리 (주기억장치)</h3>
<h3 id="3-보조기억장치">3. 보조기억장치</h3>
<h3 id="4-입출력장치">4. 입출력장치</h3>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=Oga3_Rl1kxQ&amp;list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&amp;index=3">https://www.youtube.com/watch?v=Oga3_Rl1kxQ&amp;list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&amp;index=3</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[알고리즘] DFS & BFS : 그래프 탐색]]></title>
            <link>https://velog.io/@combi_areum/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-DFS-BFS-%EA%B7%B8%EB%9E%98%ED%94%84-%ED%83%90%EC%83%89</link>
            <guid>https://velog.io/@combi_areum/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-DFS-BFS-%EA%B7%B8%EB%9E%98%ED%94%84-%ED%83%90%EC%83%89</guid>
            <pubDate>Tue, 11 Oct 2022 13:41:06 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h2 id="사전지식">사전지식</h2>
</blockquote>
<ul>
<li>탐색: 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정<blockquote>
<p><strong>스택 자료구조</strong> 
: 선입후출 ( 먼저 들어온 데이터가 나중에 나가는 형식의 자료구조 )</p>
</blockquote>
</li>
<li><ul>
<li>큐 자료구조**
: 선입선출 (먼저 들어온 데이터가 먼저 나가는 형식의 자료구조)<blockquote>
</blockquote>
<h3 id="재귀함수-recursive-function-">재귀함수 (Recursive Function )</h3>
</li>
</ul>
</li>
<li>자기 자신을 다시 호출하는 함수</li>
<li>문제풀이에서 사용할 때는 종료조건을 반드시 명시해야 함</li>
<li>종료조건을 명시하지 않으면 무한이 호출   될 수 있음</li>
<li>모든 재귀함수는 반복문으로 구현 가능</li>
<li>재귀함수가 반복문보다 불리한 경우도 있고 유리한 경우도 있음</li>
<li>컴퓨터가 함수를 연속적으로 호출하면 컴퓨터 메모리 내부의 스택 프레임에 쌓임 </li>
<li><blockquote>
<p>그래서 스택을 사용해야 할 때 구현상 스택 라이브러리 대신에 재귀를 이용 </p>
</blockquote>
</li>
</ul>
<p><br><br></p>
<h2 id="dfs-depth-first-search">DFS (Depth-First Search)</h2>
<ul>
<li>깊이 우선 탐색, 깊은 부분을 우선적으로 탐색하는 알고리즘</li>
<li><strong>스택</strong> 자료구조나 <strong>재귀함수</strong>를 이용</li>
</ul>
<br>

<p><strong>구체적인 동작과정</strong></p>
<ol>
<li>탐색 시작 노드를 스택에 삽입하고 방문처리 합니다.</li>
<li>스택 최상단노드에 방문하지 않는 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리 합니다. 방문하지 않은 인접노드가 없으면 스택에서 최상단 노드를 꺼냅니다.</li>
<li>더이상 2번의 과정을 수행할 수 없을 때까지 반복합니다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/028fa6dc-761d-4c12-890b-670f1884697f/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/a3d10d8e-915a-4be4-a6f3-ca81a724bb03/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/9ec093dc-4b07-4595-a637-84f2a0ed6387/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/cc2e773e-8ffa-436b-ab3a-0119b0a62df5/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/811852a1-adb2-426d-96bf-e630cf27f73d/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/6447c096-e081-40d5-95a6-32e63d0f1bf6/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/2807c093-8a5d-4900-9ac1-9018fa280cf7/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/bb9d90cd-b214-4b02-b975-793fe48c6cad/image.png" alt=""></p>
<pre><code class="language-java">
Public Class Main {
    public static boolean[] visited = new boolean[9];
    public static ArrayList&lt;ArrayList&lt;Integer&gt;&gt; graph = new ArrayList&lt;ArrayList&lt;Integer&gt;&gt;();

    public static void dfs(int x) {
        visited[x] = true;

        // 현재 노드와 연결된 다른 노드를 재귀적으로 방문
        for(int i = 0; i&lt;graph.get(x).size(); i++) {
            int y = graph.get(x).get(i);
            if(!visited[y]) dfs(y);
        }
    }

    public static void main(String[] args) {
        dfs(1);
    }
}
</code></pre>
<p><br><br></p>
<h2 id="bfs">BFS</h2>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=7C9RgOcvkvo&amp;t=2069s">https://www.youtube.com/watch?v=7C9RgOcvkvo&amp;t=2069s</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[JAVA] 원시타입 vs 참조타입 and Wrapper Class]]></title>
            <link>https://velog.io/@combi_areum/JAVA-%EC%9B%90%EC%8B%9C%ED%83%80%EC%9E%85-vs-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85-and-Wrapper-Class</link>
            <guid>https://velog.io/@combi_areum/JAVA-%EC%9B%90%EC%8B%9C%ED%83%80%EC%9E%85-vs-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85-and-Wrapper-Class</guid>
            <pubDate>Tue, 20 Sep 2022 14:15:42 GMT</pubDate>
            <description><![CDATA[<h2 id="원시타입--primitive-type-">원시타입 ( Primitive type )</h2>
<ul>
<li>실제 데이터 값을 저장
ex) int, long, short, byte, float, double, char, boolean</li>
</ul>
<p><br><br></p>
<h2 id="참조타입--reference-type-">참조타입 ( Reference type )</h2>
<ul>
<li>객체(Object)의 주소를 저장</li>
<li>원시타입을 제외한 타입
ex) 문자열, 배열, 열거형, 상수, 클래스, 인터페이스</li>
</ul>
<p><br><br></p>
<h2 id="원시타입과-참조타입의-차이">원시타입과 참조타입의 차이</h2>
<h3 id="1-null-포함-가능-여부">1. null 포함 가능 여부</h3>
<ul>
<li>원시타입은 null을 담을 수 없지만, 참조타입은 가능</li>
<li>원시타입은 값이 없으면 디폴트 값을 반환하기 때문
ex) int는 0, boolean은 false</li>
</ul>
<br>

<h3 id="2-제네릭-타입-사용가능-여부">2. 제네릭 타입 사용가능 여부</h3>
<ul>
<li>원시타입은 제네릭 타입 사용 불가, 참조타입은 가능</li>
</ul>
<p><br><br></p>
<hr>
<p><br><br></p>
<h2 id="wrapper-class">Wrapper Class<img src="https://velog.velcdn.com/images/combi_areum/post/e321f9de-79ec-4d56-9618-53fc72cedc89/image.png" alt=""></h2>
<ul>
<li>Wrapper Class는 Primitive type을 객체화 한 것</li>
</ul>
<br>

<pre><code class="language-java">int primitive = 10;
Integer wrapper = 10;

wrapper = null;  // null 값이 들어갈 수 있습니다.
String str = wrapper.toString();  // 메서드를 사용할 수 있습니다.
ArrayList&lt;Integer&gt; integerList = new ArrayList();  // 제네릭에 사용할 수 있습니다.</code></pre>
<ul>
<li><p>int는 단순히 숫자로만 사용할 수 있지만
Integer는 객체형태로 생성되어 null을 넣을 수 있고 toString 메소드를 사용할 수 있고 <code>&lt;Integer&gt;</code>의 형태로도 사용할 수 있음</p>
</li>
<li><p>굳이 객체가 필요한 경우가 아니거나 null값을 반환 할 필요가 없다면 원시타입을 쓰는 것이 메모리 측면에서 효율적</p>
</li>
<li><p>객체는 equals() 메소드로 값 비교 
&lt;--&gt;  ==연산은 두 객체의 주소값을 비교</p>
</li>
</ul>
<br>

<h3 id="1-boxing">1. Boxing</h3>
<ul>
<li>원시타입을 Wrapper Class로 변환<pre><code class="language-java">int primitive = 30;
Integer wrapper = new Integer(primitive);</code></pre>
</li>
</ul>
<h3 id="2-unboxing">2. UnBoxing</h3>
<ul>
<li>Wrapper Class을 원시타입로 변환<pre><code class="language-java">Integer wrapper = new Integer(30);
int primitive = wrapper.intValue();</code></pre>
</li>
</ul>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://velog.io/@gillog/%EC%9B%90%EC%8B%9C%ED%83%80%EC%9E%85-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85Primitive-Type-Reference-Type">https://velog.io/@gillog/%EC%9B%90%EC%8B%9C%ED%83%80%EC%9E%85-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85Primitive-Type-Reference-Type</a></li>
<li><a href="https://wildeveloperetrain.tistory.com/12">https://wildeveloperetrain.tistory.com/12</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 정규화, 반정규화]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EC%A0%95%EA%B7%9C%ED%99%94-%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94</link>
            <guid>https://velog.io/@combi_areum/SQL-%EC%A0%95%EA%B7%9C%ED%99%94-%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94</guid>
            <pubDate>Mon, 05 Sep 2022 13:13:31 GMT</pubDate>
            <description><![CDATA[<h2 id="정규화--normalization-">정규화 ( Normalization )</h2>
<ul>
<li><p>정규화는 데이터의 일관성, 최소한의 데이터 중복, 최소한의 데이터 유연성을 위해 <strong>데이터를 분해</strong>하는 과정</p>
</li>
<li><p>정규화된 모델은 분해된 테이블 간에 join을 수행하여
하나의 합집합으로 만들 수 있음</p>
</li>
<li><p><strong>중복 데이터를 제거</strong>하고 데이터 모델의 독립성을 확보</p>
</li>
</ul>
<p><br><br></p>
<h2 id="반정규화--de-normalization-">반정규화 ( De-Normalization )</h2>
<ul>
<li><p><strong>성능을 향상</strong>시키기 위해 정규화된 데이터 모델에서 <strong>중복, 통합, 분리 등을 수행</strong>하는 모든 과정을 의미, 데이터 모델링의 기법</p>
</li>
<li><p>데이터베이스의 성능 향상을 위하여, <strong>데이터 중복을 허용</strong>하고 조인을 줄이는 성능 향상 기법 </p>
</li>
<li><p>반정규화는 조회(select) 속도를 향상시키지만, 데이터 모델의 유연성은 낮아짐</p>
</li>
</ul>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://velog.io/@heewonim/DB-%EC%A0%95%EA%B7%9C%ED%99%94%EC%99%80-%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94">https://velog.io/@heewonim/DB-%EC%A0%95%EA%B7%9C%ED%99%94%EC%99%80-%EB%B0%98%EC%A0%95%EA%B7%9C%ED%99%94</a></li>
<li><a href="https://cometruedream.tistory.com/m/50">https://cometruedream.tistory.com/m/50</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 옵티마이저 조인]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EC%98%B5%ED%8B%B0%EB%A7%88%EC%9D%B4%EC%A0%80-%EC%A1%B0%EC%9D%B8</link>
            <guid>https://velog.io/@combi_areum/SQL-%EC%98%B5%ED%8B%B0%EB%A7%88%EC%9D%B4%EC%A0%80-%EC%A1%B0%EC%9D%B8</guid>
            <pubDate>Thu, 18 Aug 2022 14:40:50 GMT</pubDate>
            <description><![CDATA[<h2 id="옵티마이저-조인-optimizer-join">옵티마이저 조인 (Optimizer Join)<img src="https://velog.velcdn.com/images/combi_areum/post/aed18d4a-1ceb-427b-917e-d30df4ac2cf8/image.png" alt=""></h2>
<ul>
<li><p><strong>/*+ USE_NL(table1 table 2...) */</strong>
: 테이블의 Join 시 테이블의 각 Row가 Inner 테이블을 Nested Loop 형식으로 Join 한다. 지정된 table이 inner table이 된다. ( inner table &lt;-&gt; driving(outer) table ) 흔히 ORDERED Hint와 함께 쓴다.</p>
</li>
<li><p><strong>/*+ USE_HASH (table_name) */</strong>
: 각 테이블 간 HASH JOIN이 일어나도록 유도한다
 </p>
</li>
<li><p><strong>/*+ USE_MERGE (table_name) */</strong>
: 지정된 테이블들의 조인이 SORT-MERGE형식으로 일어나도록 유도한다.</p>
</li>
</ul>
<p>출처: <a href="https://devuna.tistory.com/35">https://devuna.tistory.com/35</a> [튜나 개발일기:티스토리]</p>
<p><br><br></p>
<h3 id="1-nested-loop-join">1. Nested Loop Join<img src="https://velog.velcdn.com/images/combi_areum/post/3fd6489f-4567-4a71-84b7-0f6ec9b13313/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="2-sort-merge-join">2. Sort Merge Join<img src="https://velog.velcdn.com/images/combi_areum/post/84c1b13d-0f9e-40fc-bac9-3197cd90f004/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="3-hash-join">3. Hash Join<img src="https://velog.velcdn.com/images/combi_areum/post/4a9cdaf2-395a-49a5-b652-830d76ec7eeb/image.png" alt=""></h3>
<p><br><br></p>
<hr>
<p><br><br></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/8c27d2bb-983d-4c7c-afcb-2e8cfb4c890c/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/b8431a21-f26a-4ee2-9b06-e9b1c228d95b/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/83e1e73f-c694-4df7-9636-131d448182e0/image.png" alt=""></p>
<p><br><br></p>
<ol>
<li>O</li>
<li>O</li>
<li>X ( 큰테이블X, 작은테이블O )</li>
<li>X ( 아무리 많아도 2개씩 작업 됨 )</li>
<li>X ( Sort Merge Join X,Hash Join O </li>
</ol>
<p>--&gt; 대량배치 작업은 CPU를 제일 많이 사용가능한 Hash Join이 유리,
--&gt; Sort Merge Join은 정렬 작업 함 )
6. O
7. O ( Nested Loop Join은 인덱스가 필수 Hash Join은 인덱스 필수가 아니라서 있던 없던 상관없음 )
8. X ( 조인은 테이블과 테이블 사이, 앞에서 이미 수행 된 조인 결과 집합과 테이블, 조인 결과와 조인 결과 사이에서 발생 )
9. O
10. X ( Sort Merge Join X, Hash Join O
--&gt; Sort Merge Join은 Equi join, non-Equi join 모두 가능함 )
11. O
12. X ( 작은 테이블이 유리 )
13. X</p>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s">https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] Optimizer, index]]></title>
            <link>https://velog.io/@combi_areum/SQL-Optimizer-index</link>
            <guid>https://velog.io/@combi_areum/SQL-Optimizer-index</guid>
            <pubDate>Wed, 17 Aug 2022 14:34:29 GMT</pubDate>
            <description><![CDATA[<h2 id="옵티마이저">옵티마이저</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/59b881e0-2d82-44b4-a209-63fba9783dc7/image.png" alt=""></p>
<p><br><br></p>
<h2 id="인덱스">인덱스</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/099400b6-f579-4982-9c14-82b8fd3f48a3/image.png" alt=""></p>
<br>

<hr>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/00f874f1-22e4-4cce-a8e2-1f4b5367afe0/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/0db4e29b-8c79-46c5-90c0-f7ccd1f1b323/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/252f8f80-2888-48e1-949c-9dd9298d87eb/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 파티션]]></title>
            <link>https://velog.io/@combi_areum/SQL-%ED%8C%8C%ED%8B%B0%EC%85%98</link>
            <guid>https://velog.io/@combi_areum/SQL-%ED%8C%8C%ED%8B%B0%EC%85%98</guid>
            <pubDate>Tue, 16 Aug 2022 12:51:30 GMT</pubDate>
            <description><![CDATA[<h2 id="테이블-파티션">테이블 파티션</h2>
<ul>
<li>대용량의 테이블을 여러개의 데이터파일에 분리해서 저장</li>
<li>물리적으로 분리된 데이터파일에 저장되어 입력,수정,삭제,조회 성능이 향상</li>
<li>독립적 관리가 가능</li>
<li>조회의 범위를 줄이는 효과가 있어 성능 향상</li>
<li>물리적으로 분리 되었지만, 논리적으로는 하나의 테이블로 간주</li>
</ul>
<p>ex) 애플워치로 매순간 위도,경도를 사용하여 위치값 찍음
초마다 바뀌기 때문에 데이터 수집량이 많다. 
성능에 부하를 줄 수 있는 것은 테이블 파티션 처리를 하는 것
한테이블에는 하루 일자 내에 발생한 위치 데이터만 넣는 등 같은 테이블이지만 쪼개서 저장을 함</p>
<p><br><br></p>
<h2 id="파티션의-종류">파티션의 종류<img src="https://velog.velcdn.com/images/combi_areum/post/f60ec389-ee15-4c09-b25e-7f6880f7b72d/image.png" alt=""></h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 윈도우함수]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EC%9C%88%EB%8F%84%EC%9A%B0%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@combi_areum/SQL-%EC%9C%88%EB%8F%84%EC%9A%B0%ED%95%A8%EC%88%98</guid>
            <pubDate>Tue, 16 Aug 2022 12:28:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/combi_areum/post/073f447c-a121-4645-b85a-c263045de05f/image.png" alt=""></p>
<p><br><br></p>
<h2 id="윈도우-함수">윈도우 함수</h2>
<h3 id="레코드행-사이의-관계를-쉽게-정의하기-위한-함수">레코드(행) 사이의 관계를 쉽게 정의하기 위한 함수<img src="https://velog.velcdn.com/images/combi_areum/post/d6360181-cac3-4037-b506-3926653d4a06/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/c7b39a91-5fbe-48c8-a75e-2c6dfd656b87/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="1-rank-함수">1. RANK 함수<img src="https://velog.velcdn.com/images/combi_areum/post/66216ea8-15c6-4a1e-bd93-af85c12330bc/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="2-비율-관련-함수">2. 비율 관련 함수<img src="https://velog.velcdn.com/images/combi_areum/post/5489044a-f678-427e-9580-0f872b647b7e/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="3-행-순서-함수">3. 행 순서 함수<img src="https://velog.velcdn.com/images/combi_areum/post/43ca96ed-b5b6-4deb-b117-851aee82a901/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="4-집계-함수">4. 집계 함수</h3>
<ul>
<li>count, sum, min, max, avg 등</li>
</ul>
<p><br><br></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/f98af5a9-257b-48b2-a22d-35bcb46d77fc/image.png" alt=""></p>
<p><br><br></p>
<h2 id="문제">문제<img src="https://velog.velcdn.com/images/combi_areum/post/f5fce240-0649-42b3-8d1a-fd75580fa08f/image.png" alt=""></h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/c6f22563-0b8b-4262-aa54-276fba2b73a3/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/fb1b95cf-65c9-4296-b55c-b038b04319cc/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/36728986-ed61-47f1-8bfe-31e491e6b99c/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/a90794be-ae21-401d-aaae-c828ad52cf6b/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 서브쿼리]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC</link>
            <guid>https://velog.io/@combi_areum/SQL-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC</guid>
            <pubDate>Mon, 15 Aug 2022 11:16:32 GMT</pubDate>
            <description><![CDATA[<h2 id="서브쿼리-메인쿼리-내부에-작성하는-쿼리">서브쿼리: 메인쿼리 내부에 작성하는 쿼리</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/58d5130a-853d-42ae-8a8e-6329506bdeb0/image.png" alt=""></p>
<ul>
<li>SELECT문으로만 작성 가능</li>
<li>반드시 괄호() 안에 존재하여야 함</li>
<li>괄호 끝에 세미콜론; 쓰지않음</li>
<li>ORDER BY를 사용할 수 없음</li>
<li>서브쿼리 사용가능 한 곳
: SELECT문, FROM문, WHERE문, HAVING문, ORDER BY문
INSERT문의 VALUES부분 대체제, UPDATE문의 SET부분 대체제</li>
</ul>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/ecd1f190-33b7-45ff-b8e0-78a0be06db2b/image.png" alt=""></p>
<p><br><br></p>
<h3 id="1-중첩-서브쿼리">1. 중첩 서브쿼리</h3>
<ul>
<li>WHERE절, HAVING절에 사용</li>
<li>다중 컬럼 또는 다중행을 반환</li>
</ul>
<p><br><br></p>
<h3 id="2-인라인-뷰">2. 인라인 뷰<img src="https://velog.velcdn.com/images/combi_areum/post/c1606b52-6038-4e28-82df-15c069cac612/image.png" alt=""></h3>
<ul>
<li>FROM절에 사용</li>
<li>View와 사용적인 측면에서 동일함 (임시뷰, 임시테이블)</li>
</ul>
<p><br><br></p>
<h3 id="3-스칼라-서브쿼리">3. 스칼라 서브쿼리<img src="https://velog.velcdn.com/images/combi_areum/post/3e72d102-2336-495b-8489-8fe9cce264d1/image.png" alt=""></h3>
<ul>
<li>SELECT절에 사용</li>
<li>단일 컬럼 또는 단일행을 반환 (1개의 값)</li>
</ul>
<p><br><br></p>
<p><br><br></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/3975fc82-d14d-4ee9-b185-aaaa6bc1a6c3/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/4f5c1fa4-1bc9-4697-953e-8f84b0295a65/image.png" alt=""></p>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s">https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s</a></li>
<li><a href="https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC-%EC%A0%95%EB%A6%AC">https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%EC%84%9C%EB%B8%8C%EC%BF%BC%EB%A6%AC-%EC%A0%95%EB%A6%AC</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 단일행 함수, 다중행 함수]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EB%8B%A8%EC%9D%BC%ED%96%89-%ED%95%A8%EC%88%98-%EB%8B%A4%EC%A4%91%ED%96%89-%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@combi_areum/SQL-%EB%8B%A8%EC%9D%BC%ED%96%89-%ED%95%A8%EC%88%98-%EB%8B%A4%EC%A4%91%ED%96%89-%ED%95%A8%EC%88%98</guid>
            <pubDate>Sat, 13 Aug 2022 09:22:19 GMT</pubDate>
            <description><![CDATA[<blockquote>
<h3 id="함수">함수</h3>
</blockquote>
<h3 id="1-내장함수-buit-in-function">1. 내장함수 (Buit-in Function)</h3>
<h4 id="1-단일행-함수-single-row-function-문자형-함수-숫자형-함수-날짜형-함수-변환형-함수-null-관련-함수">(1) 단일행 함수 (Single-Row Function): 문자형 함수, 숫자형 함수, 날짜형 함수, 변환형 함수, NULL 관련 함수</h4>
<blockquote>
<h4 id="2-다중행-함수-multi-row-function-집계함수-그룹함수-윈도우함수">(2) 다중행 함수 (Multi-Row Function): 집계함수, 그룹함수, 윈도우함수</h4>
<h3 id="2-사용자-정의-함수-user-defined-function">2. 사용자 정의 함수 (User Defined Function)</h3>
</blockquote>
<p><br><br></p>
<h2 id="단일행-함수-vs-다중행-함수">단일행 함수 VS 다중행 함수</h2>
<table>
<thead>
<tr>
<th align="center">단일행 함수</th>
<th align="center">다중행 함수</th>
</tr>
</thead>
<tbody><tr>
<td align="center">함수의 입력 행수가 1개</td>
<td align="center">함수의 입력 행수가 여러개</td>
</tr>
<tr>
<td align="center">1개의 결과값을 도출</td>
<td align="center">여러 행을 바탕으로 1개의 결과값을 도출</td>
</tr>
<tr>
<td align="center">각 행에 대한 조작결과를 리턴</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">5개를 입력하면 5개가 출력</td>
<td align="center">5개를 입력하면 1개가 출력</td>
</tr>
<tr>
<td align="center">SELECT, WHERE. ORDER BY, UPDATE의 SET절에 사용 가능</td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center">여러행이 결과로 나오는 열은 사용불가</td>
</tr>
<tr>
<td align="center">lower, upper, substr, length, trim, replace</td>
<td align="center">sum, count, max, min, avg</td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
</tr>
</tbody></table>
<ul>
<li><p>함수의 입력 행수에 따라 단일행 함수와 다중행 함수로 구분 할 수 있음</p>
</li>
<li><p>1:M 조인이라 하더라도 M쪽에서 출력된 행이 하나씩 단일행 함수의 입력값으로 사용되므로 사용할 수 있음</p>
</li>
<li><p>다중행 함수도 단일행 함수와 동일하게 단일 값만을 반환 함</p>
</li>
</ul>
<p><br><br></p>
<h3 id="1-단일행-함수의-종류">1. 단일행 함수의 종류</h3>
<table>
<thead>
<tr>
<th align="center">종류</th>
<th align="center">내용</th>
<th align="center">함수의 예</th>
</tr>
</thead>
<tbody><tr>
<td align="center">문자열 함수</td>
<td align="center">문자를 입력하면 문자나 숫자값 반환</td>
<td align="center">LOWER, UPPER, SUBSTR/SUBSTRING, LENGTH, LEN, LTRIM, RTRIM, TRIM, ASCII</td>
</tr>
<tr>
<td align="center">숫자형 함수</td>
<td align="center">숫자를 입력하면 숫자값 반환</td>
<td align="center">ABS, MOD, ROUND, TRUNC,SIGN...</td>
</tr>
<tr>
<td align="center">날짜형 함수</td>
<td align="center">DATE 타입의 값을 연산</td>
<td align="center">SYSDATE, GETDATE</td>
</tr>
<tr>
<td align="center">변환형 함수</td>
<td align="center">문자, 숫자, 날짜형 값의 데이터 타입을 변환</td>
<td align="center">TO_NUMBER, TO_CHAR, TO_DATE, CONVERT...</td>
</tr>
<tr>
<td align="center">NULL관련 함수</td>
<td align="center">NULL을 처리하기 위한 함수</td>
<td align="center">NVL, ISNULL, NULLIF, COALESCE...</td>
</tr>
</tbody></table>
<p><br><br></p>
<h3 id="2-다중행-함수의-종류">2. 다중행 함수의 종류</h3>
<p>(1) 집계함수
(2) 그룹함수
(3) 윈도우함수</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] JOIN, UNION]]></title>
            <link>https://velog.io/@combi_areum/SQL-73kzi9tk</link>
            <guid>https://velog.io/@combi_areum/SQL-73kzi9tk</guid>
            <pubDate>Sat, 13 Aug 2022 08:10:03 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/combi_areum/post/5fdbdeb3-cb9e-4a79-9c6d-bb5623cc06dd/image.png" alt=""></p>
<p><br><br></p>
<h2 id="join"><strong>JOIN</strong></h2>
<p>: 테이블 간의 결합, 집합과 유사</p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/b1ac9e5a-a449-42d4-abf1-18c38c70aa56/image.png" alt=""></p>
<blockquote>
<h4 id="--테이블에서-동일한-컬럼을-찾기">- 테이블에서 동일한 컬럼을 찾기</h4>
<h4 id="--테이블-간-결합의-key가-되는-컬럼-찾기">- 테이블 간 결합의 key가 되는 컬럼 찾기</h4>
<h4 id="---join-방식에-따라-결과가-달라지기-때문에-key-컬럼값-간의-일치도-파악">-  JOIN 방식에 따라 결과가 달라지기 때문에 key 컬럼값 간의 일치도 파악</h4>
</blockquote>
<p><br><br></p>
<h3 id="1-inner-join">1. INNER JOIN<img src="https://velog.velcdn.com/images/combi_areum/post/9cac27c1-0b0f-4209-8867-06379d243ce9/image.png" alt=""></h3>
<ul>
<li>위 다이어그램의 맨 아래 상자에 FROM GENDER A, AGE B로 변경하기</li>
</ul>
<br>

<h4 id="-join-후-특정-행만-호출-할-때">* JOIN 후 특정 행만 호출 할 때<img src="https://velog.velcdn.com/images/combi_areum/post/7e77dbb7-d769-496e-957c-3cb6ded12765/image.png" alt=""></h4>
<br>

<h4 id="-3개-이상-테이블을-join-할-때">* 3개 이상 테이블을 JOIN 할 때<img src="https://velog.velcdn.com/images/combi_areum/post/77f2a5a5-a57c-4a5d-b998-1d624f299071/image.png" alt=""></h4>
<p><br><br></p>
<h3 id="2-outer-join">2. OUTER JOIN<img src="https://velog.velcdn.com/images/combi_areum/post/9c2387ac-180f-4d6d-b484-abb9a00f4abf/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="3-left-join">3. LEFT JOIN<img src="https://velog.velcdn.com/images/combi_areum/post/269186f5-63cd-4f72-8965-fc6e575b270b/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="3-right-join">3. RIGHT JOIN<img src="https://velog.velcdn.com/images/combi_areum/post/9073bf20-0ba4-4010-8d7b-d3aa8e887aae/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="4-self-join">4. SELF JOIN</h3>
<ul>
<li><strong>한 테이블 내에서</strong> 연관관계를 가진 두 컬럼 간의 조인</li>
<li>테이블명과 컬럼명이 모두 일치하기 때문에 반드시 ALIAS를 써야함<pre><code class="language-sql">SELECT T1.col1, T2.col1
FROM 테이블명1 T1, 테이블명2 T2
WHERE T1.col1 = T1.col1</code></pre>
</li>
</ul>
<p><br><br></p>
<hr>
<br>

<h2 id="union-union-all">UNION, UNION ALL</h2>
<p>: 동일한 컬럼 개수와 데이터타입을 가진 테이블을 (세로로) 합쳐줌</p>
<h3 id="1-union">1. UNION<img src="https://velog.velcdn.com/images/combi_areum/post/9e8496ee-ffd8-4f12-a562-806f90e575cb/image.png" alt=""></h3>
<ul>
<li>중복된 레코드가 제거 됨</li>
</ul>
<p><br><br></p>
<h3 id="2-union-all">2. UNION ALL</h3>
<ul>
<li>중복된 레코드가 제거 안됨</li>
</ul>
<p><br><br></p>
<h2 id="join-과-union-비교">JOIN 과 UNION 비교<img src="https://velog.velcdn.com/images/combi_areum/post/394311a6-eff9-4f71-8a14-d29ee808f38d/image.png" alt=""></h2>
<p><br><br></p>
<h2 id="minusoracle--exceptsql-server">MINUS(ORACLE) = EXCEPT(SQL SERVER)<img src="https://velog.velcdn.com/images/combi_areum/post/867915ef-6a1c-40d4-ad2a-69724244da07/image.png" alt=""></h2>
<ul>
<li>A테이블 정보 중에서 B테이블 정보를 빼고 보여줌</li>
</ul>
<p><br><br></p>
<h2 id="equi-join-non-equi-join">EQUI JOIN, non-EQUI JOIN</h2>
<h3 id="1-equi-join">1. EQUI JOIN</h3>
<ul>
<li>동일한 컬럼을 사용하여 두 릴레이션을 결합
ex) A.key = B.key</li>
</ul>
<h3 id="2non-equi-join">2.non-EQUI JOIN</h3>
<ul>
<li>정확하게 일치하지 않는 컬럼을 사용하여 두 릴레이션을 결합
ex) A.key &lt;, &gt;, &lt;=, &gt;= B.key</li>
</ul>
<p><br><br></p>
<h2 id="cross-join">CROSS JOIN</h2>
<ul>
<li>서로 연관된 컬림이 없는 경우 수행하는 조인</li>
<li>key 없이 JOIN 하면 2개의 테이블에 대해 카테시안 곱 발생
<img src="https://velog.velcdn.com/images/combi_areum/post/21a6ebbd-2478-40a2-946f-10b13e448100/image.png" alt=""></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 그룹함수]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EA%B7%B8%EB%A3%B9%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@combi_areum/SQL-%EA%B7%B8%EB%A3%B9%ED%95%A8%EC%88%98</guid>
            <pubDate>Thu, 11 Aug 2022 14:21:41 GMT</pubDate>
            <description><![CDATA[<h2 id="그룹함수">그룹함수</h2>
<h3 id="1-기본-group-by">1. 기본 GROUP BY</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/5c4fa97e-b5a2-4d49-9b16-7d82e326041d/image.png" alt=""></p>
<p><br><br></p>
<h3 id="2-rollup">2. ROLLUP</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/318f339c-6d35-41dc-aac6-f44710e1dd03/image.png" alt=""></p>
<p><br><br></p>
<h3 id="3-cube">3. CUBE</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/7c0b49eb-e370-4d8b-b7aa-23ea37410793/image.png" alt=""></p>
<p><br><br></p>
<h3 id="4-grouping-sets">4. GROUPING SETS</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/15e99f70-15f1-496b-92f0-46c0d7deacd3/image.png" alt=""></p>
<ul>
<li>위의 표에서  맨마지막 행(전체합계)은 안나옴 - 잘못된 그림</li>
</ul>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/078dbf78-db53-4279-9528-5db308e106df/image.png" alt=""></p>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/3705b60d-6c6b-4ab5-8e97-11f2855c23be/image.png" alt=""></p>
<p><br><br></p>
<h3 id="5-grouping">5. GROUPING</h3>
<blockquote>
<ul>
<li>ROLLUP, CUBE, GROUPING SETS을 도와주는 역할</li>
</ul>
</blockquote>
<ul>
<li>집계를 해주지 않고, 소계나 합계 값이 계산되는 1을 반환하고 아니면 0을 반환</li>
</ul>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/6f02d08d-1199-43e0-a1d4-33f86bc5c45c/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/3fa57ef0-8e4a-46f1-b99d-831f69634b89/image.png" alt=""></p>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s">https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] SELECT 관련]]></title>
            <link>https://velog.io/@combi_areum/SQL</link>
            <guid>https://velog.io/@combi_areum/SQL</guid>
            <pubDate>Wed, 10 Aug 2022 13:36:02 GMT</pubDate>
            <description><![CDATA[<h2 id="select-기본">SELECT 기본</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/c53e1970-59a6-4be8-9147-3321c7bf9138/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/9fa5612f-f6a9-4046-ab70-c00ab3a57f63/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/ed1a8299-8cc2-48de-8e1e-32e2f36c9352/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/a7c8da7d-3092-4eb6-8e8f-b7a9df6af8c6/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/95f03942-2d4f-4cb1-b758-03c40ea06218/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/d2cb2335-7e84-46d6-b850-0e53d045ebd1/image.png" alt=""></p>
<p><br><br></p>
<h2 id="with문">WITH문</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/0b70d830-cf9f-4c4e-8802-6670d00f1498/image.png" alt=""></p>
<ul>
<li><p>WITH문을 통해 임시테이블화 된 것 == VIEW TABLE</p>
</li>
<li><p>서브쿼리 : SELECT문 내에 SELECT문이 또 쓰여있는 쿼리</p>
</li>
<li><p>인라인뷰 : 서브쿼리가 FROM절 내에 쓰여진 것</p>
</li>
</ul>
<pre><code class="language-sql">SELECT * FROM C_INFO WHERE name LIKE &#39;%a%&#39;</code></pre>
<p><br><br></p>
<h2 id="view-table">VIEW TABLE</h2>
<ul>
<li>일종의 가상테이블로서 실제 데이터가 하드웨어에 저장되는 것은 아니다.</li>
<li>실제 데이터를 가지고 있지 않다.</li>
<li>테이블 구조가 변경되더라도 독립적으로 존재한다.</li>
<li>수행속도의 향상을 위해 사용한다.</li>
<li>SQL의 성능을 향상시키기 위해 사용한다.</li>
<li>임시적인 작업을 위해 사용한다.</li>
<li>보안관리를 위해 사용한다.</li>
</ul>
<p><br><br></p>
<h2 id="null-관련-함수">NULL 관련 함수</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/3c004c56-819a-4567-8037-86edbad325c3/image.png" alt=""></p>
<p><br><br></p>
<h2 id="group-by">GROUP BY</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/d2e6cbca-4715-482a-bb45-ba8dc7e089ad/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/ae5871c9-dfee-4c68-ad6e-1c6be2e18f37/image.png" alt=""></p>
<p><br><br></p>
<h2 id="집계-함수">집계 함수</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/c7541bfe-3acb-4c4f-ad3e-7a51d5dccdca/image.png" alt=""></p>
<br>



<p><img src="https://velog.velcdn.com/images/combi_areum/post/9bce9131-842d-43e7-ab1c-cad451ea6542/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/7109c5b5-d7c5-4bd2-ae22-657a7ce66c1f/image.png" alt=""></p>
<p><br><br></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/7b0ada79-dcbf-4162-aee0-d3d0fa5cd645/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/8e50fdc0-23dc-4153-b31e-a7d268d327a1/image.png" alt=""></p>
<p><br><br></p>
<h2 id="sql-실행순서">SQL 실행순서</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/d92de367-04fa-47c3-9310-7ec5719d455f/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] DCL, DDL, DML, TCL]]></title>
            <link>https://velog.io/@combi_areum/SQL-DCL-DDL-DML-TCL</link>
            <guid>https://velog.io/@combi_areum/SQL-DCL-DDL-DML-TCL</guid>
            <pubDate>Tue, 09 Aug 2022 14:23:40 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/combi_areum/post/df599162-10da-4f37-ab3a-4b65d6295840/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/44248c2d-f884-4d06-949b-c1b10aefe6a7/image.png" alt=""></p>
<br>

<h2 id="dcl-data-control-language">DCL (Data Control Language)</h2>
<p>: 데이터베이스 사용자에게 권한을 부여/회수하는 언어</p>
<blockquote>
<p>GRANT 권한부여
REVOKE 권한회수</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/53ce1706-9872-4e6b-93a0-7e70e7465ea0/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/ae59df4a-c22d-48e3-8ecb-68e3ddb2ad52/image.png" alt=""></p>
<ul>
<li>문제
데이터베이스 상에서 많은 사용자들에게 개별적으로 권한을 부여하고 관리하는 어려움을 해소하고자 <strong>다양한 권한을 하나의 그룹으로 묶어서 관리</strong>할 수 있도록 하는 논리적인 권한의 그룹(명령어)을 칭하는 말은?<h4 id="정답----role">정답 --&gt; ROLE</h4>
</li>
</ul>
<blockquote>
<h3 id="role">ROLE</h3>
</blockquote>
<ul>
<li>다양한 권한을 다양한 유저를 대상으로 관리하기 위한 명령어</li>
<li>여러사용자에게 동일한 ROLE 부여 가능</li>
<li>ROLE 생성은[CREATE ROLE] 권한을 가진 유저가 할수있음<blockquote>
<p>ex) GRANT <strong>관리자권한</strong> TO hoho;</p>
</blockquote>
</li>
</ul>
<p><br><br></p>
<h2 id="ddl-data-definition-language">DDL (Data Definition Language)</h2>
<p>: 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어</p>
<h3 id="1-create-데이터베이스-상-테이블-구조-생성">1. CREATE: 데이터베이스 상 테이블 구조 생성</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/edb287c4-1bba-4612-bf43-d5dd98e2f543/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/78b46f83-641a-4d7f-8703-62d419fb4273/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/a17e1502-5a15-4d47-a634-7f38dfb323ef/image.png" alt=""></p>
<ul>
<li>문제
김호호씨가 아래와 같이 테이블 menu를 생성한 후, 유효한 튜플 값 4개를 삽입 했다. SQL-a와 SQL-b의 실행결과는?
<img src="https://velog.velcdn.com/images/combi_areum/post/506b30d6-651c-4b2f-9cc9-7370191b3727/image.png" alt=""></li>
</ul>
<h4 id="정답----둘다-4로-같다">정답 --&gt; 둘다 4로 같다.</h4>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/9795eea6-8bc8-4439-86d5-c93c3ae897eb/image.png" alt=""></p>
<h3 id="2-alter-테이블과-컬럼에-대해-이름-및-속성-변경-추가삭제-등-구조-수정을-위해-사용">2. ALTER: 테이블과 컬럼에 대해 이름 및 속성 변경, 추가/삭제 등 구조 수정을 위해 사용</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/226db554-e4e9-40da-896b-1f3345ac78aa/image.png" alt=""></p>
<h3 id="3-drop-테이블-및-컬럼-삭제">3. DROP: 테이블 및 컬럼 삭제</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/a0d06536-db56-46c7-a511-1f0a2140480a/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/9c0135be-06b5-4a65-8689-3ca5ffed9d5b/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/d621e67e-e3af-4f65-a239-b08dcf4a9811/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/c357a5ce-99f4-4f15-97ff-ee704d43dcf5/image.png" alt=""></p>
<p><br><br></p>
<h2 id="dml-data-manipulation-language">DML (Data Manipulation Language)</h2>
<p>: 정의된 데이터베이스에 레코드를 입력하거나, 수정, 삭제 및 조회하기 위한 명령어</p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/2ad30e52-fa3a-4cf4-8351-78203d78fb18/image.png" alt=""></p>
<br>


<p><img src="https://velog.velcdn.com/images/combi_areum/post/6592ccc8-9972-415b-a824-860efdd2bb2c/image.png" alt=""></p>
<ul>
<li><ol start="3">
<li>메뉴명이 not null이라 오류발생</li>
</ol>
</li>
<li><ol start="4">
<li>컬럼명 지정이 이루어지지 않은 상태에서는 전체값이 들어가야함</li>
</ol>
</li>
<li>-&gt; 컴마(,)만이라도 찍었으면 됨</li>
</ul>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/3ec963f1-de7e-4c0e-9565-e2640af8c351/image.png" alt=""></p>
<ul>
<li><ol>
<li>TRUNCATE와 DROP은 로그를 남기지 않음</li>
</ol>
</li>
<li><ol start="2">
<li>특정행 지울 수 있음 ( WHERE문 사용 )</li>
</ol>
</li>
<li><ol start="3">
<li>되돌릴 수 있음 ( DB에 반영되기 전까지는 )
: DDL인 TRUNCATE와 DROP은 불가능</li>
</ol>
</li>
</ul>
<p><br><br></p>
<h2 id="tcl-transaction-control-language">TCL (Transaction Control Language)</h2>
<p>: 트랜잭션을 제어하기 위한 언어</p>
<blockquote>
<h3 id="트랜잭션">트랜잭션</h3>
</blockquote>
<h4 id="데이터베이스의-상태를-변화시키기-위해-수행하는-작업의-단위">데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위</h4>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/a2e10463-6e0c-4a53-8039-eae571bfeed8/image.png" alt=""></p>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/64e3c901-5d7b-4ec5-97ac-574af7d61fc3/image.png" alt=""></p>
<h4 id="정답----10-50-30">정답 --&gt; 10, 50, 30</h4>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/91ebda21-8166-4b37-a084-91a7e9ae17dd/image.png" alt=""></p>
<ul>
<li>논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.</li>
</ul>
<br>

<p><img src="https://velog.velcdn.com/images/combi_areum/post/a5a43f4a-5698-4edf-ac7f-66da005a30f2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/6e13ce44-af0a-48a4-8934-5680792e04be/image.png" alt=""></p>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s">https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] 계층형 쿼리 - START WITH ~CONNECT BY ~ORDER SIBLINGS BY]]></title>
            <link>https://velog.io/@combi_areum/SQL-%EA%B3%84%EC%B8%B5%ED%98%95-%EC%BF%BC%EB%A6%AC-START-WITH-CONNECT-BY-ORDER-SIBLINGS-BY</link>
            <guid>https://velog.io/@combi_areum/SQL-%EA%B3%84%EC%B8%B5%ED%98%95-%EC%BF%BC%EB%A6%AC-START-WITH-CONNECT-BY-ORDER-SIBLINGS-BY</guid>
            <pubDate>Mon, 08 Aug 2022 12:31:17 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/combi_areum/post/0f629e50-0040-4fb1-9849-074b82c165f9/image.png" alt=""></p>
<p><br><br></p>
<h2 id="문제로-바로공부">문제로 바로공부</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/767bc1cf-393c-4a08-a3de-b86827d8c27e/image.png" alt=""> </p>
<h3 id="1-계층형-조회문제는-조회를-통해-어떻게-레코드가-재배치-되는지-파악하는-것이-중요">1. 계층형 조회문제는 조회를 통해 어떻게 레코드가 재배치 되는지 파악하는 것이 중요</h3>
<ul>
<li>동일한 값을 가진 컬럼끼리 연결되며 재배치 됨</li>
</ul>
<br>

<h3 id="2-계층구조의-시작점-start-with">2. 계층구조의 시작점 (START WITH...)</h3>
<ul>
<li>계층구조(트리)가 시작되는 지점(= ROOT 노드)을 알려줌</li>
<li>START WITH 뒤에 적힌 조건에 맞는 레코드가 ROOT 노드(부모)임</li>
<li>현재 SQL문에서는 [ㄱ]행이 트리구조의 ROOT 노드 <img src="https://velog.velcdn.com/images/combi_areum/post/e98c201e-8000-4fdc-aa66-6fc7f8e3a8a3/image.png" alt=""></li>
</ul>
<br>

<h3 id="3-계층구조가-연결된-방향성-connect-by">3. 계층구조가 연결된 방향성 (CONNECT BY...)</h3>
<ul>
<li><p>계층구조(트리)가 연결 된 방향성을 알려줌
ex) 자식노드 -&gt; 부모노드, 부모노드 -&gt; 자식노드</p>
</li>
<li><p>방향을 알면 a와 b 레코드가 있을 때 둘 중 무엇이 먼저 배치되는지 알수 있음</p>
</li>
<li><p>모든 레코드에 대해서 이런 관계성을 파악하면
재배치된 테이블에서 전체 레코드의 순서를 알 수 있음
<img src="https://velog.velcdn.com/images/combi_areum/post/4f8f7e52-217e-4eae-912e-8e87a0a084e2/image.png" alt=""></p>
</li>
</ul>
<br>

<h3 id="4-시작점으로-지정된-ㄱ레코드의-col1-col2를-주목">4. 시작점으로 지정된 [ㄱ]레코드의 col1, col2를 주목</h3>
<ul>
<li>[ㄱ]레코드에서 col2는 NULL이고, col1이 NULL인 값은 없다.</li>
<li>따라서,<blockquote>
<p>1) col1과 동일한 col2값을 가진 레코드를 찾는다.
2) 위치는 col1 앞 = col2이므로 [ㄱ]보다 앞에 배치한다.</p>
</blockquote>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/39ddf37f-eaba-4316-896b-700454a0fedf/image.png" alt=""></p>
<ul>
<li>col2가 11인 레코드는 [ㄴ], [ㄷ] 총 2개</li>
<li>이에대한 순서를 정해주는 명령어는 <strong>ORDER SIBLING BY</strong> 
<img src="https://velog.velcdn.com/images/combi_areum/post/dcd6c073-eb1b-47f5-86c4-8f0d779d05a0/image.png" alt=""></li>
</ul>
<p>** 내림차순인데 오름차순으로 되어있음</p>
<ul>
<li>잔여분 레코드까지 기준에 맞게 배치
<img src="https://velog.velcdn.com/images/combi_areum/post/878ec199-4339-45ae-a5f9-0076eb38653c/image.png" alt=""></li>
</ul>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://coding-factory.tistory.com/461">https://coding-factory.tistory.com/461</a></li>
<li><a href="https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s">https://www.youtube.com/watch?v=8uP_E6SyiuM&amp;t=13972s</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Spring]]]></title>
            <link>https://velog.io/@combi_areum/Spring</link>
            <guid>https://velog.io/@combi_areum/Spring</guid>
            <pubDate>Thu, 09 Jun 2022 14:48:57 GMT</pubDate>
            <description><![CDATA[<ul>
<li><a href="https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8#curriculum">https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8#curriculum</a></li>
</ul>
<p><br><br></p>
<p>Java 11 설치
IDE: IntelliJ 또는 Eclipse 설치</p>
<p>스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성
<a href="https://start.spring.io">https://start.spring.io</a></p>
<blockquote>
<p>프로젝트 선택</p>
</blockquote>
<ul>
<li>Project: Gradle Project 
(Gradle, Maven은 필요한 라이브러리를 땡겨오고 빌드하는 라이프사이클까지 관리 해주는 툴, 과거에는 메이븐을 썼는데 요즘은 그래들을 쓰는 추세)</li>
<li>Spring Boot: 2.3.x </li>
<li>Language: Java </li>
<li>Packaging: Jar</li>
<li>Java: 11 </li>
</ul>
<blockquote>
<p>Project Metadata</p>
</blockquote>
<ul>
<li>groupId: hello</li>
<li>artifactId: hello-spring </li>
</ul>
<blockquote>
<p>Dependencies: Spring Web, Thymeleaf
(어떤 라이브러리를 땡겨쓸거냐?)</p>
</blockquote>
<p>Generate 버튼 클릭하면 다운로드 됨, 압축을 풀어준다.</p>
<p>-&gt; 인텔리제이에서 open or import 클릭 </p>
<p>-&gt; 압축 푼 폴더 안에 build.gradle을 open</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[docker] docker 개념 & 설치 & image pull]]></title>
            <link>https://velog.io/@combi_areum/Temp-Title</link>
            <guid>https://velog.io/@combi_areum/Temp-Title</guid>
            <pubDate>Mon, 23 May 2022 12:52:39 GMT</pubDate>
            <description><![CDATA[<h2 id="docker-왜-사용아아아-다-지워짐-다시-작성하기">docker 왜 사용?아아아 다 지워짐;;; 다시 작성하기.....</h2>
<p>어떤 애플리케이션을 만들기 위해서는 운영체제에 여러 소프트웨어를 깔아야 함
웹개발을 하려고 하면 Web server, database 등을 깔아야 함
<img src="https://velog.velcdn.com/images/combi_areum/post/8ebc0b9d-bb8a-402f-aa18-4ebaa6f6ce71/image.png" alt=""></p>
<p>이런것을 설치하는 것은 까다롭고 귀찮다.</p>
<p>웹서버를 만든 사람이 컴퓨터를 구해서 적당한 운영체제를 깔고 그 위에 웹서버, DB를 설치한 다음 그걸 준다면 좋겠다....</p>
<p>우리의 앱은 네트워크로 통신해서 받은 컴퓨터를 사용할 수 있으면 좋겠다....</p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/0f7c5f08-e989-44ff-a67b-04785f90c9e7/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/4511f96b-2b2d-4e18-8eb3-be07dc086249/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/82efd4f6-2a4c-40c0-86db-c282551648a4/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/57c45b1a-8a65-4a4b-9608-ce26bcc5b850/image.png" alt=""></p>
<p><br><br></p>
<h2 id="docker-install">docker install</h2>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/0b1fa051-ed3f-4711-b6d2-6b7353a989b6/image.png" alt=""></p>
<p><br><br></p>
<h2 id="이미지-pull">이미지 pull</h2>
<h3 id="1-도커-사용-전-이해해야할-개념">1. 도커 사용 전 이해해야할 개념<img src="https://velog.velcdn.com/images/combi_areum/post/7e2c22b7-56d0-4c97-91a5-c190ffdb3cc6/image.png" alt=""></h3>
<ul>
<li><p>어떤 프로그램이 필요할떄 app store에서 찾아봄</p>
</li>
<li><p>-&gt; docker hub라고 하는 레지스트리라고 불리는 서비스에서 필요한 것을 찾음</p>
</li>
<li><p>app store에서 다운받아서 컴퓨터에 저장한 것을 program 이라고 함
--&gt; docker hub에서 찾아서 다운받아서 컴퓨터에 가지고 있는 것을 image라고 함</p>
</li>
<li><p>program을 실행하면 process라는 것이 동작함</p>
</li>
<li><p>-&gt; image를 실행하는 것을 container라고 함</p>
</li>
<li><p>program이 여러 process를 가질 수 있음</p>
</li>
<li><p>-&gt; image도 여러개의 container를 가질 수 있음</p>
</li>
<li><p>docker hub에서 image를 다운받는 행위를 pull이라고 함</p>
</li>
<li><p>image를 실행시키는 행위를 run이라고 함</p>
</li>
<li><p>run을 하게되면 image가 container가 되고 그 container가 실행되면서 container 안에 포함되어있는 실행되어지도록 조치되어진 program이 실행이 되면서 그 program을 사용할 수 있게 됨</p>
</li>
</ul>
<br>

<h3 id="2-image-다운받기">2. image 다운받기</h3>
<h4 id="1-hubdockercom">(1) hub.docker.com</h4>
<ul>
<li><p>Explore 클릭 하면 Docker, Containers, Plugins 3개의 메뉴가 있는데 Containers를 클릭</p>
</li>
<li><p>인기있는 container들이 있고 카테고리를 통해서 원하는 소프트웨어가 설치되어있는 container를 찾을 수 있음
( 우리는 apache web server라는 프로그램을 container 위에서 실행시키고 싶음 --&gt; apache web server가 설치된 container를 찾자 )</p>
</li>
<li><p>apache web server는 httpd라는 이름을 가지고있다. 검색해보자.</p>
</li>
<li><p>-&gt; official image라고 되어있는데,
이것은 docker에서 공식적으로 관리하는 image라는 뜻임 --&gt; 클릭</p>
</li>
<li><p>apache web server를 다운받을 수 있는 명령어를 알려준다.</p>
</li>
<li><p>-&gt; docker pull httpd</p>
</li>
<li><p>그리고 httpd의 사용설명서가 나와있다.
내 컴퓨터에 이미지를 다운받아보자.</p>
</li>
</ul>
<h4 id="2-docsdockercom에서-docs-확인">(2) docs.docker.com에서 docs 확인</h4>
<ul>
<li><p>docs를 확인해보자.</p>
</li>
<li><p>Reference에서 Command-line reference에서 docker CLI 클릭</p>
</li>
<li><p>docker pull을 클릭</p>
</li>
<li><p>-&gt; 레지스트리로부터 이미지를 다운로드 받아올 수 있다.</p>
</li>
</ul>
<h4 id="3-image-pull">(3) image pull</h4>
<ul>
<li>apache web server image를 다운받으려면<pre><code>docker pull httpd</code></pre></li>
<li>잘 다운받았는지 확인하려면<pre><code>docker images</code></pre><h4 id="4-gui로-확인">(4) GUI로 확인</h4>
</li>
<li>docker desktop 클릭 --&gt; images 클릭</li>
</ul>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><p><a href="https://www.youtube.com/watch?v=Ps8HDIAyPD0&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&amp;index=1">https://www.youtube.com/watch?v=Ps8HDIAyPD0&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&amp;index=1</a></p>
</li>
<li><p><a href="https://www.youtube.com/watch?v=L3ZpudSF0HU&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&amp;index=2">https://www.youtube.com/watch?v=L3ZpudSF0HU&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf&amp;index=2</a></p>
</li>
<li><p><a href="https://www.youtube.com/watch?v=EbTJtanJUfE&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf">https://www.youtube.com/watch?v=EbTJtanJUfE&amp;list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf</a></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 탄력성 있는 구현]]></title>
            <link>https://velog.io/@combi_areum/AWS-%ED%83%84%EB%A0%A5%EC%84%B1-%EC%9E%88%EB%8A%94-%EA%B5%AC%ED%98%84</link>
            <guid>https://velog.io/@combi_areum/AWS-%ED%83%84%EB%A0%A5%EC%84%B1-%EC%9E%88%EB%8A%94-%EA%B5%AC%ED%98%84</guid>
            <pubDate>Sat, 21 May 2022 08:20:38 GMT</pubDate>
            <description><![CDATA[<h2 id="aws-컴퓨트-영역의-탄력성">AWS 컴퓨트 영역의 탄력성</h2>
<h3 id="1-elastic-load-balancing">1. Elastic Load Balancing<img src="https://velog.velcdn.com/images/combi_areum/post/710cb081-25ff-44a4-acd6-95e59e4931b8/image.png" alt=""></h3>
<ul>
<li><p>네트워크 부하 분배기</p>
</li>
<li><p>높은 탄력성과 가용성으로 EC2 인스턴스 앞에서 트래픽을 효율적으로 분산</p>
</li>
<li><p>여러 인스턴스 및 가용영역에서 <strong>트래픽을 자동으로 라우팅</strong>하여 어플리케이션의 <strong>내결함성</strong>을 높임</p>
</li>
<li><p>Auto Scaling과 함께 서비스를 탄력적으로 확장</p>
</li>
</ul>
<blockquote>
<h4 id="-활용-사례">## 활용 사례</h4>
<p>** (1) AWS 인스턴스 상태 감지를 통해 비정상적인 EC2를 제외한 정상적인 서버에 트래픽을 전달함으로써 내결함성을 향상시킴**</p>
</blockquote>
<p>** (2) ELB가 통합인증서 관리 및 SSL 복호화를 제공하므로 중앙에서 인증서 관리를 수행하고 EC2 서비스 트래픽만 수용하여 자원 활용률을 높임**</p>
<blockquote>
</blockquote>
<p>** (3) 외부 서비스용이 아닌 내부 어플리케이션 레이어에 적용하여 구성요소 간의 트래픽 전달을 탄력적으로 수행**</p>
<br>

<h3 id="2-auto-scaling">2. Auto Scaling</h3>
<ul>
<li>EC2용량을 사용자가 정의한 조건에 따라 자동으로 확장/축소하여 어플리케이션 품질을 유지하기 위한 서비스
<img src="https://velog.velcdn.com/images/combi_areum/post/83e18079-229a-47cc-b746-38f197102b49/image.png" alt=""></li>
<li>수요가 급증할 경우, Amazon EC2 인스턴스의 수를 자동으로 증가시키기 때문에 성능을 그대로 유지</li>
<li>수요가 적을 경우, 자동으로 용량을 감소시켜 비용 낭비를 제거</li>
</ul>
<br>

<h4 id="구성요소">구성요소<img src="https://velog.velcdn.com/images/combi_areum/post/9fddeda9-9c14-4ac4-93e6-d5db4537d35a/image.png" alt=""><img src="https://velog.velcdn.com/images/combi_areum/post/49ef4b3a-b802-40ce-95de-48cfc4cb02e8/image.png" alt=""></h4>
<p><br><br></p>
<h2 id="aws-코드-레벨의-탄력성">AWS 코드 레벨의 탄력성</h2>
<h3 id="1-elastic-beantalk">1. Elastic Beantalk</h3>
<ul>
<li><p>Java, .Net, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 
Apache, NginX, Passenger, IIS와 같은 서버에서 개발된</p>
</li>
<li><p><em>웹 애플리케이션 및 서비스를 간편하게 배포하고 확장할 수 있는 서비스*</em></p>
</li>
<li><p>소스 코드만 업로드 하면 EC2 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모니터링까지 자동으로 배포 처리</p>
</li>
</ul>
<br>

<h3 id="2-opsworks">2. OpsWorks</h3>
<ul>
<li>Chef를 사용하여 어플리케이션의 <strong>구성을 자동화</strong>하고
대규모 자원의 구성 정보를 관리 및 운영 해주는 서비스
<img src="https://velog.velcdn.com/images/combi_areum/post/bb61ea13-0564-4ba5-b306-393d7dc095bf/image.png" alt=""></li>
<li>스택, 계층, 앱 같은 개념을 사용하여 애플리케이션을 모델링 및 시각화하고
대시보드를 통해 애플리케이션 레이어 상태 관리</li>
</ul>
<br>

<h3 id="3-codedeploy">3. CodeDeploy</h3>
<ul>
<li>실행 중인 모든 인스턴스에 대한 <strong>코드 배포를 자동화</strong>하여
안전하고 신속하게 어플리케이션을 배포할 수 있는 서비스</li>
</ul>
<ul>
<li>Console 또는 CLI를 통해 손쉽게 배포 상태를 중앙에서 추적할 수 있음</li>
<li>각 어플리케이션 수정 버전이 언제 어떤 인스턴스에 배포되었는지 관리<img src="https://velog.velcdn.com/images/combi_areum/post/904c4aac-2622-4e46-8946-b53b6a3da07f/image.png" alt=""></li>
</ul>
<p><br><br></p>
<h2 id="aws-관리-영역의-탄력성">AWS 관리 영역의 탄력성</h2>
<h3 id="1-cloudwatch">1. CloudWatch<img src="https://velog.velcdn.com/images/combi_areum/post/17b8ade2-7ad9-41e4-abdc-2ad3e068e57c/image.png" alt=""></h3>
<ul>
<li>실시간 모니터링 및 장애 감지 수행</li>
<li>대시보드, API를 통해 관리의 편의성 제공</li>
<li>Auto Scaling 그룹 설정 시,
확장에 대한 임계값 요소에도 모니터링 값이 필수로 적용</li>
</ul>
<br>

<h3 id="2-cloudformation">2. CloudFormation</h3>
<ul>
<li><p>인프라 리소스 묶음을 <strong>순서에 따라 쉽게 생성, 구성, 관리</strong>하는 서비스</p>
</li>
<li><p>리소스 환경을 <strong>명시적으로 코드화</strong>하여 프로비저닝 및 업데이트를 탄력적으로 관리</p>
</li>
</ul>
<br>

<h3 id="학습정리">학습정리<img src="https://velog.velcdn.com/images/combi_areum/post/8f663035-863a-41f8-8848-fe0ad2175184/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=jUwJkkC9Z6A">https://www.youtube.com/watch?v=jUwJkkC9Z6A</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 컴포넌트에 대한 소결합]]></title>
            <link>https://velog.io/@combi_areum/AWS-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%9C-%EC%86%8C%EA%B2%B0%ED%95%A9</link>
            <guid>https://velog.io/@combi_areum/AWS-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%9C-%EC%86%8C%EA%B2%B0%ED%95%A9</guid>
            <pubDate>Sat, 21 May 2022 06:30:05 GMT</pubDate>
            <description><![CDATA[<h2 id="1-aws-스토리지-서비스">1. AWS 스토리지 서비스</h2>
<h3 id="개념">개념<img src="https://velog.velcdn.com/images/combi_areum/post/e2b55a66-c9a6-4fea-bbf9-17ce3c422521/image.png" alt=""></h3>
<br>

<h3 id="서비스-목록">서비스 목록<img src="https://velog.velcdn.com/images/combi_areum/post/4da7318e-c32f-4367-885e-f3322aaeba48/image.png" alt=""></h3>
<br>

<h3 id="소결합에-대한-설계-예시">소결합에 대한 설계 예시<img src="https://velog.velcdn.com/images/combi_areum/post/8461f4d8-ed8c-4c2e-ad27-9951a87f57c6/image.png" alt=""></h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/4e605f82-d573-4492-9e0a-60cdac769d3c/image.png" alt=""></p>
<p><br><br></p>
<h2 id="2-aws-앱-서비스-sqs">2. AWS 앱 서비스 (SQS)</h2>
<h3 id="sqs-개념">SQS 개념<img src="https://velog.velcdn.com/images/combi_areum/post/453f399c-3d90-426a-8982-1fc6292e28ab/image.png" alt=""></h3>
<br>

<h3 id="큐를-통한-소결합된-서비스-설계">큐를 통한 소결합된 서비스 설계<img src="https://velog.velcdn.com/images/combi_areum/post/f8afe7bb-d03f-4c29-967c-079a276df7a8/image.png" alt=""></h3>
<ul>
<li><strong>큐서비스를 통하지 않고</strong> 데이터 전송하기 위해서는 직접 통신 해야 함</li>
<li>controller1,2,3라는 프로세스가 있는데 서로 데이터를 주고받아야 함</li>
<li>1이 데이터를 보낼 때 2도 대기를 하고 있어야 함</li>
<li>2가 받음과 동시에 3도 받아야하기 때문에 3도 대기를 하고있어야 함</li>
<li>리소스 자원이 낭비O, 확장성 떨어짐</li>
</ul>
<ul>
<li><strong>큐서비스를 통한다면</strong> 1은 큐에 넣으면 되고, 2도 큐에 넣으면 된다.</li>
<li>1과 2의 통신 장애가 발생하더라도 실제 데이터는 큐에 있기 때문에 데이터 손실은 없음</li>
</ul>
<br> 

<h3 id="큐-서비스를-통한-컴포넌트의-소결합-특징">큐 서비스를 통한 컴포넌트의 소결합 특징<img src="https://velog.velcdn.com/images/combi_areum/post/919d40b9-2db2-4333-b7af-8d469e2a59f6/image.png" alt=""></h3>
<p><br><br></p>
<h2 id="aws-앱-서비스-api-sns-ses">AWS 앱 서비스 (API, SNS, SES)</h2>
<h3 id="1-api-서비스--api-gateway-">(1) API 서비스 ( API Gateway )<img src="https://velog.velcdn.com/images/combi_areum/post/77a2e8c4-7f03-4b9d-8caa-f9e0819da4ef/image.png" alt=""></h3>
<br>

<h3 id="2-push-서비스--sns-">(2) Push 서비스 ( SNS )<img src="https://velog.velcdn.com/images/combi_areum/post/3671ce98-b74a-47d2-8e84-799183185dac/image.png" alt=""></h3>
<ul>
<li>애플리케이션, 최종 사용자 및 디바이스에서 <strong>즉시 알림을 전송</strong>하고 클라우드 알림을 수신하도록 하는 웹서비스</li>
<li>신뢰성 높은 <strong>푸시 알림 서버 제공</strong>과 <strong>종량제 과금</strong>을 통해 운영과 비용 효율성 제공</li>
</ul>
<br>

<h3 id="3-email-서비스--ses-">(3) Email 서비스 ( SES )<img src="https://velog.velcdn.com/images/combi_areum/post/9ac16263-d91b-4ef5-8d40-813dff2c1934/image.png" alt=""></h3>
<ul>
<li>안정적이고 확장 가능한 대량 Email 발송 서비스</li>
<li>Email 서버 관리, 네트워크 설정, 인터넷 서비스 공급자(ISP)의 요구사항과 같은 <strong>관리성 작업 운영</strong></li>
<li>반송, 전송 성공/실패 시도, 스팸 불만 등을 포함하는 빌트인 피드백 체계를 제공하여 <strong>효율적인 메일 관리 지원</strong></li>
</ul>
<br>

<h3 id="학습정리">학습정리<img src="https://velog.velcdn.com/images/combi_areum/post/ae82dda9-95d4-42fd-9509-7c07545b467e/image.png" alt=""></h3>
<p><br><br></p>
<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=gEia645xnTU">https://www.youtube.com/watch?v=gEia645xnTU</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 장애에 대한 디자인]]></title>
            <link>https://velog.io/@combi_areum/AWS-%EC%9E%A5%EC%95%A0%EC%97%90-%EB%8C%80%ED%95%9C-%EB%94%94%EC%9E%90%EC%9D%B8</link>
            <guid>https://velog.io/@combi_areum/AWS-%EC%9E%A5%EC%95%A0%EC%97%90-%EB%8C%80%ED%95%9C-%EB%94%94%EC%9E%90%EC%9D%B8</guid>
            <pubDate>Tue, 17 May 2022 13:42:02 GMT</pubDate>
            <description><![CDATA[<h2 id="1-aws-지역-가용영역-엣지">1. AWS 지역, 가용영역, 엣지</h2>
<h3 id="지역">지역</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/3c150c40-e19c-4806-9cc6-ffb06f7c9e03/image.png" alt=""></p>
<ul>
<li>AWS는 다양한 클라우드 서비스들을 세계 각지에서 제공하고 있으며 지리적인 위치를 바탕으로 Region(지역)을 구성</li>
<li>10개 이상 지리적인 곳에 서비스가 되고있으며 미국 서부, 동부, 유럽, 남미, 중앙아시아, 극동아시아 및 호주 등에 위치 --&gt; 계속 추가 개설</li>
<li>Region(지역)은 Availablilty Zone(가용영역)이라고 불리는 <strong>물리적으로 격리된 데이터센터들의 집합</strong>이며, 이 가용영역에서 인스턴스와 데이터를 배치/저장/구성할 수 있도록 지원한다.</li>
</ul>
<br>

<h3 id="가용영역">가용영역</h3>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/ba94d955-f23c-425a-8edc-1d2bcd69b5b6/image.png" alt=""></p>
<ul>
<li>가용영역은 하나의 지역 안에 속하여 기본적인 서비스를 구성 가능하도록 IT 자원 등을 제공</li>
<li>사용자가 직접 가용영역을 선택 및 여러 가용영역에 복수개의 인스턴스들을 배치하여 서비스의 가용성을 높임</li>
</ul>
<p><img src="https://velog.velcdn.com/images/combi_areum/post/cbda8905-ddca-4277-a8d6-6b42113acc52/image.png" alt=""></p>
<ul>
<li>높은 가용성을 위해 <strong>하나의 지역에는 다수개의 AZ가 존재</strong>하며 해당 AZ 간은 전용 사설 네트워크를 통해 낮은 네트워크 응답시간을 보장한다.</li>
</ul>
<br>

<h3 id="엣지edge">엣지(Edge)<img src="https://velog.velcdn.com/images/combi_areum/post/495d0399-4281-4183-934c-600632390006/image.png" alt=""></h3>
<ul>
<li>컨텐츠 전송 네트워크(CDN)</li>
<li>웹사이트, API, 동영상 콘텐츠 또는 기타 웹 자산의 전송을 가속화 하는 서비스</li>
<li><strong>HTTP</strong> 또는 <strong>HPPTS</strong> 프로토콜을 사용하여 콘텐츠를 다운로드 하거나 <strong>RTMP</strong> 프로토콜로 콘텐츠를 스트리밍하여 배포할 수 있게 지원 </li>
</ul>
<p><br><br></p>
<h2 id="2-aws-컴퓨트-서비스">2. AWS 컴퓨트 서비스</h2>
<h3 id="aws-컴퓨트-서비스-개념">AWS 컴퓨트 서비스 개념</h3>
<ul>
<li>AWS는 어플리케이션의 요구사항에 맞게 다양한 컴퓨팅 서비스를 제공O
ex) <strong>가상 컴퓨팅 자원(EC2)</strong>을 할당하여 탄력적인 <strong>웹스케일의 컴퓨팅이나 병렬작업 처리</strong>를 가능하게 함</li>
<li>컴퓨팅 자원들은 가용영역 안에서 서비스 됨</li>
<li>시스템의 가장 기본적인 구성자원이 됨</li>
</ul>
<br>

<h3 id="ec2">EC2</h3>
<ul>
<li>AWS에서 가장 기본이 되는 Low-Level 빌딩 블럭에 속하는 컴퓨팅 서비스</li>
<li>원하는 만큼 가상서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리 가능
<img src="https://velog.velcdn.com/images/combi_areum/post/3767325e-b304-491f-ba1e-c9c24f54a3f9/image.png" alt=""></li>
</ul>
<br>

<h3 id="lambda">Lambda</h3>
<ul>
<li>이벤트에 응답하여 코드를 실행</li>
<li>자동으로 기본 컴퓨팅 리소스를 관리하는 서버 없는 컴퓨팅 서비스
<img src="https://velog.velcdn.com/images/combi_areum/post/ebabea42-2e93-44f1-8c48-5c1c58ae5b99/image.png" alt=""></li>
</ul>
<br>

<h3 id="컴퓨트-서비스-장애에-대한-디자인">컴퓨트 서비스 장애에 대한 디자인</h3>
<h4 id="1-확장성">(1) 확장성</h4>
<p>: AZ단위로 확장 가능하며 Autoscaling을 통해 요구되는 트래픽을 수용</p>
<h4 id="2-모니터링-및-운영-관리">(2) 모니터링 및 운영 관리</h4>
<p>: API와 대시보드를 통해 손쉽게 관리</p>
<h4 id="3-이중화">(3) 이중화</h4>
<p>: 여러 AZ에 DB를 구성하여 단일요소의 장애 ㅈ거</p>
<h4 id="4-failover">(4) Failover</h4>
<p>: EIP와 Disk를 별도로 관리 가능하여 정상적인 상태의 서버로 대체</p>
<p><br><br></p>
<h2 id="3-aws-데이터베이스-서비스">3. AWS 데이터베이스 서비스</h2>
<h3 id="개요">개요<img src="https://velog.velcdn.com/images/combi_areum/post/c48a69a3-1196-4e86-90c0-1c31406251c5/image.png" alt=""></h3>
<br>

<h3 id="관계형-데이터베이스">관계형 데이터베이스</h3>
<ul>
<li><strong>키 값에 의해 서로 관련되는 테이블로 구성</strong>하는 가장 일반적인 유형의 DB</li>
<li>각 테이블/관계는 하나의 엔티티 타입(고객이나 제품과 같은)을 대표함</li>
<li><strong>ACID 트랜잭션</strong> 특징을 가짐
<img src="https://velog.velcdn.com/images/combi_areum/post/4fd99e6d-982f-4481-bb9f-77d7a9ef5e4d/image.png" alt=""></li>
</ul>
<br>

<h3 id="비관계형-데이터베이스nosql">비관계형 데이터베이스(NoSQL)</h3>
<ul>
<li>NoSQL은 스키마가 없음</li>
<li>각 테이블에는 각각의 데이터 항목을 고유하게 식별하는 기본키가 있어야 하지만 <strong>키가 아닌 다른 속성인 값에 대해서는 제한이 없다.</strong></li>
<li>DynamoDB는 JSON 문서를 비롯한 정형 또는 반정형 데이터를 관리할 수 있으며, NoSQL은 BASE의 특징을 가짐
<img src="https://velog.velcdn.com/images/combi_areum/post/c093a381-d165-49ce-b13f-955dcbbd093e/image.png" alt=""></li>
</ul>
<br>

<h3 id="데이터베이스-장애에-대한-디자인">데이터베이스 장애에 대한 디자인</h3>
<h4 id="1-확장성-1">(1) 확장성</h4>
<p>: AZ단위로 확장 가능하며 다른AZ로의 두번쨰 구성가능</p>
<h4 id="2-백업-및-운영-관리">(2) 백업 및 운영 관리</h4>
<p>: API와 대시보드를 통해 손쉽게 관리</p>
<h4 id="3-이중화-1">(3) 이중화</h4>
<p>: 여러 AZ에 DB를 구성하여 단일요소의 장애 제거</p>
<h4 id="4-failover-1">(4) Failover</h4>
<p>: 데이터가 소결합으로 저장되어있어 대체 작동 가능</p>
<br>

<h3 id="학습정리">학습정리<img src="https://velog.velcdn.com/images/combi_areum/post/8d3fa9b0-cb13-4364-b68c-3026b8c89614/image.png" alt=""></h3>
<br>
<br>

<h3 id="참고">참고</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=CRigA83fGbg&amp;t=421s">https://www.youtube.com/watch?v=CRigA83fGbg&amp;t=421s</a></li>
</ul>
]]></description>
        </item>
    </channel>
</rss>