단일 파일에서 vi 오픈한 파일에서 문자열 치환 방법 입니다.

:%s/source/target/g

특정 디렉토리 내에서 여러 파일에 대한 문자열 치환 방법입니다.

find ./ -name '*.html' -exec sed -i 's/source/target/g' {} \;

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret
import psycopg2 as pg2
from psycopg2.extras import DictCursor

conn = pg2.connect()
cursor = conn.cursor(cursor_factory=DictCursor)
cursor.execute('select %s, %s', ('test', 2))
cursor.query
"select E'test', 2"

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret

 

// 설치
npm i --save @ckeditor/ckeditor5-vue @ckeditor/ckeditor5-build-classic

// package.json 확인
    "dependencies": {
        "@ckeditor/ckeditor5-build-classic": "^16.0.0",
        "@ckeditor/ckeditor5-vue": "^1.0.1"
    }

// template 파일 샘플
<template>
    <ckeditor :editor="editor"
              v-model="editorData"
              :config="editorConfig"
    />
</template>

<script>
    import ClassicEditor from '@ckeditor/ckeditor5-build-classic'
    import CKEditor from '@ckeditor/ckeditor5-vue'
    
    export default {
        name: 'CKEditor',
        components: {
            ckeditor: CKEditor.component
        },
        data: () => ({
            editor: ClassicEditor,
            editorData: '<p>Content of the editor.</p>',
            editorConfig: {
                // The configuration of the editor.
                height: '500px',
                language: 'ko'
            }
        })
    }
</script>

참조 URL : https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/vuejs.html


WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret

git desktop 설치

https://desktop.github.com/

git clone으로 소스 가져오기

// 빈 디렉토리 만들고 powershell 호출

// repository clone
git clone ssh://[gituser]@[gitlab server]/[gitlab reopsitory]

// github desktop 실행
File > Add local repository 클릭
repository 디렉토리 선택

git clone ssh://[gituser]@[gitlab server]/[repository path]
Add local repository 선택해서 clone한 repository를 연결
git clone으로 연결한 디렉토리 위치를 선택. 해당 디렉토리에는 .git 폴더가 있을 것이다.
연결 후 History에서 작업한 내역을 확인할 수 있다. commit, push 등은 할 수 없다.


WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret

보통 콘솔에서 동작을 시킬때 동일한 프로그램이 좀비형태로 안죽고 있거나, 일정 시간 오버해서 동작하는 경우 강제로 종료시켜야할 필요성이 있을때 사용하면 유용합니다.

import psutil

# python filename.py로 실행된 프로세스를 찾음
for proc in psutil.process_iter():
	try:
		# 프로세스 이름, PID값 가져오기
		processName = proc.name()
		processID = proc.pid

		if processName[:6] == "python": // 윈도우는 python.exe로 올라옴
			commandLine = proc.cmdline()

			# 동일한 프로세스 확인. code 확인
			if 'filename.py' in commandLine:
				parent_pid = processID  #PID
				parent = psutil.Process(parent_pid)  # PID 찾기

				for child in parent.children(recursive=True):  #자식-부모 종료
					child.kill()

				parent.kill()
		else:
			print(processName, ' ', commandLine, ' - ', processID)

	except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):   #예외처리
		pass

print('동일 프로세스 확인 완료....')

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret

페이지 이동 전에 특정 이벤트를 처리하고 싶은 경우가 있는 경우 유용합니다.

// component LIFECYCLE
components: { ... },
mounted: { ... }
methods: { ... },
beforeRouteLeave (to, from, next) { ... } // 컴포넌트를 벗어나는 경우 처리할 이벤트

// 샘플
        beforeRouteLeave(to, from, next) {
            const answer = window.confirm('데이터 저장이 되지 않았습니다. 이 페이지를 나가시겠습니까?')
            if (answer) {
                next()
            } else {
                next(false) // false를 추가한 경우 페이지 이동을 하지 않음
            }
        }

WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret
pip install openpyxl

디렉토리 내의 엑셀 파일 목록 전체를 읽어서 분석하기 코드 일부

import openpyxl
import os
 
dirList = [
    'D:\\admin',
    'D:\\front'
]

currentNo = 0

def analsysEcxcel(filename, currentNo):
    # 엑셀파일 열기
    wb = openpyxl.load_workbook(filename)
    
    # 현재 Active Sheet 얻기
    ws = wb.active
    
    # Active Sheet 지정하기
    # ws = wb.get_sheet_by_name("Sheet1")
    
    # 국영수 점수를 읽기
    for r in ws.rows:
        row_index = r[0].row  # 행 인덱스
        if row_index < 2: # 첫번째 행은 칼럼 정보가 있으니 그대로 패쓰
            continue

        kor_score = r[7].value
        eng_score = r[8].value
        math_score = r[9].value
        
        if int(kor_score) > 50: # 국어 점수가 50점 초과 인원만 확인
            currentNo += 1
            print("%d > %d: %s %s %s" % (currentNo, row_index, kor_score, eng_score, math_score))

    # 엑셀 파일 종료
    wb.close()

    return currentNo

currentFileNo = 0
for dir in dirList:
    currentDir = dir

    # 현재 디렉토리 위치가 존재하는 지 확인
    if os.path.exists(currentDir) == False:
        print('no directory: %s' % currentDir)
    else:
        # 현재 디렉토리 출력
        print(currentDir + ' >>>>>>')
        fileList = os.listdir(currentDir)

        for filename in fileList:
            if filename[:1] == '~': # ~로 시작되는 임시 파일이 존재하면 패쓰
                print('except file .... <<<<<<< %s' % filename)
                continue

            currentFileNo += 1
            # 현재 파일 디렉토리 + 파일명 정리
            currentFile = '%s\\%s' % (currentDir, filename)
            currentNo = analsysEcxcel(currentFile, currentNo)

# 현재 파일 갯수를 출력. 심심하니깐.
print('File Count : %d' % currentFileNo)

 


WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret

원격 FTP 연결 플러그인 ftp-simple 설치

Setting > Command-Palette 클릭 > ftp-simple 검색

Extensions 메뉴를 클릭해서 검색할 수도 있습니다.
Command Palette 실행 - Shift + Option + P

ftp-simple: Config - FTP connection setting 선택

[
	{
		"name": "service_name",
		"host": "domain",
		"port": 22,
		"type": "sftp",
		"username": "ID",
		"password": "비밀번호",
		"path": "/home/", // 원격지 디렉토리 위치
		"autosave": true,
		"confirm": true // 저장할때마다 OK 창 뜨는 것이 귀찮으면 false로 변경
	}
]

ftp-simple 실행: Remote directory open to workspace

설정된 SFTP 사이트를 클릭하면 원격 접속 후 디렉토리를 보여줌. 편집할 곳까지 이동을 했다면, [Current Directory]를 선택. 해당 파일들을 원격으로 다운로드 함

파일을 수정하고 저장을 하면 설정에 따라 [OK] 팝업이 계속 뜹니다. 클릭을 해주지 않으면 파일이 업데이트 되지 않으니, 매번 선택하는 것이 귀찮다면 옵션에서 "confirm": false로 변경한 후 저장합니다.


WRITTEN BY
비트센스
뷰파인더로 보는 프로그래머의 세상 페이스북 @bitsense 트위터 @picory 스카이프 picory MSN drawhalf@dreamwiz.com

트랙백  0 , 댓글  0개가 달렸습니다.
secret