Back-end
-
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와 함께 프로그래머가 작성한 메세지를 출력하는 형식
-
PHP – include, require
include 외부 파일을 불러오는 함수 매개변수로 입력한 파일이 존재하지 않아도 무시하고 진행 가능 (Warning) include_once – 동작은 include와 같지만 선언 횟수에 상관없이 1회만 호출 require 외부 파일을 불러오는 함수 매개변수로 입력한 파일이 존재하지 않으면 에러 발생 (Fatal Error) require_once – 동작은 require와 같지만 선언 횟수에 상관없이 1회만 호출
-
PHP – 입출력 및 변환 함수 정리
입출력 함수 echo – 문자열 출력 print – echo와 비슷, 문자열 출력 printf 형식화한 문자열을 출력 sprintf 형식화한 문자열을 반환 형태 설명 예시 d or i 부호 있는 십진수 392 u 부호 없는 십진수 7235 o 부호 없는 8진수 610 x 부호 없는 16진수 7fa X 부호 없는 16진수(대문자) 7FA f 10진수 부동 소수점, 소문자 392.65 F 10진수 부동 소수점, 대문자 392.65 e 수학 표기법 (가수/지수), 소문자 3.9265e+2 E 수학 표기법 (가수/지수), 대문자 3.9265E+2 a 16진수 부동 소수점, 소문자 -0xc.90fep-2 A 16진수 부동 소수점, 대문자 -0XC.90FEP-2 c 문자 a s 문자열 sample print_r 문자열, 숫자, 배열, 객체 등의 변수의 값을 인쇄 var_dump – 데이터 타입 출력 변환 함수 json_encode 배열 및 stdClass 객체를…
-
PHP – XSS 관련 패키지 (AntiXSS)
AntiXSS 패키지란? AntiXSS 패키지는 문자 내에서 스크립트를 제거 및 변환해주는 PHP 패키지로 사이트 간 스크립팅 방지를 위해 사용할 수 있습니다. 패키지 설치 스크립트 필터 inline style 구문 확인 removeEvilAttributes – style 구문은 허용하며 내부 스크립트만 제거 xss 공격 포함 여부 isXssFound – xss 공격 포함 여부 반환 (True/False) iframe 태그 허용 removeEvilHtmlTags – 함수에 매개변수로 태그를 넣으면 해당 태그는 html 태그로서 동작 참고 자료 github anti-xss
-
Python – XSS 관련 패키지 (MarkupSafe)
MarkupSafe 패키지란? MarkupSafe 패키지는 문자 내에서 스크립트를 메타 데이터로 변환해주는 Python 패키지로 XSS (사이트 간 스크립팅) 공격을 방지할 수 있는 패키지입니다. 패키지 설치 Markup 들어오는 인자 값만 이스케이프 할 수 있습니다. escape 내부의 문자열을 이스케이프 해줍니다. 참고 자료 MarkupSafe
-
PHP – 환경설정 파일 정리
php.ini 파일이란? php 실행시 환경변수를 통해 필요한 설정이 가능한 파일 파일 위치 – 일반적으로 /etc/php/{version}/php.ini short_open_tag <?php를 <?로 생략 display_error 에러 로그 출력 여부 max_execution_time 페이지 실행 시간 설정 시간 초과시 Gateway time out을 볼 수 있음 date.timezone 타임존 설정 세션 관련 – PHP (Session 메뉴얼) save_handler 세션 저장 방식 지정 files, save_path 세션 저장 경로 name 세션ID 변수명 지정 ex) $PHPSESSID use_cookies 쿠키와 함께 세션 사용 여부 auto_start php 시작과 함께 session_start() 호출 여부 기본값 0 세션 정리 gc_maxlifetime – 일정 시간 동작이 없을 경우 세션 제거 gc_probability / gc_divisor – gc_divisor만큼의 액세스 중 gc_probability 만큼의 횟수로 세션 제거 데이터 전송 관련 file_uploads 파일 업로드 허용 여부 max_input_time HTTP…
-
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(제네레이터)