<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>s_s2hye.log</title>
        <link>https://velog.io/</link>
        <description>하루를 정리하고 기록합니다.</description>
        <lastBuildDate>Tue, 14 May 2024 01:02:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>s_s2hye.log</title>
            <url>https://velog.velcdn.com/images/s_s2hye/profile/a45eeb40-b771-4075-afca-b6a501880d27/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. s_s2hye.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/s_s2hye" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Spring 설정]]></title>
            <link>https://velog.io/@s_s2hye/Spring-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@s_s2hye/Spring-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 14 May 2024 01:02:07 GMT</pubDate>
            <description><![CDATA[<h1 id="1-스프링-설정">1. 스프링 설정</h1>
<p><code>jdk 버전 확인하기</code></p>
<p>1) 터미널 열고 javac -version 열고 확인 </p>
<ul>
<li>jdk 11 사용 
<img src="https://velog.velcdn.com/images/s_s2hye/post/4aac71f9-d95d-4766-a531-ee8baa600192/image.png" alt=""></li>
</ul>
<h1 id="2-ide-다운로드">2. IDE 다운로드</h1>
<p>1) STS3 다운로드</p>
<ul>
<li><a href="https://spring.io/tools">https://spring.io/tools</a></li>
</ul>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/689ee100-7a7d-4494-ba43-cdc07b3fc1f6/image.png" alt=""></p>
<ul>
<li><p>파란 글씨 클릭 후 아래 링크 클릭 후 다운로드</p>
</li>
<li><p><a href="https://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.21/spring-tool-suite-3.9.18.RELEASE-e4.21.0-win32-x86_64.zip">https://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.21/spring-tool-suite-3.9.18.RELEASE-e4.21.0-win32-x86_64.zip</a></p>
</li>
</ul>
<ul>
<li><p>sts-bundle에서 sts-3.9.18.RELEASE 따로 빼서 사용</p>
</li>
<li><p>sts.ini 파일 메모장에서 편집 </p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/5891c472-9398-4e7e-b3fa-92a75ac1d3c7/image.png" alt=""></p>
<h1 id="lombok-설정">Lombok 설정</h1>
<p>1) lombok-1.18.30.jar 사용 </p>
<p>2) 파일 있는 곳에서 터미널 열고 STS.exe 열결</p>
<p><code>java -jar .\lombok-1.18.30.jar</code></p>
<h1 id="spring-projec-만들기">Spring projec 만들기</h1>
<p>1) STS Template 설정</p>
<ul>
<li><p>아래 tistory에서 zip 파일 다운로드
<a href="https://nirsa.tistory.com/405">template 다운로드 링크</a></p>
</li>
<li><p>아래 폴더에 다운로드 zip 압축 푼 파일 붙여넣기</p>
</li>
</ul>
<p>C:\class\code\spring.metadata.sts\content\org.springframework.templates.mvc-3.2.2</p>
<p>💡template.zip
💡template.xml
💡wizard.json </p>
<p>-&gt; 추가 후 spring MVC Project 시작 ! </p>
<p>-&gt; 기본 패키지 설정 하면 스프링 설정 끝!!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[트리(Tree) 구조]]></title>
            <link>https://velog.io/@s_s2hye/%ED%8A%B8%EB%A6%ACTree-%EA%B5%AC%EC%A1%B0</link>
            <guid>https://velog.io/@s_s2hye/%ED%8A%B8%EB%A6%ACTree-%EA%B5%AC%EC%A1%B0</guid>
            <pubDate>Wed, 27 Mar 2024 01:22:15 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>트리 구조란?</strong>
노드로 이루어진 자료 구조</p>
</blockquote>
<ol>
<li>트리는 하나의 루트 노드를 갖는다</li>
<li>루트 노드는 0개 이상의 자식 노드를 갖고 있다.</li>
<li>그 자식 노드 또한 0개 이상의 자식 노드를 갖고 있고, 이는 반복적으로 정의된다.</li>
</ol>
<hr>
<h3 id="트리-특징">트리 특징</h3>
<ul>
<li>트리는 노드들과 노드들을 연결하는 간선으로 구성되어있다.
: 노드가 N개인 트리는 항상 N-1개의 간선(edge)를 가진다.</li>
<li>트리는 비선형 자료구조로 계층적 관계를 표현</li>
<li>사이클이 없는 하나의 연결 그래프</li>
<li>DAG(Directed Acyclic Graph, 방향성이 있는 비순환 그래프)의 한 종류이다.</li>
<li>트리는 이진 트리, 이진 탐색 트리, 균형트리, 이진힙  등이 있다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/746bd6b7-f52f-4b80-a374-aaae5d9764c2/image.png" alt=""></p>
<hr>
<h3 id="트리-순회">트리 순회</h3>
<blockquote>
<p>트리의 모든 노드들을 방문하는 과정
<strong>전위 순회, 중위 순회, 후위 순회</strong></p>
</blockquote>
<p>📌 선형 자료구조 (연결리스트, 스택, 큐 등)는 순차적으로 요소에 접근하지만 트리 자료구조는 다른 방식을 사용해야함</p>
<h4 id="전위-순회preorder">전위 순회(Preorder)</h4>
<p>: 깊이 우선 순회(DFT, Depth-First Traversal)이라고도 함
<img src="https://velog.velcdn.com/images/s_s2hye/post/f7f10194-8873-4d2d-8f7e-a8aff3863420/image.png" alt=""></p>
<p>A -&gt; B -&gt; D -&gt; E -&gt; C -&gt; F -&gt; G</p>
<br>

<h4 id="중위-순회inorder">중위 순회(Inorder)</h4>
<p>: 왼쪽, 오른쪽 대칭 순서로 순회를 하기 때문에 대칭순회라고도 함
: 이진 탐색트리(BST)에서 오름차순, 내림 차순으로 값을 가져올 때 사용됨.
(내림차순으로 값을 가져오기 위해서는 역순(오른쪽-&gt;root-&gt;왼쪽)으로 중위 순회를 하면 됩니다.)</p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/a5cd1170-e2f1-4aff-9506-9147f97fa559/image.png" alt=""></p>
<p>D -&gt; B -&gt; E -&gt; A -&gt; F -&gt; C -&gt; G</p>
<br>

<h4 id="후위-순회postorder">후위 순회(Postorder)</h4>
<p>: 트리를 삭제하는데 주로 사용됨.
(부모노드를 삭제하기 전에 자식 노드를 삭제하는 순으로 노드를 삭제해야하기 때문)
<img src="https://velog.velcdn.com/images/s_s2hye/post/deddd9b5-f4f2-4b46-b72a-904c5d377cfb/image.png" alt=""></p>
<p>D -&gt; E -&gt; B -&gt; F -&gt; G -&gt; C -&gt; A</p>
<hr>
<p><a href="https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html">참고 블로그</a>
<a href="https://yoongrammer.tistory.com/68">참고 블로그</a>
<a href="https://haenny.tistory.com/345#google_vignette">트리 종류</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[재귀함수]]></title>
            <link>https://velog.io/@s_s2hye/%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@s_s2hye/%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98</guid>
            <pubDate>Tue, 19 Mar 2024 04:59:08 GMT</pubDate>
            <description><![CDATA[<h2 id="재귀함수">재귀함수</h2>
<blockquote>
<p>함수 내부에서 &#39;자기 자신을 호출&#39;하는 함수
무한루프에 빠지지 않게 종료 조건 설정 필수!</p>
</blockquote>
<br>

<p><strong>재귀함수의 장점</strong></p>
<ol>
<li>원하는 결과를 도출하는데 있어 가독성을 높일 수 있음</li>
<li>일부 알고리즘에서 반복문보다 재귀 함수가 더 직관적임</li>
</ol>
<br>

<p><strong>재귀함수 단점</strong></p>
<ol>
<li>함수 호출 때마다 스택이 쌓이는데 스택이 너무 깊어질 경우 <em>스택 오버플로우</em> 발생할 수 있음</li>
</ol>
<p>💡<strong>스택 오버플로우</strong>💡</p>
<pre><code>사실상 컴퓨터의 메모리에는 한계가 있다. 
그러므로 무한 루프에 빠지게 되면 
스택 오버플로우 문제가 발생 하게 된다. 

자바에서 해당 코드를 수행하면 콘솔창에 뜨는
StackOverflowError 을 확인할 수 있을 것이다. </code></pre><br>

<hr>
<h3 id="대표-예제--팩토리얼">대표 예제 == 팩토리얼</h3>
<ul>
<li>팩토리얼
: 자연수 n에 대해서 1부터 n까지의 모든 자연수를 곱한 값을 의미합니다.</li>
</ul>
<pre><code class="language-java">int factorial(int n) { 
    if (n === 1) { 
        return 1; 
    } 
    return n * factorial(n-1);
}</code></pre>
<pre><code>factorial(5) = 5 * factorial(4)
factorial(4) = 4 * factorial(3)
factorial(3) = 3 * factorial(2)
factorial(2) = 2 * factorial(1)
factorial(1) = 1 * factorial(0)
factorial(0) = 1</code></pre><p>위와 같이 함수가 진행되면서  콜스택이 쌓이게 된다.
factorial(5)는 반환값을 기다리고 factorial(4)도 호출되고 반환값을 기다리게 된다. 그리고 n==1이 될때 값을 출력할 수 있게 된다.</p>
<p>하지만 n==1일때라는 조건이 사라지면 무한루프에 빠지게 되면서 앞서 말했던 stack overflow가 발생하게된다.</p>
<hr>
<p><a href="https://adjh54.tistory.com/194">참고 블로그</a>
<a href="https://catsbi.oopy.io/dbcc8c79-4600-4655-b2e2-b76eb7309e60">참고 블로그</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[여러분 저 도전합니다!]]></title>
            <link>https://velog.io/@s_s2hye/%EC%97%AC%EB%9F%AC%EB%B6%84-%EC%A0%80-%EB%8F%84%EC%A0%84%ED%95%A9%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@s_s2hye/%EC%97%AC%EB%9F%AC%EB%B6%84-%EC%A0%80-%EB%8F%84%EC%A0%84%ED%95%A9%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Mon, 18 Mar 2024 22:16:18 GMT</pubDate>
            <description><![CDATA[<p>안녕하세요 ! 여러분</p>
<p>오랜만에 인사드리죠!!</p>
<p>제가 요즘 기상 인증을 안 올리고 있어서 여러분이 궁금해 하실 거 같아
이렇게 글을 남깁니다...</p>
<p>오라클 프로젝트가 끝날 때까지 정말 정신없이 지냈습니다.
일어나는 시간은 동일하거나 늦어야 6시 반이었습니다. </p>
<p>정말 매일 코테 문제 풀이, 스터디, 프로젝트, 주말 알바.. 바쁘게 지냈습니다. </p>
<p>근데 더더더 욕심이 생기더고요... 
정말 일을 벌린 거 같지만 학원에 다니는 친구들과 진짜 웹 사이트를 만들어보기로 했습니다.</p>
<p>스프링 강의도 들어야하고 공부할 내용이 태산이라 걱정 되지만 할 수 있다고 생각하려고 합니다.</p>
<p>아 그리고 저 알바도 그만뒀어요!! 제가 이번 플젝에서 PM을 맡게 되었는데 
제가 주도적으로 회의를 주관하고 정리해야하는데 주말마다 빠질 순 없으니까요.. 당분간 생활이 궁핍해지겠지만..저를 위한 투자라고 생각할려고 합니다!!</p>
<p>여러분 저 기상은 매일하고 있어요...안 일어나면 맡은 일을 다할 수 없어요... 근데 요즘은 강의를 아침에 듣고 학원을 가는게 나아서 (학원 아침에 친구들 오면 집중을 못해서요) 딱 9시 맞춰서 갈려고 합니다! </p>
<p>그래서 학원 인증샷을 못 찍어요!! 제가 주관하는 프로젝트나 스터디 내용이 궁금하시다면 제 노션으로 놀러오세요!! </p>
<p><a href="https://www.notion.so/CodeOnTheWave-2087b4faa83b4aa695f75cf0bebdd8ab">제 노션입니다✨✨</a></p>
<p>앞으로 공부한 내용은 또 정리하러 오겠습니다!! 감사합니다</p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/4e1ff6c5-5906-4cd1-813f-230204f987b4/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[web 개발 설정]]></title>
            <link>https://velog.io/@s_s2hye/web-%EA%B0%9C%EB%B0%9C-%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@s_s2hye/web-%EA%B0%9C%EB%B0%9C-%EC%84%A4%EC%A0%95</guid>
            <pubDate>Tue, 12 Mar 2024 03:08:13 GMT</pubDate>
            <description><![CDATA[<h3 id="1-jdk-11-설치">1. JDK 11 설치</h3>
<pre><code>- 확인
- $ java.exe --version //JRE
- $ javac.exe --version //JDK</code></pre><br>


<h3 id="2-환경-변수-수정">2. 환경 변수 수정</h3>
<pre><code>- JAVA_HOME &gt; C:\class\dev\jdk-21
           &gt; C:\class\dev\jdk-11
- Path &gt; %JAVA_HOME%\bin</code></pre><br>

<h3 id="3-이클립스-ee-확인">3. 이클립스 EE 확인</h3>
<pre><code>- C:\class\dev\eclipse\eclipse.ini</code></pre><p>📌vm 변경하기</p>
<pre><code>C:\class\dev\jdk-11\bin\javaw.exe</code></pre><p><img src="https://velog.velcdn.com/images/s_s2hye/post/20c6a219-67f5-4956-9c53-e0adb4aba16f/image.png" alt=""></p>
<h3 id="4-크롬-설치--기본-브라우저-설정-확인">4. 크롬 설치 &gt; 기본 브라우저 설정 확인</h3>
<pre><code>&gt; 윈도우키 &gt; &quot;기본 앱&quot;</code></pre><p><img src="https://velog.velcdn.com/images/s_s2hye/post/06082df0-c97e-4942-b011-2c77561d1431/image.png" alt=""></p>
<h3 id="5-워크-스페이스">5. 워크 스페이스</h3>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/0b2fbb3c-7a6e-43b0-ba01-c038c3f82dbb/image.png" alt=""></p>
<pre><code>- C:\class\code\client
- Window &gt; Preferences &gt; &quot;encoding&quot;
    - Workspace &gt; &quot;UTF-8&quot;
    - CSS Files &gt; &quot;UTF-8&quot;
    - HTML Files &gt; &quot;UTF-8&quot;
    - JSP Files &gt; &quot;UTF-8&quot;</code></pre><p>📌 전부 UTF-8로 바꾸기</p>
<h3 id="6-tomcat-설치">6. tomcat 설치</h3>
<pre><code>- http://apache.org
- http://tomcat.apache.org
    - 64-bit Windows zip
- C:\class\dev\apache-tomcat-8.5.99</code></pre><p>📌 dev 폴더 만들어서 파일 경로 지정해놓기</p>
<h3 id="7-새-프로젝트">7. 새 프로젝트</h3>
<pre><code>- File &gt; New &gt; Dynamic Web Project
    &gt; &quot;ClientTest&quot;</code></pre><p>📌 이클립스에서 Dynamic Web Project 생성
<img src="https://velog.velcdn.com/images/s_s2hye/post/c3931f2d-bad6-427d-9523-77b5ee44bd28/image.png" alt=""></p>
<h3 id="8-tomcat-서버-연결">8. TOMCAT 서버 연결</h3>
<p><strong>1. Server Runtime Environment</strong>
<img src="https://velog.velcdn.com/images/s_s2hye/post/26e5e973-006a-4572-8d83-9f5064f8a80c/image.png" alt=""></p>
<p><strong>2. severs에서 TOMCAT VERSION 지정</strong></p>
<ul>
<li><p><img src="https://velog.velcdn.com/images/s_s2hye/post/cb777001-d4c7-4519-9208-e1451d04f59a/image.png" alt=""></p>
</li>
<li><p><img src="https://velog.velcdn.com/images/s_s2hye/post/cb1be8a8-a703-40b4-8da4-a5574e68ae26/image.png" alt=""></p>
</li>
</ul>
<h3 id="9-실행하기">9. 실행하기</h3>
<p>Ctrl + f11 누르고 finish
<img src="https://velog.velcdn.com/images/s_s2hye/post/b3fe581f-cb19-49ac-84e1-2b3336f6846b/image.png" alt=""></p>
<p>📌 콘솔화면 확인하면 &gt; tomcat &gt; bin &gt; start.bat 파일을 실행 해준 것을 알 수 있음 
<img src="https://velog.velcdn.com/images/s_s2hye/post/d67a68c5-214f-4f97-a5f5-7922c2785cae/image.png" alt=""></p>
<p><strong><em>실행화면</em></strong>
<img src="https://velog.velcdn.com/images/s_s2hye/post/0e2a7110-897c-41cd-9c3b-a31a52079299/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 25]]></title>
            <link>https://velog.io/@s_s2hye/Day-25</link>
            <guid>https://velog.io/@s_s2hye/Day-25</guid>
            <pubDate>Thu, 07 Mar 2024 22:11:58 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.3.05일입니다!!</strong></p>
<p>안녕하세요!! </p>
<p>여러분!! 저 어제는 코드 파업하고 하고 싶은거 했습니다...</p>
<p>오랜만에 친구랑 스크린 골프 치러 갔어요ㅎㅎㅎ</p>
<p>제가 원래 진짜 골프 중독자라 작년에는 거의 매일 갔는데 거의 올해 들어서 2번째인거 같아요</p>
<p>오랜만에 치니까 너무 잼있더라구요.. 비거리도 늘었어요 ㅋㅋㅋㅋ</p>
<p>오늘부터는 어제 놀았으니 열심히 또 달려나가야용!! ㅎㅎ</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/3796a2ac-63e1-4d69-871d-48182c75cc46/image.gif" width="300px" height="200px">


<p>어제 저희 팀은 열심히 코드를 짜고 </p>
<p>쿼리까지 날려보면서 테이블 설계를 검증했습니다!</p>
<p>오늘 어떤 기능을 보여줄지 함께 정하고 ppt를 만들 예정입니당 ㅎㅎㅎ</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/74b3cf1b-3cbe-4759-9d2f-18309d7f866f/image.jpg" width="300px" height="200px">


]]></description>
        </item>
        <item>
            <title><![CDATA[Day 24]]></title>
            <link>https://velog.io/@s_s2hye/Day-24</link>
            <guid>https://velog.io/@s_s2hye/Day-24</guid>
            <pubDate>Wed, 06 Mar 2024 22:01:31 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.3.05일입니다!!</strong></p>
<p>안녕하세요!! 날씨가 풀린 3월 8일입니다!!</p>
<p>날씨가 저번주 주말만 해도 엄청 추웠는데 이제는 다시 따뜻해졌어용 ㅎㅎㅎ</p>
<p>저희 이제 곧 오라클 프로젝트 끝납니다...</p>
<p>사다리 타기로 제가 또 발표를 맡게 됐습니다...ㅎㅎㅎ</p>
<p>이제 아침에 정보처리기사 실기 시험 준비하려구용,,,</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/421f04fc-1d73-4ac2-ba92-a8d316dcd945/image.jpg" width="300px" height="200px">



<p>4월 말에 보는 시험 꼭 붙어야 하는데 걱정 되네용 ㅋㅋㅋ 공부 열심히 하고 오겠습니다...
토익스피킹도 따야하는데...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 23]]></title>
            <link>https://velog.io/@s_s2hye/Day-23</link>
            <guid>https://velog.io/@s_s2hye/Day-23</guid>
            <pubDate>Tue, 05 Mar 2024 22:15:53 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.3.05일입니다!!</strong></p>
<p>여러분...뭔가 이상하죠?? 3월 4일이 없죠??</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/f7f66ba9-ea2e-4cdb-9184-d61733072d3f/image.gif" width="300px" height="200px">

<p>제가 어제 가족들이랑 오랜만에 모여서 고스톱을 치다가 그만... 늦게 잠들어버려서
6시에 겨우 일어나 학원 부랴부랴 왔어요...8시쯤 도착했습니다</p>
<p>그래서 4일 인증샷이 업서요...8시에 입실한 사진은 있는데...</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/1fe16b7f-6107-4532-a8ce-e615a1d130f1/image.jpg" width="300px" height="200px">

<p>그래서 오늘은 조금 빨리 올려고 했습니당...ㅎㅎ </p>
<p>오늘은 오라클 프로젝트 다 합치고 검증 쿼리 날려보면서 확인 할 거 같습니다!!1</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 22]]></title>
            <link>https://velog.io/@s_s2hye/Day-22</link>
            <guid>https://velog.io/@s_s2hye/Day-22</guid>
            <pubDate>Sun, 03 Mar 2024 22:08:28 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.3.04일입니다!!</strong></p>
<p>3월 첫 주를 다들 잘 지내고 오셨나요?!?</p>
<p>저는 연휴동안 일룸에서 1000만원 정도 가구를 판매 했습니다..ㅎㅎ</p>
<p>제 고객님들이 제가 상담을 잘 해줬다고 칭찬의 말씀을 해주실때 정말 보람을 느낍니다 </p>
<p>힘들긴 하지만 꽤 좋아요 ㅎㅎㅎ</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/d492063e-5285-4d10-8727-cab33a417268/image.jpg" width="300px" height="200px">

<p>오늘은 정말 오라클 프로젝트 코드를 짤 수 있어야 하는데 테이블이 제대로 설계 되었는지
자꾸 뭔가 불안해서 제자리 걸음을 하고 있네용 ...ㅎㅎ</p>
<p>오늘은 꼭 코드까지 해보겠습니다!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 21]]></title>
            <link>https://velog.io/@s_s2hye/Day-21</link>
            <guid>https://velog.io/@s_s2hye/Day-21</guid>
            <pubDate>Wed, 28 Feb 2024 22:10:20 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.29일입니다!!</strong></p>
<p>여러분!! 내일 벌써 3월이에요 ㅋㅋㅋㅋ</p>
<p>벌써 2024의 4분의 1만큼 달려왓네용 !!</p>
<p>시간이 어떻게 가는 지도 모르겟어용...그치만 제가 조금씩 성장하고 있다고 생각합니다</p>
<p>내일은 또 아침에 뭐할지 솔직히 좀 설레요 ㅋㅋㅋㅋ전 한시도 가만히 못 있나봐요</p>
<p>어제는 저희 오라클 프로젝트 논리 erd까지 작성하고 있습니당!!</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/92729b61-f95a-406b-a0e5-2cf31aea2796/image.jpg" width="300px" height="200px">


<p>오늘은 물리 erd까지 작성하고 싶네용 ... </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Lombok 설치 방법]]></title>
            <link>https://velog.io/@s_s2hye/Lombok-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@s_s2hye/Lombok-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Wed, 28 Feb 2024 01:45:29 GMT</pubDate>
            <description><![CDATA[<h2 id="lombok">Lombok</h2>
<blockquote>
<p>Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여줌</p>
</blockquote>
<p>💡 이클립스에서 lombok.jar import해서 사용</p>
<h3 id="-설치-방법">** 설치 방법**</h3>
<h4 id="1-구글에-mavenrepository-검색">1. 구글에 MavenRepository 검색</h4>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/f39ee5e8-a37b-4104-b1dd-95793ae54bae/image.png" alt=""></p>
<br>

<p><strong>2. 검색창에 lombok 검색 후 Projeck Lombok 클릭</strong></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/a93cddb9-667c-48c6-bcf9-831c4b6c0e86/image.png" alt=""></p>
<br>

<p><strong>3. 가장 최근 버전 클릭 - 1.18.30</strong></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/8a3856c0-fd50-456c-9475-2690a6c5e4e7/image.png" alt=""></p>
<br>

<p><strong>4. jar 파일 다운로드</strong></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/34dd5282-f053-48ae-b12e-57e356eb3618/image.png" alt=""></p>
<p>📌 jar 파일 옮기기 </p>
<blockquote>
<p>프로젝트 다운로드 관리하는 폴더로 옮기기 &gt; dev (제꺼)</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/520a88e9-4303-42f8-b799-774bea410647/image.png" alt=""></p>
<p>📌** 실행중인 이클립스 다 닫기!!!**</p>
<br>

<p>*<em>5. 옮긴 폴더에서 터미널 열어서 아래와 같이 입력 *</em></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/7c154737-0b6e-4c15-9eda-90e0c93ed3d5/image.png" alt=""></p>
<br>

<p><strong>6. 이클립스 경로 지정</strong></p>
<p><code>Specify location</code></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/cf6f5bca-c42e-4e4b-933b-e9952a6a7af8/image.png" alt=""></p>
<p><strong>eclipse.exe 설치 파일이 있는 경로로 지정해주기!!</strong></p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/7351cfd2-2241-43c3-adda-39b2535a60b2/image.png" alt=""></p>
<p><code>Install/Update</code>  버튼 클릭 하면 끝!!</p>
<br>

<p><strong>7. 설치 되었는 지 확인 하는 방법 !</strong></p>
<p>1) eclipse 설치 폴더에 lombok.jar 파일이 복사 됨</p>
<p>2) eclipse.ini 메모장으로 열면 경로가 지정 되어 있음</p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/9555a49b-cb9f-4ad5-bcf1-7f32ff4ab362/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 20]]></title>
            <link>https://velog.io/@s_s2hye/Day-20</link>
            <guid>https://velog.io/@s_s2hye/Day-20</guid>
            <pubDate>Tue, 27 Feb 2024 23:16:11 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.28일입니다!!</strong></p>
<p>이 챌린지를 시작한지 벌써 20일이네용!!!</p>
<p>아침에 일어나는게 습관이 되고 시간을 온전히 통제하면서 하루를 살아갈 수 있다는게 
저한텐 큰 동기부여가 돼요!!</p>
<p>그 아침 시간에 하고 싶은 걸 하니까 더 행복해용!! </p>
<p>함께 이 글을 봐주시는 여러분께도 항상 감사합니당 </p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/c0a36296-c6ab-4bb7-acbb-e013127d08f3/image.jpg" width="300px" height="200px">

<p>오늘은 사진이 다르죵??</p>
<p>어제 저희 본가에 친구가 놀러왔는데 친구는 출근 때문에 8시에 나가거든용!
근데 제가 7시에 나가버리면 친구가 부모님이랑 단 둘이 있다가 나가야해서
제가 8시에 함께 나와줬습니당!! </p>
<p>그래도 5시에 일어나서 똑같이 2시간 정도 공부하고 1시간 정도 씻고 밥 먹고 왔습니당!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 19]]></title>
            <link>https://velog.io/@s_s2hye/Day-19</link>
            <guid>https://velog.io/@s_s2hye/Day-19</guid>
            <pubDate>Mon, 26 Feb 2024 22:08:08 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.27일입니다!!</strong></p>
<p>여러분...제가 일요일 오후 1시 출근인데 7시에 일어나서 팀플 작업하고 알바 8시간 하고
새벽 3시까지 팀플 작업을 하고 5시에 일어나서 학원에 왔거든요...</p>
<p>정말 힘들긴 했지만 커피 한잔 마시고 수업을 듣고 있는데 갑자기 머리가 핑하더니..속이 메스껍고 열이 나기 시작하더라고요...어제 자바랑 오라클 연동법 배운다고 해서 꼭 듣고 싶었는데 정말 강의 듣다가 토할 거 같았어요</p>
<p>그래서 1시까지 수업 듣고 조퇴 후 병원 다녀 왔답니다..</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/5d397738-76cc-425c-8971-90cc0349ecdc/image.gif" width="300px" height="200px">

<p>병원에서 담주 정도에 위 내시경 해보자고 권유하시더라고요ㅜㅜ 역류성 식도염걸려서 고생하다가 나았는데 최근에 다시 목에 이물감이 많이 생겨서 그런가봐요</p>
<p>아무튼!! 오늘도 빠르게 학원 도착</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/b9637433-1e3a-4316-a079-1c89b6b387b2/image.jpg" width="300px" height="200px">

<p>다들 건강 챙겨요!! 자기 컨디션 조절하는 것도 중요하죠!! </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 18]]></title>
            <link>https://velog.io/@s_s2hye/Day-18</link>
            <guid>https://velog.io/@s_s2hye/Day-18</guid>
            <pubDate>Sun, 25 Feb 2024 22:10:09 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.26일입니다!!</strong></p>
<p>저번주 금요일날 선생님이 오라클로 할 수 있는 팀 과제를 주셨는데</p>
<p>월요일까지 제출이라...주말내내 했어야 하는데 전 아르바이트를 하다보니 </p>
<p>시간을 정말 쪼개고 잠을 줄여서 했어요 </p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/8474714e-4ad6-4d44-bf51-5b0bf9dd9b05/image.gif" width="200px" height="200px">



<p>하지만 팀원들 모두 잘 따라주고 저를 오히려 더 도와줘서 정말 큰 힘이 됐어요</p>
<p>오늘은 어제 만든 데이터들을 검증 해볼려구요!! 꼭 오라클 테이블 수정하는 일이 없길 바랍니다😂</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/a3405479-3cfb-4545-bfe8-28b4a2a7738d/image.jpg" width="200px" height="200px">


]]></description>
        </item>
        <item>
            <title><![CDATA[Day 17]]></title>
            <link>https://velog.io/@s_s2hye/Day-17</link>
            <guid>https://velog.io/@s_s2hye/Day-17</guid>
            <pubDate>Thu, 22 Feb 2024 22:13:07 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.23일입니다!!</strong></p>
<p>안녕하세용~!!! </p>
<p>어제 눈이 와서 그런가 오늘은 날씨가 꽤 쌀쌀하더라구용!! </p>
<p>벌써 일주일이 지나고 금요일이네용...!!!</p>
<p>시간이 왜이리 빨리 가는 지.. 곧 3월이에요 ㅋㅋ</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/982d867e-21c6-4e63-a55b-cdbe296b5dbe/image.jpg" width="200px" height="200px">

<p>이제 곧 오라클 끝나고 다음주 화요일 정도부터 플젝 시작 한다고 하네요..</p>
<p>근데 여러분 그거 아세요..? 어제 진짜 열심히 필기한 내용이 제가 파일을 잘못 덮어써서 날아갔답니다 ㅎㅎㅎ 
<img src="https://velog.velcdn.com/images/s_s2hye/post/6a6f2e9f-2507-4d0f-916a-177c21b1aedc/image.gif" alt=""></p>
<p>그치만 뭐...제 잘못인걸용.. 그래도 친구가 자기 필기본 준다고 해서 너무 고맙고 다행이죠 !!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[plsql.sql]]></title>
            <link>https://velog.io/@s_s2hye/plsql.sql</link>
            <guid>https://velog.io/@s_s2hye/plsql.sql</guid>
            <pubDate>Wed, 21 Feb 2024 23:17:21 GMT</pubDate>
            <description><![CDATA[<h3 id="plsql">PL/SQL</h3>
<p>: Oracle&#39;s Procedural Language extension to SQL
: 기존의 ANSI-SQL + 절차 지향 언어 기능 추가(변수, 제어 흐름, 객체 정의 등)</p>
<br>

<h3 id="프로시저-procedure">프로시저, Procedure</h3>
<p>: 메서드, 함수 등.. (같은 말)
: 순서가 있는 명령어들의 집합
: 모든 PL/SQL 구문은 프로시저내에서만 작성/동작이 가능하다.
: 프로시저 영역 &lt;-&gt; ANSI-SQL 영역</p>
<p><strong>1. 익명 프로시저</strong>
: 1회용 코드 작성</p>
<p><strong>2. 실명 프로시저</strong>
: 재사용
: 저장
: 데이터베이스 객체</p>
<br>

<h3 id="plsql-프로시저-구조">PL/SQL 프로시저 구조</h3>
<h4 id="1-4개의-블럭으로-구성">1. 4개의 블럭으로 구성</h4>
<ul>
<li>DECLARE</li>
<li>BEGIN</li>
<li>EXCEPTION</li>
<li>END</li>
</ul>
<h4 id="2-declare">2. DECLARE</h4>
<p>: 선언부
: 프로시저내에서 사용할 변수, 객체 등을 선언하는 영역
: 생략 가능</p>
<h4 id="3-begin--end">3. BEGIN ~ END</h4>
<p>: 구현부
: 구현된 코드를 가지는 영역(메서드의 body 영역)
: 생략 불가능
: 구현된 코드? &gt; ANSI-SQL + PL/SQL(연산, 제어 등)</p>
<h4 id="4-exception">4. EXCEPTION</h4>
<p>: 예외처리부
: catch 역할
: 3번 &gt; try 역할
: 생략 가능 </p>
<pre><code>        [DECLARE
            변수 선언;
            객체 선언;]
        BEGIN
            업무 코드;
            업무 코드;
            업무 코드;
        [EXCEPTION
            예외처리 코드;]
        END;
        /</code></pre><br>

<h3 id="ansi-sql-vs-plsql">ANSI-SQL vs PL/SQL</h3>
<p><strong>1. PL/SQL 자료형</strong>
: ANSI-SQL과 동일</p>
<p><strong>2. 변수 선언하기</strong>
<code>변수명 자료형(길이) [not null] [default 값];</code></p>
<p><strong>3. 대입 연산자</strong></p>
<ul>
<li>ANSI-SQL
<code>update table set column = &#39;값&#39;</code></li>
<li>PL/SQL
<code>변수 := 값;</code></li>
</ul>
<br>

<ul>
<li>실습 코드</li>
</ul>
<pre><code class="language-sql">set serveroutput on; -- 현재 세션에서만 유효 (로그아웃 하고 다시 로그인 해야함)
---set serveroutput off; -- 끄기

-- 익명 프로시저 선언하기
begin
    dbms_output.put_line(&#39;Hello World!&#39;);
end;
/
</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/477b16fd-2cdc-4585-b7f5-47f1cf7c45f2/image.png" alt=""></p>
<pre><code class="language-sql">declare
--- 변수명 자료형(길이) [not null] [default 값];
    num number;
    name varchar2(30);
    today date;
begin
   num := 10;
   dbms_output.put_line(num);

   name := &#39;홍길동&#39;;
   dbms_output.put_line(name);

   today := sysdate;
   dbms_output.put_line(today);


end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/d2a8248b-7354-461a-a493-126f2671c042/image.png" alt=""></p>
<p>📌 not null 제약 조건 주의 사항</p>
<pre><code class="language-sql">declare 
    num1 number;
    num2 number;
    num3 number := 30;
    num4 number default 40;
    num5 number not null := 50; --declare 블럭에서 초기화를 해야 한다.

begin
    dbms_output.put_line(&#39;num1&#39; || num1); --null, 초기화 안해도 에러 안남
    num2 := 20;
    dbms_output.put_line(num2);
    dbms_output.put_line(num3);
    dbms_output.put_line(num4);

    -- num5 := 50; 에러
    -- num5 := null; 에러
    dbms_output.put_line(num5); --ORA-06550: 줄 6, 열10:PLS-00218: NOT NULL로 정의된 변수는 초기치를 할당하여야 합니다
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/c5677e5c-5232-423f-9c5f-000135bb4795/image.png" alt=""></p>
<p>📌 변수의 용도</p>
<blockquote>
<p>select 결과를 담는 용도 &gt; 비중 높음
select into 절(PL/SQL)</p>
</blockquote>
<p><strong>into 사용 시</strong></p>
<ol>
<li>컬럼의 개수와 변수의 개수 일치</li>
<li>컬럼의 순서와 변수의 순서 일치</li>
<li>컬럼과 변수의 자료형 일치
=&gt; 자료형 일치를 위해 타입 참조</li>
</ol>
<br>

<p><strong>타입 참조</strong></p>
<p><em>%type</em></p>
<p>: 사용하는 테이블의 특정 컬럼의 스키마를 알아내서 변수에 적용
: 복사되는 정보</p>
<pre><code>a. 자료형
b. 길이
(제약 사항은 복사가 안됨)</code></pre><p>%rowtype
: 행 전체 참조(여러개의 컬럼을 참조)</p>
<pre><code class="language-sql">declare
    vname tblInsa.name%type;
    vbuseo tblInsa.buseo%type;
    vjikwi tblInsa.jikwi%type;
    vbasicpay tblInsa.basicpay%type;

begin
    select 
        name, buseo, jikwi, basicpay 
            into vname, vbuseo, vjikwi, vbasicpay
    from tblInsa where num = 1001;

    dbms_output.put_line(vname);
    dbms_output.put_line(vbuseo);
    dbms_output.put_line(vjikwi);
    dbms_output.put_line(vbasicpay);
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/3f2b7a4d-a791-4ea8-842a-1e1dbbaf2e0e/image.png" alt=""></p>
<hr>
<h3 id="plsql-제어문">PL/SQL 제어문</h3>
<p>*<em>1. 조건문 *</em>
<code>if문</code></p>
<pre><code> if
 elsif
 else
 end if;</code></pre><p><code>case 문</code>
: ANSI-SQL의 case와 동일
: 자바 : switch문, 다중 if문</p>
<p><strong>2. 반복문</strong></p>
<p><code>loop</code>
: 단순 반복</p>
<p><code>for loop</code>
: loop 기반
: 횟수 반복 (자바 for) </p>
<p><code>while loop</code>
: loop 기반
: 조건 반복 (자바 while)  </p>
<br>

<ul>
<li>실습 코드<pre><code class="language-sql">declare
  vnum number := 10;
begin
  if vnum &gt; 0 then
      dbms_output.put_line(&#39;양수&#39;);
  end if;
end;
/</code></pre>
<img src="https://velog.velcdn.com/images/s_s2hye/post/c10fb469-7772-415d-9f98-f4bfe84bf142/image.png" alt=""></li>
</ul>
<pre><code class="language-sql">declare
    vnum number := -10;
begin
    if vnum &gt; 0 then
        dbms_output.put_line(&#39;양수&#39;);
    elsif vnum &lt; 0 then -- else if, elsif, elseif 등..
        dbms_output.put_line(&#39;음수&#39;);
    else 
        dbms_output.put_line(&#39;0&#39;);
    end if;
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/b577c5bc-31b4-4121-9735-890bb3f9256f/image.png" alt=""></p>
<p>📌 case 문</p>
<pre><code class="language-sql">declare
    vcontinent tblCountry.continent%type;
    vresult varchar2(30);
begin

    select continent into vcontinent from tblCountry where name = &#39;대한민국&#39;;

    case 
        when vcontinent = &#39;AS&#39; then vresult := &#39;아시아&#39;;
        when vcontinent = &#39;EU&#39; then vresult := &#39;유럽&#39;;
        when vcontinent = &#39;AF&#39; then vresult := &#39;아프리카&#39;;
        else vresult := &#39;기타&#39;;
    end case;
    dbms_output.put_line(vresult);

        case vcontinent
        when &#39;AS&#39; then vresult := &#39;아시아&#39;;
        when &#39;EU&#39; then vresult := &#39;유럽&#39;;
        when &#39;AF&#39; then vresult := &#39;아프리카&#39;;
        else vresult := &#39;기타&#39;;
    end case;
    dbms_output.put_line(vresult);
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/e8e69408-ff4c-47ce-97ea-5215a4db7dcd/image.png" alt=""></p>
<p>📌 반복문 </p>
<pre><code class="language-sql">-- exit (루프탈출) &gt; 안쓰면 무한 루프
declare
    vnum number := 1;
begin
    loop
        dbms_output.put_line(vnum);
        vnum := vnum + 1;

        exit when vnum &gt; 10; 

    end loop;
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/da5c2e8a-78f1-42cb-8b94-c7e23ecb7720/image.png" alt=""></p>
<pre><code class="language-sql">create table tblGugudan (
    dan number not null,
    num number not null,
    result number not null
);

alter table gugudan
    add constraint tblgugudan_dan_num_pk primary key(dan,num); -- alter로 제약사항 만들기 


-- 구구단 만들기 

begin
    for dan in 2..9 loop
        for num in 1..9 loop
            insert into tblGugudan (dan, num, result)
                values (dan, num, dan * num);
        end loop;
    end loop;
end;
/

select * from tblGugudan;</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/3f45f535-6e83-468a-9470-3460555ddf5d/image.png" alt=""></p>
<pre><code class="language-sql">declare 
    vnum number := 1;
begin 
    while vnum &lt;= 10 loop
        dbms_output.put_line(vnum);
        vnum := vnum +1;
    end loop;
end;
/</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/ecda29cd-94dd-4ce2-8978-ca27fa4a05ae/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[modeling.sql]]></title>
            <link>https://velog.io/@s_s2hye/modeling.sql</link>
            <guid>https://velog.io/@s_s2hye/modeling.sql</guid>
            <pubDate>Wed, 21 Feb 2024 22:53:12 GMT</pubDate>
            <description><![CDATA[<h3 id="데이터베이스-설계">데이터베이스 설계</h3>
<p><strong>1. 요구사항 수집 및 분석 
2. 개념 데이터 모델링 
3. 논리 데이터 모델링
4. 물리 데이터 모델링 
4.5 정규화
5. 데이터베이스 구축(구현)</strong></p>
<hr>
<h3 id="데이터-모델링">데이터 모델링</h3>
<p>: 요구 분석 기반 &gt; 수집한 데이터 &gt; 분석 &gt; 저장 구조 &gt; 도식화 &gt; 산출물(ERD)
: 데이터를 저장하기 위한 데이터 구조를 설계 하는 작업
: ERD 만드는 작업
: 개념 &gt; 간단한 표현의 설계도 &gt; 테이블 이름 + 속성 + 관계 정도만 기술 
: 논리 &gt; 관계형 데이터베이스 기본 설정 &gt; 속성(자료형,길이) + 도메인 정의 + 키...
: 물리 &gt; 물리적 식별자 + 실제 DBMS에 맞는 세부 설정 </p>
<hr>
<h3 id="erd-entity-relationship-diagram">ERD, Entity Relationship Diagram</h3>
<p>: 엔터티(테이블) 간의 관계를 표현한 그림
: 데이터베이스 모델링 기법 중 하나
: 손, 오피스, 전문툴(eXERD, ER-Win, 온라인 툴...)</p>
<h3 id="erd-구성-요소">ERD 구성 요소</h3>
<h4 id="🏷️-entity-엔터티">🏷️ Entity, 엔터티</h4>
<p>: 다른 Entity와 분류(구분)될 수 있고, 다른 Entity에 대해 정해진 관계를 맺을 수 있는 데이터 단위
: 릴레이션 = 엔터티 = 레코드 / 자바의 인스턴스 = 객체 &gt; 집합(=테이블,/클래스)</p>
<p><code>a. 학생 정보 관리</code></p>
<ul>
<li>정보 수집: 아이디, 학생명, 나이, 주소, 연락처 등...</li>
<li>학생(아이디, 학생명, 나이, 주소, 연락처) =&gt; 릴레이션 = 엔터티 / 아이디 = 속성</li>
</ul>
<p><code>b. 강의실 정보 관리</code></p>
<ul>
<li>정보 수집 : 강의실명, 크기, 인원 수, 용도 등..</li>
<li>강의실(강의실명, 크기, 인원 수, 용도)</li>
</ul>
<br>

<h4 id="🏷️-attribute-속성">🏷️ Attribute, 속성</h4>
<p>: 엔터티를 구성하는 요소
: 속성의 집합 = 엔터티
: 컬럼</p>
<br>

<h4 id="🏷️-relationship-관계">🏷️ Relationship, 관계</h4>
<p>: 하나의 엔터티안에 있는 속성이 다른 엔터티의 속성과 연관 
: 엔터티와 엔터티 간의 관계</p>
<br>

<h4 id="🏷️-relation">🏷️ Relation</h4>
<p>: 하나의 엔터티 내의 속성간의 관계
: 학생(아이디, 학생명, 나이...)</p>
<br>

<h3 id="erd-그리는-방법">ERD 그리는 방법</h3>
<p>: 피터첸 or IE</p>
<ol>
<li>Entity<ul>
<li>사각형</li>
<li>이름을 작성</li>
<li>ERD내의 엔터티명은 중복 불가능 </li>
</ul>
</li>
</ol>
<ol start="2">
<li>Attribute<ul>
<li>원</li>
<li>엔터티와 선으로 연결 (소속 표시)</li>
</ul>
</li>
</ol>
<ol start="3">
<li>Relationship<ul>
<li>엔터티와 엔터티의 관계</li>
<li>마름모로 표현 </li>
</ul>
</li>
</ol>
<ol start="4">
<li><p>관계 차수 </p>
<ul>
<li>몇개의 엔터티와 몇개의 엔터티가 관계를 맺는지 표현</li>
<li>IE(새발) 표기법 
```    </li>
</ul>
<ol>
<li>1:1 </li>
<li>1:N</li>
<li>N:N<pre><code></code></pre></li>
</ol>
<hr>
<h4 id="예시">예시</h4>
<pre><code>[비디오 대여점] &gt; 모델링 산출물</code></pre></li>
<li><p>ERD 작성(개념 모델링)</p>
</li>
<li><p>논리 다이어그램 </p>
</li>
<li><p>물리 다이어그램</p>
<pre><code></code></pre></li>
</ol>
<p>*<em>1. ERD 작성(개념 모델링) *</em></p>
<p> <img src="https://velog.velcdn.com/images/s_s2hye/post/96f0ab2a-b70a-4687-afb5-91dada7e497a/image.png" alt=""></p>
<p>*<em>2. 논리 다이어그램 *</em>
: 개발자가 보기 편하게 </p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/3a88b079-74f5-4fb8-b061-1ed7e52d7557/image.png" alt=""></p>
<p><strong>3. 물리 다이어그램</strong>
: 실제 개발 용</p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/22aa7c01-966a-45ed-8fc9-7f8f50c16019/image.png" alt=""></p>
<hr>
<h3 id="정규화-normalization">정규화, Normalization</h3>
<p>: 자료의 손실이나, 불필요한 정보를 없애고, 데이터의 일관성을 유지하며, 
        데이터 종속성을 최소화해주기 위해 ERD를 수정하는 작업 
: 우리가 만든 ERD &gt; 비정형 상태, 비정규화 상태 &gt; 정규화 상태
: 제 1 정규화 &gt; 제 2 정규화 &gt; 제 3 정규화 등...</p>
<br>

<p><code>제 1 정규화, 1NF</code>
: 모든 컬럼(속성)은 원자값을 가진다.
: 여러개로 분리 가능한 값을 1개의 컬럼안에 넣지 말 것!
: 1개 테이블 &gt; (정규화) &gt; 2개 이상의 테이블 </p>
<p> <img src="https://velog.velcdn.com/images/s_s2hye/post/827d43da-1fa1-4231-8b78-0f9f9eb46286/image.png" alt=""></p>
<br>

<p><code>제 2 정규화, 2NF</code>
: 기본 키가 아닌 모든 컬럼은 완전 함수 종속이어야 한다.
: 부분 함수 종속 발견!! &gt; 부분 함수 종속 제거!!
: 복합키를 가지는 테이블에서 발견된다.
: 1개 테이블 &gt; (정규화) &gt; 2개 이상의 테이블 </p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/a744ec4e-2596-4989-99be-378a7a6ba3a2/image.png" alt=""></p>
<br>

<p><code>제 3 정규화, 3NF</code>
: 기본 키가 아닌 모든 컬럼은 완전 함수 종속이어야 한다.
: 이행 함수 종속 발견 !! &gt; 이행 함수 종속 제거!!
: 1개 테이블 &gt; (정규화) &gt; 2개 이상의 테이블 </p>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/c5d0ab84-7f88-4778-aa09-fd5a5d057585/image.png" alt=""></p>
<br>


<h4 id="관계형-데이터베이스-시스템이-지향하는-데이터베이스의-상태">관계형 데이터베이스 시스템이 지향하는 데이터베이스의 상태</h4>
<ol>
<li>최대한 null을 가지지 않는다.</li>
<li>중복값을 가지지 않는다.</li>
<li>원자값을 가진다.</li>
</ol>
<br>

<h4 id="정규화-목적">정규화 목적</h4>
<ol>
<li>null 최대한 제거</li>
<li>중복값 제거</li>
<li>복합값 제거</li>
<li>자료의 삽입 이상, 갱신 이상, 삭제 이상 현재 제거</li>
</ol>
<br>

<h4 id="이상-현상">이상 현상</h4>
<p><strong>1. 삽입 이상</strong>
:  특정 테이블에 데이터를 삽입 할 때 원하지 않는 데이터까지 같이 넣어야 하는 상황</p>
<p><strong>2. 갱신 이상</strong>
: 동일한 데이터가 2개 이상의 테이블에 동시에 저장되는 현상</p>
<p><strong>3. 삭제 이상</strong>
: 특정 테이블에서 데이터를 삭제할 때 원하지 않는 데이터까지 같이 삭제해야 하는 현상</p>
<br>

<h4 id="함수-종속">함수 종속</h4>
<p>: 하나의 테이블내에서 컬럼끼리의 관계 표현
: 정규화는 &#39;부분 함수 종속&#39;이나 &#39;이행 함수 종속&#39;을 모두 없애고,
        모든 컬럼의 관계를 _<strong>&#39;완전 함수 종속&#39;</strong>_으로 만드는 작업이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[hierarchical.sql]]></title>
            <link>https://velog.io/@s_s2hye/hierarchical.sql</link>
            <guid>https://velog.io/@s_s2hye/hierarchical.sql</guid>
            <pubDate>Wed, 21 Feb 2024 22:29:08 GMT</pubDate>
            <description><![CDATA[<h3 id="계층형-쿼리-hierarchical-query">계층형 쿼리, Hierarchical query</h3>
<p>: 오라클 전용 쿼리
: 레코드의 관계가 서로간의 상하 수직 구조인 경우에 사용한다.
: 자기 참조를 하는 테이블에서 사용(셀프 조인)
: 자바(= 트리 구조)</p>
<p><strong>1. start with절 + connect by 절</strong>
<strong>2. 계층형 쿼리에서만 사용 가능한 의사 컬럼들</strong> 
<code>a. prior</code>
: 자신과 연관된 부모 레코드를 참조하는 객체
<code>b. level</code>
: 세대수 or depth -- 루트로부터 얼마나 하위 요소인지 표현</p>
<br>

<p>** 자기 참조 테이블(계층형 쿼리 사용 ) 유무**</p>
<ul>
<li>depth 고정 &gt; 사용 x or o</li>
<li>depth 미정 &gt; 사용 o</li>
</ul>
<br>

<pre><code>    tblSelf
    홍사장
        - 김부장
            - 박과정
                - 최대리  
                    - 정사원

        - 이부장</code></pre><pre><code>컴퓨터
        - 본체
            - 메인보드
            - 그래픽카드
            - 랜카드
            - 메모리
            - CPU
        - 모니터
            - 보호필름
            - 모니터암
        - 프린터
            - A4용지
            - 잉크카트리지

    카테고리
        - 컴퓨터용품
            - 하드웨어
            - 소프트웨어
            - 소모품
        - 운동용품
            - 테니스
            - 골프
            - 달리기
        - 먹거리
            - 밀키트
            - 베이커리
            - 도시락</code></pre><br>

<ul>
<li>실습 코드</li>
</ul>
<pre><code class="language-sql">select 
    seq as 번호,
    lpad(&#39; &#39;,(level -1) * 5) || name as 부품명, --루트는 들여쓰기 할 필요없어서 -1 
    prior name as 부모부품명,
    level 
from tblComputer
    start with seq = 1 -- 루트 레코드 지정 
        connect by prior seq = pseq -- 현재 레코드와 부모 레코드를 연결하는 조건 
            order siblings by name asc;</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/ee987273-d9c7-42c4-9c97-a5365daa02ab/image.png" alt=""></p>
<pre><code class="language-sql">-- connect_by_root : 최상위 레코드 참조
select 
    seq as 번호,
    lpad(&#39; &#39;,(level -1) * 5) || name as 부품명, --루트는 들여쓰기 할 필요없어서 -1 
    prior name as 부모부품명,
    level,
    connect_by_root name,
    connect_by_isleaf, -- 자식 유무 
    sys_connect_by_path(name,&#39;→&#39;) as 경로--전체 경로를 리턴 시켜줄때
from tblComputer
    start with pseq is null -- 루트 레코드 지정 
        connect by prior seq = pseq -- 현재 레코드와 부모 레코드를 연결하는 조건 
            order siblings by name asc;</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/1a9918c2-9225-4fc2-a527-6352bc126566/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Day 16]]></title>
            <link>https://velog.io/@s_s2hye/Day-16</link>
            <guid>https://velog.io/@s_s2hye/Day-16</guid>
            <pubDate>Wed, 21 Feb 2024 22:25:25 GMT</pubDate>
            <description><![CDATA[<p><strong>🙋‍♀️ 안녕하세요<del>~</del> 여러분 🙋‍♀️</strong></p>
<p><strong>2024.2.22일입니다!!</strong></p>
<p>여러분 다시 12월로 돌아간거 같아요 ㅋㅋㅋ 제가 얼마전에 날씨가 너무 따뜻해서 봄이 온거 같다고 했는데</p>
<p>오늘 아침에 집을 나오자 마자 깜짝 놀랐어요 </p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/1e4a3535-c770-47cf-9380-5d0994a473ad/image.jpg" width="500px" height="200px">

<p>진짜 다시 크리스마스에 온 거 같았어용 !!</p>
<p>온 세상이 하얗게 물들었더라고요!! ❄️❄️❄️☃️☃️☃️☃️</p>
<p>학원 오늘 길이 너무나도 이쁘고 사람을 들 뜨게 만들더라고용 !!</p>
<img src="https://velog.velcdn.com/images/s_s2hye/post/39829590-152c-4dc0-a589-c4a87c120558/image.jpg" width="300px" height="300px">


<p>아 이쁘긴 하지만 길이 정말정말 스케이트장만큼 미끄러웠어요...</p>
<p>여러분도 오늘 밖에 나갈 일 있으면 살금살금 걸으세용 ... 위험할 거 같아용 </p>
<p>아무튼 오늘도 화이팅 해봅시다!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[with.sql & null.sql]]></title>
            <link>https://velog.io/@s_s2hye/with.sql-null.sql</link>
            <guid>https://velog.io/@s_s2hye/with.sql-null.sql</guid>
            <pubDate>Tue, 20 Feb 2024 23:57:35 GMT</pubDate>
            <description><![CDATA[<pre><code>    WITH &lt;Sub Query&gt;   1.
    SELECT 컬럼리스트  5. 컬럼 지정 (보고 싶은 컬럼만 가져오기) &gt; Projection
    FROM 테이블        2. 테이블 지정
    WHERE 검색조건     3. 조건 지정 (보고 싶은 행만 가져오기) &gt; Selection
    GROUP BY 그룹기준  4. 그룹을 나눈다. 
    ORDER BY 정렬기준; 6. 정렬해서 
</code></pre><h3 id="with절">with절</h3>
<p>: 인라인뷰(from 절 서브쿼리)에 이름을 붙이는 기술</p>
<ul>
<li>with절 &gt; 임시 뷰 이름</li>
<li>view &gt; 영구 뷰 이름</li>
</ul>
<pre><code class="language-sql">    with 테이블명 as &lt;서브쿼리&gt;
    select 문;</code></pre>
<br>

<ul>
<li>실습 코드<pre><code class="language-sql">select * from (select name, age, couple from tblMen where weight &lt; 90 ) a
  inner join (select name, age, couple from tblWomen where weight &gt; 60) b
      on a.couple = b.name;

</code></pre>
</li>
</ul>
<p>with a as (select name, age, couple from tblMen where weight &lt; 90),
     b as (select name, age, couple from tblWomen where weight &gt; 60)
select * from a
    inner join b
       on a.couple = b.name;</p>
<pre><code>![](https://velog.velcdn.com/images/s_s2hye/post/d0146b9b-18b8-45b1-b85e-66205871d3f1/image.png)

---

&lt;br&gt;

### null 함수
: null을 치환하는 함수

**1. nvl (컬럼, 값)** -&gt; 주로 사용
**2. nvl2(컬럼, 값, 값)**

&lt;br&gt;

- 실습 코드
```sql
select 
    name,
    case
        when population is not null then population
        when population is null then 0
    end
from tblCountry;

-- 위에와 같은 결과셋을 보여줌         
select name, nvl(population,0) from tblCountry;</code></pre><p><img src="https://velog.velcdn.com/images/s_s2hye/post/07a50f63-a9ff-4967-a4f5-44421e0f644b/image.png" alt=""></p>
<pre><code class="language-sql">-- 시퀀스가 없을 경우 =&gt; 시퀀스와 똑같이 만드는 서브쿼리 (하지만, 맨 처음에는 null이기 때문에 값을 주기위해 nvl 함수 사용)
insert into tblItem (seq,name,color) 
    values ((select nvl(max(seq),0) + 1 from tblItem),&#39;마우스&#39;,&#39;white&#39;);

select * from tblItem;</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/ff0508ce-9c57-459d-b0e1-f562ab7a6c62/image.png" alt=""></p>
<pre><code class="language-sql">select 
    name, nvl2(population,1,2)
from tblCountry;</code></pre>
<p><img src="https://velog.velcdn.com/images/s_s2hye/post/3959f21b-355f-43de-a317-fb47fefd5b59/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>