python 25

Programing Language/Python
파이썬 파일 실행 할 때 생기는 __pycache__ 파일에 대해 알아보기

파이썬을 이용하여 개발하다 보면 가끔 __pycache__라는 폴더가 생기고, 그 안에 pyc라는 파일들이 생기는 것을 볼 수 있다. 그럼 이. pyc 파일은 무엇이며 어떤 역할을 하는 걸까? __pycache__ 와. pyc 파일 __pycache__ 는 파이썬 스크립트를 실행할 때 생기는 디렉터리이다. 그리고 이 폴더 안에는 파이썬 스크립트의 컴파일된 버전인. pyc 파일들이 포함되어 있다. 파이썬 스크립트가 실행 될 때, 인터프리터는 먼저 __pycache__ 폴더 안에. pyc 파일이 있는지 검사를 하고. pyc 파일이 최신 상태이면 원본 스크립트 대신에. pyc 파일을 먼저 실행한다. 그 이유는 바이트 코드로 되어있는 pyc 파일을 실행하는 것이 py 파일을 해석하는 것보다 훨씬 빠르기 때문이다..

Programing Language/Python
윈도우, 맥에서 가상환경을 구성하고 패키지 매니저 pip와 requirements.txt 로 패키지 관리하기

이번에는 윈도우, 맥 운영체제에 가상환경을 구성하고 패키지 매니저인 pip와 requirements.txt을 이용하여 패키지를 어떻게 관리하는지에 대해서 살펴보자. Python에서 가상환경을 사용하는 이유 우리가 여러 프로젝트를 진행하다 보면, 여러 패키지들을 통해서 코드를 작성하고 버전을 관리하며 진행되는 것을 알 수 있다. 만약 A, B라는 프로젝트가 있고, A, B 프로젝트에는 temp_package라는 패키지를 사용하고 있다고 가정한다. 여기서 문제가 생기는데 "A 프로젝트에는 temp_package 버전이 1.1을 사용하여야 작동하고 B 프로젝트에는 temp_package 버전 3.1 이상을 사용하여야 돌아간다."라는 것이다. 현재 우리는 글로벌 파이썬 환경을 사용하기 떄문에 temp_packa..

Programing Language/Python
typing module (Type annotation and Typehint) 을 통한 가독성 좋은 코드 작성하기

Python은 동적 프로그래밍 언어이기 때문에 코드를 실행하면 해당 변수의 타입을 추론하여 체크한다. 변수의 타입은 정해져 있지 않기 때문에 개발자가 자유롭게 사용할 수 있다는 장점이 있지만, 프로젝트의 규모가 커짐에 따라서 애플리케이션의 안정성에 위험요소가 될 뿐만 아니라 치명적인 버그를 만들 수 있다. 따라서 Python개발자들은 이런 요소를 신경 쓰기 위하여, Python version 3.5에서부터 타입 어노테이션, 타입 힌트를 지원하고 있다. Python Type Hinting 파라미터와 리턴값의 데이터값을 명시적을 지정해 주는 것을 의미한다. 원래는 이런 데이터값을 명시적으로 지정줄 때, 주석을 이용하여 처리를 하였으나, 개발자들에게 번거로웠을뿐더러 일반 주석과 구분이 어려웠기 때문에 좋은 평..

Programing Language/Python
리스트 컴프리헨션과 삼항연산자을 이용하여 코드 작성하기

파이썬 소스코드를 살펴보면 case = [i for i in range(1, 5)] 같이 리스트 안에 for 문을 사용하여 해당 요소를 구성하는 기법을 자주 볼 수 있다. 처음 보면 '왜 파이썬 코드에 영어 문법을 박아놨지?' 라고 생각할 수도 있는데 이는 파이썬에서 제공하는 문법의 종류 중 하나이다. 이번에는 해당 방식의 이름과 이를 유연하게 사용하는 방법에 대해 알아보고자 한다. 리스트 컴프리헨션 리스트 컴프리헨션(List Comprension)은 직관적으로 리스트를 생성하는 방법이다. 대괄호 []로 감싸고 내부에 for문과 if 문을 사용하여 조건에 만족하는 요소만 넣은 리스트를 생성할 수 있다. 리스트 컴프리헨션을 사용하는 이유는 아까 말했다시피 for 문이나 if 문 등의 코드를 여러 줄에 걸쳐..

Programing Language/Python
아스테리스크와 패킹, 언패킹 기법

파이썬 코드를 보면 인자로 받는 부분에 *arg, **kwargs라는 표현을 많이 볼 수 있다. arg, kwarg가 어떤 변수의 이름인 것은 알겠지만 앞서 붙어있는 "*" 표현은 낯설기만 하다. 따라서 이번에는 해당 표현에 대해서 알아보고 어떻게 사용하는지에 대해서 알아보자. 파이썬의 아스테리스크 (Asterisk " * ") 파이썬이 지원하는 여러 연산자 중에 하나인 아스테리스크 (이하 * )는 단순히 곱셈만이 아닌 여러 의미를 가진 연산들을 지원하고 있다. 크게 4가지 종류로 사용이 된다. 곱셈, 거듭제곱 연산으로 사용 시퀸스 타입의 데이터를 반복 확장하고자 할 때 사용 가변인자를 사용하고자 할 때 사용 컨테이너(시퀸스) 타입의 데이터를 언패킹 할 때 사용 1, 2 문항은 자주 사용하기도 하고 대부..

Programing Language/Python
mypy, pyright 을 이용한 정적 타입 검사

mypy, pyright 사용법은 아래 게시글과 연동됨을 알립니다. 참고 : 파이썬 typing module을 통한 타입 표기법 : https://jheaon.tistory.com/63 typing module (Type annotation and Typehint) 을 통한 가독성 좋은 코드 작성하기 Python은 동적 프로그래밍 언어이기 때문에 코드를 실행하면 해당 변수의 타입을 추론하여 체크한다. 변수의 타입은 정해져 있지 않기 때문에 개발자가 자유롭게 사용할 수 있다는 장점이 있지만 jheaon.tistory.com mypy와 pyright mypy와 pyright 모두 파이썬 타입 검사를 위해 만들어진 정적 타입 검사 도구이다. 두 개의 차이점을 들어보자면 아래와 같다. mypy : python에..

Programing Language/Python
sqlite3 모듈을 통해 sqlite3.db 파일 관리하기

파이썬으로 sqlite3 DB을 관리하는 방법을 알아보기 전 간단하게 데이터베이스와 그 개념에 대해 살펴보고, 그 지식을 활용하는 형식으로 sqlite3을 이용해 보자. 글의 순서는 데이터베이스가 무엇인지에 대해 살펴보고, sqlite SQL 쿼리문 작성, python에서 sqlite3.db관리 순으로 정리한다. 데이터베이스 데이터베이스 (DB) 정의 데이터베이스란 구조화된 정보 또는 데이터의 조직화된 모음으로 일반적으로 컴퓨터의 시스템에 전자적으로 저장되는 데이터의 모음을 의미한다. 일반적으로 DBMS(Data Base Management System)에 의해 관리되고 처리된다. 주로 삽입(Create), 조회(Read), 수정(Update), 삭제(Delete)를 통해 데이터가 수정되고 처리된다. 📢..