<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Loghada</title>
    <link>https://loghada.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 06:28:12 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>KJ Seong</managingEditor>
    <image>
      <title>Loghada</title>
      <url>https://tistory1.daumcdn.net/tistory/4255315/attach/64b32feafbba431dbcd6f3aba259376a</url>
      <link>https://loghada.tistory.com</link>
    </image>
    <item>
      <title>[Oracle] 오라클 클라우드(Cloud) DB 생성과 SQL*Developer 연결</title>
      <link>https://loghada.tistory.com/32</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;내가 오라클 클라우드를 사용한 계기&lt;/blockquote&gt;
&lt;p&gt;프로젝트 중 여러명이 DB에 붙어서 작업을 해야하는 상황이 있었다. 하나의 Local PC에 DB를 만들어 놓고 접속하는 방식으로 진행을 하려 했으나, 지속적으로 PC가 켜져있어야하고 방화벽 설정으로 인해 종종 DB 연결이 끊기는 현상이 자주 발생했다. 결국, 찾은 방법이 월렛만 갖고 있으면 누구나 접속 가능한 '오라클 클라우드' 서비스였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오라클 자율운영 데이터베이스(APT DB) 생성&lt;/blockquote&gt;
&lt;p&gt;01. 오라클 클라우드 사이트에서 회원 가입하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 11.08.55.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhEimf/btqKTGPySWx/bcPQuffiqecKiDaOBX5XM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhEimf/btqKTGPySWx/bcPQuffiqecKiDaOBX5XM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhEimf/btqKTGPySWx/bcPQuffiqecKiDaOBX5XM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhEimf%2FbtqKTGPySWx%2FbcPQuffiqecKiDaOBX5XM1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 11.08.55.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;오라클 통합 로그인이 아닌 오라클 클라우드 접속을 위한 아이디를 생성해야하는데 회원가입이 굉장히 까다롭다. 회원 가입 도중 신용카드를 등록해야하는데, 이때 가장 중요한건 신용카드사에 저장한 주소와 내가 회원가입시 적은 주소가 동일해야한다. 신용카드사에 전화를 걸어 외국 사이트 회원 가입을 위해 영문주소 확인 및 추가를 추천한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;02. 오라클 클라우드 사이트 접속/로그인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.08.21.png&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;942&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vYSS1/btqKOAJXX9I/KmWcqkEKEjK6pkZ7Nzchj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vYSS1/btqKOAJXX9I/KmWcqkEKEjK6pkZ7Nzchj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vYSS1/btqKOAJXX9I/KmWcqkEKEjK6pkZ7Nzchj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvYSS1%2FbtqKOAJXX9I%2FKmWcqkEKEjK6pkZ7Nzchj1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.08.21.png&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;942&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;03. 자율운행 트랜젝션 처리(ATP) 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.08.37.png&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;942&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBLT2k/btqKNnjV5ve/xokh3khNzwjzlYljEyRn9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBLT2k/btqKNnjV5ve/xokh3khNzwjzlYljEyRn9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBLT2k/btqKNnjV5ve/xokh3khNzwjzlYljEyRn9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBLT2k%2FbtqKNnjV5ve%2Fxokh3khNzwjzlYljEyRn9k%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.08.37.png&quot; data-origin-width=&quot;1351&quot; data-origin-height=&quot;942&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;04. 자율운영 데이터 베이스 생성 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.09.28.png&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;898&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5wEVg/btqKPUhdK0H/8kWmSp7arjofKGmAMH8ic0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5wEVg/btqKPUhdK0H/8kWmSp7arjofKGmAMH8ic0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5wEVg/btqKPUhdK0H/8kWmSp7arjofKGmAMH8ic0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5wEVg%2FbtqKPUhdK0H%2F8kWmSp7arjofKGmAMH8ic0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.09.28.png&quot; data-origin-width=&quot;1307&quot; data-origin-height=&quot;898&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;05. DB 이름/비밀번호/세부 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.13.34.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;1169&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJE2CP/btqKTFb2Z4F/uW1d68kYX0CsknNB8hNzzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJE2CP/btqKTFb2Z4F/uW1d68kYX0CsknNB8hNzzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJE2CP/btqKTFb2Z4F/uW1d68kYX0CsknNB8hNzzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJE2CP%2FbtqKTFb2Z4F%2FuW1d68kYX0CsknNB8hNzzK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.13.34.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;1169&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.13.43.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;1169&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wngim/btqKTGvguWf/DPubFWU7dMeBcFTnqPdDg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wngim/btqKTGvguWf/DPubFWU7dMeBcFTnqPdDg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wngim/btqKTGvguWf/DPubFWU7dMeBcFTnqPdDg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwngim%2FbtqKTGvguWf%2FDPubFWU7dMeBcFTnqPdDg1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.13.43.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;1169&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;06. DB 접속을 위해 전자 지갑 저장하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.15.53.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vcemx/btqKNnc5zrV/YREaZBzgUlpwJXibbZJ1Yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vcemx/btqKNnc5zrV/YREaZBzgUlpwJXibbZJ1Yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vcemx/btqKNnc5zrV/YREaZBzgUlpwJXibbZJ1Yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvcemx%2FbtqKNnc5zrV%2FYREaZBzgUlpwJXibbZJ1Yk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-13 오후 10.15.53.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;SQL*Developer로 클라우드 접속하기&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;Oracle SQL*Developer를 사용하여 클라우드 접속을 위해선 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer를 다운받아야한다. 오라클 서버 설치시 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer가 자동으로 설치되지만, 이 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer는 버젼이 낮어 클라우드 접속 옵션이 없다. 클라우드 접속을 위해선 오라클 사이트에서 최신 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer를 설치해야한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer 설치 사이트: &lt;a href=&quot;https://www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;나의 경우 기존에 설치된 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer는 4. 대 버젼이었고 새롭게 설치한 &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer는 20.2.04 버젼이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;01. &lt;span style=&quot;color: #333333;&quot;&gt;SQL*Developer에 들어가 새로운 접속을 위해 접속&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;화면 캡처 2020-10-13 232656.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNfbmC/btqKSfSsis4/aT0IGA2D2uIURpdcZ2lJj0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNfbmC/btqKSfSsis4/aT0IGA2D2uIURpdcZ2lJj0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNfbmC/btqKSfSsis4/aT0IGA2D2uIURpdcZ2lJj0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNfbmC%2FbtqKSfSsis4%2FaT0IGA2D2uIURpdcZ2lJj0%2Fimg.jpg&quot; data-filename=&quot;화면 캡처 2020-10-13 232656.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;02. 새로운 접속 설정을 위해 항목을 설정하고 '전자지갑'을 선택한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;화면 캡처 2020-10-15 010703.jpg&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/osMtj/btqKXi2RiH5/BRX9UMmOombhEKDjsfEHm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/osMtj/btqKXi2RiH5/BRX9UMmOombhEKDjsfEHm0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/osMtj/btqKXi2RiH5/BRX9UMmOombhEKDjsfEHm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FosMtj%2FbtqKXi2RiH5%2FBRX9UMmOombhEKDjsfEHm0%2Fimg.jpg&quot; data-filename=&quot;화면 캡처 2020-10-15 010703.jpg&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-15 오전 1.14.08.png&quot; data-origin-width=&quot;2432&quot; data-origin-height=&quot;826&quot; width=&quot;765&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AH3sO/btqKXKSnuqa/haIRSYDBBFt0Tm78SIq5c0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AH3sO/btqKXKSnuqa/haIRSYDBBFt0Tm78SIq5c0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AH3sO/btqKXKSnuqa/haIRSYDBBFt0Tm78SIq5c0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAH3sO%2FbtqKXKSnuqa%2FhaIRSYDBBFt0Tm78SIq5c0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-15 오전 1.14.08.png&quot; data-origin-width=&quot;2432&quot; data-origin-height=&quot;826&quot; width=&quot;765&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;03. 모든 설정이 끝난 후 &quot;테스트 -&amp;gt; 성공확인 -&amp;gt; 저장 -&amp;gt; 접속&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Oracle</category>
      <category>Oracle</category>
      <category>OrcleCloud</category>
      <category>SQL</category>
      <category>오라클</category>
      <category>클라우드</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/32</guid>
      <comments>https://loghada.tistory.com/32#entry32comment</comments>
      <pubDate>Thu, 15 Oct 2020 01:21:47 +0900</pubDate>
    </item>
    <item>
      <title>[파이썬] 람다 표현식(Lambda Expression)</title>
      <link>https://loghada.tistory.com/31</link>
      <description>&lt;blockquote data-ke-size=&quot;size26&quot; data-ke-style=&quot;style2&quot;&gt;람다 표현식&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;람다 표현식은 함수의 기능을 런타임에서 생성해서 사용할 수 있는 익명 함수입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;람다 표현식의 장점은,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffffcb; font-family: 'Nanum Gothic';&quot;&gt;1. 간결함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffffcb; font-family: 'Nanum Gothic';&quot;&gt;2. 메모리 절약&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;보통 함수는 def 라는 키워드를 통해서 기능을 정의하고 여러 코드에서 해당 함수를 호출하여 사용합니다. 하지만, 람다 표현식은 한번 쓰고 버리는 일시적인 함수(이름없는 함수, 익명 함수)입니다. 함수를 간편하게 작성할 수 있어서 다른 함수의 인수를 넣을 때 주로 사용합니다. 또한,&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;한 번 쓰이고 다음 라인으로 넘어가면 힙(heap) 메모리 영역에서 제거되어 메모리 절약에 대한 장점이 있습니다. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;하지만, 이러한 간결함으로 인해 지나치게 람다 표현식을 사용하게 되면 코드의 가독성을 떨어트리는 단점이 있습니다. 그렇기에 적시적소에 람다 표현식을 사용하는 센스가 필요합니다!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;람다 함수 예제,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;보통 함수&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602472789441&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def sum(x, y):
	return x + y&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;람다로 표현한 함수&lt;/p&gt;
&lt;pre id=&quot;code_1602472820753&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sum = lambda x, y : x + y&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;구글 파이썬 스타일 가이드에서 제공한 람다 표현식 가이드&lt;/blockquote&gt;
&lt;h3 id=&quot;210-lambda-functions&quot;&gt;2.10 Lambda Function&lt;/h3&gt;
&lt;p&gt;2.10.1 정의&lt;/p&gt;
&lt;p&gt;람다 함수는 문장이 아닌 표현으로 익명 함수를 정의한다. 람다 함수는 map() 이나 filter()와 같은 고차 함수에 대한 callbacks(콜백)이나 operator(연산자)를 정의하는 데 사용된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.2 장점&lt;/p&gt;
&lt;p&gt;간결하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.3 단점&lt;/p&gt;
&lt;p&gt;로컬 기능보다 읽기 및 디버깅이 더 어렵다. 이름이 없다는 것은 흐름을 파악하는데 더 이해하기 어렵다는 것을 의미한다. 함수에 표현식만 포함될 수 있기 때문에 표현성이 제한된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.4&lt;/p&gt;
&lt;p&gt;한줄 짜리 코드를 작성하기가 좋다. 람다 함수의 내부 문자 코드 길이가 60-80보다 길면 중첩 함수를 사용하는게 좋다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;더하기, 빼기, 곱하기 같은 &lt;span style=&quot;color: #333333;&quot;&gt;보통의 연산자는 람다 함수 보다는 operator 모듈의 함수를 하용하는게 더 나을 수 있다. 예를 들어,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602474848985&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;operator.mul to lambda x, y: x * y&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;210-lambda-functions&quot;&gt;2.10 Lambda Function&lt;/h3&gt;
&lt;p&gt;Okay for one-liners.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.1 Definition&lt;/p&gt;
&lt;p&gt;Lambdas define anonymous functions in an expression, as opposed to a statement. They are often used to define callbacks or operators for higher-order functions like&lt;span&gt;&amp;nbsp;&lt;/span&gt;map()&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;filter().&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.2 Pros&lt;/p&gt;
&lt;p&gt;Convenient.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.3 Cons&lt;/p&gt;
&lt;p&gt;Harder to read and debug than local functions. The lack of names means stack traces are more difficult to understand. Expressiveness is limited because the function may only contain an expression.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.10.4 Decision&lt;/p&gt;
&lt;p&gt;Okay to use them for one-liners. If the code inside the lambda function is longer than 60-80 chars, it&amp;rsquo;s probably better to define it as a regular&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://google.github.io/styleguide/pyguide.html#lexical-scoping&quot;&gt;nested function&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For common operations like multiplication, use the functions from the&lt;span&gt;&amp;nbsp;&lt;/span&gt;operator&lt;span&gt;&amp;nbsp;&lt;/span&gt;module instead of lambda functions. For example, prefer&lt;span&gt;&amp;nbsp;&lt;/span&gt;operator.mul&lt;span&gt;&amp;nbsp;&lt;/span&gt;to&lt;span&gt;&amp;nbsp;&lt;/span&gt;lambda x, y: x * y.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Data Analysis/Python</category>
      <category>python</category>
      <category>파이썬</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/31</guid>
      <comments>https://loghada.tistory.com/31#entry31comment</comments>
      <pubDate>Mon, 12 Oct 2020 12:57:02 +0900</pubDate>
    </item>
    <item>
      <title>[R] Rstudio 사용/설치하기 (Rstudio-server, R-base)</title>
      <link>https://loghada.tistory.com/29</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;R 사용하는 방법&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;'R'을 사용하기 위해선 &lt;b&gt;'R-Studio'&lt;/b&gt;를 사용하거나 &lt;b&gt;'RStudio-Server'를 통해 웹브라우저&lt;/b&gt;로 접속하여 사용하는 방법이 있다. 또, 한가지 방법으로는 &lt;b&gt;Jupyter_notebook에 'R' 커널&lt;/b&gt;을 연결한 뒤 사용하는 방법이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;현재 나는 메인으로 Mac 컴퓨터를 사용하고 있다. Mac에서도 Rstudio를 사용할 수 있는데, 이때 컴파일을 위해 'Xcode'를 설치해야한다. 하지만 'Xcode' 자체가 용량이 상당하다는 단점이 있다. 그래서 나는,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. Mac에 VMware를 사용하여 우분투를 설치&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 우분투에 R-base, Rstudio-Server를 설치&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3. 우분투에서 Rstudio-Server를 실행한 후&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4. Mac의 Safari(웹)에서 Rstudio를 사용&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이러한 과정으로 사용하고 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 방법이 있겠지만 일단 이번 포스팅에선 내가 R을 사용하기 위해 구축한 방법대로 설치 과정을 정리하려고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;R 설치 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;RStudio-Server를 설치하기 전에&lt;span style=&quot;background-color: #f6e199;&quot;&gt; R-Base와 Rtools를 먼저! 설치&lt;/span&gt;해야한다. 대략적인 과정은,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;R-base 설치 -&amp;gt; R-tools 설치 -&amp;gt; Rstudio-server&lt;/span&gt; 설치이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;1. 리눅스 우분투에서 'apt' 명령어를 사용하여 'R-Base' 설치&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602425669799&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#sudo를 잊지말자
&amp;gt; sudo apt install r-base&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.04.20.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;590&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzby9P/btqKDac54KC/tK93vaT3YUsNygBL6Akvvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzby9P/btqKDac54KC/tK93vaT3YUsNygBL6Akvvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzby9P/btqKDac54KC/tK93vaT3YUsNygBL6Akvvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzby9P%2FbtqKDac54KC%2FtK93vaT3YUsNygBL6Akvvk%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.04.20.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;590&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2. 'R-tools' 설치&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;R-base 설치 시 이미 'R-Tools'가 함께 설치되기 때문에 설치할 필요가 없다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;3-1. RStudio-Server 설치. R-base 설치 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.07.04.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;714&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCvErJ/btqKxQzWgdb/ohVLURaCUw4QZDSpPhsn7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCvErJ/btqKxQzWgdb/ohVLURaCUw4QZDSpPhsn7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCvErJ/btqKxQzWgdb/ohVLURaCUw4QZDSpPhsn7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCvErJ%2FbtqKxQzWgdb%2FohVLURaCUw4QZDSpPhsn7K%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.07.04.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;714&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;3-2. R-Server 설치 파일 다운&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602425900431&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'~/Downloads' 디렉토리에 다운받기 위해 'cd Downloads'로 'Downloads' 디렉토리로 이동 후 설치

wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1073-amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://rstudio.com/products/rstudio/download-server/debian-ubuntu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;Download RStudio Server for Debian &amp;amp; Ubuntu&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.07.50.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;714&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3LyaW/btqKDaxpz3S/eJne9B9g0vtgxB8CZFTLF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3LyaW/btqKDaxpz3S/eJne9B9g0vtgxB8CZFTLF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3LyaW/btqKDaxpz3S/eJne9B9g0vtgxB8CZFTLF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3LyaW%2FbtqKDaxpz3S%2FeJne9B9g0vtgxB8CZFTLF1%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.07.50.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;714&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;3-3. 설치파일 실행하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602426010779&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt install rstudio-server-1.3.1073-amd64.deb
sudo apt install ./rstudio-server-1.3.1073-amd64.deb

sudo apt-get install gdebi-core
sudo gdebi rstudio-server-1.3.1073-amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;배포 파일을 설치하는 방법 3가지&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-22863589-10a5-48f2-a795-10279cda8c6f&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(1) $ sudo gdebi -i 패키지파일.deb (내가 사용한 방법)&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-d9b722f8-ea81-459c-8f0e-72e6ebfb3c89&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(2) $ sudo dpkg -i 패키지파일.deb&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e816847f-f4c2-43c9-a4ae-58d7f2f83921&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(3) $ sudo apt install 패키지파일.deb&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-751453b0-fc1e-40b7-b1a3-bac0557ac076&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e5ee4977-5681-4cbc-ad3d-907325ec2a4a&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ apt install 이 안된다면 ./를 붙인 후 해보자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.14.36.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;686&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVCFi1/btqKIqlVzU1/k00N4XByG74QxEoWJ8mak0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVCFi1/btqKIqlVzU1/k00N4XByG74QxEoWJ8mak0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVCFi1/btqKIqlVzU1/k00N4XByG74QxEoWJ8mak0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVCFi1%2FbtqKIqlVzU1%2Fk00N4XByG74QxEoWJ8mak0%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.14.36.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;686&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.13.08.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;686&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdtsCb/btqKxlNJqCb/KAKwPaoxdfo2pz0WydrI60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdtsCb/btqKxlNJqCb/KAKwPaoxdfo2pz0WydrI60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdtsCb/btqKxlNJqCb/KAKwPaoxdfo2pz0WydrI60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdtsCb%2FbtqKxlNJqCb%2FKAKwPaoxdfo2pz0WydrI60%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_12.13.08.png&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;686&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3-4. Rstudio-Server 명령어 위치 찾아보기(확인을 위한)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_2.29.28.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qKhnW/btqKxlfSWaA/IwMVuAqWqrpN2QDxavAxW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qKhnW/btqKxlfSWaA/IwMVuAqWqrpN2QDxavAxW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qKhnW/btqKxlfSWaA/IwMVuAqWqrpN2QDxavAxW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqKhnW%2FbtqKxlfSWaA%2FIwMVuAqWqrpN2QDxavAxW0%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_2.29.28.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3-5. Rstudio-Server 실&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;행하기(&lt;span style=&quot;color: #000000;&quot;&gt;파일의 소유자가 root이므로 sudo로 구동해야 함)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷_2020-09-07_오전_2.30.53.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;434&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYz3Ps/btqKwRF63Lk/zlXp2FVpb7Dce2kswzieYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYz3Ps/btqKwRF63Lk/zlXp2FVpb7Dce2kswzieYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYz3Ps/btqKwRF63Lk/zlXp2FVpb7Dce2kswzieYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYz3Ps%2FbtqKwRF63Lk%2FzlXp2FVpb7Dce2kswzieYk%2Fimg.png&quot; data-filename=&quot;스크린샷_2020-09-07_오전_2.30.53.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;434&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3-6 Safari에서 'Ip주소:8888'로 Rstudio 접속&lt;/b&gt;&lt;/p&gt;</description>
      <category>Data Analysis/R</category>
      <category>r</category>
      <category>Rstudio</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/29</guid>
      <comments>https://loghada.tistory.com/29#entry29comment</comments>
      <pubDate>Sun, 11 Oct 2020 23:22:46 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] 맥 터미널 프롬프트 설정하기(Prompt Terminal)</title>
      <link>https://loghada.tistory.com/28</link>
      <description>&lt;p&gt;&lt;span&gt;맥 터미널의 간단한 프롬프트 설정으로 보다 편한 업무 수행을 할 수 있는데요. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f64f2940-4a9b-47b0-8fec-046f6603cd4c&quot;&gt;&lt;span&gt;오늘은 터미널 프롬프트를 원하는데로 설정하는 방법을 알아보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;프롬프트란?&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;명령어 입력줄을 가리켜, 'Command Prompt', '커맨드 프롬프트', 'Shell Prompt' 라고 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.06.06.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;954&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6SzEp/btqKxQzTRK8/5CvoSlTdh8LKCHQpjPFHvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6SzEp/btqKxQzTRK8/5CvoSlTdh8LKCHQpjPFHvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6SzEp/btqKxQzTRK8/5CvoSlTdh8LKCHQpjPFHvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6SzEp%2FbtqKxQzTRK8%2F5CvoSlTdh8LKCHQpjPFHvk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.06.06.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;954&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;바로 죠기 저 부분이죠.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;맥 터미널을 처음으로 접하게 되면 보통 '누구누구's MacBook' 혹은 'Imac'등으로 설정 되어있습니다. 여기서 '누구누구'는 컴퓨터의 홈 폴더 이름으로 보통 나타납니다. 굳이 바꿀 필요는 없지만 상황에 맞게 프롬프트를 설정하면 터미널 사용시 훨씬 편하게 사용할 수 있습니다. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-4dba08ed-c804-4706-a8f7-ee4e5f26a951&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-bfcf4b5a-6189-40ae-84f8-72b8d7af8457&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프롬프트 설정은 개인의 편의에 따라 달라집니다. 저 같은 경우,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;현재 유저 이름 + 시간 + 현재 디렉토리 위치 + $(구분자)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 조합으로 프롬프트를 구성했습니다. 내가 사용하는 유저의 이름 그리고 현재 디렉토리 위치를 수시로 확인할 수 있기 때문이죠!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;현재 설정된 프롬프트 확인하는 법!&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;먼저, 현재 나의 프롬프트 설정을 확인하기 위해선 'echo' 명령어를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.01.50.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;422&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUaWKu/btqKGkfat7m/uSVGZyGubAJKSLJUKALYLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUaWKu/btqKGkfat7m/uSVGZyGubAJKSLJUKALYLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUaWKu/btqKGkfat7m/uSVGZyGubAJKSLJUKALYLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUaWKu%2FbtqKGkfat7m%2FuSVGZyGubAJKSLJUKALYLK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.01.50.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;422&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;PS1 = &quot;EMPLOYEE&quot; -&amp;gt; 임시 변경&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;PS1=&quot;원하는 프롬프트&quot; 이런식으로 명령어를 입력하면 프롬프트 설정이 바뀌는것으로 확인할 수 있습니다. 하지만 이 방법은 임시로 바꾸는 방법으로 만약 터미널 종료 후 다시 터미널을 열면 값이 초기화 된것을 확인할 수 있습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;422&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.02.33.png&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cN8csG/btqKEAvPLg6/6okM1d4CRg49qRAb6a8eX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cN8csG/btqKEAvPLg6/6okM1d4CRg49qRAb6a8eX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cN8csG/btqKEAvPLg6/6okM1d4CRg49qRAb6a8eX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcN8csG%2FbtqKEAvPLg6%2F6okM1d4CRg49qRAb6a8eX1%2Fimg.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;422&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.02.33.png&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;.bash_profile 변경하기 -&amp;gt; 영구적용&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;영구적인 사용을 위해선 .bash_profile에 PS1 변수 값을 조정해줘야 합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-a4577871-6554-4645-b34c-60f07248f900&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-54336331-7abd-4904-8f4f-1e8fed88b731&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. vi 편집기로 .bash_profile 을 수정합니다. &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1602421844742&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi .bash_profile&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. &lt;span style=&quot;color: #000000;&quot;&gt;맨 뒷줄에 새로운 PS1 변수값을 작성합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.03.48.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;926&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuC6VF/btqKxlGS92X/dDQhxF0x7Yj9tElMRSN5YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuC6VF/btqKxlGS92X/dDQhxF0x7Yj9tElMRSN5YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuC6VF/btqKxlGS92X/dDQhxF0x7Yj9tElMRSN5YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuC6VF%2FbtqKxlGS92X%2FdDQhxF0x7Yj9tElMRSN5YK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.03.48.png&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;926&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. 작성이 끝나면 esc 버튼을 누룬 후 :wq!로 저장 후 나갑니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.04.06.png&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;82&quot; width=&quot;637&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDgr2J/btqKGk0yj3D/ZimPrJs4k2nVlA5kD1k8kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDgr2J/btqKGk0yj3D/ZimPrJs4k2nVlA5kD1k8kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDgr2J/btqKGk0yj3D/ZimPrJs4k2nVlA5kD1k8kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDgr2J%2FbtqKGk0yj3D%2FZimPrJs4k2nVlA5kD1k8kk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-11 오후 10.04.06.png&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;82&quot; width=&quot;637&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;Escape Sequence&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프롬프트 설정시 사용할 수 있는 Excape 문입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602422004213&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;\a     an ASCII bell character (07)
\d     the date  in  &quot;Weekday  Month  Date&quot;  format (e.g., &quot;Tue May 26&quot;)
\e     an ASCII escape character (033)
\h     the hostname up to the first `.'
\H     the hostname

\j     the  number of jobs currently managed by the shell
\l     the basename of the shell's terminal  device name
\n     newline
\r     carriage return
\s     the  name  of  the shell, the basename of $0(the portion following the final slash)

\t     the current time in 24-hour HH:MM:SS format
\T     the current time in 12-hour HH:MM:SS format
\@     the current time in 12-hour am/pm format
\u     the username of the current user
\v     the version of bash (e.g., 2.00)

\V     the release of bash,  version  +  patchlevel (e.g., 2.00.0)
\w     the current working directory
\W     the  basename  of the current working directory
\!     the history number of this command
\#     the command number of this command

\$     if the effective UID is 0, a #, otherwise  a $
\nnn   the  character  corresponding  to  the octal number nnn
\\     a backslash
\[     begin a sequence of non-printing characters
\]     end a sequence of non-printing characters&lt;/code&gt;&lt;/pre&gt;</description>
      <category>OperationSystem</category>
      <category>mac</category>
      <category>맥</category>
      <category>애플</category>
      <category>터미널</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/28</guid>
      <comments>https://loghada.tistory.com/28#entry28comment</comments>
      <pubDate>Sun, 11 Oct 2020 22:14:04 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] 문자 처리 함수(Function)의 모든것</title>
      <link>https://loghada.tistory.com/27</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오라클 문자 처리 함수&lt;/blockquote&gt;
&lt;p&gt;문자처리 함수는 문자와 관련된 특별한 조작을 위한 함수이고 단일 함수이기 때문에 테이블의 행 단위로 처리된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;대표적인 문자 처리 함수&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-11 오후 1.59.26.png&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;519&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kWHsv/btqKGjG3JHo/k8uaMiNBM4Oe3uM0aFA8ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kWHsv/btqKGjG3JHo/k8uaMiNBM4Oe3uM0aFA8ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kWHsv/btqKGjG3JHo/k8uaMiNBM4Oe3uM0aFA8ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWHsv%2FbtqKGjG3JHo%2Fk8uaMiNBM4Oe3uM0aFA8ck%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-11 오후 1.59.26.png&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;519&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;문자 처리 함수 예&lt;/blockquote&gt;
&lt;pre id=&quot;code_1602389869900&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- INITCAP
SELECT INITCAP('ORACLE SQL')
FROM dual;
--&amp;gt; Oracle Sql

-- UPPER
SELECT UPPER('Oracle SQL')
FROM dual;
--&amp;gt; ORACLE SQL
-- TIP: 문자열에서 대소문자인지 구분이 안될때 어퍼로 치환하고 찾기 좋음

-- LOWER
SELECT LOWER('Oracle SQL')
FROM dual;
--&amp;gt; oracle sql

-- CONCAT #하나 이상의 문자는 연결 불가능 -&amp;gt; || 연산자 사용
SELECT CONCAT('Oracle','SQL')
FROM dual;
--&amp;gt; OracleSQL

-- LENGHT: 문자열 길이 반환
SELECT LENGTH('Oracle')
FROM dual;
--&amp;gt; 6

-- INSTR: 문자열 특정 문자 나타내는 위치 반환
SELECT INSTR('MILLER', 'L', 1, 2), INSTR('MILLER', 'X', 1, 2)
FROM dual;
-- 4, 0

-- SUBSTR: 문자열에서 일부분의 문자열을 추출할 때 사용하는 함수
SELECT SUBSTR('900303-1234567', 8, 1)
FROM dual;
--&amp;gt; 1
SELECT SUBSTR('900303-1234567', 8)
FROM dual;
--&amp;gt; 1,2,3,4,5,6,7

-- REPLACE: 특정 문자열을 치환할때 많이 사용
SELECT 'JACK and JUE', REPLACE('JACK and JUE', 'J', 'BL')
FROM dual;
--&amp;gt; JACK and JUE, BLACK and BLUE

-- LPAD: 문자열을 오른쪽 정렬후 특정 문자를 왼쪽부터 지정한 문자로 채운다
SELECT LPAD('MILLER', 10, '*')
FROM dual;
--&amp;gt; ****MILLER

-- RPAD: 문자열을 왼쪽 정렬 후에 지정한 문자로 치환
SELECT RPAD('MILLER', 10, '*')
FROM dual;
--&amp;gt; MILLER****

-- LTRIM: 특정 문자 삭제하기 위해 사용(실무-공백지울때  사용)
SELECT LTRIM('MILLER', 'M')
FROM dual;
--&amp;gt; ILLER

-- RTRIM: 특정 문자 삭제하기 위해 사용
SELECT RTRIM('MILLER', 'R')
FROM dual;
--&amp;gt; MILLE

-- TRIM: 특정 문자 삭제하기 위해 사용(공백 지우기 목표)
SELECT TRIM(LEADING '0' FROM '0001234567000')
FROM dual;
--&amp;gt; 1234567000

SELECT TRIM(TRAILING '0' FROM '0001234567000')
FROM dual;
--&amp;gt; 0001234567

SELECT TRIM(BOTH '0' FROM '0001234567000')
FROM dual;
--&amp;gt; 1234567

SELECT TRIM('0' FROM '0001234567000')
FROM dual;
--&amp;gt; 1234567
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;INSTR 함수&lt;/blockquote&gt;
&lt;p&gt;INSTR 함수는 문자열에서 특정 문자가 나타나는 위치를 반환한다. 찾고자 하는 문자가 여러개 있는 경우에는 몇 번째로 나오는 문자를 검색할지를 옵션으로 설정 할 수 있다. 만약 찾고자 하는 자가 없는 경우에는 0 값을 번환한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기본 Syntax,&lt;/p&gt;
&lt;pre id=&quot;code_1602390217193&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;INSTR( 컬럼명 | 표현식, 검색값, [m, n] )&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;예제,&lt;/p&gt;
&lt;pre id=&quot;code_1602390251246&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;INSTR( 'MILLER', 'L', 1, 2 )
FROM dual;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위 예제에서는 'MILLER'라는 단어에서 'L'의 위치를 반환하는 쿼리이다. 이때, 뒤에 [ 1, 2 ] 옵션을 주었는데, 여기서 1은 'MILLER' 라는 전체 문자의 몇번째 자리부터 'L'을 찾기 시작할것인지 정하는 옵션이고, '2'는 만약 단어에 'L'이 여러개라면 몇번째 'L'을 찾을지 정하는 옵션이다.&lt;/p&gt;
&lt;p&gt;예제는, 첫번째 자리(인덱스)부터 'L'을 찾기 시작하여 두번째 'L'의 자리를 찾는 쿼리이다. 출력값으로는 '4'가 나온다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;SUBSTR 함수&lt;/blockquote&gt;
&lt;p&gt;SUBSTR 함수는 문자열에서 일부분의 문자열을 추출할때 사용한다. 실제로 실무에서 많이 사용하는 함수 중 하나이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기본 Syntax,&lt;/p&gt;
&lt;pre id=&quot;code_1602390704949&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SUBSTR( 컬럼명 | 표현식, m [,n] )&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;예제,&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602390733422&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;SELECT SUBSTR('900303-1234567', 8, 2)
FROM dual;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위 예제에서는 '900303-1234567'의 8번째 자리부터 두자리 수를 반환하는 쿼리이다. 여기서 8(m)은 몇번째 자리부터 시작하는지를 정하고 2(n)은 시작 자리부터 몇번째 자리까지 출력하는지를 정한다. 만약, n을 생략하면 시작(m)부터 끝까지를 추출력한. 또한, m이 음수인 경우 뒤에서부터 시작하여 m번째 문자부터 반대방향으로 n개의 문자를 반환한다.&amp;nbsp;위 쿼리의 출력값은 '12'다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;문자열 함수를 사용한 예제: 주민번호를 보안상 이유로 '900303-1******' 포맷으로 출력해라&lt;/blockquote&gt;
&lt;pre id=&quot;code_1602391809638&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- 방법 1
SELECT SUBSTR('900303-1234567', 1, 8) || '******'
FROM dual;

-- 방법 2 
SELECT RPAD(SUBSTR('900303-1234567', 1, 8), 14, '*')
FROM dual;

-- 방법 3
SELECT REPLACE('900303-1234567', SUBSTR('900303-1234567', 9), '******')
FROM dual;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Oracle</category>
      <category>Function</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>오라클</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/27</guid>
      <comments>https://loghada.tistory.com/27#entry27comment</comments>
      <pubDate>Sun, 11 Oct 2020 13:50:36 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] 오라클 SQL 함수는? (문자, 숫자, 날짜 처리 함수)</title>
      <link>https://loghada.tistory.com/26</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;SQL 함수는,&lt;/blockquote&gt;
&lt;p&gt;함수는(Function) &lt;span style=&quot;background-color: #f6e199;&quot;&gt;데이터를 가공할 목적으로 사용되며&lt;/span&gt; 기본적인 SQL 문을 강력하게 해준다. 함수를 많이 알고 있을수록 데이터 처리를 편하게 할 수 있다. 남들이 몇 줄의 쿼리문으로 하는 작업도 함수를 잘만 사용하고 많이 알고 있으면 한줄로도 가능하게 해준다. 함수는 입력(INPUT)과 출력(OUTPUT)으로 구성되는데, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;입력으로 데이터를 설정하면 함수가 내부적으로 데이터를 가공하여 출력을 통해 반환된다.&lt;/span&gt; &lt;span style=&quot;background-color: #f6e199;&quot;&gt;입력으로 설정되는 데이터 개수는 함수에 따라 다르나 출력되는 데이터는 &lt;b&gt;한 개만&lt;/b&gt; 반환된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오라클의 단일(행) 함수와 그룹함수&lt;/blockquote&gt;
&lt;p&gt;함수는 크게 세 가지로 나뉘는데,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 행에 대해서 각각 적용되어 행의 개수롸 동일한 개수를 반환되는&lt;b&gt; 단일(행) 함수&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;여러 행 또는 전체에 대해 함수가 적용되어 하나의 결과를 반환하는 &lt;b&gt;그룹 함수&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;프로그램 언어(Python)에서 사용하는 if&amp;amp;case문과 같이 조건에 따라서 SQL문을 다르게 처리할 수 있는 &lt;b&gt;조건 함수&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;단일행 함수의 종류&lt;/blockquote&gt;
&lt;p&gt;숫자 처리를 위함 함수&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://loghada.tistory.com/27&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;문자 처리를 위한 함수&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;날짜 처리를 위한 함수&lt;/p&gt;
&lt;p&gt;데이터 변환을 위한 함수&amp;nbsp;&lt;/p&gt;
&lt;p&gt;데이터 종류와 상관없이 어떤 데이터에도 사용 가능한 일반 함수&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;조건 함수의 종류&lt;/blockquote&gt;
&lt;p&gt;DECODE&lt;/p&gt;
&lt;p&gt;CASE&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;그룹 함수의 종류&lt;/blockquote&gt;
&lt;p&gt;COUNT&lt;/p&gt;
&lt;p&gt;SUM&lt;/p&gt;
&lt;p&gt;AVG&lt;/p&gt;
&lt;p&gt;MAX&lt;/p&gt;
&lt;p&gt;MIN&lt;/p&gt;</description>
      <category>Oracle</category>
      <category>Function</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>오라클</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/26</guid>
      <comments>https://loghada.tistory.com/26#entry26comment</comments>
      <pubDate>Sun, 11 Oct 2020 12:58:17 +0900</pubDate>
    </item>
    <item>
      <title>간략 통계 용어 정리</title>
      <link>https://loghada.tistory.com/25</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;간략 통계 용어집&lt;/blockquote&gt;
&lt;p&gt;&lt;br /&gt;1) &amp;nbsp;데이터&amp;nbsp;: 수적자료 &lt;br /&gt;&lt;br /&gt;2) 대표값&amp;nbsp;: &lt;br /&gt;-&amp;nbsp;집단(데이터)를&amp;nbsp;구성하는&amp;nbsp;개체(=관측치)들의&amp;nbsp;&quot;집중경향&quot;(=중심경향)을&amp;nbsp;나타내는&amp;nbsp;통계적&amp;nbsp;수치 &lt;br /&gt;-&amp;nbsp;위치의&amp;nbsp;통계량이라고도&amp;nbsp;불림 &lt;br /&gt;-&amp;nbsp;대표적인&amp;nbsp;예:&amp;nbsp;산술평균,&amp;nbsp;중위수,&amp;nbsp;최빈값,&amp;nbsp;기하평균,&amp;nbsp;조화평균 &lt;br /&gt;&lt;br /&gt;3) 산포도(dispersion) &lt;br /&gt;- 모집단&amp;nbsp;or&amp;nbsp;표본에&amp;nbsp;속하는&amp;nbsp;객체(=관측치)들의&amp;nbsp;변이정도(=변동)을&amp;nbsp;나타내는&amp;nbsp;통계량 &lt;br /&gt;- 변동(변이정도):&amp;nbsp;관측치가&amp;nbsp;흩어진&amp;nbsp;정도 &lt;br /&gt;- 대표적인&amp;nbsp;통계량: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;범위(range),&amp;nbsp;사분위수범위(IQR),&amp;nbsp;분산,&amp;nbsp;표준편차,&amp;nbsp;변이계수(CV),&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;비대칭도(=왜도,&amp;nbsp;skewness),&amp;nbsp;첨도(kurtosis) &lt;br /&gt;&lt;br /&gt;4) 분산 &lt;br /&gt;- 집단의&amp;nbsp;산포도를&amp;nbsp;나타내는&amp;nbsp;통계량 &lt;br /&gt;- 모분산의&amp;nbsp;불편추정량(=&amp;nbsp;편의가&amp;nbsp;없는&amp;nbsp;추정량이란&amp;nbsp;뜻)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;5) 편차 &lt;br /&gt;- 집단의&amp;nbsp;산포도를&amp;nbsp;나타내는&amp;nbsp;통계량,&amp;nbsp;관측치와&amp;nbsp;평균의&amp;nbsp;차이를&amp;nbsp;의미 &lt;br /&gt;&lt;br /&gt;6) 확률분포 &lt;br /&gt;- 확률변수가&amp;nbsp;취할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;모든&amp;nbsp;값&amp;nbsp;+&amp;nbsp;이&amp;nbsp;값들이&amp;nbsp;나타날&amp;nbsp;확률을&amp;nbsp;표시해&amp;nbsp;놓은&amp;nbsp;것!!! &lt;br /&gt;- 두가지&amp;nbsp;종류로&amp;nbsp;나뉘어짐:&amp;nbsp;1)&amp;nbsp;연속확률분포&amp;nbsp;&amp;nbsp;2)&amp;nbsp;이산확률분포 &lt;br /&gt;&lt;br /&gt;7) 확률변수 &lt;br /&gt;-&amp;nbsp;일정한&amp;nbsp;확률을&amp;nbsp;가지고&amp;nbsp;나타나는&amp;nbsp;사건(=실험결과)에,&amp;nbsp;수치를&amp;nbsp;부여한&amp;nbsp;것!!!! &lt;br /&gt;-&amp;nbsp;두가지&amp;nbsp;종로&amp;nbsp;나뉘어짐:&amp;nbsp;&amp;nbsp;&amp;nbsp;1)&amp;nbsp;이산확률변수(예:&amp;nbsp;저항성&amp;nbsp;개체수)&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2)&amp;nbsp;연속확률변수(예:&amp;nbsp;키,&amp;nbsp;무게) &lt;br /&gt;&lt;br /&gt;8) 확률표본 &lt;br /&gt;-&amp;nbsp;완전확률화(무작위)에&amp;nbsp;의해&amp;nbsp;추출된&amp;nbsp;표본 &lt;br /&gt;- 모집단을&amp;nbsp;대표함&lt;/p&gt;
&lt;p&gt;- 그래서,&amp;nbsp;&quot;무작위&amp;nbsp;표본&quot;이라고도&amp;nbsp;함 &lt;br /&gt;&lt;br /&gt;9) 모집단&amp;nbsp; &lt;br /&gt;-&amp;nbsp;관찰(관측)의&amp;nbsp;대상이&amp;nbsp;되는&amp;nbsp;모든&amp;nbsp;객체를&amp;nbsp;포함하는&amp;nbsp;집단 &lt;br /&gt;-&amp;nbsp;두가지로&amp;nbsp;나뉘어짐:&amp;nbsp;&amp;nbsp;1)&amp;nbsp;무한&amp;nbsp;모집단&amp;nbsp;&amp;nbsp;&amp;nbsp;2)&amp;nbsp;유한&amp;nbsp;모집단 &lt;br /&gt;&lt;br /&gt;10) 표본 &lt;br /&gt;- 모집단의&amp;nbsp;일부 &lt;br /&gt;- 실제&amp;nbsp;관찰하는&amp;nbsp;객체들(=개체군) &lt;br /&gt;&lt;br /&gt;11)&amp;nbsp;모수 &lt;br /&gt;-&amp;nbsp;모집단의&amp;nbsp;성질이나&amp;nbsp;특성을&amp;nbsp;설명하는&amp;nbsp;통계적&amp;nbsp;수치 &lt;br /&gt;-&amp;nbsp;표본의&amp;nbsp;통계량으로부터&amp;nbsp;추정 &lt;br /&gt;-&amp;nbsp;그리스문자로&amp;nbsp;표시 &lt;br /&gt;-&amp;nbsp;예:&amp;nbsp;모평균,&amp;nbsp;모분산,&amp;nbsp;등.... &lt;br /&gt;&lt;br /&gt;12)&amp;nbsp;영상관(=무상관)&amp;nbsp;&amp;lt;-&amp;nbsp;상관계수 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;상관계수&amp;nbsp;r&amp;nbsp;=&amp;nbsp;0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;두&amp;nbsp;독립변수&amp;nbsp;사이에&amp;nbsp;직선적(=선형적)&amp;nbsp;관계가&amp;nbsp;없음을&amp;nbsp;나타냄 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;그래서&amp;nbsp;&quot;0상관&quot;이라고도&amp;nbsp;함 &lt;br /&gt;&lt;br /&gt;13)&amp;nbsp;첨도(kurtosis) &lt;br /&gt;-&amp;nbsp;변수(데이터)의&amp;nbsp;분포가&amp;nbsp;평균을&amp;nbsp;중심으로,&amp;nbsp; &lt;br /&gt;-&amp;nbsp;정규분포인지&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;a4&amp;nbsp;&amp;nbsp;==&amp;nbsp;3 &lt;br /&gt;-&amp;nbsp;흩어진분포인지 &amp;nbsp;if&amp;nbsp;a4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&amp;nbsp;3 &lt;br /&gt;-&amp;nbsp;밀집된분포인지&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;a4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;&amp;nbsp;&amp;nbsp;3 &lt;br /&gt;&amp;nbsp; &amp;nbsp;를&amp;nbsp;나타냄 &lt;br /&gt;&lt;br /&gt;14)&amp;nbsp;공분산(covariance,&amp;nbsp;Cov) &lt;br /&gt;-&amp;nbsp;짝지은&amp;nbsp;두&amp;nbsp;변수&amp;nbsp;X의&amp;nbsp;편차와&amp;nbsp;Y의&amp;nbsp;편차를&amp;nbsp;곱하여, &lt;br /&gt;-&amp;nbsp;모두&amp;nbsp;합한&amp;nbsp;다음, 그&amp;nbsp;값을&amp;nbsp;자유도(df)로&amp;nbsp;나누어준&amp;nbsp;값 &lt;br /&gt;-&amp;nbsp;부호(+,&amp;nbsp;-)는&amp;nbsp;두&amp;nbsp;변수가&amp;nbsp;함께&amp;nbsp;변화하는&amp;nbsp;관계를&amp;nbsp;의미함 &lt;br /&gt;-&amp;nbsp;0:&amp;nbsp;영상관&amp;nbsp;(두&amp;nbsp;변수가&amp;nbsp;관계가&amp;nbsp;없음을&amp;nbsp;의미)&lt;/p&gt;</description>
      <category>Data Analysis/통계</category>
      <category>통계</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/25</guid>
      <comments>https://loghada.tistory.com/25#entry25comment</comments>
      <pubDate>Sat, 10 Oct 2020 15:03:20 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] 오라클 테이블 생성하기</title>
      <link>https://loghada.tistory.com/24</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오라클에서 테이블이란&lt;/blockquote&gt;
&lt;p&gt;테이블은 오라클 DB에서 가장 중요한 객체로서 사용자가 관리하고자 하는 &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;실 데이터가 저장되어 있는 곳&lt;/span&gt;&lt;/b&gt;이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;테이블 생성을 위한 기본 Syntax는,&lt;/p&gt;
&lt;pre id=&quot;code_1602303802137&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;CREATE TABLE [스키마].테이블명
( 컬럼명 데이터타입 [DEFAULT 값 | 제약조건][,...] );&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이때, CREATE TABLE 뒤에는&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt; 스키마(SCHEMA)를 지정하거나 생략하고&lt;/b&gt;&lt;/span&gt; 테이블명을 지정할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;테이블 명과 DB 객체 이름을 저장할 때 Rule&lt;/blockquote&gt;
&lt;p&gt;1) 테이블/컬럼명은 문자로 시작하고(숫자X) 길이는 30문자 이내로 설정&lt;/p&gt;
&lt;p&gt;2) 테이블/컬럼명은 A~Z, a~z, 0~9을 사용할 수 있고, 한글 사용도 가능하지만 권장하지 않는다.&lt;/p&gt;
&lt;p&gt;3) 동일한 스키마 내에서는 다른 객체와 이름이 중복괴면 식별이 안되기 때문에 중복되지 않도록 이름을 지정해야한다. 단, 스키마가 다른경우 스키마를 통한 구별이 가능하기 떄문에 객체 이름의 중복이 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4) 오라클 DB가 예약어로 사용하는 이름은 사용이 불가능하며 대소문자는 구별하지 않는다.&lt;/p&gt;
&lt;p&gt;5) 소문자로 테이블 명을 지정해도 데이터 사전에는 자동으로 대문자로 저장이 된다. 따라서 테이블 명을 검색할 경우에는 반드시 대문자로 지정해야한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;오라클에서 스키마란?&lt;/blockquote&gt;
&lt;p&gt;스키마는 사용자가 DB에 접근하여 생성한 객체들의 대표 이름을 의미한다. 기본적으로 사용자의 계정명과 동일하게 부여된다. 생성한 객체(테이블, 뷰 등등)들의 소유는 생성한 계정이 가지기 떄문에 다른 스키마는 접근이 불가능하다. 스키마를 이용하여 생성한 객체들의 소유자가 누구인지를 알려줄 수 있다. 스키마 소유자가 다른 소유자에게 스키마 접근 권한을 부여하면 다른 사용자도 스키마에 접근 할 수 있다. 다른 사용자의 객체를 접근할 때는 스키마를 지정하여 '스키마.객체' 형식으로 사용해야 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;존재하는 테이블을 사용하여 새로운 테이블을 만드는 씨탁스(CTAS) 기법&lt;/blockquote&gt;
&lt;p&gt;CTAS 기본 Syntax,&lt;/p&gt;
&lt;pre id=&quot;code_1602305009315&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;CREATE TABLE 테이블명 [(컬럼명, 컬럼명2)]
AS 
SUBQUERY;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;서브쿼리에서 WHERE 절을 이용하여 조건을 지정할 수 있는데, 만약 조건이 FALSE 이면 검색된 데이터가 없기 때문에 서브쿼에서 사용한 &lt;b&gt;테이블의 구조만 복사&lt;/b&gt;된다. 반대로 조건이 TRUE 이거나 WHERE 절을 생략하면 서브쿼리가 실행된 데이터까지 포함되어 새로운 테이블이 생성된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CTAS 예제로 기존에 있는 dept 테이블의 구조만 복사한 새로운 mydept 테이블을 만드는 방법이다.&lt;/p&gt;
&lt;pre id=&quot;code_1602305379973&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;CREATE TABLE mydept
AS
SELECT * FROM dept
WHERE 1=2;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;단, CTAS는 테이블을 생성할 때 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;NOT NULL 제약조건을 제외한 제약조건은 복사되지 않는다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Oracle</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>오라클</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/24</guid>
      <comments>https://loghada.tistory.com/24#entry24comment</comments>
      <pubDate>Sat, 10 Oct 2020 13:52:41 +0900</pubDate>
    </item>
    <item>
      <title>[파이썬] 파이썬 역사와 파이썬 다움이란.</title>
      <link>https://loghada.tistory.com/23</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;그래서,&amp;nbsp;파이썬이&amp;nbsp;뭔가요?&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;1989년 12월 네덜란드 컴퓨터 과학자 귀도 반 로섬은 여러 프로그래밍 언어들의 한계로 인해 괴로워 하다 크리스마스 프로젝트로 새로운 언어를 직접 만들어보기로 결심했다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-13318b2f-3b6e-4dc4-ab0c-56c23ba5ba05&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ddd3aeae-f0e5-4fac-944e-eda7a1b8e513&quot;&gt;&lt;span&gt;그가 생각한 언어의 원칙은 간단했다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-fe3f1d70-085d-453e-b151-13c9f71d4d0d&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f1b1a43e-3c45-4bbf-9e98-d1db0a7d7d4e&quot;&gt;&lt;span&gt;1. 읽기 쉬워야한다. 중괄호 보다는 깔끔한 인덴트 처리&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-10c057d0-171f-42f9-bbcf-79f3579a7c1b&quot;&gt;&lt;span&gt;2. 사용자가 원하는 모듈 패키지를 만들 수 있어야 하고, 다른 프로그램에서도 이를 사용할 수 이어야 한다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ec8f18b5-f5b8-4d74-8370-a65eea7c7d05&quot;&gt;&lt;span&gt;3. 약간 독특하고 신비한 이름을 갖고 이어야한다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-728f41fa-52b3-439d-8cd8-827cca16d1be&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-477e4f42-44e6-4ca0-b33d-3d8643fc2ebc&quot;&gt;&lt;span&gt;이 세가지는 파이썬을 만들때 핵심 규칙으로 30년이 지난 지금 발전하여 여러 행태로 우리가 사용하고 있다. 예로 2번 같은 경우 지금 우리가 모듈 관리를 위해 사용하는 PIP 명령어로 발전하여 보다 쉽게 모듈을 관리할 수 있게 도와주고 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-df8f2390-2c09-43a5-ba64-6b3f147fbf04&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-db4f8130-4b11-4f30-be3d-e790fd86ae21&quot;&gt;&lt;span&gt;파이썬 이름은 좀 신기했는데, 여태껏 난 파이썬의 이름이 뱀(snake)를 따서 만들어졌다고 생각했다. 하지만, 알아보니 70년대 세계를 풍미한 영국의 코미디 그룹 몬티 파이썬의 이름을 따서 붙였다고 한다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;&lt;span&gt;파이썬 다움이란&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;영어, 중국어, 한국어 같은 언어와 마친가지로 프로그래밍 언어 또한 각각 특징과 철학이 있다. 나 같은 경우 프로그래밍 언어를 실제 언어와 비유할때 이렇게 설명한다. 일단, C, C++의 경우 프랑스어와 비슷하다. 오래된 언어로 문법이 굉장히 어렵다. 프랑스어 동사의 경우 성별/복수에 따라 동사 하나의 변형 형태가 다양하다. 이처럼 오래된 언어일수록 문법의 복잡함이 있다. JAVA의 경우 영어이다. 우린 일상에서 어느 형태로든 영어를 접하게 된다. 내가 중국어 특기자로 회사/학교에 들어갔어도, 영어를 따로 공부하는 이유는 영어가 그만큼 전세계 공용어이기 때문이다. JAVA가 딱 그렇다. JAVA를 모르고 개발을 할 수 있지만, 언제 어느 형태로서든 JAVA는 한번쯤 접하게 된다. Java 또한 장단점이 있지만, 지금까지 대다수의 프로그램이 JAVA로 개발되었고 그만큼 안정성을 보장한다. Python의 경우 난 중국어로 비유한다. 공용어를 위협할만한 신흥 강자로 떠오르는 언어. 그게 바로 파이썬이다. 특히 최근 인공지능, 머신러닝 분야에서 선호하는 언어로 배우는 사람이 늘어나고 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ee2886b6-3574-47b3-937f-9b635979c950&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-1f3a77fd-f341-4892-a1ac-7066f870ac9f&quot;&gt;&lt;span&gt;그렇다면 파이썬 다움이란 무엇일까? 어떻게 프로그래밍을 하면서 다른 언어들과는 다른 파이썬만 갖고 있는 매력이 있을까?&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-6241dbc7-2cca-453a-b823-ad33c958a99b&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-d598154b-4c64-480d-80cf-905f4472e1d2&quot;&gt;&lt;span&gt;팀소트 알고리즘을 만든 팀 피터스가 정의한 내용을 보면 Pyhon Way(파이썬 다운 방식)에 대해 이렇게 정의하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602259660162&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;import this
The zen of python, by Tim Peters

아름다움이 추함보다 좋다
명시가 암시보다 좋다.
단순함이 복잡함보다 좋다.
복잡함이 꼬인 것보다 좋다.
수평이 계층보다 좋다.
여유로운 것이 밀집한 것보다 좋다.
가독성은 중요하다.
특별한 경우라는 것은 규칙을 어겨야 할 정도로 특별한 것이 아니다.

허나 실용성은 순수성을 이긴다.
오류는 절대 조용히 지나가지 않는다
명시적으로 오류를 감추려는 의도가 아니라면.
모호함을 앞에 두고, 이를 유추하겠다는 유혹을 버려라.
어떤 일에든 명확한 - 바람직하며 유일한 - 방법이 존재한다.
...

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one&amp;mdash; and preferably only one &amp;mdash;obvious way to do it.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-10 오전 1.07.53.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;591&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c212oi/btqKy7mS2b6/V2EgPD8C9WsFz5OeO22fJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c212oi/btqKy7mS2b6/V2EgPD8C9WsFz5OeO22fJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c212oi/btqKy7mS2b6/V2EgPD8C9WsFz5OeO22fJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc212oi%2FbtqKy7mS2b6%2FV2EgPD8C9WsFz5OeO22fJ0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-10 오전 1.07.53.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;591&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Data Analysis/Python</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/23</guid>
      <comments>https://loghada.tistory.com/23#entry23comment</comments>
      <pubDate>Sat, 10 Oct 2020 01:08:49 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] UPDATE, DELETE, MERGE 문 feat by. DML</title>
      <link>https://loghada.tistory.com/22</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;UPDATE,&amp;nbsp;DELETE,&amp;nbsp;MERGE&amp;nbsp;문 기본 Syntax&lt;/blockquote&gt;
&lt;p&gt;DML 문인 Update, Delete, Merge문은 기본적으로 테이블 &lt;b&gt;데이터를 수정하고, 삭제하고, 병합하는데&lt;/b&gt; 사용된다.&lt;/p&gt;
&lt;pre id=&quot;code_1602231780575&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- UPDATE 문
UPDATE 테이블명
SET 컬럼명 = 변경할값 [, 컬럼명1 = 변경할값]
[WHERE 조건식];

-- DELETE 문
DELETE FROM 테이블명
[WHERE 조건신];

-- MERGE 문
MERGE INTO 테이블1 [별칭] -- 합병하는
USING (데이블2 | 뷰 | 서브쿼리) [별칭] -- 합병당하는
ON (조인조건)
WHEN MATCHED THEN -- 조인조건 1 (조인 조건에 만족하는게 있다면...)
  UPDATE SET 
  컬럼명 = 값,
  컬럼명1 = 값1
  [WHERE 조건식]
  [DELETE WHERE 조건식]
  WHEN NOT MATCHED 조건식 -- 조인조건 2
    INSERT ( 컬럼 목록 )
    VALUE ( 값 목록 )
    [WHERE 조건식];&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Update 문이란?&lt;/blockquote&gt;
&lt;p&gt;Update 문은 테이블에 저장된 데이터를 수정하기 위해 사용된다. 하번에 여러 개의 행들을 변경할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기본 Syntax는,&lt;/p&gt;
&lt;pre id=&quot;code_1602230143028&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;UPDATE 테이블명
SET 컬럼명 = 변경할값 [, 컬럼명1 = 변경할값]
[WHERE 조건식];&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;예로는,&lt;/p&gt;
&lt;pre id=&quot;code_1602230215902&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;-- SCOTT 계정의 데이터를 사용한 예제

UPDATE mydept
SET dname='영업', loc='경기'
WHERE deptno = 50;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;서브쿼리를 이용한 UPDATE 문&lt;/blockquote&gt;
&lt;p&gt;UPDATE 문의 SET절의 서브쿼리를 사용하면 서브쿼리가 실행된 결과 값으로 테이블을 수정할 수 있다. 이 방법을 사용하면 다른 테이블에 있는 데이터를 사용(참조)하여 특정 컬럼값 변경이 가능해진다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음은, mydept 테이블의 부서번호가 6-인 사원의 부서명을 dept 테이블의 부서번호가 10인 부서의 부서명으로 수정하고 부서위치는 dept 테이블의 부서번호가 20인 부서위치로 수정하는 SQL 문이다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602230458726&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;UPDATE mydept
SET dname = (SELECT dname
             FROM dept
             WHERE deptno = 10)
   ,loc = (SELECT loc
           FROM dept
           WHERE deptno = 20)
WHERE deptno = 60;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;DELETE 문이란?&lt;/blockquote&gt;
&lt;p&gt;DELETE 문은 테이블에 저장된 데이터를 삭제하기 위해서 사용된다. 한 번에 여러 개의 행들을 삭제할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기본 Syntax는,&lt;/p&gt;
&lt;pre id=&quot;code_1602230611818&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;DELETE FROM 테이블명
[WHERE 조건신];&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;서브쿼리를 이용한 DELETE 문&lt;/blockquote&gt;
&lt;p&gt;DELETE 문의 WHERE 절에서 서브쿼리를 사용하면 서브쿼리가 실행된 결과값으로 테이블의 데이터를 삭제 할 수 있다. 이 방법을 사용하면 다른 테이블에 저장된 데이터를 사용하여 특정 데이터를 삭제 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음은 SCOTT 계정을 사용하여, Dept 테이블에서 부서번호가 20인 부서 위치와 동일한 위치에 해당하는 행을 mydept 테이블에서 삭제하는 SQL 문이다.&lt;/p&gt;
&lt;pre id=&quot;code_1602230937768&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;DELETE
FROM mydept
WHERE loc = (SELECT loc
             FROM dept
             WHERE deptno = 20);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MERGE 문이란? aka 햄버거 조인&lt;/blockquote&gt;
&lt;p&gt;MERGE 문은 &lt;b&gt;구조가 같은 2개의 테이블&lt;/b&gt;을 비교하여 하나로 합티기 위한 데이터 조작어이다. MERGE 문이 사용되는 대표적인 예로는 전자상거래와 같은 물품을 판매하는 회사에서 관리는 월별 판매 실적 데이터를 하나의 연간 테이블로 만들때 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;JOIN 에서 테이블을 컬럼간 컬럼식인 가로로 붙였다면, MERGE 에서는 세로로 붙인다고 이해하면된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기본 Syntax는,&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602231683753&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;MERGE INTO 테이블1 [별칭] -- 합병하는
USING (데이블2 | 뷰 | 서브쿼리) [별칭] -- 합병당하는
ON (조인조건)
WHEN MATCHED THEN -- 조인조건 1 (조인 조건에 만족하는게 있다면...)
  UPDATE SET 
  컬럼명 = 값,
  컬럼명1 = 값1
  [WHERE 조건식]
  [DELETE WHERE 조건식]
  WHEN NOT MATCHED 조건식 -- 조인조건 2
    INSERT ( 컬럼 목록 )
    VALUE ( 값 목록 )
    [WHERE 조건식];
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MERGE 문 예제,&lt;/blockquote&gt;
&lt;p&gt;MERGE 문 실습을 위한 테이블 생성.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1602232159795&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;CREATE TABLE pt_01
( 판매번호 VARCHAR2(8),
  제품번호 NUMBER,
  수량    NUMBER,
  금액    NUMBER);
  
CREATE TABLE pt_02
( 판매번호 VARCHAR2(8),
  제품번호 NUMBER,
  수량    NUMBER,
  금액    NUMBER);
  
CREATE TABLE p_total
( 판매번호 VARCHAR2(8),
  제품번호 NUMBER,
  수량    NUMBER,
  금액    NUMBER);
  
INSERT INTO pt_01 VALUES ( '20170101', 1000, 10, 500);
INSERT INTO pt_01 VALUES ( '20170102', 1001, 10, 400);
INSERT INTO pt_01 VALUES ( '20170103', 1002, 10, 300);

INSERT INTO pt_02 VALUES ( '20170101', 1003, 5, 500);
INSERT INTO pt_02 VALUES ( '20170102', 1004, 5, 400);
INSERT INTO pt_02 VALUES ( '20170103', 1005, 5, 300);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;다음은 1월 판매정보를 가진 pt_01 테이블과 통합 테이블인 pt_total을 병합하여 하는 쿼리이다. p_total과 pt_01 테이블간에 일치하는 데이터가 하나도 없기 때문에 INSERT 문이 실행되어 p_total 테이블에 pt_01 테이블의 데이터가 저장된다.&lt;/p&gt;
&lt;pre id=&quot;code_1602232502950&quot; class=&quot;sql&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;MERGE INTO p_total total
USING pt_01 p01
ON ( total.판매번호 = p01.판매번호)
WHEN MATCHED THEN
  UPDATE SET total.제품번호 = p01.제품번호
WHEN NOT MATCHED THEN
  INSERT VALUES ( p01.판매번호, p01.제품번호, p01.수량, p01.금액);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이 쿼리를 쪼개서 추상화 하면,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- INTO 절에는 병합된 데이터를 저장하기 위한 통합 테이블인 p_total를 지정하고 별칭으로 total를 사용한다.&lt;/p&gt;
&lt;p&gt;- USING 절에는 병합할 1월 판매정보가 저장된 pt_01를 지정하고 별칭으로 p01을 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- ON 절에는 p_total 테이블과 조인 조건을 지정한다.&lt;/p&gt;
&lt;p&gt;- 만약 조인조건이 일치하면 UPDATE문이 실행되고 일치하지 않으면 INSERT 문이 실행된다&lt;/p&gt;</description>
      <category>Oracle</category>
      <category>delete</category>
      <category>dml</category>
      <category>DML문</category>
      <category>INSERT</category>
      <category>Merge</category>
      <category>Oracle</category>
      <category>SQL</category>
      <category>오라클</category>
      <author>KJ Seong</author>
      <guid isPermaLink="true">https://loghada.tistory.com/22</guid>
      <comments>https://loghada.tistory.com/22#entry22comment</comments>
      <pubDate>Fri, 9 Oct 2020 17:42:53 +0900</pubDate>
    </item>
  </channel>
</rss>