Settings

SQL Developer with Git

개요

  • SQL Developer에서 깃헙과 연동하는 방법을 알려준다.
  • 깃허브 회원가입 및 깃 설치는 이미 된 것으로 가정한다.
  • 새로운 Repository를 만든다.
    • 필자는 oracle_lectures라는 Repository를 만들었다.

SQL Developer에서 필요한 작업

  • 이제 SQL Developer 프로그램을 연다.
    • 팀 - Git - 복제 순으로 순차적으로 연다.

Untitled

  • 아래 화면에서 다음을 클릭한다.

Untitled

  • 아래 화면에서 새로 생성한 URL, Username, Password를 순차적으로 입력한다.
    • 이 때, Repo 생성 시, Private으로 되어 있었다면 인증 에러가 생길 수 있다. 그런 경우 Public으로 변경한다.

Untitled

오라클 19c 기본 세팅

1단계 sqlplus 실행하기

  • 설치가 끝난 후, 윈도우에서 sqlplus 입력
  • 사용자명은 system, 비밀번호는 오라클 설치 시 (1234)]
  • 주의 : 관리자로 실행

Untitled

Untitled

2단계 : 테이블스페이스 생성하기

  • 테이블스페이스는 myts라는 이름으로 100MB 크기로 생성
  • 만약 데이터가 증가하면 5MB씩 자동 증가 옵션 추가
  • 생성 구문은 다음과 같음
SQL> CREATE TABLESPACE myts DATAFILE 'C:\oracle\oradata\MYORACLE\myts.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M;
테이블스페이스가 생성되었습니다.

Untitled

3단계 : 사용자 생성

  • 사용자를 생성하는 코드를 작성한다.
SQL> CREATE USER ora_user IDENTIFIED BY evan DEFAULT TABLESPACE MYTS TEMPORARY TABLESPACE TEMP;
사용자가 생성되었습니다.
  • 해당 사용자에게 롤(Role, 권한)을 부여해야 한다. 현 시점에서는 ‘ora_user’ 사용자에게 DBA라는 롤을 부여한다.
    • 이 권한을 부여받으면 오라클에서 제공하는 웬만한 기능을 모두 사용한다.
SQL> GRANT DBA TO ora_user;
권한이 부여되었습니다.

4단계 : 사용자 계정으로 DB에 접속하기

  • ora_user로 접속한다.
SQL> connect ora_user/evan
연결되었습니다.
  • 접속 후, select user from dual을 입력하면 현재 로그인한 사용자 이름이 출력된다.
SQL> select user from dual;
USER
--------------------------------------------------------------------------------
ORA_USER

SQL Developer 실행

  • 설치 :
  • 새 접속 화면이 나타나면 접속 이름, 사용자 이름을 ora_user로 입력, 비밀번호는 입력, SID 항목에는 처음 설치 시 이름인 myoracle을 입력하고 테스트를 실행한다.

Untitled

Spark Tutorial - Web UI on WSL

개요

  • 간단하게 Spark Tutorial을 활용하여 Web UI를 가동한다.
  • Spark Submit을 활용한다.

파이썬 가상환경

  • 파이썬 가상환경을 작성한다. (필자의 경로는 pyskt_tutorial)
$ pwd
/mnt/c/hadoop/pyskt_tutorial
  • 가상환경을 생성한다.
evan@evan:/mnt/c/hadoop/pyskt_tutorial$ virtualenv venv
  • 생성된 가상환경에 접속한다.
evan@evan:/mnt/c/hadoop/pyskt_tutorial$ source venv/bin/activate
(venv) evan@evan:/mnt/c/hadoop/pyskt_tutorial$

PySpark 설치

  • pyspark를 설치한다.
(venv) evan@evan:/mnt/c/hadoop/pyskt_tutorial$ pip install pyspark
Requirement already satisfied: pyspark in ./venv/lib/python3.8/site-packages (3.2.1)
Requirement already satisfied: py4j==0.10.9.3 in ./venv/lib/python3.8/site-packages (from pyspark) (0.10.9.3)

데이터 생성

  • 가상의 데이터를 생성한다.
  • 소스파일과 구분 위해 data 폴더를 만든 후, 마크다운 파일을 하나 만들 것이다.
(venv) evan@evan:/mnt/c/hadoop/pyskt_tutorial$ mkdir data && cd data
(venv) evan@evan:/mnt/c/hadoop/pyskt_tutorial/data$ vi README.md
  • README.md 파일에서 영어 텍스트 아무거나 추가한다.
    • 필자는 Spark 설명구문을 추가했다.
This program just counts the number of lines containing ‘a’ and the number containing ‘b’ in a text file. Note that you’ll need to replace YOUR_SPARK_HOME with the location where Spark is installed. As with the Scala and Java examples, we use a SparkSession to create Datasets. For applications that use custom classes or third-party libraries, we can also add code dependencies to spark-submit through its --py-files argument by packaging them into a .zip file (see spark-submit --help for details). SimpleApp is simple enough that we do not need to specify any code dependencies.

We can run this application using the bin/spark-submit script:

SimpleApp.py 작성

  • 다음과 같은 파일을 작성한다.
    • 구체적인 코드 설명은 생략한다.
    • 중요한 코드 중 하나는 input( ) 이다. 사용자가 입력을 하지 않으면 spark 세션은 계속 열린상태로 남게 된다. (일종의 Trick)
from pyspark.sql import SparkSession

logFile = "data/README.md"  # Should be some file on your system
spark = SparkSession.builder.appName("SimpleApp").getOrCreate()
logData = spark.read.text(logFile).cache()

numAs = logData.filter(logData.value.contains('a')).count()
numBs = logData.filter(logData.value.contains('b')).count()

print("Lines with a: %i, lines with b: %i" % (numAs, numBs))

input("Typing....")

spark.stop()

Spark-Submit 제출

(venv) evan@evan:/mnt/c/hadoop/pyskt_tutorial$ $SPARK_HOME/bin/spark-submit --master local[4] /mnt/c/hadoop/pyskt_tutorial/SimpleApp.py
  • 실행하면 아래와 같은 메시지가 뜰 것이다. 이 때, 주소를 복사한다.
    • Using 172.17.233.202 주소를 복사한다. (이는 각 컴퓨터마다 다를 것이다!)

Untitled

WSL2에서의 Spark 설치

개요

  • 간단하게 PySpark를 설치해보는 과정을 작성한다.
  • WSL2 설치 방법은 다루지 않는다.

필수 파일 설치

  • 자바 및 Spark 파일을 설치하도록 한다.
$ sudo apt-get install openjdk-8-jdk
$ sudo wget https://archive.apache.org/dist/spark/spark-3.2.0/spark-3.2.0-bin-hadoop3.2.tgz
$ sudo tar -xvzf spark-3.2.0-bin-hadoop3.2.tgz

.bashrc 파일 수정

  • 필자의 현재 경로는 다음과 같다.
evan@evan:/mnt/c/hadoop$ pwd
/mnt/c/hadoop
  • 설치한 파일은 다음과 같다.
evan@evan:/mnt/c/hadoop$ ls
spark-3.2.0-bin-hadoop3.2  spark-3.2.0-bin-hadoop3.2.tgz
  • vi ~/.bashrc 파일을 열고 다음과 같이 코드를 작성한다.
    • 다른 코드는 만지지 않는다.
    • 가장 맨 마지막으로 내려온다.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export SPARK_HOME=/mnt/c/hadoop/spark-3.2.0-bin-hadoop3.2
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$SPARK_HOME/sbin:$PATH
export PYSPARK_PYTHON=/usr/bin/python3

테스트

  • pyspark를 실행한다. (경로에 주의한다)
evan@evan:/mnt/c/hadoop/spark-3.2.0-bin-hadoop3.2$ pwd
/mnt/c/hadoop/spark-3.2.0-bin-hadoop3.2
evan@evan:/mnt/c/hadoop/spark-3.2.0-bin-hadoop3.2$ pysaprk
Python 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
22/04/19 19:39:57 WARN Utils: Your hostname, evan resolves to a loopback address: 127.0.1.1; using 172.17.233.202 instead (on interface eth0)
22/04/19 19:39:57 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
22/04/19 19:39:59 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 3.2.0
      /_/

Using Python version 3.8.10 (default, Mar 15 2022 12:22:08)
Spark context Web UI available at http://172.17.233.202:4040
Spark context available as 'sc' (master = local[*], app id = local-1650364801421).
SparkSession available as 'spark'.
>>> rd = sc.textFile("README.md")
>>> rd.count()
109

참조

Hugo 깃허브 블로그 - Windows (2022)

패키지 관리자 설치

Untitled

Chocolatey (Windows)

  • If you are on a Windows machine and use Chocolatey for package management, you can install Hugo with the following one-liner:
  • 우선 PowerShell을 관리자로 실행 후, 아래와 같이 Chocolately를 설치한다.
    • 명령어 : Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('[https://community.chocolatey.org/install.ps1](https://community.chocolatey.org/install.ps1)'))
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
                                                                                                                        
새로운 크로스 플랫폼 PowerShell 사용 https://aka.ms/pscore6                                                                                                                                                                                     
PS C:\WINDOWS\system32> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Forcing web requests to allow TLS v1.2 (Required for requests to Chocolatey.org)
Getting latest version of the Chocolatey package for download.
Not using proxy.
Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/1.1.0.
Downloading https://community.chocolatey.org/api/v2/package/chocolatey/1.1.0 to C:\Users\512-24\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip
Not using proxy.
Extracting C:\Users\512-24\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users\512-24\AppData\Local\Temp\chocolatey\chocoInstall
Installing Chocolatey on the local machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
  before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
  upgrading from a version of Chocolatey less than 0.9.9.
  'Batch file could not be found' is also safe to ignore.
  'The system cannot find the file specified' - also safe.
chocolatey.nupkg file not installed in lib.
 Attempting to locate it from bootstrapper.
PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...
경고: Not setting tab completion: Profile file does not exist at
'C:\Users\512-24\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring Chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder
PS C:\WINDOWS\system32>

choco를 활용한 Hugo 설치

  • 설치 시, 관리자로 PowerShell을 실행한다.
$ choco install hugo-extended -confirm
  • hugo version을 확인한다.
$ hugo version
hugo v0.97.0-c07f3626e7c8160943591f4d209977efa02c3dca windows/amd64 BuildDate=2022-04-14T08:45:07Z VendorInfo=gohugoio
PS C:\WINDOWS\system32>

Git & Github 설치

  • 이제 Git을 설치하도록 한다. Git이 있어야 배포를 할 수 있기 때문에 반드시 설치한다.
  • Github 회원가입도 안했다면 회원가입을 진행하도록 한다.

Hugo 명령어를 활용한 첫번째 싸이트 만들기

  • 간단한 명령어를 활용하여 싸이트를 생성한다.
    • 명령어 : hugo new site your_blog_name
  • 필자는 폴더명을 myblog로 지정했다.
PS C:\Users\your_name\Desktop> hugo new site myblog
Congratulations! Your new Hugo site is created in C:\Users\512-24\Desktop\myblog.

Just a few more steps and you're ready to go:

1. Download a theme into the same-named folder.
   Choose a theme from https://themes.gohugo.io/ or
   create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
   with "hugo new <SECTIONNAME>\<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".

Visit https://gohugo.io/ for quickstart guide and full documentation.

Github & Submodule 설정

  • 우선 Github 세팅을 먼저 할 것이다.

깃허브 Repo 작성

  • myblog & username.github.io 두 개의 repo를 작성한다.
  • 깃허브와 현재 작성중인 폴더(myblog)를 연결한다.
    • 모든 명령어는 myblog/ 에서 적용한다.
    • 이 때 public 폴더가 있으면 지워준다.
cd myblog
rm -rf public
echo "# myblog" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/rain0430/myblog.git
git push -u origin main
  • 처음 깃헙을 하시는 분들은 주로 하단에서 에러가 나타날 것이다.
    • 이는 로그인을 하라는 뜻이다. (RUN 아래 코드를 순차적으로 실행)
$ git commit -m "first commit"
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
  • git commit 부터 다시 순차적으로 실행한다. git push 할 때, sign in 팝업창이 뜰 수도 있다.
  • 이제 서브모듈(Submodule)을 통해서 배포를 진행하려고 한다.
  • git 서브모듈을 추가한다.
    • 이 때, .gitmodules가 뜨는지 확인한다.
    • 또한 rain0430.github.io Repo는 새로 만들어준다.
    • 그리고 다음 명령어을 추가한다.
$ git submodule add -b main https://github.com/rain0430/rain0430.github.io.git public
  • 만약 에러가 난다면, 강제로 실행을 한다.
$ git submodule add -f https://github.com/rain0430/rain0430.github.io.git public

Hugo 기본 싸이트 확인

  • 우선 기본 테마를 설정해본다.
  • 필자는 다음 테마를 설정할 것이다. Codex | Hugo Themes (gohugo.io)
    • 테마 설정 시, 약간의 팁을 드리면, Updated가 최근 날짜인지 확인한다. 최근 날짜가 아니라면 관리가 잘 안되어 테마일수도 있다.
    • 각 테마마다 구체적인 설정 방법이 있기 때문에 각 설치 문서를 참조한다.

Untitled

PostgreSQL Installation on WSL2 and Windows

개요

  • WSL2에서 PostgreSQL을 설치한다.
  • pgAdmin은 Windows에 설치한다.

터미널 업그레이드

  • 먼저 WSL 터미널을 열고, Ubuntu 패키지를 모두 업데이트 및 업그레이드를 한다.
$ sudo apt update
[sudo] password for evan:
Hit:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1712 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [916 kB]
Fetched 2963 kB in 5s (600 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
  • 이번에는 업그레이드를 해본다.
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

PostgreSQL Installation in WSL2

  • 이번에는 WSL2에서 PostgreSQL을 설치한다. 설치가 종료되면, 반드시 버전을 확인한다.
$ sudo apt install postgresql postgresql-contrib
$ psql --version
psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)
  • 설치 이후에는 Database를 접근가능하도록 활성화해야 한다.
    • 포트가 활성화 되어 있지 않다면 아래와 같은 메시지가 나타날 것이다.
$ sudo service postgresql status
12/main (port 5432): down
  • 이번에는 활성화를 해보도록 한다. 온라인이라는 메시지가 나타난다면 활성화가 되었다는 것을 의미한다.
$ sudo service postgresql start
 * Starting PostgreSQL 12 database server
$ sudo service postgresql status
12/main (port 5432): online
  • 이번에는 활성화된 데이터베이스를 종료시킨다.
$ sudo service postgresql stop
 * Stopping PostgreSQL 12 database server                                                                        [ OK ]
$ sudo service postgresql status
12/main (port 5432): down

사용자 계정 Password 설정

  • 기본적으로 admin 사용자로 등록이 되어 있다. 보통 DB 초기 세팅 시에는 패스워드를 입력받아야 한다. (예: evan)
$ sudo passwd postgres
New password:
Retype new password:
passwd: password updated successfully
  • 여기까지 했다면, WSL2에서 추가로 설정할 것은 더 없다.

pgAdmin Installation on Windows

Untitled

R 텍스트 마이닝 1일차 - 빅카인즈 데이터 수집

Step 01 - 빅카인즈 접속 후, 데이터 내려받기

  • 싸이트 : https://www.bigkinds.or.kr/v2/news/index.do
  • 해당 싸이트에서 키워드를 입력 한다.
    • 이 때, 기간, 신문사 등을 선택할 수 있다.
    • 필자는 키워드는 ‘사회적 경제’ 신문사는 국민일보, 조선일보, 중앙일보를 선택한다.
    • 하단으로 내려 적용하기 버튼을 클릭한다.

Screen Shot 2022-03-13 at 12.27.40 AM.png

  • Step 03 - 분석 결과 및 시각화 탭을 클릭한다.
    • 데이터 다운로드 탭 하단에 엑셀 다운로드 버튼을 클릭한다.

Screen Shot 2022-03-13 at 12.39.59 AM.png

  • 해당 파일에는 본문이 있지만, 보통 200자 내외로 짧게 요약이 되어 있다.

Step 02 - 웹 크롤링 소스 코드 작성을 위한 사전 준비

  • 먼저 기 다운로드 된 파일을 불러온다.
  • 전체 데이터에서 필요한 컬럼만 재추출한다.
> library(dplyr)
> library(readxl)
> raw_df = read_excel("data/NewsResult_20211213-20220313.xlsx", sheet = 1)
> raw_df2 = raw_df %>% select(일자, 언론사, 제목, URL)
> raw_df2 %>% group_by(언론사) %>% summarise(n = n())
# A tibble: 3 × 2  
언론사       n  
<chr>    <int>
1 국민일보   180
2 조선일보   115 
3 중앙일보   256
  • 각 신문사별로 나눠서 객체를 저장한다. 여기에서는 국민일보만 추출하는 코드를 예시로 하였다.
> kmib_df = raw_df2 %>% filter(언론사 == "국민일보")
> head(kmib_df, 3)
# A tibble: 3 × 4  일자     언론사   제목                                         URL                   
<chr>    <chr>    <chr>                                        <chr>               
1 20220312 국민일보 팬데믹의 비극 무너지는 가정, 스러지는 아이들 http://news.kmib.co…
2 20220312 국민일보 ‘장로’ 디딤돌인가 걸림돌인가                 http://news.kmib.co…
3 20220311 국민일보 [기고]대전은 우리가 지킨다                   http://news.kmib.co…
  • 이번에는 URL만 추출하여 특이점이 있는지 확인한다.
    • 전체적으로 주소는 비슷하다.
    • 몇몇 주소에서는 &cp=kd 같은 문자가 더 추가된 것을 확인할 수 있다.
    • 서로 다른 싸이트에서 본문의 위치 등이 동일한지 다른지 확인할 필요가 있다. (확인 결과, 차이는 없다!)
> kmib_df$URL[1:5]
[1] "http://news.kmib.co.kr/article/view.asp?arcid=0924235144&code=11131100"      
[2] "http://news.kmib.co.kr/article/view.asp?arcid=0924235120&code=23111111"      
[3] "http://news.kmib.co.kr/article/view.asp?arcid=0016856942&code=61221514&cp=kd"
[4] "http://news.kmib.co.kr/article/view.asp?arcid=0016853803&code=61111711&cp=kd"
[5] "http://news.kmib.co.kr/article/view.asp?arcid=0016847353&code=61131111&cp=kd"

Step 03 - 웹 크롤링 본문 내용 발췌

  • 이번에는 본문만 크롤링 하도록 한다.
    • 1개의 데이터만 가져와서 테스트를 해본다.
> url = kmib_df$URL[1]
> news = read_html(url, encoding = "EUC-KR")
> news
{html_document}<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko">
[1] <head>\n<title>팬데믹의 비극… 무너지는 가정, 스러지는 아이들-국민일보</title>\n<meta http-equiv="Cont ...
[2] <body>\r\n<div id="wrap">\r\n\r\n<!-- header -->\r\n\r\n<script src="http://ww ...
  • 여기에서 div 태그 안에 있는 class tx 하단에 텍스트가 있는 것을 확인할 수 있다.

Screen Shot 2022-03-13 at 4.36.47 PM.png

RcppMeCab 패키지 설치 (Windows)

개요

  • Mecab-ko 형태소 분석기 사용 위해서는 Rcppmecab 패키지를 설치해야 함.
  • RcppMeCab 패키지 설치 앞서서 설치할 파일이 있음.

설치 파일

위 파일을 다운로드 받은 후, “C:\mecab"에서 압축을 해제한다.

MeCab_install_01.png

MeCab_install_02.png

RcppMecab 패키지 불러오기.

  • 이제 패키지를 불러오도록 한다.
  • 해당 패키지는 Github 버전으로 설치해야 하기 때문에 아래와 같이 설치를 한다.
library(remotes)
install_github("junhewk/RcppMeCab")
Downloading GitHub repo junhewk/RcppMeCab@HEAD
Installing 3 packages: BH, RcppParallel, Rcpp
.
.
** testing if installed package keeps a record of temporary installation path
* DONE (RcppMeCab)
library(RcppMeCab)

테스트

  • 실제 잘 실행되는지 테스트를 해본다.
library(remotes)
install_github("junhewk/RcppMeCab", force = TRUE)

library(RcppMeCab)

# 테스트
text = "안녕하세요!"
pos(sentence = text)
# $`�ȳ\xe7\xc7ϼ��\xe4!`
# [1] "�/SY"           "ȳ/SL"            "\xe7\xc7\xcf/SH" "���\xe4/SY"  
# [5] "!/SF" 
text2 = enc2utf8(text)

pos(sentence = text2)
# $`안녕하세요!`
# [1] "안녕/NNG"   "하/XSV"     "세요/EP+EF" "!/SF"

R 강의 소개

Python 강의 소개

Hexo Blog 이미지 추가

Hexo 이미지 추가

방법 1. Global Asset Folder

  • 가장 간편한 방법은 source 폴더 아래 images 폴더를 별도로 만든다.
  • 마크다운에서 아래와 같이 입력을 한다.
![](/images/image.jpg)


# hexo logo 테스트
- 이미지
![](/images/Hexo-logo.png)
  • hexo server를 실행한 뒤 결과를 확인한다.

result_01.png

Python과 Oracle 연동

개요

  • 파이참에서 가상환경을 만들어 오라클 연동 예제를 작성한다.
  • 아나콘다, 파이참, 그리고 오라클 설치는 생략한다.

1. 가상환경 활성화

  • cmd 창에서 가상 환경을 세팅 하도록 한다. (권장: 관리자 실행)
  • 바탕화면에 필자는 python_oracle 폴더를 생성했다.
  • 현재 경로는 아래와 같다.
C:\Users\1\Desktop\python_oracle> 
  • 먼저 가상환경을 만든다.
conda create --name your_env_name python=3.8
.
.
done
#
# To activate this environment, use
#
#     $ conda activate python_oracle
#
# To deactivate an active environment, use
#
#     $ conda deactivate
  • your_env_name 대신 다른 이름으로 설정해도 된다.
  • 가상 환경에 접속한다.

C:\Users\1\Desktop\python_oracle>conda activate python_oracle
(python_oracle) C:\Users\1\Desktop\python_oracle>

2. 필수 라이브러리 설치

  • ML을 위한 필수 라이브러리를 설치한다.
  • pycaret & oracle
(python_oracle) C:\Users\1\Desktop\python_oracle>pip install pycaret
.
.
.
... wordcloud-1.8.1 yellowbrick-1.3.post1
(python_oracle) C:\Users\1\Desktop\python_oracle>pip install cx_Oracle
Collecting cx_Oracle
  Downloading cx_Oracle-8.2.1-cp38-cp38-win_amd64.whl (219 kB)
     |████████████████████████████████| 219 kB 2.2 MB/s
Installing collected packages: cx-Oracle
Successfully installed cx-Oracle-8.2.1
(python_oracle) C:\Users\1\Desktop\python_oracle> deactivate
  • deactivate 한 뒤, lsnrctl status 명령어를 통해 확인한다.
C:\Users\1\Desktop\python_oracle>lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 16-7월 -2021 10:28:24

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니다
리스너의 상태
------------------------
별칭                     LISTENER
버전                     TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
시작 날짜                 13-7월 -2021 17:21:03
업타임                   217 시간. 7 분. 25트레이스 수준            off
보안                     ON: Local OS Authentication
SNMP                     OFF리스너 매개변수 파일   C:\ORACLE\WINDOWS.X64_193000_db_home\network\admin\listener.ora
리스너 로그 파일         C:\ORACLE\diag\tnslsnr\DESKTOP-F7LRGM5\listener\alert\log.xml
끝점 요약 청취 중...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=DESKTOP-F7LRGM5)(PORT=5500))(Security=(my_wallet_directory=C:\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
서비스 요약...
"CLRExtProc" 서비스는 1개의 인스턴스를 가집니다.
  "CLRExtProc" 인스턴스(UNKNOWN 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orcl" 서비스는 1개의 인스턴스를 가집니다.
  "orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
"orclXDB" 서비스는 1개의 인스턴스를 가집니다.
  "orcl" 인스턴스(READY 상태)는 이 서비스에 대해 1 처리기를 가집니다.
명령이 성공적으로 수행되었습니다
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니다

3. 연동코드 작성

  • 필수 정보를 확인한다.
    • IP주소: localhost
    • Port번호: 1521
    • 서비스이름: orcl
  • JupyterLab을 연 후 코드를 작성한다. (관리자 살행)
    • 가상환경 python_oracle 으로 연결이 되어 있는지 확인한다.