전체 글 64

linux :: apt update 시 NO_PUBKEY, 'NOSPLIT' 에러 해결

우분투에서 패키지 설치를 위해 apt(Advance Packaging Tools) 를 많이 사용한다. 이 때, 설치할 수 있는 패키지 목록을 최신화해주기 위해 다음 명령어를 사용한다. apt update 그런데 apt update 를 시도할 때 다음과 같이 NO_PUBKEY, 'NOSPLIT' 등의 에러가 발생하는 경우가 있다. Err:10 https://packagecloud.io/github/git-lfs/ubuntu xenial InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY {KeyID} Reading package lists... Done W: GPG e..

:: linux 2022.02.23

python :: 파이썬 테스트(unit test) 코드 작성 라이브러리 pytest 와 fixture

코드 작성 후 코드가 정상적으로 동작하는지 확인하기 위해 테스트 파일을 작성한다. 파이썬에서는 테스트 파일 작성 시 pytest 를 많이 사용하는데, 이 pytest 는 fixture 라는 유용한 기능을 제공한다. fixture 는 선언한 함수를 테스트 함수에서 인자로 받아 사용할 수 있게 해주는 기능이다. 1) 테스트 함수 A를 작성하고 2) A에 fixture 를 선언하면, 3) 다른 테스트 함수에서 A의 결과를 받아와 사용할 수 있다. 이런 특징은 테스트 함수 작성 시 아주 유용한데, fixture 가 어떻게 활용되는지 알아보자. 1. fixture 사용법 먼저 fixture 를 사용하는 방법은 간단하다. pytest 를 import 한 후, 대상 함수 위에 다음과 같이 정의하면 된다. import..

:: python 2022.02.03

Vue CLI :: 스프링부트(Spring Boot) 프로젝트에 Vue.js 연동하기

Spring Boot 프로젝트 생성 후 프론트 개발을 위해 Vue.js 를 연동해보았다. 1. 터미널을 열고 vue-cli 설치 $ npm install -g @vue/cli 2. 프로젝트 경로에서 다음과 같이 입력 $ vue create frontend cli plugins 들이 설치되면서 frontend 폴더가 생성된다. (frontend 말고 다른 이름으로 해도 됨) * 설치 시 preset 은 default (babel, eslint) 를 선택한다. babel -eslint 는 문법이나 코드 통일성 등을 자동으로 체크해주는 formatter 개념. 3. frontend 폴더로 이동 $ cd frontend 4. 서버 구동 $ npm run serve ↑ 위 명령어를 실행하면, 요렇게 localho..

:: frontend/vue.js 2022.01.27

python :: 파이썬 텍스트 파일 문자열에서 \ufeff 제거하는 방법 (BOM 이란?)

텍스트 파일을 읽어오던 중 아래 에러가 났다. SyntaxError: invalid character in identifier 파일 내용을 찍어보니 '\ufeff' 가 포함되어 있었다. \ufeff 는 문서의 맨 앞에 추가되어 현재 파일의 인코딩 정보를 알려주는 역할을 한다. 이 부분을 BOM(Byte Order Mark) 이라고 한다. 텍스트를 읽는 프로그램은 이 BOM을 참고하여 이어지는 데이터를 어떤 방식으로 읽을지 결정하게 된다. 파일 open 시 encoding 방식 변경하기 BOM 인식 오류 문제를 해결하려면 파일을 읽을 때 'utf-8' → 'utf-8-sig' 로 encoding 옵션을 변경해주면 된다. # 기존 (utf-8) with open(file_path, 'r', encoding=..

:: python 2022.01.19

python :: 파이썬 open 함수로 텍스트 파일 읽기, 쓰기

파이썬으로 텍스트 파일을 읽고 쓰기 위해서 open() 내장 함수를 사용할 수 있다. 1. 파일 읽기 file_path = "full file path" with open(file_path, "r", encoding="utf-8") as f: lines = f.readlines() for line in lines: print(line) # 파일 내용 한 줄씩 출력 .readlines() 를 하면 데이터를 한 줄씩 담은 배열을, .read() 를 하면 전체 데이터를 통째로 담은 문자열을 리턴한다. 2. 파일 쓰기 with open(file_path, "w", encoding="utf-8") as f: f.write("toramko\n") f.write("blog") mode 가 "r" 인 경우 읽기, "w..

:: python 2022.01.12

windows :: 파이썬(python) 프로세스 여러 개를 구분하는 방법 (프로세스 이름 변경 배치(.bat) 스크립트 작성하기)

보통 파이썬 프로세스는 'python {파일명}.py' 로 실행시킨다. 실행하고 나면 작업관리자에서 'python.exe' 로 프로세스가 실행 중인 걸 확인할 수 있다. 만약 여러 개의 파이썬 프로세스를 실행했을 때 각각의 프로세스를 구분하고 싶다면 어떻게 해야할까? 한 가지 방법으로 파이썬 프로세스 이름을 변경하여 실행할 수 있다. python.exe 가 아닌 toramko.exe 로 띄우고 싶다면, 1. python.exe 를 복사해서 toramko.exe 로 이름 변경 2. toramko {파일명}.py 로 실행 이렇게 하면 된다. 배치(.bat) 스크립트 작성 위 내용을 클릭 한 번에 실행할 수 있도록 배치 파일(.bat)을 작성해보자. C:\test 아래의 run.py 를 실행한다고 가정하면, ..

:: windows 2022.01.10

python :: PyYAML yaml.load 시 ReaderError: unacceptable character: special characters are not allowed 오류 해결

파이썬으로 yaml 파일을 읽기 위해 PyYAML 라이브러리를 사용, yaml.load 로 파일을 불러오려다가 다음 에러가 났다. File "/usr/local/lib/python3.6/site-packages/yaml/reader.py", line 89, in peek return self.buffer[self.pointer+index] IndexError: string index out of range File "/usr/local/lib/python3.6/site-packages/yaml/reader.py", line 144, in check_printable 'unicode', "special characters are not allowed") yaml.reader.ReaderError: unac..

:: python 2022.01.04

python :: 파이썬 웹페이지 url 에서 json 데이터 가져오기 (구글 애드센스 sellers.json 에서 자신의 사용자 정보 찾기)

http://{도메인 주소}/{파일명}.json 위와 같은 형태의 주소로 웹에 등록된 json 파일을 읽어오고자 할 때, 파이썬 스크립트를 작성하여 json data 를 가져올 수 있다. 1. requests 라이브러리로 웹페이지 json 데이터 불러오기 import requests url = "{웹페이지 json url 전체 경로}" data = requests.get(url).json() requests 를 사용하여 이렇게 간단하게 불러올 수 있다. 2. Google Adsense 'sellers.json' 에서 자신의 사용자 정보 찾기 구글 애드센스 허가를 받은 후 광고를 게재하면 이렇게 Google sellers.json 파일에 판매자 정보를 게시하라는 안내 문구가 뜬다. 1) sellers.js..

:: python 2022.01.02

python :: shutil.copy 리눅스 네트워크 드라이브로 파일 복사 시 WinError 해결

파이썬 스크립트를 작성, 실행하여 로컬(Windows) -> 네트워크 드라이브(Z:)(Linux) 로 파일을 복사할 때 shutil.copy 부분에서 다음과 같은 에러가 나는 경우가 있다. [WinError 5] 액세스가 거부되었습니다: 'Z:\\..' [WinError 3] 지정된 경로를 찾을 수 없습니다: 'Z:\\' 확인해보니 실제 파일은 성공적으로 복사가 되어 있는데도 shutil.copy 부분에서 에러가 발생하는 경우가 나타났다. 1. 권한 설정 살펴보기 이럴 땐 우선 권한 설정을 살펴보아야 한다. [WinError 5] 액세스가 거부되었습니다 위 에러는 권한 문제가 있을 때 발생한다. 폴더의 보안 설정을 확인해보거나, 파이썬 스크립트 실행 시 cmd 를 관리자(Administrator) 권한으..

:: python 2021.12.30

python :: 파이썬 re 로 정규식 패턴 문자열 처리하기 (search/match/split/sub/compile)

re는 문자열 내 특정 패턴을 검색, 치환, 제거할 수 있는 파이썬 정규 표현식(Regular Expression) 라이브러리이다. re 가 패턴을 인식하는 방법은 다음과 같다. 1) 정규식 작성 : 특정 문자를 인식하기 위한 패턴을 정규식으로 작성한다. (내가 할 일) 2) re 에 정규식 적용 : 작성한 패턴을 re 에 적용시키면 re 는 이를 가지고 정규식 객체를 생성한다. 3) 패턴 감지 : 생성된 정규식 객체는 자동으로 문자열 내 해당 패턴을 감지할 수 있다. 즉, 내가 작성한 정규식을 토대로 문자열 내 패턴을 감지하는 것이다. 코딩하다보면 한 번 쯤은 꼭 정규식을 접하게 되는데 뭔가 더럽게(?) 생긴데다 규칙이 잘 외워지지도 않는다. (그런데도 패턴 인식에 있어서 정말 많이 사용되는 표현식이다..

:: python 2021.12.29
300x250