Python
-
Python – [VSCode] No Python interpreter is selected 해결
문제 Python 개발을 하던 중 실행시 갑자기 권한 거부 에러가 발생하고 VSCode 리부팅시 아래와 같이 Python interpreter를 찾지 못하는 현상을 발견하게 됩니다 원인 실행 파일 손상에 의해 발생되는 현상입니다 아래 이미지를 보시면 python.exe 파일의 용량이 0KB로 나오는걸 알 수 있습니다 해결 방법 가상 환경 이용시 지정 파이썬 버전의 가상 환경을 재구성합니다 Python – 가상환경이란? (venv, pyenv) 가상 환경이 아닌 경우 공식 사이트에서 설치 파일을 받아 재설치를 진행합니다 Python 공식 사이트 – Download
-
Python – pytest 패키지 관련 정리 (유닛테스트 , TDD)
유닛테스트와 TDD 유닛테스트란? 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트 TDD란? 테스트가 주도하는 개발 항상 실패하는 테스트를 먼저 작성 (RED) 테스트가 통과하는 프로덕션 코드를 작성 (GREEN) 테스트가 통과하면 프로덕션 코드를 리펙토링 패키지 설치 pytest fixture pytest가 테스트를 진행하면서 공통적으로 이용할 수 있는 자원 데코레이터를 사용하여 정의 scope (범위) default – function Higher-scoped fixtures are executed first (상위 범위가 먼저 실행되게 하려면 fixture 범위[scope] 설정) lower-scoped fixtures : such as function or class higher-scopes fixtures: such as session conftest.py Test시 fixture 를 이곳에서 초기 설정 pytest 실행시 함께 실행 파일을 분리할 때 fixture들은 conftest 파일로 정리하는 것이 좋습니다 configs.py pytest 실행 시 테스트 환경으로 어플리케이션에 설정해야할 환경 변수 TESTING : 테스트 환경 여부…
-
Python – 예외 처리(except)와 가정 설정문 (assert)
예외 처리 프로그램 내의 예기치 못한 오류가 발생 시 프로그래머가 예외 발생을 대처하기 위해 작성하는 코드 예외 처리 사용 예외 처리 생성 예외 처리 강제 (raise) 가정 설명법 (assert) 예외 처리와 비슷, 조건에 대해 bool 값을 받아 참일 경우 통과, 그렇지 않을 경우 AssertionError와 함께 프로그래머가 작성한 메세지를 출력하는 형식
-
Python – XSS 관련 패키지 (MarkupSafe)
MarkupSafe 패키지란? MarkupSafe 패키지는 문자 내에서 스크립트를 메타 데이터로 변환해주는 Python 패키지로 XSS (사이트 간 스크립팅) 공격을 방지할 수 있는 패키지입니다. 패키지 설치 Markup 들어오는 인자 값만 이스케이프 할 수 있습니다. escape 내부의 문자열을 이스케이프 해줍니다. 참고 자료 MarkupSafe
-
Python – 가상환경이란? (venv, pyenv)
가상환경이란? 정의 프로젝트 별로 독룁된 환경( 특정 버전 파이썬 설치와 여러 추가 패키지 )을 제공하는 디렉토리 트리 사용 이유 작업 환경에 따라 사용 패키지와 그에 따른 의존성 등의 조건이 다르기 때문에 발생되는 문제를 해결하기 위해서 사용 venv와 pyenv의 차이점 venv의 경우 python3에서 기본적으로 제공되는 라이브러리 python3에서 지원되는 라이브러리이기 때문에 python2 환경에서는 사용할 수 없음 pyenv의 경우 별도의 설치가 필요 python2, python3 모두 버전 별로 환경 구성이 가능 venv 관련 사용법 가상환경 생성 가상환경 활성화 가상환경 비활성화 pyenv 관련 사용법 설치 방법 – 해당 기준은 Windows OS 기준입니다 (선행) chocolatey 설치 chocolatey로 pyenv-win 설치 설치 가능한 버전 리스트 설치된 버전 리스트 파이썬 버전 설치 및 삭제 가상환경 적용 생성한 가상환경 위치…
-
Python – iterator, generator, decorator
Iterator (이터레이터) Iterable 객체 반복 가능한 객체 문자열, 리스트, 튜플, 딕셔너리, range 등 Iterator 객체 – 값을 차례대로 꺼낼 수 있는 객체 Iterator는 객체를 내장함수 또는 iterable 객체의 메소드(매직 메소드 __iter__)로 객체를 생성 매직 메소드 __iter__ 로 iterator 객체 만들어보기 클래스로 iterator 객체 만들어보기 Generator (제너레이터) generator 객체 시퀀스를 생성하는 객체 generator 특징 함수 안에 yield(일드) 키워드를 이용해서 만들수있음 generator 표현식 사용 메모리 사용이 효율적 yield 키워드 사용해보기 generator 표현식 메모리 사용이 효율적인 이유 Decorator (데코레이터) decorator 객체 하나의 함수를 취해서 또 다른 함수를 반환하는 함수 decorator 특징 함수 실행 전/후에 부가적인 기능을 넣어주는 용도 로깅, 권한 형식 – @메서드종류 decorator로 간단한 로그인 기능 구현해보기 참고 자료 Iterable 과 Iterator Generator(제네레이터)
-
Python – 표준 모듈 (re편)
re 모듈 메서드 종류 기능 결과 compile 문자열 정규식을 컴파일 re.Pattern match 첫 문자열부터 비교 후 일치하는 부분 반환 match object 1개 search 전체 문자열에서 일치하는 문자열 중 가장 앞 부분의 문자열 반환 match object 1개 findall 전체 문자열에서 일치하는 모든 문자열 리스트로 반환 문자열 리스트 finditer 전체 문자열에서 일치하는 모든 문자열 iterator로 반환 iterator object 1개 fullmatch 대상 문자열과 완전 일치한 경우 반환 match object 1개 테스트 원문 (st 변수값) 출처 – 통일불교성전 [무소의 뿔] 모든 중생에 대하여 폭력을 쓰지 말고, 모든 중생의 어느 하나도 괴롭히지 말며, 또 자녀를 두려고 원하지도 말고, 친구를 두기를 원하지 말라. 무소의 뿔처럼 오직 혼자서 걸어가라. 서로 사귄 사람에게는 사랑과 그리움이 생기고, 사랑과 그리움으로…
-
Python – 매개변수 정리
매개변수란? 컴퓨터 프로그래밍에서 매개변수란 변수의 특별한 한 종류로서, 함수 등과 같은 서브루틴의 인풋으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용 Python 매개변수의 종류 위치 매개변수 기본 매개변수 키워드 매개변수 위치 가변 매개변수 키워드 가변 매개변수 Python 매개변수의 작성 순서 위치 – 기본 – 위치 가변 – 키워드(기본) – 키워드 가변 위치 매개변수 가장 기본적인 매개변수 기본 매개변수 매개변수의 기본값 지정 키워드 매개변수 키워드 명에 맞게 매개변수 맵핑 위치 가변 매개변수 매개변수 앞에 * 이 붙음 (튜플형) 키워드 가변 매개변수 매개변수 앞에 ** 이 붙음 (딕셔너리형)
-
Python – 파일 관리 (+CSV, with 문법)
용도 주로 2가지 용도로 많이 사용됩니다 파일의 데이터를 가져와서 사용하기 (가져오기) 추출한 데이터를 파일형태로 저장하기 (내보내기) 파일 열기 모드 Character Meaning r open for reading (default) w open for writing, truncating the file first x create a new file and open it for writing a open for writing, appending to the end of the file if it exists b binary mode t text mode (default) + open a disk file for updating (reading and writing) U universal newline mode (deprecated) 파일을 열 때 행할 행위에 적합한 모드를 지정해줘야합니다 파일 닫기 파일 덮어쓰기 파일 이어쓰기 파일 읽기 with 구문 사용 __enter__ 와 __exit__ 특수메소드를 가진 객체에 접근하게 되면 with 구문을 사용할…
-
Python – Tuple 정리
Tuple 특징 시퀀스 자료형 수정, 추가, 삭제 불가능 읽기만 가능 메모리 사용이 효율적 선언 리스트로 변환 패킹과 언패킹 튜플 함수