<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>rian_k.log</title>
        <link>https://velog.io/</link>
        <description>CRUSH ON</description>
        <lastBuildDate>Fri, 17 Mar 2023 07:54:21 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>rian_k.log</title>
            <url>https://velog.velcdn.com/images/rian_k/profile/2de515e1-73ae-4862-a187-7ad976222718/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. rian_k.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/rian_k" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[SfunWeb 프로젝트 만들기]]></title>
            <link>https://velog.io/@rian_k/SfunWeb-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@rian_k/SfunWeb-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Fri, 17 Mar 2023 07:54:21 GMT</pubDate>
            <description><![CDATA[<p>&lt;File - new - Spring Legacy Project&gt;
  프로젝트 이름 : SfunWeb
  템플릿 : Spring MVC Project
Next
패키지 com.itwillbs.SFunWeb
Finish</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/a6507e52-d66b-4a3a-a9a0-305cfc87c77f/image.png" alt=""></p>
<p>  <strong>1) 프로젝트 자바버전 변경</strong>
프로젝트 - 오른쪽버튼 - Properties
Java Compiler - JDK Compliance - 11
Project Facets - Web Module 3.1
                   - Java  11
Apply - Close
  <img src="https://velog.velcdn.com/images/rian_k/post/a4edc4b5-9ba5-4c4d-a4f2-af6e656ec9b5/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/rian_k/post/284cbf25-2de5-4e06-b82c-6a397dc53ecc/image.png" alt=""></p>
<p>  <strong>2) 스프링 버전 변경</strong>
pom.xml</p>
<pre><code>&lt;java-version&gt;11&lt;/java-version&gt;
&lt;org.springframework-version&gt;4.3.8.RELEASE&lt;/org.springframework-version&gt;</code></pre><p>  <img src="https://velog.velcdn.com/images/rian_k/post/160c57a8-b56e-402c-aabc-8c9897734936/image.png" alt=""></p>
<pre><code>  &lt;!--         JDBC 추가프로그램 설치 --&gt;
&lt;!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;mysql&lt;/groupId&gt;
    &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
    &lt;version&gt;8.0.32&lt;/version&gt;
&lt;/dependency&gt;

      &lt;!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework&lt;/groupId&gt;
    &lt;artifactId&gt;spring-jdbc&lt;/artifactId&gt;
    &lt;version&gt;${org.springframework-version}&lt;/version&gt;
&lt;/dependency&gt;

&lt;!-- mybatis 검색 --&gt;
&lt;!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
    &lt;artifactId&gt;mybatis&lt;/artifactId&gt;
    &lt;version&gt;3.4.1&lt;/version&gt;
&lt;/dependency&gt;

&lt;!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
    &lt;artifactId&gt;mybatis-spring&lt;/artifactId&gt;
    &lt;version&gt;1.3.1&lt;/version&gt;
&lt;/dependency&gt;</code></pre><p>  <img src="https://velog.velcdn.com/images/rian_k/post/1103b879-7b98-4746-8f57-40f35c3e5a93/image.png" alt=""></p>
<p>  <strong>3) web.xml</strong>
서블릿 지정
post방식일때 request UTF-8 한글처리</p>
<pre><code>&lt;filter&gt;
&lt;filter-name&gt;encoding&lt;/filter-name&gt;
&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;
&lt;init-param&gt;
&lt;param-name&gt;encoding&lt;/param-name&gt;
&lt;param-value&gt;UTF-8&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
&lt;filter-name&gt;encoding&lt;/filter-name&gt;
&lt;url-pattern&gt;/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;</code></pre><p>  <img src="https://velog.velcdn.com/images/rian_k/post/5b69f520-355b-48f1-8611-65c26c1e07c8/image.png" alt=""></p>
<p><strong>4) /WEB-INF/spring/appServlet/servlet-context.xml</strong></p>
<pre><code>&lt;!--     @ 자동으로 스캔 @Controller @RequestMapping  
    @Inject @Service @Repository
     들어있는 폴더 등록 --&gt;
&lt;context:component-scan base-package=&quot;com.itwillbs.SfunWeb&quot; /&gt;
&lt;context:component-scan base-package=&quot;com.itwillbs.controller&quot; /&gt;
&lt;context:component-scan base-package=&quot;com.itwillbs.service&quot; /&gt;
&lt;context:component-scan base-package=&quot;com.itwillbs.dao&quot; /&gt; </code></pre><p>  <img src="https://velog.velcdn.com/images/rian_k/post/d3c7b033-4fa5-411b-b91b-9149bd9f34d1/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/rian_k/post/1f0abdc1-76fd-431f-a3ce-f82a9cf6b38d/image.png" alt=""></p>
<hr>
<p> <img src="https://velog.velcdn.com/images/rian_k/post/c6bad9d4-b9e9-42c8-b408-85c1c20a2816/image.png" alt="">
  <img src="https://velog.velcdn.com/images/rian_k/post/bc0d02f0-97bd-4ada-8dfb-6ac52c998fdb/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 스프링 프레임워크(2023-03-03)]]></title>
            <link>https://velog.io/@rian_k/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC2023-03-03</link>
            <guid>https://velog.io/@rian_k/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC2023-03-03</guid>
            <pubDate>Fri, 03 Mar 2023 08:35:14 GMT</pubDate>
            <description><![CDATA[<ul>
<li>가상주소 <a href="http://localhost:8080/myweb/">http://localhost:8080/myweb/</a>   주소매핑 -&gt;  home.jsp </li>
<li>가상주소 <a href="http://localhost:8080/myweb/insert.me">http://localhost:8080/myweb/insert.me</a>   주소매핑 -&gt;  insert.jsp </li>
<li>가상주소 <a href="http://localhost:8080/myweb/write.me">http://localhost:8080/myweb/write.me</a>   주소매핑 -&gt;  write.jsp 
<img src="https://velog.velcdn.com/images/rian_k/post/9db9a13f-dd9b-4724-8ee6-4a0bc85c269a/image.png" alt=""></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ oracle 추가문법]]></title>
            <link>https://velog.io/@rian_k/oracle-%EC%B6%94%EA%B0%80%EB%AC%B8%EB%B2%95</link>
            <guid>https://velog.io/@rian_k/oracle-%EC%B6%94%EA%B0%80%EB%AC%B8%EB%B2%95</guid>
            <pubDate>Thu, 02 Mar 2023 04:48:44 GMT</pubDate>
            <description><![CDATA[<h3 id="📌-리터럴-문자열에서-작은-따옴표를-문자로-인식하는-방법">📌 &lt;리터럴 문자열에서 작은 따옴표(&#39;)를 문자로 인식하는 방법&gt;</h3>
<ol>
<li>쿼트 연산자</li>
</ol>
<ul>
<li>작성방법 : q&#39;[----]&#39;</li>
<li>예제
select department_name || q&#39;[Dept&#39;s Mgr ID :]&#39; || manager_id <pre><code> as &quot;Department and Manager&quot;</code></pre>from departments;</li>
</ul>
<ol start="2">
<li>작은 따옴표를 두번 나란히 작성하는 방법</li>
</ol>
<ul>
<li>작성방법 : &#39;&#39; -&gt; 작은따옴표(&#39;)라고 하는 문자로 인식됨!</li>
<li>예제
select department_name || &#39;Dept&#39;&#39;s Mgr ID :&#39; || manager_id <pre><code> as &quot;Department and Manager&quot;</code></pre>from departments;</li>
</ul>
<h3 id="📌-like-비교연산자-추가-문법">📌 &lt;Like 비교연산자 추가 문법&gt;</h3>
<employees>
employee_id | last_name | job_id
---------------------------------
100                King            AD_VP
101                Kochhar         SA_REP
102                Abel            SAF_MAN
103                Bell            SA_CLERK

<p>[예제] employees 테이블에서 사원들의 employee_id, last_name, 
      job_id를 출력하되 job_id가 SA_로 시작되는 업무 담당자만
         출력하는 구문을 작성하시오.
[잘못된 답안]
select employee_id, last_name, job_id
from employees
where job_id like &#39;SA_%&#39;;
=&gt; job_id가 SA로 시작되면서 3글자 이상인 업무 담당자를 출력하시오.
=&gt; 결과 : 101, 102, 103번 모두 출력됨!</p>
<p>[정답]
select employee_id, last_name, job_id
from employees
where job_id like &#39;SA_%&#39; escape &#39;&#39;;
=&gt; job_id가 SA_로 시작되는 업무 담당자를 출력하시오.
=&gt; 결과 : 101, 103번 출력됨!</p>
<h3 id="📌-연산자-우선순위-규칙">📌 &lt;연산자 우선순위 규칙&gt;</h3>
<p>&lt;연산자&gt;</p>
<ul>
<li>산술연산자 : *, /, +, -</li>
<li>연결연산자 : ||</li>
<li>비교연산자 : =, &gt;, &gt;=, &lt;, &lt;=, &lt;&gt;(!=)<pre><code>        between, in, like, is null</code></pre></li>
<li>논리연산자 : not, and, or</li>
</ul>
<p>&lt;연산자 우선순위 규칙&gt;</p>
<ol>
<li><p>산술연산자 : *, /, +, -</p>
</li>
<li><p>연결연산자 : ||</p>
</li>
<li><p>비교연산자 : =, &gt;, &gt;=, &lt;, &lt;= </p>
</li>
<li><p>비교연산자 : in, like, is null</p>
</li>
<li><p>비교연산자 : between</p>
</li>
<li><p>비교연산자 : &lt;&gt;(!=)</p>
</li>
<li><p>논리연산자 : not</p>
</li>
<li><p>논리연산자 : and</p>
</li>
<li><p>논리연산자 : or</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/996f3c2a-0082-47d8-a0d6-1ce8fd45d621/image.png" alt="">
우선순위 때문에 결과가 달라진다!
<img src="https://velog.velcdn.com/images/rian_k/post/65a240a2-acd8-4a62-a0fc-ac62aa455a07/image.png" alt=""></p>
</li>
</ol>
<h3 id="📌-치환변수">📌 &lt;치환변수&gt;</h3>
<p>  • 치환 변수를 사용하여 다음을 수행할 수 있습니다.
– 단일 앰퍼샌드(&amp;) 및 이중 앰퍼샌드(&amp;&amp;) 치환을 사용하여 값을
임시로 저장합니다.
– 날짜 값 및 문자 값에 대해 작은따옴표를 사용합니다.</p>
<p>• 치환 변수를 사용하여 다음을 보완할 수 있습니다.
– WHERE 조건
– ORDER BY 절
– 열 표현식
– 테이블 이름
– 전체 SELECT문</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/2231c07b-81b4-4d8c-a1ba-041f791a0deb/image.png" alt=""></p>
<p>  [결과]
  <img src="https://velog.velcdn.com/images/rian_k/post/035f12fc-e6aa-41e3-a5ef-e897bd955f6b/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 스프링 프레임워크(2023-02-23)]]></title>
            <link>https://velog.io/@rian_k/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC2023-02-23</link>
            <guid>https://velog.io/@rian_k/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC2023-02-23</guid>
            <pubDate>Thu, 23 Feb 2023 03:51:17 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-mvc-스프링-프레임워크">📌 MVC 스프링 프레임워크</h2>
<blockquote>
<ul>
<li>자바의 프레임워크</li>
</ul>
</blockquote>
<ul>
<li>전자정부 표준 프레임워크</li>
<li>장점 : 자동화, 반복 코드 줄어듬, 프로그램 틀, 수정 최소화</li>
<li>스프링 버전 =&gt; .jar =&gt; 3, 4, 5(우리는 4사용)</li>
<li>스프링 툴 버전 =&gt; 3(스프링 프레임워크), 4(스프링 부트)</li>
</ul>
<p><strong>&lt;스프링 사용하는 방법 두 가지&gt;</strong></p>
<ol>
<li><p>이클립스 + 스프링 툴 설치</p>
</li>
<li><p>스프링 툴 다운
=&gt; spring.io 홈페이지 접속
<img src="https://velog.velcdn.com/images/rian_k/post/d367badb-3583-4d51-bba9-320dda72b0d0/image.png" alt="">
=&gt;spring.io - Projects - Spring Tool  4</p>
</li>
</ol>
<p><img src="https://velog.velcdn.com/images/rian_k/post/75aaec30-eaae-49eb-9b94-a0f8ade8c5bf/image.png" alt="">
=&gt; <a href="https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3">https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3</a></p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/4d7f22c9-6b3e-4233-9c83-5d6598f62683/image.png" alt="">
=&gt; Spring Tool Suite 3.9.18</p>
<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>
<p>c: 압출풀기 =&gt; 실행 바탕화면 바로가기=&gt; sts1
C:\sts-bundle\sts-3.9.18.RELEASE</p>
<p>d: workspace_sts1 폴더
<img src="https://velog.velcdn.com/images/rian_k/post/dec6ca52-7eac-4aae-83cf-052ce813fec5/image.png" alt="">
=&gt; 바탕화면 sts1실행 후 workspace 설정</p>
<p>환경설정 =&gt; 한글설정 UTF-8
2. 서버 기본 설정
3. 프로젝트 만들기</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/e680aae2-d86d-42cc-a895-54df0bd94658/image.png" alt="">
=&gt; File - New - Spring Legacy Project</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/40e06b77-6385-4a89-a998-d243b536cbf4/image.png" alt="">
=&gt; 프로젝트 이름 : SpringProject
&#160;&#160;&#160;&#160;&#160;&#160;템플릿 선택 : Spring MVC Project</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/7837fa1a-aaf6-4a68-90b3-3db314e7358e/image.png" alt="">
=&gt; 패키지 com.itwillbs.myweb</p>
<ul>
<li><p><strong>가상주소 <a href="http://localhost:8080/myweb/">http://localhost:8080/myweb/</a></strong>
=&gt; http : 사용자 요청하면 서버에 가서 html을 받아서 전달해주는 통신규약(통신방식) 
=&gt; 웹서버 요청
=&gt; 웹서버(아파치) : 요청한 페이지( / ) 찾기
=&gt; / 가상주소 (주소매핑)
=&gt; 실제 페이지를 찾아서 jsp =&gt; html 변경(처리) 작업 필요
=&gt; 웹 애플리케이션 서버 (WAS, 톰캣, 웹 컨테이너, 컨테이너, 처리서버)  전달
=&gt; 1) id=kim,.. 요청정보를 저장하는 저장공간 만듬
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;자바 내장객체(HttpServletRequest) -&gt; 객체생성(request) 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&gt; 기억장소를 할당  -&gt; 요청정보를 저장
=&gt; 처리결과인 응답정보를 저장하는 저장공간 만듬
&#160;&#160;&#160;&#160;&#160;&#160;&#160;자바 내장객체(HttpServletResponse) -&gt; 객체생성(response) 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&gt; 기억장소를 할당  -&gt; 응답정보(pro1.jsp -&gt; html로 변경)를 저장
=&gt; 2) web.xml (설정정보, 처리담당자 지정) 무조건 참조
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&gt; 가상주소를 실제페이지 연결하는 주소매핑하는 처리담당자 지정
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&gt; 가상주소( / )에 따라 스프링 주소매핑 담당자 지정
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; /WEB-INF/spring/appServlet/servlet-context.xml
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; /WEB-INF/spring/root-context.xml
=&gt; 3) 처리담당자(자바 내장객체 HttpServlet =&gt; MemberController)가 개발자가 입력한 명령을 처리하는 담당자
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;처리결과인 응답정보를 response에 저장</p>
<p> =&gt; 처리결과(response)를 웹서버에 전달
 =&gt; 웹서버는 http에 전달
 =&gt; http가 pro1.jsp -&gt; html로 변경된 응답정보를 받아서 되돌아옴
 =&gt; 사용자 웹브라우저에 전달해서 요청한 화면보임</p>
</li>
</ul>
<hr>
<ol>
<li>스프링 MVC</li>
<li>객체생성 방법 =&gt; DI(Dependency Injection 의존관계 주입)</li>
<li>디비연결</li>
<li>Mybatis 이용해서 디비연결</li>
<li>파일업로드, Ajax</li>
<li>AOP 관점지향프로그램</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 순위 함수(2023-02-16)]]></title>
            <link>https://velog.io/@rian_k/%EC%88%9C%EC%9C%84-%ED%95%A8%EC%88%982023-02-16</link>
            <guid>https://velog.io/@rian_k/%EC%88%9C%EC%9C%84-%ED%95%A8%EC%88%982023-02-16</guid>
            <pubDate>Thu, 16 Feb 2023 09:51:59 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-순위-함수-종류">📌 순위 함수 종류</h2>
<blockquote>
<ul>
<li>rank( ) : 순위를 구하기 위한 함수</li>
</ul>
</blockquote>
<ul>
<li><p>row_number( ) : 순위를 구하되 동일 값에 대해서도 고유한 순위를 부여함.
[문법]
<img src="https://velog.velcdn.com/images/rian_k/post/84295c63-8bf7-4796-8868-4c68327e5f08/image.png" alt=""></p>
</li>
<li><p>예제1
<img src="https://velog.velcdn.com/images/rian_k/post/fcb43e27-4d6c-4b88-a195-c85847eed770/image.png" alt=""></p>
</li>
<li><blockquote>
</blockquote>
<p><img src="https://velog.velcdn.com/images/rian_k/post/48632624-e63d-4bd6-a93e-3d87842dddf6/image.png" alt=""></p>
</li>
<li><p>예제2
<img src="https://velog.velcdn.com/images/rian_k/post/1c9eae7c-4ec7-49e7-a4e2-9b8b3045c808/image.png" alt=""></p>
</li>
<li><blockquote>
</blockquote>
<p><img src="https://velog.velcdn.com/images/rian_k/post/fcae04c0-e5ca-4b12-8be6-77aab1152e36/image.png" alt=""></p>
</li>
<li><p>예제3
<img src="https://velog.velcdn.com/images/rian_k/post/5cf3f518-4d14-4f50-a5df-bfcb711035fb/image.png" alt=""></p>
</li>
<li><blockquote>
</blockquote>
<p><img src="https://velog.velcdn.com/images/rian_k/post/9f4b27d6-1173-4b92-bac0-79c4b9c26cbd/image.png" alt=""></p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ Top-N 분석(2023-02-14)]]></title>
            <link>https://velog.io/@rian_k/Top-N-%EB%B6%84%EC%84%9D2023-02-14</link>
            <guid>https://velog.io/@rian_k/Top-N-%EB%B6%84%EC%84%9D2023-02-14</guid>
            <pubDate>Tue, 14 Feb 2023 07:10:37 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-top_n-분석이란">📌 Top_N 분석이란?</h2>
<blockquote>
<p>Top-N 질의는 column에서 가장 큰 n개의 값 또는 가장 작은 n개의 값을 요청함. 예를 들어 ‘가장 적게 팔린 제품 10가지는?’, 또는 ‘회사의 최상위 소득자 3명은?’ 등...
<img src="https://velog.velcdn.com/images/rian_k/post/9af98ff3-3300-4172-ad9c-1cd1eea59f2a/image.png" alt=""></p>
</blockquote>
<h3 id="top-n-분석-예제">&lt;Top-N 분석 예제&gt;</h3>
<p><strong>: EMP 테이블에서 최상위 소득자 3명의 이름과 급여를 표시하시오.</strong></p>
<p>-&gt; SQL 구문
<img src="https://velog.velcdn.com/images/rian_k/post/2acdc74b-4b52-4845-9c0c-0c4b316be63e/image.png" alt="">
-&gt; 결과
<img src="https://velog.velcdn.com/images/rian_k/post/63c113d0-44a2-47d8-84a8-68f7c2c9ef0c/image.png" alt=""></p>
<p><strong>: EMP 테이블에서 최하위 소득자 3명의 이름과 급여를 표시하시오.</strong></p>
<p>-&gt; SQL 구문
<img src="https://velog.velcdn.com/images/rian_k/post/763f40ee-b4a4-43f4-bdbd-88cc71c638d3/image.png" alt="">
-&gt; 결과
<img src="https://velog.velcdn.com/images/rian_k/post/6336d1a6-124d-4baa-9737-fb5045ae606f/image.png" alt=""></p>
<p><strong>: EMP 테이블에서 가장 최근에 입사한 사원 10명의 rownum(순위), employee_id, last_name, hire_date를 출력하시오.</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/b167aaac-29ba-4d7e-b335-034780ce8cdf/image.png" alt=""></p>
<p><strong>: EMP 테이블에서 가장 예전에 입사한 사원 10명의 rownum(순위), employee_id, last_name, hire_date를 출력하시오.</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/a339c514-fece-4033-8c96-35c962b7a2ad/image.png" alt=""></p>
<hr>
<h3 id="📌-quiz--top-n-분석">📌 &lt;Quiz – Top N 분석&gt;</h3>
<p><strong>-&gt; EMPLOYEES 테이블과 DEPARTMENTS 테이블을 사용하여 최상위 소득자 순으로 
10위에서 20위에 해당하는 사원들의 정보를 출력하시오.</strong>,</p>
<p>힌트) 1. emp -&gt; 1<del>20위
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2. 10</del>20위
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3. dept 조인</p>
<ol>
<li>1~20위
<img src="https://velog.velcdn.com/images/rian_k/post/52582328-42bb-45d7-998a-0ba5ddbc770d/image.png" alt=""></li>
</ol>
<p><strong>&lt;✍️결과 구문&amp;출력&gt;</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/9fb54aa3-35d6-4302-b49e-70d9b9eac774/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 데이터 충돌(2023-02-08)]]></title>
            <link>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%A9%EB%8F%8C2023-02-08</link>
            <guid>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%A9%EB%8F%8C2023-02-08</guid>
            <pubDate>Wed, 08 Feb 2023 03:29:51 GMT</pubDate>
            <description><![CDATA[<h2 id="data-충돌--session-충돌--lock-충돌">[Data 충돌 = Session 충돌 = Lock 충돌]</h2>
<p><strong>1. Lock</strong>
- 변경 작업 발생시 DBMS는 관련 행 단위로 Lock을 구현하고 작업을 진행함.
- Lock 트랜잭션 진행 중에는 유지되고, 트랜잭션 종료 시 해제됨.
- Lock이 구현된 곳에 작업이 요청되는 경우 큐라고 하는 대기공간에서 기다림</p>
<p><strong>2. Lock 충돌</strong>
- Waiting이 길어지는 경우 Lock 충돌로 감지하고 해결되야함.</p>
<p><strong>3. Lock 충돌의 원인</strong>
- 트랜잭션을 길게 진행하는 경우
- 커밋되지 않은 작업이 남아있는 경우</p>
<p><strong>4. Lock 충돌 감지 방법(모니터링 방법)</strong>
- v$session : DB에 접속된 세션 정보와 Lock 충돌 정보를 모니터일할 수 있는 DB세션</p>
<blockquote>
<p>SQL&gt; select username, sid, serial#, blocking_session
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;from v$session
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;where username is not null;</p>
</blockquote>
<p><strong>5. Session Kill 시키기 =&gt; DBA권한 필요(sys사용자)</strong></p>
<blockquote>
<p>SQL&gt; alter systeml kill session &#39;SID, Serial#&#39; immediate;</p>
</blockquote>
<p><strong>6. Lock 충돌의 특이 케이스 : Deadlock(교착상태)</strong>
- 두 세션이 각자의 자원을 선점하 상태에서 상대방의 자원을 서로 요청하는 경우
- Deadlock을 특수한 경우이므로 DBMS에 의해서 자동 감지되고 해결됨.
- 한쪽 세션으로 Deadlock 오류 메세지가 자동으로 발생되면서 해결됨.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 사용자 관리를 위한 Data Dictionary 사용(2023-02-06)]]></title>
            <link>https://velog.io/@rian_k/%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B4%80%EB%A6%AC%EB%A5%BC-%EC%9C%84%ED%95%9C-Data-Dictionary-%EC%82%AC%EC%9A%A92023-02-06</link>
            <guid>https://velog.io/@rian_k/%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B4%80%EB%A6%AC%EB%A5%BC-%EC%9C%84%ED%95%9C-Data-Dictionary-%EC%82%AC%EC%9A%A92023-02-06</guid>
            <pubDate>Mon, 06 Feb 2023 02:05:46 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>[사용자 관리를 위한 주요 Data Dictionary Views]</strong></p>
</blockquote>
<ol>
<li>USER_USERS : 자신의 계정에 대한 정보를 보여줌</li>
<li>USER_SYS_PRIVS : 사용자에게 부여된 시스템 권한을 보여줌</li>
<li>USER_TAB_PRIVS : 사용자에게 부여된 object 권한을 보여줌</li>
<li>USER_COL_PRIVS : 사용자에게 부여된 column 레벨의 오브젝트 권한에 대한 정보를 보여줌</li>
<li>ROLE_SYS_PRIVS : 롤에게 부여된 시스템 권한</li>
<li>USER_ROLE_PRIVS : 사용자에게 부여된 롤에 대한 정보를 보여줌</li>
</ol>
<ul>
<li><strong>USER_USERS</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/acd20b63-6569-4b85-8a58-3740a53a7253/image.png" alt=""></li>
</ul>
<ul>
<li><p><strong>USER_SYS_PRIVS</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/06c04c2c-5d8d-415c-b5c8-4fc0712d1c01/image.png" alt=""></p>
</li>
<li><p><strong>USER_TAB_PRIVS</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/92f1751c-d31c-4bf7-8c2d-2c1176056a00/image.png" alt=""></p>
</li>
<li><p><strong>USER_COL_PRIVS</strong></p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/rian_k/post/2860785e-c8da-4d32-b25f-1e48ef3eb357/image.png" alt=""></p>
<ul>
<li><strong>ROLE_SYS_PRIVS</strong>
&lt;role(롤)&gt;
- 권한들의 모음(묶음)</li>
</ul>
<ol>
<li><p>role(롤) 생성
SQL&gt; create role admin;</p>
</li>
<li><p>role(롤)에 권한 부여
SQL&gt; grant create session, create table
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;to admin;</p>
</li>
<li><p>role(롤)을 User에게 부여
SQL&gt; grant admin
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;to demo;
<img src="https://velog.velcdn.com/images/rian_k/post/fd121afb-225a-4a58-9ddc-89968f9917ed/image.png" alt=""></p>
</li>
</ol>
<ul>
<li><strong>USER_ROLE_PRIVS</strong></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 데이터 제어어(DCL)(2023-01-30)]]></title>
            <link>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%9C%EC%96%B4%EC%96%B4DCL2023-01-30</link>
            <guid>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%9C%EC%96%B4%EC%96%B4DCL2023-01-30</guid>
            <pubDate>Mon, 30 Jan 2023 03:21:28 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>&lt;SQL구문 유형&gt;</strong></p>
</blockquote>
<ol>
<li>DQL(데이터질의어) : select</li>
<li>DML(데이터조작어) : insert, update, delete 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; commit, rollback  결정해야함.</li>
<li>DDL(데의터정의어) : create, alter, drop, truncate
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; autocommit 내포함</li>
<li>DCL(데이터제어어) : grant, revoke
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; autocommit 내포함</li>
</ol>
<h2 id="1-user-생성">1. User 생성</h2>
<ul>
<li>create user 권한 소유자가 DB에 User를 생성할 수 있음</li>
</ul>
<p>- test user 만들기(sys유저에서 작성)
<img src="https://velog.velcdn.com/images/rian_k/post/1cd5a818-d7c9-47ea-a7c6-045d313a29e0/image.png" alt="">
=&gt; DB에 접속할 수 있는 권한 부족, 권한을 부여해 줘야 한다!!</p>
<h2 id="2-권한-유형">2. 권한 유형</h2>
<p><img src="https://velog.velcdn.com/images/rian_k/post/f3aacca1-7c47-477a-a6a6-34b032223898/image.png" alt=""></p>
<h2 id="3-system-권한">3. System 권한</h2>
<p>- DB를 조작할 수 있는 권한, System 권한의 종류가 100개 정도 됨. 
- 모든 System 권한은 DBA가 소유함</p>
<p><strong>1) System 권한 부여</strong></p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/711e5c34-10c4-49f9-8220-6ed61bde126e/image.png" alt="">
-&gt; grant ~ to = 권한 부여하는 문법
<img src="https://velog.velcdn.com/images/rian_k/post/6550c597-bc49-4ab8-9d0e-b57b354c05f7/image.png" alt="">
-&gt; test 유저에 connect 가능 &amp; table 생성가능 / view권한은 주지 않았기 때문에 오류발생
<img src="https://velog.velcdn.com/images/rian_k/post/8e6cb6da-9809-4f63-90f3-9c2954c0cc0b/image.png" alt=""></p>
<p>-&gt; create table은 table과 index를 생성/운영할 수 있는 권한이기 때문에 index생성 가능!!
<img src="https://velog.velcdn.com/images/rian_k/post/840d60dd-e1ef-46dd-bc6e-ee5077b2363f/image.png" alt="">
-&gt; 비밀번호변경</p>
<p><strong>2) System 권한 회수</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/5ab41eaf-df2b-498b-9480-3464ee74262e/image.png" alt="">
-&gt; revoke ~ from : 권한 회수하는 문법
<img src="https://velog.velcdn.com/images/rian_k/post/2a1664cd-5648-4c3b-bdf8-6a28f52fe168/image.png" alt="">
-&gt; 권한이 회수되었기 때문에 새로운 table 생성불가!!</p>
<h2 id="4-object-권한">4. Object 권한</h2>
<p>- Object를 조작할 수 있는 권한, Object 권한의 종류 다양함. 
ex) hr.employees -&gt; select, insert, update, delete
- 모든 Object 권한은 Object의 주인이 소유함. </p>
<p><strong>1) Object 권한 부여</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/709416af-407c-4611-88a8-452686c44ea4/image.png" alt=""></p>
<p><strong>2) Object 권한 회수</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/a6cf4d07-b0c2-41c4-932f-99c0a7cce8b4/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️ 조건부 표현식(if-then-else)(2023-01-30)]]></title>
            <link>https://velog.io/@rian_k/%EC%A1%B0%EA%B1%B4%EB%B6%80-%ED%91%9C%ED%98%84%EC%8B%9Dif-then-else2023-01-30</link>
            <guid>https://velog.io/@rian_k/%EC%A1%B0%EA%B1%B4%EB%B6%80-%ED%91%9C%ED%98%84%EC%8B%9Dif-then-else2023-01-30</guid>
            <pubDate>Mon, 30 Jan 2023 02:04:51 GMT</pubDate>
            <description><![CDATA[<ul>
<li>SQL 문에서 IF-THEN-ELSE 논리 사용가능</li>
</ul>
<h2 id="1-case-식">1. CASE 식</h2>
<blockquote>
<p>[문법]
<img src="https://velog.velcdn.com/images/rian_k/post/f800947f-22c4-40e7-b60b-65616a9279d8/image.png" alt=""></p>
</blockquote>
<p>[예제]
<img src="https://velog.velcdn.com/images/rian_k/post/8761f02c-e983-479f-9bb1-b53f3453ce31/image.png" alt="">
[결과]
<img src="https://velog.velcdn.com/images/rian_k/post/8c6fd66a-8820-4559-bb5f-e50359283b0f/image.png" alt=""></p>
<h2 id="2-case-표현식">2. CASE 표현식</h2>
<blockquote>
<p>[문법]
<img src="https://velog.velcdn.com/images/rian_k/post/49fbcfb6-3902-49a3-b514-c8ce9f231e1f/image.png" alt="">
-&gt; 조건문에 =이 아닌 다른 연산자가 들어가는 경우 </p>
</blockquote>
<p>[예제]
<img src="https://velog.velcdn.com/images/rian_k/post/1d902899-09f6-433a-9865-c8aa9baf0873/image.png" alt="">
[결과]
<img src="https://velog.velcdn.com/images/rian_k/post/4c0079ef-e1de-4d43-ae56-5c72664f05be/image.png" alt=""></p>
<ul>
<li>처음의 case식을 case표현식으로 나타내보면?
<img src="https://velog.velcdn.com/images/rian_k/post/6f9aad2e-b68a-48ad-b027-d70c634a4c09/image.png" alt=""></li>
</ul>
<p>-&gt; 상황에 따라 더 효율적인 식을 선택해서 작성!!</p>
<h2 id="3-decode-함수">3. DECODE 함수</h2>
<blockquote>
<p>[문법]
<img src="https://velog.velcdn.com/images/rian_k/post/48407027-b474-41e8-b7ac-847ab1d3211f/image.png" alt="">
-&gt;case식과 같은 의미의 문법</p>
</blockquote>
<p>[예제1]
<img src="https://velog.velcdn.com/images/rian_k/post/76e2b2ef-0656-4b5a-af8e-7fd67fbe5787/image.png" alt="">
[결과]
<img src="https://velog.velcdn.com/images/rian_k/post/ff4159b5-4d53-41fe-b215-36fa03be3385/image.png" alt=""></p>
<p>[예제2]
<img src="https://velog.velcdn.com/images/rian_k/post/75314cf9-6b56-49c9-a887-e5e527476989/image.png" alt="">
[결과]
<img src="https://velog.velcdn.com/images/rian_k/post/09f124f8-31a6-4188-a970-13d02f418d5c/image.png" alt=""></p>
<p><strong>&lt;연습문제&gt;</strong>
<strong>1)</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/72a765f5-e903-4a60-93cf-239e8d7287a9/image.png" alt=""></p>
<p>[답]
<img src="https://velog.velcdn.com/images/rian_k/post/c5878581-1ff8-4e7e-9a85-3df73dd9dd03/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/ea060aba-20cf-430c-8550-655379326c1d/image.png" alt=""></p>
<p><strong>2)</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/2b0c10f7-3adb-49ba-a414-9a5fc7e44b80/image.png" alt=""></p>
<p>[답]
<img src="https://velog.velcdn.com/images/rian_k/post/3ef47796-045f-4f05-a603-9602dd7017d3/image.png" alt=""></p>
<p>(=)
<img src="https://velog.velcdn.com/images/rian_k/post/0279859b-f685-4488-9010-d77cc213400e/image.png" alt=""></p>
<p><strong>3)</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/0b1ad91c-1ea5-4a6b-b9ab-20756a7807df/image.png" alt=""></p>
<p>[답]
<img src="https://velog.velcdn.com/images/rian_k/post/277e60c0-9194-43c4-a839-38a94189de7e/image.png" alt=""></p>
<hr>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️데이터정의어(DDL) - View, Sequence(2023-01-19)]]></title>
            <link>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%A0%95%EC%9D%98%EC%96%B4DDL-View-Sequence2023-01-19</link>
            <guid>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%A0%95%EC%9D%98%EC%96%B4DDL-View-Sequence2023-01-19</guid>
            <pubDate>Thu, 19 Jan 2023 02:35:40 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>&lt;object(객체) 종류&gt;
<strong>1. Table</strong>
- 사용방법 : select, insert, update, delete
- 정의방법 : create table, alter table, drop table, truncate table
<strong>2. View</strong>
- 사용방법 : select, insert, update, delete
- 정의방법 : create [or replace] view, drop view 
<strong>3. Sequence</strong>
- 사용방법 : 시퀀스명.nextval, 시퀀스명.currval
- 정의방법 : create sequence, alter ewquence, drop sequence
<strong>4. Index</strong>
<strong>5. Synonym</strong></p>
</blockquote>
<h2 id="📌-view">📌 View</h2>
<ul>
<li>하나 이상의 Base table을 기반으로 생성은 되었으나 물리적으로 존재하지 않고
Data Dictionary에 Select 구문 형태로 정의만 되어 있는 가상의 논리적인 테이블</li>
</ul>
<p> <strong>1) 뷰 생성 및 수정</strong></p>
<blockquote>
<p>[문법]
 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름(alias,,,)
 AS subquery</p>
</blockquote>
<p> -&gt; OR REPLACE(Oracle) = alter(MySQL에서의) 
-&gt; NOFORCE : base table이 존재할 때만 뷰가 생성됨(기본 설정)
-&gt; FORCE : base table 존재 여부와 상관없이 뷰를 생성!, 만들어는지지만 사용은 안됨</p>
<p>✍️ empvu80 생성
<img src="https://velog.velcdn.com/images/rian_k/post/94f1ff6b-1ebb-4881-9997-e460dcb2739f/image.png" alt=""></p>
<p>✍️ salvu50 생성 
<img src="https://velog.velcdn.com/images/rian_k/post/f1cb5bd1-99c9-4623-999d-eceba4b9e0ce/image.png" alt=""></p>
<p>✍️ empvu80 수정
<img src="https://velog.velcdn.com/images/rian_k/post/ef9ee5e5-36c2-487c-a9c3-61bff8c32226/image.png" alt="">
💻 empvu80 데이터 확인 해보기
<img src="https://velog.velcdn.com/images/rian_k/post/2fa83d08-0a18-4f5e-8b0f-e2787cdf2180/image.png" alt=""></p>
<p>✍️ dept_sum_vu 생성
<img src="https://velog.velcdn.com/images/rian_k/post/7f225765-e88e-471e-8d7e-5fdf6f920a15/image.png" alt=""></p>
<p><strong>2) 뷰 사용</strong>
- 테이블과 동일함
=&gt; desc, select 사용
- 뷰를 통한 insert, update, delete 가능 =&gt; 결국 Base table의 data가 조작되어짐.</p>
<p><strong>3) 뷰 삭제</strong>
- 뷰를 삭제한다고 해서 Base table의 데이터가 날라가는 것은 아니다.
<img src="https://velog.velcdn.com/images/rian_k/post/5d974869-e396-478b-aea1-c19ac816b3df/image.png" alt=""></p>
<p><strong>✨DB사전으로 만들어진 뷰 확인✨</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/18a649f1-bd01-47bd-ae60-542fca42e217/image.png" alt=""></p>
<hr>
<h2 id="📌-sequence">📌 Sequence</h2>
<ul>
<li>자동으로 고유한 번호를 반환해 주는 번호생성기와 같은 Object</li>
</ul>
<p><strong>1) 시퀀스 생성(create sequence)</strong></p>
<blockquote>
<p>[문법]
<img src="https://velog.velcdn.com/images/rian_k/post/f9bcd509-f46b-4942-a0d7-e3bfb02f2aad/image.png" alt=""></p>
</blockquote>
<p>✍️ dept_sum_vu 생성</p>
<ol>
<li><p>우선 department_id의 최대값이 몇인지 먼저 조회해보기
<img src="https://velog.velcdn.com/images/rian_k/post/196349d3-4ce7-4ef6-a597-7507070d1f9f/image.png" alt=""></p>
</li>
<li><p>생성
<img src="https://velog.velcdn.com/images/rian_k/post/0db5b936-f6a8-40f8-8c2c-6eec1b82f0c1/image.png" alt=""></p>
</li>
</ol>
<p><strong>2) 시퀀스 사용</strong>
- 시퀀스명.NEXTVAL : 사용가능한 다음 시퀀스값 반환
- 시퀀스명.CURRVAL : 현재 시퀀스값, 즉 마지막 시퀀스값 반환
<img src="https://velog.velcdn.com/images/rian_k/post/82ed6214-3aff-4402-b075-fb60b973c990/image.png" alt="">
=&gt; 350부터 자동으로 값이 반환되는 것을 볼 수 있다.</p>
<p><strong>3) 시퀀스 수정(alter sequence)</strong>
- 시퀀스 간격, 최대값, 최소값, Cycle 옵션, Cache 옵션 변경 가능
- 시퀀스 시작값 변경 불가(start with N)
<img src="https://velog.velcdn.com/images/rian_k/post/6adedc40-7f9b-40d6-8de0-a6d8cf15e2b9/image.png" alt=""></p>
<p><strong>4) 시퀀스 삭제(drop sequence)</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/0a1cb902-05bb-42a3-9ad3-6759fd45e237/image.png" alt=""></p>
<p><strong>✨DB사전으로 시퀀스 확인✨</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/7dc3787c-13a9-4b6c-854c-a94210a34f06/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️데이터베이스 관련 용어 및 테이블생성(22.10.26수업)]]></title>
            <link>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%9A%A9%EC%96%B4-%EB%B0%8F-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%83%9D%EC%84%B122.10.26%EC%88%98%EC%97%85</link>
            <guid>https://velog.io/@rian_k/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%9A%A9%EC%96%B4-%EB%B0%8F-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%83%9D%EC%84%B122.10.26%EC%88%98%EC%97%85</guid>
            <pubDate>Thu, 12 Jan 2023 15:51:12 GMT</pubDate>
            <description><![CDATA[<h2 id="📌데이터베이스-필수-용어">📌데이터베이스 필수 용어</h2>
<p><img src="https://velog.velcdn.com/images/rian_k/post/2fd55592-fa2e-4ad3-8cb3-3d2a3d6a869d/image.png" alt=""></p>
<blockquote>
<ul>
<li>DBMS : Database Management System(데이터베이스 관리 시스템)의 약
자로 데이터베이스를 관리하는 시스템 또는 프로그램. DBMS의 종류로 Oracle, MySQL, SQL Server, MariaDB 등이 있음.</li>
</ul>
</blockquote>
<ul>
<li>데이터베이스(DB) : 조직화된 정보들의 모음 또는 데이터 집합. 데이터베이스는 고유한 이름을 가져야 함</li>
<li>객체(Object) : 사람, 사물, 장소, 개념, 사건과 같은 유무형의 정보를 가지고 있
는 독립적인 실체. 객체 종류는 테이블, 뷰, 인덱스 등이 있음. 데이터베이스 내에서 가장 많이 사용되는 객체는 테이블임.</li>
<li>테이블(Table) : 데이터베이스 내에서 데이터를 저장할 때 가장 많이 사용하는 객
체 유형. 열(column)과 행(row)로 이루어져 있음.</li>
<li>데이터(data) : 테이블과 같은 객체에 저장된 실제 정보를 의미함.</li>
<li>열(column) : 컬럼 또는 속성(Attribute)이라고도 함. 테이블에서 세로 부분을 의미하며, 하나의 테이블은 여러 개의 열
(column)으로 구성되어 있음.</li>
<li>열 이름(column name) : 각 열(column)을 구분하기 위한 이름. 열이름 또는 컬럼명은 테이블 내에서 고유해야 함.</li>
<li>행(row) : 우 또는 레코드라고도 함. 테이블에서 가로에 해당하는 데이터 전체를 의미함.</li>
<li>SQL : 사람과 DBMS가 소통하기 위해 사용하는 언어.</li>
<li>기본키(Primary key) : 테이블의 행을 구분해 줄 수 있는 대표 컬럼에게 부여하는 제약
조건. 기본키가 설정된 컬럼에는 중복값, 빈값 들어올 수 없음.</li>
<li>외래키(Foreign key) : 테이블과 테이블을 연결해 주는 제약조건. </li>
<li>스키마(Schema) : DBMS들마다 스키마의 의미는 다르게 사용되고 있음. 스키마란 데이터를 담는 그릇을 의미함. MySQL – 스키마가 데이터베이스와 동일한 의미로 사용됨. Oracle – 스키마가 유저와 동일한 의미로 사용됨</li>
</ul>
<hr>
<h2 id="📌데이터베이스-구축-절차">📌데이터베이스 구축 절차</h2>
<p><img src="https://velog.velcdn.com/images/rian_k/post/e9e6e173-ac69-4df8-939f-471e78c62f82/image.png" alt=""></p>
<ol>
<li>DB생성</li>
<li>Table 생성</li>
<li>데이터 삽입/수정/삭제</li>
<li>데이터 조회</li>
</ol>
<hr>
<h2 id="📌데이터베이스-테이블-생성">📌데이터베이스, 테이블 생성</h2>
<p><strong>1.데이터베이스 생성</strong></p>
<p>1) Workbench 실행 후 MySQL에 root 사용자로 접속
2) ‘쇼핑몰’ 데이터베이스 생성
- Schema 이름 : db
<img src="https://velog.velcdn.com/images/rian_k/post/1660ee29-02b3-4307-a7ab-85cf96ae88e7/image.png" alt="">
- 데이터베이스(스키마)명, 테이블명, 컬럼명 등은 영문을 사용 
- 이름은 영문으로 시작해야하며, 영문/숫자/특수문자(_, #, $)가 혼합될 수는 있다. 
- 실무에서 데이터베이스명, 테이블명, 컬럼명 등을 한글로 지정하는 경우는 거의 없으며, 그 이유는 호환성 등의 문제가 발생될 소지가 많기 때문 
- 실제 데이터는 영문, 한글 모두 사용 가능</p>
<p><strong>2. 테이블 생성</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/ec062ac9-96b1-4549-a3bb-ca290bb266a7/image.png" alt=""></p>
<p>1) 데이터 타입
<img src="https://velog.velcdn.com/images/rian_k/post/d773d47b-1821-4d2e-8387-6237eba6350a/image.png" alt="">
- 주민번호는 문자 데이터타입이다. 숫자X
- CHAR : 고정, 성능우수 but 공간적 효율 떨어짐(주민번호/전화번호)
- VARCHAR : 가변, 공간효율 높다 but 성능 낮음
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-&gt; 통상적으로 개발자들이 많이 사용한다
2)제약조건
<img src="https://velog.velcdn.com/images/rian_k/post/72035f7c-a086-47be-a4c9-288a4ff74310/image.png" alt=""></p>
<ul>
<li>not null - null값이 들어가는 것을 막아주는 제약조건, 필수 컬럼에 많이 선언함.
예) 이름, 학번, 사번, 주민번호, 전화번호 등</li>
<li>unique - 중복된 데이터가 들어가는 것을 막아주는 제약조건
예) 학번, 사번, 주민번호, 전화번호, 이메일 등 </li>
<li>primary key - 기본키, not null + unique의 성격을 가짐, 테이블 당 한번만 선언 가능함. 
=&gt; 유출되어도 큰 문제가 없을 만한 곳에 주로 씀
예) 학번, 사번, 제품번호, 주문번호 등 </li>
<li>Foreign key - 외래키, 다른 테이블의 특정 컬럼을 참조하는 제약조건, 자식 컬럼(fk선언된 컬럼)에는 부모 컬럼(참조하는 컬럼)에 있는 값 중 하나만 삽입/수정될 수 있음.</li>
<li>check - 해당 컬럼이 만족해야하는 조건문을 자유롭게 지정하는 제약조건
예) grade int(10) check(grade &gt;= 1 and grade &lt;=3)
예2) salary bigint check(salary &gt;0)
예3) 주민번호 char(13) check(length(주민번호) = 13)</li>
</ul>
<p>3) 테이블 차트 및 테이블 생성 작업</p>
<ul>
<li><p>members 테이블 생성
<img src="https://velog.velcdn.com/images/rian_k/post/063536f5-604f-4da2-b298-1911837dfb40/image.png" alt=""></p>
<pre><code class="language-sql">create table members
(member_id int primary key,
member_name varchar(8) not null,
birth date not null,
job varchar(20),
phone varchar(20) unique,
address varchar(80));</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/31ab6761-911b-4adf-a3b2-8a568aabb652/image.png" alt=""></p>
</li>
<li><p>생성된 테이블 확인
<img src="https://velog.velcdn.com/images/rian_k/post/5b2efb35-a738-48e9-912b-489d4bb7cfcd/image.png" alt=""></p>
</li>
<li><p>products 테이블 생성
<img src="https://velog.velcdn.com/images/rian_k/post/0e8aa001-6e39-4ddc-946d-a6afd64ca3da/image.png" alt=""></p>
<pre><code class="language-sql">create table products
(prod_id int primary key,
prod_name varchar(20) not null,
price int check (price&gt;0),
make_date date,
company varchar(10) not null);</code></pre>
</li>
<li><p>생성된 테이블 확인
<img src="https://velog.velcdn.com/images/rian_k/post/a20c47b2-02ef-433d-8be1-97f6d72bb782/image.png" alt=""></p>
</li>
<li><p>orders 테이블 생성
<img src="https://velog.velcdn.com/images/rian_k/post/c7780793-e42d-4686-9148-9ba11f520888/image.png" alt=""></p>
<pre><code class="language-sql">create table orders
(order_num int,
member_id int,
prod_id int,
order_date datetime default now(),
primary key(order_num),
foreign key(member_id) references members(member_id),
foreign key(prod_id) references products(prod_id) );</code></pre>
<p>- 문법
order_num int, : 컬럼레벨문법(nn, pk,,,)
primary key(order_num) : 테이블레벨문법(fk)
- 명령어
* from dual; : dual은 따로 작성 된 테이블이 없을 때 임의로 테이블 보여줌
ex) select now()
&#160;&#160;&#160;&#160;&#160;from dual;</p>
<pre><code>-&gt; 현재 날짜 시간이 나옴(2022-10-27 10:39:33)</code></pre><p>* references - 참조</p>
</li>
<li><p>생성된 테이블 확인
<img src="https://velog.velcdn.com/images/rian_k/post/7965ab79-1da5-45b5-861f-2757c77ae2a0/image.png" alt=""></p>
</li>
<li><p>stu20 테이블 생성
<img src="https://velog.velcdn.com/images/rian_k/post/da8800b1-9a8f-400d-abc5-326961c22d88/image.png" alt=""></p>
<pre><code class="language-sql">create table stu20
(stu_id int auto_increment primary key,
stu_name varchar(5) not null,
age int check (age &gt; 19));</code></pre>
<p>- auto increment 속성
1부터 시작해서 1씩 증가하는 고유한 값을 자동으로 변환해 주는 속성
단, 숫자 형식의 칼럼이면서 primary key 또는 unique 제약조건이 선언된 컬럼에만 사용가능함.
시작값, 증가값 변경 가능함.
[문법] create table 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(컬럼명1 int auto_increment primary key,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;컬럼명2 varchar(10));</p>
</li>
<li><p>생성된 테이블 확인
<img src="https://velog.velcdn.com/images/rian_k/post/fbcb4bc8-a468-4afb-8e3f-40e66b3b3d0b/image.png" alt=""></p>
</li>
</ul>
<hr>
<h2 id="📌-데이터-삽입">📌 데이터 삽입</h2>
<p><strong>1. 데이터 조작어(DML : Data Manipulation Language)</strong>
- insert : 데이터 삽입
- update : 데이터 수정
- delete : 데이터 삭제</p>
<p><strong>2. 데이터 삽입 : INSERT</strong>
- [문법] inser into 테이블명[(컬럼명1, 컬럼명2, 컬럼명3, ...)]-&gt;[]생략가능
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;values (값1, 값2, 값3, 값4, ...)</p>
<p>- 테이블명 뒤에 컬럼명을 작성한 경우
=&gt; values절에 값리스트 작성 시 작성된 컬럼리스트와 일치되야함.
        ex) insert into members(member_id, member_name, birth, phone)
&#160;&#160;&#160;&#160;&#160;&#160;values (101, &#39;김민수&#39;, &#39;1990-03-05&#39;, &#39;010-2222-2222&#39;);
- 생략된 컬럼에는 null값 자동 삽입됨.
- not null 제약조건이 선언된 컬럼이 생략된 경우 오류 발생함.
   ex) birth 등,,,
- table 뒤에 컬럼명이 나열되어 있을 때는 꼭 순서대로 안 적어도 됨</p>
<p><strong>&lt;✍️ members 테이블에 데이터 삽입하기&gt;</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/6171fad9-7b99-462b-93b5-cd9884330ca2/image.png" alt="">
-&gt; 순서대로 모든 데이터 입력하여 삽입</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/d40bc89a-0133-4f16-8974-55dfa558505f/image.png" alt=""></p>
<p>-&gt; 작성한 컬럼명에 맞춰 데이터 입력, 생략된 컬럼에는 null값 자동 입력</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/dd29ae51-3eec-477d-a04c-17566dc31224/image.png" alt=""></p>
<p>-&gt; not null 제약조건이 선언된 birth컬럼의 값을 생략하여 (Error Code: 1364. Field &#39;birth&#39; doesn&#39;t have a default value)오류 발생</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/081d7128-04a6-4efa-886e-62d89dfd2d7f/image.png" alt=""></p>
<p>=&gt; 수정!!</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/07ae7574-ca34-4c73-afcc-4aeaed93c9a3/image.png" alt=""></p>
<p>-&gt; unique 제약조건이 선언된 phone 컬럼에 중복 값이 삽입된 경우 (Error Code: 1062. Duplicate entry &#39;010-1111-1111&#39; for key &#39;phone’)오류발생.</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/b5f83b98-3f81-4706-a0f8-b58a22f0e985/image.png" alt=""></p>
<p>=&gt; 수정!!</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/db1bf226-c78a-4ca0-a4d2-a8172332f309/image.png" alt=""></p>
<p>-&gt; primary key 제약조건이 선언된 member_id컬럼에 중복 값이 삽입된 경우 (Error Code: 1062. Duplicate entry &#39;101&#39; for key &#39;PRIMARY’)오류발생.</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/25b8694c-1547-4440-8148-cc47f4913331/image.png" alt=""></p>
<p>=&gt; 수정!!
단, unique 제약조건이 선언된 컬럼에 null값은 허용함</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/6c9f2312-3693-40e8-965e-485027703d02/image.png" alt="">
-&gt;  primary key 제약조건이 선언된 member_id컬럼에 null값이 삽입된 경우 (Error Code: 1364. Field &#39;member_id&#39; doesn&#39;t have a default value)오류발생.</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/9913d704-4f44-4353-8fd4-06c65fb7e639/image.png" alt="">
=&gt; 수정!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻배열(22.12.19 자바수업)]]></title>
            <link>https://velog.io/@rian_k/%EB%B0%B0%EC%97%B422.12.19-%EC%9E%90%EB%B0%94%EC%88%98%EC%97%85</link>
            <guid>https://velog.io/@rian_k/%EB%B0%B0%EC%97%B422.12.19-%EC%9E%90%EB%B0%94%EC%88%98%EC%97%85</guid>
            <pubDate>Mon, 09 Jan 2023 08:36:46 GMT</pubDate>
            <description><![CDATA[<h2 id="📌배열">📌배열</h2>
<blockquote>
<ul>
<li>같은 형의 여러개 데이터 정의</li>
</ul>
</blockquote>
<ul>
<li>배열 선언
- 자료형[] 배열이름 = new 자료형[개수]</li>
<li>배열선언 할 때 -&gt; 초기값 할당
- int[] a=new int[]{100,200,300,400,500};</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻static 변수(22.12.16 자바수업)]]></title>
            <link>https://velog.io/@rian_k/static-%EB%B3%80%EC%88%98</link>
            <guid>https://velog.io/@rian_k/static-%EB%B3%80%EC%88%98</guid>
            <pubDate>Thu, 05 Jan 2023 08:38:48 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-static-변수">📌 static 변수</h2>
<blockquote>
<ul>
<li>public static 리턴할형 메서드명(){}
- 객체생성 없이 멤버변수, 메서드 빠르게 호출 할 때 사용
- 객체생성 하기 전에 미리 기억장소 할당 되어져서 공통으로 사용</li>
</ul>
</blockquote>
<p><strong>1. Student 클래스 생성</strong></p>
<pre><code class="language-java">public static int num;
String name;
int grade;

public static void sprn(){
    System.out.primtln(&quot;static num : &quot;+num)
}
// static 메서드() : 객체 생성없이 사용

public void prn(){
    System.out.println(&quot;static num : &quot;+num);
    System.out.println(&quot;name : &quot;+ name);
    System.out.println(&quot;grade : &quot;+grade);
}
// 인스턴스 메서드() : 객체 생성하고 사용</code></pre>
<p><strong>2. 실행 클래스 생성</strong></p>
<pre><code class="language-java">        Student.num=1;
        Student.sprn();
         //객체생성 없이 호출!
         System.out.println(&quot;=============&quot;);

        Student s=new Student();
        s.num++;
        s.sprn();
        System.out.println(&quot;=============&quot;);
        s.name=&quot;홍길동&quot;;
        s.grade=3;
        s.prn();

        System.out.println(&quot;=============&quot;);
        Student s2=new Student();
        s2.num++;
        s2.name=&quot;이길동&quot;;
        s2.grade=6;
        s2.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/b7129f79-69f2-466d-a234-43137633e721/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>Board 클래스 </li>
</ul>
</blockquote>
<ul>
<li>static 멤버변수 int num</li>
<li>멤버변수 String name, String subject, String content</li>
<li>기본생성자 num 변수 1씩 증가
set get 메서드</li>
</ul>
<hr>
<ul>
<li>BoardDAO 클래스</li>
<li>메서드 리턴없음 insertBoard(Board)</li>
</ul>
<hr>
<ul>
<li>Board클래스 객체 생성</li>
<li>set name, subject content 값을 저장</li>
</ul>
<hr>
<ul>
<li>BoardDAO 클래스 객체생성</li>
<li>insertBoard() 메서드 호출</li>
</ul>
<p><strong>1. Board 클래스 생성</strong></p>
<pre><code class="language-java">public class Board {
    private static int num;
    private String name;
    private String subject;
    private String content;

    public Board() {
        num++;
    }

    public static int getNum() {
        return num;
    }

    public static void setNum(int num) {
        Board.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}</code></pre>
<p><strong>2. BoardDAO 클래스 생성</strong></p>
<pre><code class="language-java">public class BoardDAO {
    public void insertBoard(Board board) {
        System.out.println(board.getNum());
        System.out.println(board.getName());
        System.out.println(board.getSubject());
        System.out.println(board.getContent());
    }
}</code></pre>
<p><strong>3. 실행 클래스 생성</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Board b=new Board();
        b.setName(&quot;홍길동&quot;);
        b.setSubject(&quot;국어&quot;);
        b.setContent(&quot;내용&quot;);


        BoardDAO bdao=new BoardDAO();
        bdao.insertBoard(b);

    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/e4a2f514-3b10-407b-8623-3589c88416c0/image.png" alt=""></p>
<hr>
<h3 id="📌정리-하기">📌정리 하기</h3>
<ol>
<li>지역변수 
: 메서드 내에서 정의하고 사용
: 메서드 밖에서는 사용 못함<pre><code class="language-java">ex) 
int a=10;
int b=20;
System.out.println(a+b);
System.out.println(a-b);</code></pre>
</li>
<li>멤버변수
: 클래스 안에 변수(인스턴스 변수)
: 객체를 생성 해야지만 사용할 수 있는 변수<pre><code class="language-java">ex)
Student s =new Student();
System.out.println(s);
System.out.println(s.name);
System.out.println(s.grade);</code></pre>
</li>
<li>static 변수 유효범위
사용자가 프로그램을 실행하여 메모리에 상주하면 
메모리에 데이터 영역에 상수, 문자열, static변수 셍성<pre><code class="language-java">ex)
System.out.println(Student.num);</code></pre>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻오버로딩 / 객체 간 협력(22.12.12 자바수업)]]></title>
            <link>https://velog.io/@rian_k/%EC%83%9D%EC%84%B1%EC%9E%90%EB%A9%94%EC%86%8C%EB%93%9C-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9-%EA%B0%9D%EC%B2%B4-%EA%B0%84-%ED%98%91%EB%A0%A5</link>
            <guid>https://velog.io/@rian_k/%EC%83%9D%EC%84%B1%EC%9E%90%EB%A9%94%EC%86%8C%EB%93%9C-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9-%EA%B0%9D%EC%B2%B4-%EA%B0%84-%ED%98%91%EB%A0%A5</guid>
            <pubDate>Tue, 03 Jan 2023 06:59:24 GMT</pubDate>
            <description><![CDATA[<h2 id="📌오버-로딩">📌오버 로딩</h2>
<blockquote>
<ul>
<li>하나의 클래스 내에 같은 이름의 생성자 / 메서드</li>
</ul>
</blockquote>
<ul>
<li>받는 값의 개수, 형이 다르다</li>
</ul>
<p><strong>1. Person 클래스 생성</strong></p>
<pre><code class="language-java">    private String name;
    private int age;

    // 기본생성자 =&gt; 기억장소할당, null, 0기본 초기값 할당
    public Person(){
        this(&quot;이름&quot;,100);
        // this() -&gt; 자기자신 생성자 호출
    }

    public Person(String name){
    }
    public Person(int age){

    // name, age 받는 생성자
    public Person(String a, int b){
        name=a;
        age=b;

 =&gt; 생성자 이름이 Person 으로 동일!       
//------------------------------------            
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    // 출력 메서드
    public void prn() {
        System.out.println(this.name+&quot;,&quot;+this.age);
    }    
    // 메서드 오버로딩
    public void prn(String name) {
        this.name=name;
        System.out.println(this.name+&quot;,&quot;+this.age);
    }
    public void prn(int age) {
        this.age=age;
        System.out.println(this.name+&quot;,&quot;+this.age);
    }
    public void prn(String name,int age) {
        this.name=name;
        this.age=age;
        System.out.println(this.name+&quot;,&quot;+this.age);
                System.out.println(10);
        System.out.println(10.5);
        System.out.println(&quot;안녕&quot;);
        System.out.println(&#39;A&#39;);</code></pre>
<p><strong>2. 실행 클래스 생성</strong>
(1) 기본 생성자 호출</p>
<pre><code class="language-java">        Person ps=new Person();
        ps.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/555f875b-60f0-4895-ae42-7e7f65b293bd/image.png" alt="">
(2) name, age 받는 생성자 호출</p>
<pre><code class="language-java">        Person ps2=new Person(&quot;김길동&quot;, 10);
        ps2.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/78bd03d2-5b02-4822-86fd-2d99afa1e311/image.png" alt="">
(3) 오버로딩 한 메서드 호출</p>
<pre><code class="language-java">        Person ps3=new Person();
        ps3.prn();
        ps3.prn(&quot;유관순&quot;);
        ps3.prn(10);
        ps3.prn(&quot;이순신&quot;,20);</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/02a48b61-e48b-4b22-a328-e4cefdade6f2/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>Point 클래스 정의</li>
</ul>
</blockquote>
<ul>
<li>prn(두 수를 받아서) 출력하는 메서드 정의</li>
<li>prn 오버로딩</li>
<li>출력 = &gt; 5,7 / 10.5, 20.7</li>
</ul>
<p><strong>1. Point 클래스 생성</strong></p>
<pre><code class="language-java">    public class Point {
        public void prn(int x, int y) {
            System.out.println(x+&quot;,&quot;+y);
        }
        public void prn(double x, double y) {
            System.out.println(x+&quot;,&quot;+y);
        }
    }    </code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/3c0c33b2-8321-46b5-9fb9-299a413d85c3/image.png" alt=""></p>
<p><strong>2. 실행 클래스 생성</strong></p>
<pre><code class="language-java">        Point p=new Point();
        p.prn(5, 7);
        p.prn(10.5, 20.7);</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/48cac9f6-3e1d-48fe-8354-80b4d8e53a2d/image.png" alt=""></p>
<hr>
<h2 id="📌객체-간-협력">📌객체 간 협력</h2>
<blockquote>
<ul>
<li>Student 클래스 생성</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : String name, int moneny
// 버스 타는 경우 - takeBus
// 버스요금 지불 =&gt; 버스 금액 증가
// 학생이 가지고 있는 돈은 감소</li>
<li>prn() 메서드 name, money 출력</li>
</ul>
<hr>
<ul>
<li>Bus 클래스 생성</li>
<li>멤버변수 : int busNum, int busMoney</li>
<li>busMoney를 받는 생성자 take()</li>
<li>prn() busNum, bus Money</li>
</ul>
<hr>
<ul>
<li>Subway 클래스 정의</li>
<li>멤버변수 : 지하철노선 String lineNum, 지하철요금 int subMoney</li>
<li>subMoney를 받는 생성자 take()</li>
<li>prn() lineNum, subMoney</li>
</ul>
<hr>
<p>학생 &quot;홍길동&quot;이 5000원을 가지고 
학교에 갈 때 버스(1,000원) 를 타고 가고
집에 올 때는 지하철(1,500원) 을 타고 옴</p>
<p><strong>1. Student 클래스 생성</strong></p>
<pre><code class="language-java">public class Student {
    String name;
    int money;
    public Student(String name, int money) {
        this.name=name;
        this.money=money;
    } 

    public void takeBus(Bus bus) {
        bus.take(1000);
        this.money -= 1000;
    }

    public void takeSubway(Subway subway) {
        subway.take(1500);
        this.money -= 1500;
    }

    public void prn() {
        System.out.println(&quot;학생이름 : &quot;+name+&quot;, &quot;+&quot;가진 돈 : &quot;+money);
    }</code></pre>
<p><strong>2. Bus 클래스 생성</strong></p>
<pre><code class="language-java">public class Bus {
    int busNum;
    int busMoney;

    public Bus(int busNum) {
        this.busNum=busNum; 
    }

    public void take(int busMoney) {
        this.busMoney += busMoney;
    }

    public void prn() {
        System.out.println(&quot;버스번호 : &quot;+busNum+&quot;, &quot;+&quot;버스 요금 : &quot;+busMoney);
    }
}</code></pre>
<p><strong>3. Subway 클래스 생성</strong></p>
<pre><code class="language-java">public class Subway {
    String LineNum;
    int SubwayMoney;
    public Subway(String LineNum) {
        this.LineNum=LineNum;
    }

    public void take(int SubwayMoney) {
        this.SubwayMoney += 1500;
    }
    public void prn() {
        System.out.println(&quot;지하철 호선 : &quot;+LineNum+&quot;, &quot;+&quot;지하철 요금 : &quot;+ SubwayMoney);
    }
}</code></pre>
<p><strong>4.실행 클래스</strong></p>
<pre><code class="language-java">        Student s=new Student(&quot;홍길동&quot;, 5000);
        s.prn();

        Bus bus100=new Bus(100);
        bus100.prn();

        s.takeBus(bus100);
        s.prn();
        bus100.prn();

        Subway subway1=new Subway(&quot;1호선&quot;);
        subway1.prn();

        s.takeSubway(subway1);
        s.prn();
        subway1.prn();
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/a4bbd800-3c72-4538-b6c2-1ae10b98438e/image.png" alt=""></p>
<p><strong>✍️결과</strong> 
버스를 타면 학생이 가진 돈에서 -1000
    버스가 가진 돈 +1000
    지하철을 타면 학생이 가진 돈에서 -1500
    지하철이 가지는 돈 +1500 되는 것을 볼 수 있다</p>
<hr>
<hr>
<blockquote>
</blockquote>
<ul>
<li>클래스 Member</li>
<li>멤버변수 private - id, pass, name</li>
<li>메서드 set, get</li>
</ul>
<hr>
<ul>
<li>클래스 MemberDAO</li>
<li>메서드 정의, 리턴할 형 없음 insertMember(Member number)</li>
<li>메서드 안에는 출력 (아이디: 비밀번호: 이름:)</li>
</ul>
<hr>
<p>- 실행클래스 -</p>
<ul>
<li>Member 객체생성</li>
<li>set메서드 통해서 값을 저장</li>
<li>MemberDAO 객체생성</li>
<li>insertMember 메서드 호출(member정보를 들고감)</li>
</ul>
<p><strong>1. Member 클래스 생성</strong></p>
<pre><code class="language-java">public class Member {
    private String id;
    private int pass;
    private String name;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public int getPass() {
        return pass;
    }
    public void setPass(int pass) {
        this.pass = pass;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
</code></pre>
<p><strong>2. MemberDAO 클래스 생성</strong></p>
<pre><code class="language-java">public class MemberDAO {
    public void insertMember(Member member) {
        System.out.println(&quot;아이디 : &quot;+member.getId());
        System.out.println(&quot;비밀번호 : &quot;+member.getPass());
        System.out.println(&quot;이름 : &quot;+member.getName());
    }
}</code></pre>
<p><strong>3. 실행 클래스 생성</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Member m=new Member();
        m.setId(&quot;Hong&quot;);
        m.setPass(1234);
        m.setName(&quot;홍길동&quot;);

        MemberDAO mdao=new MemberDAO();
        mdao.insertMember(m);
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/10d2a472-db99-42b9-ba19-6da951360ad6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻정보 은닉(22.12.09 자바수업)]]></title>
            <link>https://velog.io/@rian_k/%EC%A0%95%EB%B3%B4-%EC%9D%80%EB%8B%89</link>
            <guid>https://velog.io/@rian_k/%EC%A0%95%EB%B3%B4-%EC%9D%80%EB%8B%89</guid>
            <pubDate>Mon, 02 Jan 2023 08:13:39 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-정보-은닉">📌 정보 은닉</h2>
<blockquote>
<ul>
<li>public 변수/메서드 -&gt; 외부 클래스 접근 가능</li>
</ul>
</blockquote>
<ul>
<li>private 변수/메서드 -&gt; 외부 클래스 접근 불가</li>
<li>protected 변수/메서드 -&gt; 상속관계 클래스 접근가능
=&gt; 변수나 메서드를 private로 선언해서 외부에서 접근하지 못하도록 하는 것을 객체지향에서 &#39;정보은닉&#39;이라고 한다. private로 정의한 변수를 외부 클래스에서 사용하기 위해서 get(), set() 메서드를 사용하여야 함</li>
<li>get() -&gt; 값을 얻는 메서드
&#160; set() -&gt; 값을 지정하는 메서드</li>
<li>get, set 메서드 자동 생성 단축키</li>
<li><blockquote>
<p>alt+shif+s =&gt; r</p>
</blockquote>
</li>
</ul>
<hr>
<h3 id="📌정보은닉을-사용한-클래스와-출력-메서드-만들기">📌정보은닉을 사용한 클래스와 출력 메서드 만들기</h3>
<blockquote>
<ul>
<li>Student 클래스 생성</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : int num, String name, int html, int java, int db</li>
<li>private로 선언</li>
</ul>
<p><strong>1. Student 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Student {
        private int num;
        private String name;
        private int html;
        private int java;
        private int db;

           // set 메서드 - 값을 저장하는 메서드
        public void set(int num, String name, int html, int java, int db) {
            this.num=num;
            this.name=name;
            this.html=html;
            this.java=java;
            this.db=db;
        // this 메서드 - 생성된 인스턴스 스스로를 가리킴
        }

        public void setNum(int num) {
            this.num=num;
        }
        public void setName(String name) {
            this.name=name;    
        }
        public void setHtml(int html) {
            this.html=html;
        }
        public void setJava(int java) {
            this.java=java;
        }
        public void setDb(int db) {
            this.db=db;
        }

        // get - 멤버변수에서 값을 가져오는 메서드
        // 리턴값이 무조건 하나, 여러개 값 리턴 못함
        public int getNum() {
            return this.num;
        }
        public String getName() {
            return this.name;
        }
        public int getHtml() {
            return this.html;
        }
        public int getJava() {
            return this.java;
        }
        public int getDb() {
            return this.db;
        }

        public int sum() {
            return html+java+db;
        }
        public double avg() {
            return ((html+java+db)/3.0);
        }

}</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/e6e4669e-7a73-4d59-bd6f-9f79027eb070/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/9bc2c7fe-0929-4317-9bfe-2615bf9dffa7/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong>
(1) </p>
<pre><code class="language-java">        Student s=new Student();
        s.set(1, &quot;홍길동&quot;, 90, 80, 70);


        // 출력
        System.out.println(&quot;학생 번호 : &quot;+s.getNum());
        System.out.println(&quot;학생 이름 : &quot;+s.getName());
        System.out.println(&quot;Html 점수 : &quot;+s.getHtml());
        System.out.println(&quot;Java 점수 : &quot;+s.getJava());
        System.out.println(&quot;Db 점수 : &quot;+s.getDb());</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/200d3705-f5cb-49ec-bbb9-4a037ff2306c/image.png" alt=""></p>
<p>(2)</p>
<pre><code class="language-java">        Student s=new Student();
        s.setNum(2);  
        s.setName(&quot;김길동&quot;);  
        s.setHtml(90);  
        s.setJava(90);  
        s.setDb(80);

        // 출력
        System.out.println(&quot;학생 번호 : &quot;+s.getNum());
        System.out.println(&quot;학생 이름 : &quot;+s.getName());
        System.out.println(&quot;Html 점수 : &quot;+s.getHtml());
        System.out.println(&quot;Java 점수 : &quot;+s.getJava());
        System.out.println(&quot;Db 점수 : &quot;+s.getDb());
        System.out.println(&quot;점수 합계 : &quot;+s.sum());
        System.out.println(&quot;점수 평균 : &quot;+s.avg());</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/ed4bd7a0-4d94-463e-9e4c-40bf85f3fd73/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>Car 클래스 생성</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : String carname, int speed</li>
<li>private로 선언 </li>
<li>메서드 리턴할 형int speedUp(10) speed 10증가하고 리턴</li>
<li>메서드 리턴할 형int speedDown(5) speed 5감소하고 리턴</li>
</ul>
<p><strong>1. Car 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Car {
        private String carname;
        private int speed;

        // get, set 메서드
        public String getCarname() {
            return carname;
        }
        public void setCarname(String carname) {
            this.carname = carname;
        }
        public int getSpeed() {
            return speed;
        }
        public void setSpeed(int speed) {
            this.speed = speed;
        }

        // 스피드 증가, 감소 메서드
        public int speedUp(int s) {
            speed=speed+s;
            return speed;
        }
        public int speedDown(int d) {
            speed=speed-d;
            return speed;
        }

    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/46950a73-4288-4445-b895-c7e1633327d2/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Car c=new Car();
        c.setCarname(&quot;그랜저&quot;);
        c.setSpeed(120);

        System.out.println(&quot;차 이름 : &quot;+c.getCarname());
        System.out.println(&quot;속도 : &quot;+c.getSpeed());

        System.out.println(c.speedUp(10));
        System.out.println(c.speedDown(5));
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/b087bdbe-c37c-41f8-9d05-2e2584eadb61/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>MyDate 클래스 만들기</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : String name, int year, int month, int day</li>
<li>private 멤버변수 정보 은닉</li>
</ul>
<p><strong>1. MyDate 클래스 만들기</strong></p>
<pre><code class="language-java">    public class MyDate {

        private String name;
        private int year;
        private int month;
        private int day;

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getYear() {
            return year;
        }
        public void setYear(int year) {
            this.year = year;
        }
        public int getMonth() {
            return month;
        }
        public void setMonth(int month) {
            this.month = month;
        }
        public int getDay() {
            return day;
        }
        public void setDay(int day) {
            this.day = day;
        }

    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/ddcd513f-8eef-403c-a421-7be604b14f85/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        MyDate md=new MyDate();
        md.setName(&quot;홍길동&quot;);
        md.setYear(2002);
        md.setMonth(8);
        md.setDay(1);

        System.out.println(&quot;이름 : &quot;+md.getName());
        System.out.println(&quot;년 : &quot;+md.getYear());
        System.out.println(&quot;월 : &quot;+md.getMonth());
        System.out.println(&quot;일 : &quot;+md.getDay());
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/12786fef-ac26-4161-a5e4-db69b1027b80/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻객체지향 프로그래밍과 클래스-2(22.12.02/08 자바수업)]]></title>
            <link>https://velog.io/@rian_k/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EA%B3%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-2</link>
            <guid>https://velog.io/@rian_k/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EA%B3%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-2</guid>
            <pubDate>Thu, 29 Dec 2022 08:25:04 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-클래스와-출력-메서드-만들기">📌 클래스와 출력 메서드 만들기</h2>
<blockquote>
<ul>
<li>car 클래스 정의 =&gt; 멤버변수 company, model, price =&gt; run() &quot;차가 달린다&quot; 출력</li>
</ul>
</blockquote>
<ul>
<li>Car 클래스 객체생성(기억장소 할당), 인스턴스 화</li>
<li>Car 정의된 클래스(설계도)에 대한 객체(인스턴스)생성</li>
<li>new Car() 메모리공간(힙Heap)에 인스턴스 생성 주소부여</li>
<li>주소값을 Car c 참조변수에 저장</li>
<li>참조변수를 통해서 메모리공간(힙Heap)에 접근</li>
<li>하나의 클래스에 여러개의 인스턴스(객체)를 생성가능</li>
<li>클래스면 참조변수=new 클래스명()</li>
<li>new 키워드 통해 Heap 메모리공간에 인스턴스(객체) 1개 생성</li>
<li>인스턴스의 주소값이 변수에 전달되어서 저장</li>
<li>참조변수.멤버변수명, 참조변수.메서드명() 호출</li>
<li>멤버변수 값저장, 출력</li>
<li>메서드 호출</li>
</ul>
<p><strong>1. Car 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Car {
         public String company;
        public String model;
        public int price;

        public void prn() {
            System.out.println(&quot;차가 달린다&quot;);
        }
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/fe3b5862-6717-45b8-a428-a7d66b59f38b/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Car c=new Car();
        c.company=&quot;현대&quot;;
        c.model=&quot;아반떼&quot;;
        c.price=100;
        System.out.println(&quot;c.company : &quot;+c.company);
        System.out.println(&quot;c.model : &quot;+c.model);
        System.out.println(&quot;c.price : &quot;+c.price);

        c.prn();
    }
}    </code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/3423454e-789b-49b3-9f3e-328c856d0da5/image.png" alt=""></p>
<hr>
<blockquote>
</blockquote>
<ul>
<li>Student 클래스 정의 =&gt; 멤버변수 num, name, kor, eng, math
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; 메서드 intro() &quot;번호 :&quot;+ num 출력
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; &quot;이름 :&quot;+ name 출력
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;=&gt; 메서드 sum() kor,eng,math 합을 구해서 리턴</li>
<li>Student 객체생성(기억장소 할당), 인스턴스 화</li>
<li>멤버변수 값 저장 num, name, kor, eng, math</li>
<li>intro() 메서드 호출</li>
<li>sum() 메서드 호출 =&gt; 리턴값 출력</li>
<li>System.out.println(&quot;학생의 점수합계 : &quot;+주소.sum());</li>
</ul>
<p><strong>1. Student 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Student {
        public int num;
        public String name;
        public int kor;
        public int eng;
        public int math;

        public void intro() {
            System.out.println(&quot;번호 : &quot;+num);
            System.out.println(&quot;이름 : &quot;+name);
        }

        public int sum() {
            return kor+eng+math;
        }
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/4735a54b-e3db-4681-9737-aa34cf34cc2c/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Student s=new Student();
        s.num=1;
        s.name=&quot;홍길동&quot;;
        s.kor=90;
        s.eng=100;
        s.math=95;

        s.intro();
        s.sum();
        System.out.println(&quot;학생의 점수 합계 : &quot;+s.sum());
        System.out.println(&quot;학생의 점수 평균 : &quot;+s.sum()/3);
    } </code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/01316c88-d21a-4600-9992-8745ff37cf58/image.png" alt=""></p>
<hr>
<blockquote>
</blockquote>
<ul>
<li>Person 클래스 </li>
<li>멤버변수 - 나이, 이름, 성별, 결혼여부, 자녀수</li>
<li>prn() 출력 - 나이 : 이름: 성별: 결혼여부: 자녀수:</li>
</ul>
<p><strong>1. Person 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Person {
        public int age;
        public String name;
        public String gender;
        public boolean married;
        public int children;

        public void prn() {
            System.out.println(&quot;나이 : &quot;+age);
            System.out.println(&quot;이름 : &quot;+name);
            System.out.println(&quot;성별 : &quot;+gender);
            if(married==true) {
            System.out.println(&quot;결혼여부 : &quot;+&quot;결혼함&quot;);
            }else {
                System.out.println(&quot;결혼여부 : &quot;+&quot;결혼안함&quot;);
            }
            System.out.println(&quot;자녀수 : &quot;+children);
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/346adb7d-2636-4f7d-9a46-50373483a2cb/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Person p=new Person();
        p.age=26;
        p.name=&quot;홍길동&quot;;
        p.gender=&quot;여&quot;;
        p.married=false;
        p.children=0;

        p.prn();
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/c7c9c5b3-7ea6-497a-b61e-93ea1cd430e4/image.png" alt=""></p>
<hr>
<blockquote>
</blockquote>
<ul>
<li>클래스 Order</li>
<li>멤버변수 : 주문번호, 아이디, 주문날짜, 이름, 상품번호, 주소</li>
<li>prn() 메서드 출력</li>
</ul>
<p><strong>1. Order 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Order {
        public int num;
        public int id;
        public String date;
        public String name;
        public int pnum;
        public String add;

        public void prn() {
            System.out.println(&quot;주문번호 : &quot;+num);
            System.out.println(&quot;아이디 : &quot;+id);
            System.out.println(&quot;주문날짜 : &quot;+date);
            System.out.println(&quot;이름 : &quot;+name);
            System.out.println(&quot;상품번호 : &quot;+pnum);
            System.out.println(&quot;주소 : &quot;+add);
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/b4adb70b-0f67-4b94-a19a-d3337cd79eeb/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Order o=new Order();
        o.num=1;
        o.id=123;
        o.date=&quot;2022년12월2일&quot;;
        o.name=&quot;홍길동&quot;;
        o.pnum=15;
        o.add=&quot;부산시 부산진구 동천로&quot;;

        o.prn();
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/f56d6fba-0685-4284-be91-45297f223813/image.png" alt=""></p>
<hr>
<blockquote>
</blockquote>
<ul>
<li>클래스 정의 Student</li>
<li>멤버변수 : int num, String name, int html, int java, int db</li>
<li>메서드 리턴할 형int sum(), double avg() </li>
</ul>
<p><strong>1. Student 클래스 만들기</strong>
- 생성자 : 기억장소 할당, 초기값 할당
- (기본자료형 0, 참조형은 null)
- 기본생성자(디폴트생성자) : 생략가능
- 자바 번역할 때 자동으로 기본생성자는 인식</p>
<pre><code class="language-java">    public Student() {
        System.out.println(&quot;Student() 생성자 호출&quot;);
        //기억장소할당
        //초기값 할당
        num=1;
        name=&quot;홍길동&quot;;
        html=60;
        java=60;
        db=60;
    } -&gt; 기본생성자
    public class Student {
        public int num;
        public String name;
        public int html;
        public int java;
        public int db;

        public int sum() {
            return html+java+db;
        }
        public double avg() {
            return (html+java+db)/3;
        }

    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/5ee3f045-cd1e-4ff7-b4a3-400ba8f8885e/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Student s=new Student();
        s.num=1;
        s.name=&quot;홍길동&quot;;
        s.html=90;
        s.java=100;
        s.db=80;

        s.sum();
        s.avg();
        System.out.println(&quot;학생 번호 : &quot;+s.num);
        System.out.println(&quot;학생 이름 : &quot;+s.name);
        System.out.println(&quot;학생의 점수합계 : &quot;+s.sum());
        System.out.println(&quot;학생의 점수평균 : &quot;+s.avg());
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/4d891ca3-a29c-4b82-b58b-5e06b5b34977/image.png" alt=""></p>
<p>=&gt; 기본생성자 호출
<img src="https://velog.velcdn.com/images/rian_k/post/fc13cfb9-48ff-4af8-874a-ee7bf05d721a/image.png" alt=""></p>
<hr>
<blockquote>
</blockquote>
<ul>
<li>클래스 정의 Car</li>
<li>멤버변수 String carname, int speed</li>
<li>메서드 리턴할 형int speedUp(10) speed 10증가하고 리턴</li>
<li>리턴할 형int speedDown(5) speed 5감소하고 리턴</li>
</ul>
<p><strong>1. Car 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Car {
        public Car() {
            carname=&quot;베뉴&quot;;
            speed=120;
        } // 기본생성자

        public String carname;
        public int speed;

        public int speedUp(int s) {
            speed=speed+s;
            return speed;
        }
        public int speedDown(int s) {
            speed=speed-5;
            return speed;
        }
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/035d8b8b-c407-4c76-8ae0-913fa510875a/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong></p>
<pre><code class="language-java">    public static void main(String[] args) {
        Car c=new Car();
        c.carname=&quot;venue&quot;;
        c.speed=110;

        c.speedUp(10);
        c.speedDown(5);
        System.out.println(&quot;차량 이름 : &quot;+c.carname);
        System.out.println(&quot;차속도 : &quot;+c.speed);
        System.out.println(&quot;스피드 10증가 : &quot; +c.speedUp(10));
        System.out.println(&quot;스피드 5감소 : &quot; +c.speedDown(5));
    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/d76ad2ee-d941-45cb-9794-c685a0229a3d/image.png" alt="">
=&gt; 기본생성자 호출
<img src="https://velog.velcdn.com/images/rian_k/post/8ebb5421-18fa-41be-9d21-95694b0412bc/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>Person 클래스 생성</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : 이름, 키, 몸무게</li>
<li>기본생성자</li>
<li>이름을 전달받아서 초기값 할당하는 생성자</li>
<li>이름 키 몸무게를 전달받아 초기값 할당하는 생성자</li>
</ul>
<p><strong>1. Person 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Person {
        // 기본생성자 =&gt; 생략가능
        public Person() {
            System.out.println(&quot;Person() 기본 생성자&quot;);
        }
        // 이름을 전달받아서 초기값 할당하는 생성자
        public Person(String n) {
            System.out.println(&quot;전달받은 이름 : &quot;+n);
            // 멤버변수 name 전달받은 이름으로 초기값 할당
            name=n;
        }
        // 이름 키 몸무게
        public Person(String a, float b, float c) {
            name=a;
            height=b;
            weight=c;
        }

        // 멤버변수
        public String name;
        public float height;
        public float weight;
        // 메서드()
        public void prn() {
            System.out.println(&quot;이름 : &quot;+name);
            System.out.println(&quot;키 : &quot;+height);
            System.out.println(&quot;몸무게 : &quot;+weight);
        }</code></pre>
<p><strong>2. 실행 클래스 만들기</strong>
(1) 기본생성자 호출</p>
<pre><code class="language-java">    Person p=new Person();
    p.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/5c245272-aa22-404d-afc1-9aa1bf645f1e/image.png" alt="">
(2) 이름을 전달해주는 생성자 호출</p>
<pre><code class="language-java">    Person p2=new Person(&quot;홍길자&quot;);
    p2.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/17235a7e-d24a-487f-845f-ae2e6efd74c9/image.png" alt="">
(3) 이름 키 몸무게를 전달하는 생성자 호출</p>
<pre><code class="language-java">    Person p3=new Person(&quot;홍길동&quot;, 186.5F, 65.3F);
    p3.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/8db5fb3f-f00e-4443-bb96-5886dd5fb143/image.png" alt=""></p>
<hr>
<blockquote>
<ul>
<li>member 클래스 생성</li>
</ul>
</blockquote>
<ul>
<li>멤버변수 : id, 비밀번호, 이름, 나이</li>
<li>기본생성자</li>
<li>초기값 할당하는 생성자</li>
<li>prn() 출력 메서드</li>
</ul>
<p><strong>1. Member 클래스 만들기</strong></p>
<pre><code class="language-java">    public class Member {
        public Member() {
            System.out.println(&quot;기본 생성자&quot;);
        }

        public Member(String a, int b, String c, int d) {    
            id=a;
            pass=b;
            name=c;
            age=d;
        }

        public String id;
        public int pass;
        public String name;
        public int age;

        public void prn() {
            System.out.println(&quot;아이디 : &quot;+id);
            System.out.println(&quot;비밀번호 :&quot;+pass);
            System.out.println(&quot;이름 : &quot;+name);
            System.out.println(&quot;나이 : &quot;+age);
        }

    }</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/9cf9055c-31f3-4555-99e5-c465b7ad294c/image.png" alt=""></p>
<p><strong>2. 실행 클래스 만들기</strong>
(1) 초기값 할당하는 생성자 호출</p>
<pre><code class="language-java">        Member m=new Member(&quot;Hong&quot;,1234,&quot;홍길동&quot;,25);
        m.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/3b546a05-05c7-4906-9b78-2628e746c98b/image.png" alt=""></p>
<p>(2) 기본 생성자 호출</p>
<pre><code class="language-java">        Member m2=new Member();
        m2.id=&quot;Kim&quot;;
        m2.pass=1111;
        m2.name=&quot;김길동&quot;;
        m2.age=30;

        m2.prn();</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/e316fe9c-ccd2-4b62-930e-64ce6f0b7261/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🖥️리눅스 설치 및 환경설정(22.10.28수업)]]></title>
            <link>https://velog.io/@rian_k/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95</link>
            <guid>https://velog.io/@rian_k/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%A4%EC%B9%98-%EB%B0%8F-%ED%99%98%EA%B2%BD%EC%84%A4%EC%A0%95</guid>
            <pubDate>Fri, 23 Dec 2022 01:19:22 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-리눅스">📌 리눅스</h2>
<p>- 정보시스템에서 소프트웨어를 구동할 수 있는 환경을 제공해주는 서버용으로 많이 사용되는 운영체제</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/70d1a1f5-d8f4-40c8-b8db-780cf4bd3dec/image.png" alt=""></p>
<ul>
<li><strong>가상머신 프로그램</strong>
- 데스크탑 IP주소 확인하기
WINDOWS : WIN + R → cmd → ipconfig</li>
</ul>
<p><img src="https://velog.velcdn.com/images/rian_k/post/fe92c410-b797-4039-93a2-7415c093fd2d/image.png" alt=""></p>
<ul>
<li><strong>가상머신 환경에서 네트워크 구성</strong>
- 외부 인터넷과 직접 통신할 수 있는 공인 IP 주소의 수는 많이 부족하기 때문에 필요한 경우 라우터를 통한 사설 IP 주소를 발급해 사용할 수 있음.
-가상머신 환경에서는 가상머신 소프트웨어에서 가상의 라우터를 구현하여 IP주소의 관리와 네트워크의 관리를 할 수 있음.
<img src="https://velog.velcdn.com/images/rian_k/post/173b8c53-cdc9-4603-bb8c-5701b99a0c91/image.png" alt=""></li>
</ul>
<hr>
<h2 id="📌-가상머신-소프트웨어-설치virtual-box">📌 가상머신 소프트웨어 설치(Virtual box)</h2>
<p>-&gt; <a href="https://www.virtualbox.org/">https://www.virtualbox.org/</a>
<img src="https://velog.velcdn.com/images/rian_k/post/1ca13e20-49bd-4f64-9795-376892721a27/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/1885c210-d4f6-4cce-9c73-792c8725bd8b/image.png" alt="">
- 가상머신을 생성할 호스트 운영체제에 맞는 소프트웨어 선택(ex. 윈도우즈 사용 → Windows hosts)
- 필요한 경우 Microsoft Visual C++ 재배포 가능 패키지 설치를 받아 설치해준다.
- 설치 중 해당 패키지를 요구하지 않으면 그냥 넘어가도 상관없음.</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/cc204ecc-bb65-4c1c-9834-62897398dd17/image.png" alt=""></p>
<p>- Microsoft Visual C++다운
<a href="https://learn.microsoft.com/ko-KR/cpp/windows/latest-supported-vc-redist?view=msvc-170">https://learn.microsoft.com/ko-KR/cpp/windows/latest-supported-vc-redist?view=msvc-170</a></p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/cbdd2e8d-6891-481b-bc19-b49e26fab0d5/image.png" alt="">
- 사용 중인 하드웨어 아키텍처에 맞는 파일 선택 후 다운로드 / 설치 진행
- 대부분의 환경은 x64로 선택 </p>
<p>- virtual box 설치 시 특별한 선택지는 없으며 NEXT / YES를 선택하여 설치를 진행
<img src="https://velog.velcdn.com/images/rian_k/post/9f42a633-7c80-4447-b738-99f6be0fe791/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/82cf28a6-d2cf-4c8e-8259-1418dc9d0116/image.png" alt="">
- 설치완료</p>
<hr>
<h2 id="📌-virtual-box의-기본-환경-설정">📌 Virtual box의 기본 환경 설정</h2>
<p>- 환경설정 메뉴 선택
<img src="https://velog.velcdn.com/images/rian_k/post/cc8a82e6-1805-4772-9286-202d70265ec3/image.png" alt="">
- 호스트 키 조합은 호스트 &lt;-&gt; 게스트 머신 간 키보드, 마우스 전환 시 사용하는 키
- 기본 값인 Right Control은 한국어키보드에서 사용할 수 없는 키이므로 다른 조합으로 바꿔 설정한다.</p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/7d4a3104-d7dc-41f6-a48c-16900404dd4a/image.png" alt=""></p>
<hr>
<h2 id="📌-가상머신-생성하기">📌 가상머신 생성하기</h2>
<p><img src="https://velog.velcdn.com/images/rian_k/post/5e1ca7b0-0a8e-4126-a54b-f381a43d0f53/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/968f2e94-ff00-499e-ac99-531f321c78bc/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/bc7dfb08-3ca0-4659-83ae-85be37d5b160/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/4e7295d3-8ab0-4d1e-a2d4-84ce39f02e0e/image.png" alt=""></p>
<hr>
<h2 id="📌-리눅스-운영체제-이미지-파일-받기sentos7">📌 리눅스 운영체제 이미지 파일 받기(Sentos7)</h2>
<ul>
<li><a href="https://www.centos.org/">https://www.centos.org/</a>
- 기존 Centos 최신 버전인 8버전은 사후지원 기간 만료로 더 이상 사용되지 않음.
- 구버전인 7버전은 24년도까지 유지보수 계획
<img src="https://velog.velcdn.com/images/rian_k/post/cd227790-dbe9-48c3-b272-32b089f7b8e9/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/222e9fc2-0a15-4997-9cbe-baa851ee7947/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/d5ed692e-6086-4c6e-ac27-914e84aaf97a/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/79af650f-d99a-40c1-a3b2-0ea737ac3799/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/d006bdb8-be5c-4005-802f-400d10e8362e/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/f8eae493-ad00-4331-a167-0f08e1e3c2c6/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/272c5621-4a19-44d0-a322-1fd401fb546a/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/c0100bc7-722b-4334-8ddc-7f6595405445/image.png" alt=""></li>
</ul>
<hr>
<h2 id="📌-리눅스-설치하기">📌 리눅스 설치하기</h2>
<p>- 시작
<img src="https://velog.velcdn.com/images/rian_k/post/42ce2146-5518-412f-b4fc-183188b18180/image.png" alt="">
- 운영체제 설치 진행 =&gt; 선택하여 실행
- 설치 이미지 검사 후 운영체제 설치 진행
<img src="https://velog.velcdn.com/images/rian_k/post/7cfa10cf-ad26-46a3-ab4b-5e19f2140e93/image.png" alt="">
- 사용하는 언어는 그대로(English)
<img src="https://velog.velcdn.com/images/rian_k/post/65e12fa9-c29e-46b6-b830-c14789e57de6/image.png" alt="">
- 서버 시간대 설정
<img src="https://velog.velcdn.com/images/rian_k/post/899a4d6b-f7aa-4d92-bcc3-2a64a694289c/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/c574aa92-1722-4bdb-b9aa-6498adb2864d/image.png" alt="">
- 파티셔닝 설정 확인
- 자동 설정값 확인 다른 설정값 그대로 유지
<img src="https://velog.velcdn.com/images/rian_k/post/95d38f6f-0f6b-4058-b248-7cd7c00d5676/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/0ae299cc-026e-478f-86d4-fd6d3a40ab18/image.png" alt="">
- 네트워크 설정 선택
<img src="https://velog.velcdn.com/images/rian_k/post/7fcd8cfd-d801-44c9-b261-19674889df7c/image.png" alt="">
- host name : 서버의 별명값
<img src="https://velog.velcdn.com/images/rian_k/post/2933f8ad-fdbd-4e24-bfc5-6fd1b101a37b/image.png" alt="">
- 네트워크 자동 연결 설정
<img src="https://velog.velcdn.com/images/rian_k/post/d3890a55-d7ab-454d-81fc-4d35b5a08292/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/357182a3-c4e2-45d8-a725-c0b0c1629f72/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/41337734-a700-41a8-abcd-d8d2011b7a78/image.png" alt=""></p>
<hr>
<h2 id="📌-리눅스-기본-생성-계정">📌 리눅스 기본 생성 계정</h2>
<p>- root : 관리자 계정
<img src="https://velog.velcdn.com/images/rian_k/post/6398aca7-f3d2-4e16-ae35-35e3c5ace66d/image.png" alt="">
- root 계정 패스워드 설정
<img src="https://velog.velcdn.com/images/rian_k/post/4423faec-f9b2-4986-a33c-152c34b43f72/image.png" alt="">
- 이후 설정 완료 후 시스템 재시작
<img src="https://velog.velcdn.com/images/rian_k/post/eea0041d-6125-453d-98f4-2c6646e92ddd/image.png" alt=""></p>
<ul>
<li><strong>리눅스 기본 환경(TUI)</strong>
- 계정 로그인 하기
<img src="https://velog.velcdn.com/images/rian_k/post/cbf5f93a-f0ec-4d5e-b1a0-4893972cc139/image.png" alt=""></li>
<li><strong>SSH(보안 원격 접속 프로토콜)</strong>
- 네트워크 서비스를 사용하기 위해서는 사용할 서버의 주소 값과 해당 서비스가 사용하는 포트 번호를 미리 확인하고 사용한다.
<img src="https://velog.velcdn.com/images/rian_k/post/1ba785ac-1a8a-4762-b156-6efa9cbeedc7/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/51c60147-bfdc-420d-b67b-cb99477362bf/image.png" alt=""></li>
<li><strong>리눅스 네트워크 주소 확인</strong>
- ip addr show : 리눅스 환경에서 현재 서버의 네트워크 설정값 정보 조회
&#160;&#160;&#160;현재 장치가 두개가 있고 그 중 2번 장치가 외부와 연결된 네트워크 장치
&#160;&#160;&#160;inet 항목의 숫자4개로 된 값이 서버의 네트워크 주소값이다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻웹 문서에 폼 삽입하기(22.11.01 수업)]]></title>
            <link>https://velog.io/@rian_k/%EC%9B%B9-%EB%AC%B8%EC%84%9C%EC%97%90-%ED%8F%BC-%EC%82%BD%EC%9E%85%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@rian_k/%EC%9B%B9-%EB%AC%B8%EC%84%9C%EC%97%90-%ED%8F%BC-%EC%82%BD%EC%9E%85%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 20 Dec 2022 08:32:25 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-폼-삽입하기">📌 폼 삽입하기</h2>
<blockquote>
</blockquote>
<ul>
<li><strong>입력 양식(폼)태그 : 사용자가 입력할 수 있게 만드는 태그</strong>
- 폼안에 입력한 내용을 가지고 action연결페이지로 이동
- 입력한 데이터를 들고가는 방식 method = get, post
```<form action="연결주소"  method="입력 데이터 전달방식"></li>
<li>get방식 : 주소줄에 보이면서 (id=kim 이름=값)<pre><code>             -&gt; http://localhost:8080/webProject/html1/ex1.html?id=kim
          : 가장 많이 사용, 기본방식</code></pre>   post방식 : 주소줄에 안 보이면서 데이터 전달<pre><code>              -&gt; http://localhost:8080/webProject/html1/ex1.html
           : 특이한 경우 사용, 비밀번호 포함</code></pre></li>
<li>명령어
- fieldset = 영역지정태그
- label = 글자 영역지정
- maxlength = 글자 수(길이제한)
- input type= url =&gt; 주소제어
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;email =&gt; 주소제어
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;tel =&gt; 모바일에서 숫자키보드
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;submit =&gt; 전송을 하는 버튼
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;button =&gt; 아무 기능 없는 버튼
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;reset =&gt; 취소 초기화
- checked = 처음부터 체크되어 있음
- autofocus = 자동으로 입력커서 표시
- placeholder = 힌트 내용 표시(설명글)
- readonly = 읽기 전용(수정 불가)
- required = 필수조건 제어</li>
</ul>
<h3 id="test1">[Test1]</h3>
<pre><code class="language-java">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;title&gt;복습하기&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;입력 양식&lt;/h1&gt;
&lt;form action=&quot;ex1.html&quot; method=&quot;post&quot;  target=&quot;_blank&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;필수입력사항&lt;/legend&gt;
&lt;label&gt;아이디 : &lt;/label&gt;&lt;input type=&quot;text&quot; name=&quot;id&quot; value=&quot;kim&quot;&gt;&lt;br&gt;
&lt;label&gt;비밀번호 : &lt;/label&gt;&lt;input type=&quot;password&quot; name=&quot;pass&quot; &gt;&lt;br&gt;
&lt;/fieldset&gt;

&lt;fieldset&gt;
&lt;legend&gt;선택사항&lt;/legend&gt;
&lt;label&gt;성별 : &lt;/label&gt;
&lt;input type=&quot;radio&quot; name=&quot;ra&quot; value=&quot;남&quot;&gt;남
&lt;input type=&quot;radio&quot; name=&quot;ra&quot; value=&quot;여&quot;&gt;여&lt;br&gt;
&lt;/fieldset&gt;

 &lt;fieldset&gt;
 &lt;label&gt;취미 : &lt;/label&gt;
 &lt;input type=&quot;checkbox&quot; name=&quot;ch&quot; value=&quot;여행&quot;&gt;여행
 &lt;input type=&quot;checkbox&quot; name=&quot;ch&quot; value=&quot;게임&quot;&gt;게임&lt;br&gt;

 &lt;label&gt;등급 : &lt;/label&gt;
 &lt;select&gt;
     &lt;option&gt;목록1&lt;/option&gt;
     &lt;option&gt;목록2&lt;/option&gt;
     &lt;option&gt;목록3&lt;/option&gt;
 &lt;/select&gt;&lt;br&gt;

 &lt;label&gt;자기소개&lt;/label&gt;
 &lt;textarea rows=&quot;10&quot; cols=&quot;20&quot;&gt;&lt;/textarea&gt;
 &lt;/fieldset&gt;

&lt;input type=&quot;submit&quot; value=&quot;전송버튼&quot;&gt;&lt;br&gt;

&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/b198fcbe-8f8b-41d9-b811-e73dd005919c/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[💻웹 문서에 이미지/오디오/비디오, 하이퍼링크 넣기(22.11.01 웹수업)]]></title>
            <link>https://velog.io/@rian_k/%EC%9B%B9-%EB%AC%B8%EC%84%9C%EC%97%90-%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%98%A4%EB%94%94%EC%98%A4%EB%B9%84%EB%94%94%EC%98%A4-%EB%84%A3%EA%B8%B0</link>
            <guid>https://velog.io/@rian_k/%EC%9B%B9-%EB%AC%B8%EC%84%9C%EC%97%90-%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%98%A4%EB%94%94%EC%98%A4%EB%B9%84%EB%94%94%EC%98%A4-%EB%84%A3%EA%B8%B0</guid>
            <pubDate>Thu, 15 Dec 2022 08:34:09 GMT</pubDate>
            <description><![CDATA[<h2 id="📌-이미지-넣기">📌 이미지 넣기</h2>
<blockquote>
<ul>
<li>웹에서 사용하는 이미지 : .jpg .gif .png,,,</li>
</ul>
</blockquote>
<ul>
<li>jpg : 사진파일, 색상과 명암 다양하게 표현</li>
<li>jif : 최대 256개 색을 이용, 작은 아이콘, 블릿 이미지
ex) 로고</li>
<li>png : 용량이작다, 투명한 배경, 색상 다양하게 표현, 크기 작게 만듬, 웹에서 많이 사용
```java</li>
<li><img> = 이미지액자</li>
<li><img src="1.jpg">
-> 이미지액자에 1.jpg를 불러온다</li>
<li><img src="10.jpg" alt="이미지 없음">
-> 없는 이미지를 불러온 경우
-> alt = 이미지 설명하는 구문</li>
<li><img src="1.jpg" width="300" height="500">
 -> width = 너비,  height = 높이</li>
<li>픽셀 :  화면을 이루는 하나의 빛의 단위 -&gt; 고정 크기</li>
<li>해상도(선명도) : 화면을 이루는 빛의 개수</li>
<li>% : 화면을 기준으로 몇 퍼센트 적용하는 단위 -&gt; 상대적 크기(브라우저 크기에 따라)</li>
<li>border = 테두리 선 속성<ul>
<li>이미지가 다른 폴더에 있을 때*<img src="images/5.jpg"></li>
</ul>
</li>
<li><blockquote>
<p>images/5.jpg : images폴더안에 5번사진 불러오기</p>
</blockquote>
<pre><code></code></pre></li>
</ul>
<h3 id="test5">[test5]</h3>
<pre><code class="language-java">    &lt;!DOCTYPE html&gt;
    &lt;html&gt;
    &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;복습하기&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
    &lt;img src=&quot;1.jpg&quot; width=&quot;300px&quot; height=&quot;500&quot; border=&quot;10&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;10.jpg&quot; alt=&quot;이미지 없음&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;2.jpg&quot; width=&quot;50%&quot; height=&quot;50%&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;images/5.jpg&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;images/6.jpg&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;3.jpg&quot;&gt;&lt;br&gt;
    &lt;img src=&quot;4.jpg&quot;&gt;&lt;br&gt;
    &lt;/body&gt;
    &lt;/html&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/37aa1a0a-d642-4aed-be33-56e547d706db/image.png" alt=""></p>
<ul>
<li>상위폴더에 이미지 넣기
- 상대참조 : 현 파일을 기준으로 참조
- . : 현재 위치(폴더) = 생략가능,  .. : 상위폴더<pre><code class="language-java">  &lt;h1&gt; html2폴더에있는  3.jpg&lt;/h1&gt; 
  &lt;img src=&quot;../html2/3.jpg&quot;&gt;&lt;br&gt;
  &lt;h1&gt; html2폴더에 있는 images폴더에 4.jpg &lt;/h1&gt;
  &lt;img src=&quot;../html2/images/4.jpg&quot;&gt;&lt;br&gt;</code></pre>
&#160;&#160;&#160;&#160;&#160;&#160;- 절대참조 : /를 기준으로 참조 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : 웹 서버에서 절대 주소를 기준으로 참조<pre><code class="language-java">  &lt;h1&gt;/루트 webProject폴더 안에 html2폴더 images폴더 4.jpg&lt;/h1&gt;
  &lt;img src=&quot;/webProject/html2/images/4.jpg&quot;&gt;&lt;br&gt;
  &lt;h1&gt;/루트 webProject폴더 안에 html1폴더 images폴더 1.jpg&lt;/h1&gt;
  &lt;img src=&quot;/webProject/html1/1.jpg&quot;&gt;&lt;br&gt;</code></pre>
</li>
</ul>
<h3 id="⚡-연습하기---ex6">⚡ 연습하기 - [ex6]</h3>
<pre><code class="language-java">    &lt;!DOCTYPE html&gt;
    &lt;html&gt;
    &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;복습하기&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
    &lt;h1&gt;수습 국원 모집&lt;/h1&gt;
    &lt;h2&gt;방송에 관심 있는 새내기 여러분 환영합니다&lt;/h2&gt;
    &lt;p&gt;교내 방송국에서 신입생을 대상으로 수습 국원을 모집합니다. 학부나 전공에 상관없습니다.&lt;br&gt;
평소 방송에 관심있었던 여러 학우들의 지원바랍니다.&lt;/p&gt;

    &lt;ul&gt;
        &lt;li&gt;&lt;b&gt;모집 기간 :&lt;/b&gt; 3월 2일 ~ 3월 11일
        &lt;li&gt;&lt;b&gt;모집 분야 :&lt;/b&gt; 아나운서, PD, 엔지니어
        &lt;li&gt;&lt;b&gt;지원 방법 :&lt;/b&gt; 양식 작성 후 이메일 접수&lt;br&gt;
        &lt;i&gt;지원서 양식은 교내 방송국 홈페이지 공지 게시판에 있습니다.&lt;/i&gt;
    &lt;/ul&gt;    

    &lt;h3&gt;혜택&lt;/h3&gt;
    &lt;ol type=&quot;a&quot;&gt;
        &lt;li&gt;수습기자 활동 중 소정의 활동비 지급&lt;/li&gt;
        &lt;li&gt;정기자로 진급하면 장학금 지급&lt;/li&gt;
    &lt;/ol&gt;
    &lt;img src=&quot;images/mic.jpg&quot;&gt;
    &lt;/body&gt;
    &lt;/html&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/2b82def7-1616-4433-92a0-f05047e3b796/image.png" alt=""></p>
<hr>
<h2 id="📌-비디오오디오-pdf-파일-넣기">📌 비디오/오디오, pdf 파일 넣기</h2>
<blockquote>
<ul>
<li>오디오 비디오 삽입 object, embed, audio, video</li>
</ul>
</blockquote>
<ul>
<li>비디오 : mp4, 오디오 : mp3, mp4</li>
</ul>
<h3 id="test6">[test6]</h3>
<pre><code class="language-java">    &lt;!DOCTYPE html&gt;
    &lt;html&gt;
    &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;복습하기&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
    &lt;h1&gt;오디오 medias 폴더 spring.mp3&lt;/h1&gt;
    &lt;embed src=&quot;medias/spring.mp3&quot;&gt;&lt;/embed&gt;
    &lt;h1&gt;오디오 medias 폴더 spring.mp3&lt;/h1&gt;
    &lt;audio src=&quot;medias/spring.mp3&quot; controls&gt;&lt;/audio&gt;
    &lt;h1&gt;비디오 medias 폴더 salad.mp4&lt;/h1&gt;
    &lt;video src=&quot;medias/salad.mp4&quot; width=&quot;700&quot; controls&gt;&lt;/video&gt;
    &lt;h1&gt;비디오 medias 폴더 flower.mp4&lt;/h1&gt;
    &lt;video src=&quot;medias/flower.mp4&quot; width=&quot;700&quot; muted autoplay loop&gt;&lt;/video&gt;
            // -&gt; 크롬브라우저는  muted 해야 자동 재생가능
    &lt;h1&gt;pdf파일&lt;/h1&gt;
    &lt;object width=&quot;900&quot; height=&quot;800&quot; data=&quot;product.pdf&quot;&gt;&lt;/object&gt;
    &lt;/body&gt;
    &lt;/html&gt;</code></pre>
<p><img src="https://velog.velcdn.com/images/rian_k/post/af6f712c-ab11-4cf6-ab7a-c08b2ff22ba1/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/rian_k/post/8706d41a-d824-4973-92f2-dc5c98fd7f7b/image.png" alt="">
<img src="https://velog.velcdn.com/images/rian_k/post/c3c0327a-248a-4974-8532-5d010541c299/image.png" alt=""></p>
<hr>
<h2 id="📌-하이퍼링크-넣기">📌 하이퍼링크 넣기</h2>
<blockquote>
<ul>
<li>명령어 </li>
</ul>
</blockquote>
<pre><code>- &lt;a href=&quot;링크할 주소&quot;&gt;텍스트 또는 이미지&lt;/a&gt;
- target=&quot;&quot; : 새 창 뛰우기</code></pre><h3 id="test7">[test7]</h3>
<p><strong>(1)</strong></p>
<pre><code class="language-java">    &lt;h1&gt;하이퍼링크 : 웹페이지, 웹사이트, 이미지, 실행파일, ...모든파일 연결&lt;/h1&gt;
    &lt;a href=&quot;ex1.html&quot;&gt;웹페이지 하이퍼링크&lt;/a&gt;
    &lt;a href=&quot;http://www.naver.com/&quot;&gt;네이버사이트&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;1.jpg&quot;&gt;1.jpg 이미지&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;product.pdf&quot;&gt;product.pdf 이미지 연결&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;medias/spring.mp3&quot;&gt;오디오 파일 연결&lt;/a&gt;&lt;br&gt;    </code></pre>
<p>=&gt; 현재창에서 하이퍼링크주소로 넘어간다.</p>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/9043311b-ef3e-4be3-ab7b-5a91f6563c53/image.png" alt=""></p>
<p><strong>(2)</strong></p>
<pre><code class="language-java">    &lt;h1&gt;새창으로 하이퍼링크&lt;/h1&gt;
    &lt;a href=&quot;ex2.html&quot;  target=&quot;_blank&quot;&gt;웹페이지 새창으로 하이퍼링크&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;2.jpg&quot;  target=&quot;_blank&quot;&gt;2.jpg 이미지 연결&lt;/a&gt;&lt;br&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/ea5928e9-edb5-4f9f-a1c0-5552b785843e/image.png" alt=""></p>
<p><strong>(3)</strong></p>
<pre><code class="language-java">    &lt;h1&gt;연결파일 다운로드&lt;/h1&gt;
    &lt;a href=&quot;ex3.html&quot;  download&gt;웹페이지 다운로드&lt;/a&gt;&lt;br&gt;
    &lt;a href=&quot;3.jpg&quot;  download&gt;3.jpg 이미지 다운로드&lt;/a&gt;&lt;br&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
<img src="https://velog.velcdn.com/images/rian_k/post/092ffcd4-859a-4e1f-ae56-e8e52e6675af/image.png" alt=""></p>
<p><strong>(4)</strong></p>
<pre><code class="language-java">    &lt;!-- 목록 --&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;ex4.html&quot;&gt;ex4.html 하이퍼링크&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;ex4.html&quot; target=&quot;_blank&quot;&gt;ex4.html 새창으로 하이퍼링크&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;4.jpg&quot; download&gt;4.jpg 이미지 다운로드&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;</code></pre>
<p>🖥️ <strong>결과물</strong></p>
<p>1 -&gt; 현재창으로 하이퍼링크 연결
<img src="https://velog.velcdn.com/images/rian_k/post/3a2914bd-31d5-449e-ad42-c515a9ccd026/image.gif" alt=""></p>
<p>2 -&gt; 새창으로 하이퍼링크 연결(target=&quot;_blank&quot;)
<img src="https://velog.velcdn.com/images/rian_k/post/c8a28ae1-33a3-43d8-9b7b-901cbb4a3fd0/image.gif" alt="">
3 -&gt; 이미지 다운로드
<img src="https://velog.velcdn.com/images/rian_k/post/cb5a35bb-0ab0-44e3-8cc3-54492361f429/image.gif" alt=""></p>
<p><strong>(4)</strong></p>
<pre><code class="language-java">    &lt;h1&gt;이미지에 하이퍼링크 적용&lt;/h1&gt;
    &lt;a href=&quot;ex5.html&quot;&gt;&lt;img src=&quot;1.jpg&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;http://www.daum.net/&quot;&gt;&lt;img src=&quot;2.jpg&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;3.jpg&quot;&gt;&lt;img src=&quot;3.jpg&quot;&gt;&lt;/a&gt;</code></pre>
<p>🖥️ <strong>결과물</strong>
1.
<img src="https://velog.velcdn.com/images/rian_k/post/b89e2837-22b8-4e7d-96a7-24739db639ef/image.gif" alt="">
2.
<img src="https://velog.velcdn.com/images/rian_k/post/9c7bb422-f392-4689-b5ad-68b67d433af9/image.gif" alt="">
3.
<img src="https://velog.velcdn.com/images/rian_k/post/1b36a646-f856-4490-943c-f3f9fc5e1f65/image.gif" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>