Python 345

SQLAlchemy, ‘PasswordType’으로 손쉽게 암호화하자

PasswordType 이란? sqlalchemy를 이용해 model 클래스에서 PasswordType을 적용할 수 있습니다. PasswordType을 적용한 model은 사용자가 입력한 패스워드를 자동으로 암호하하여 데이터베이스에 저장합니다. 모델 컬럼 타입을 지정한 것만으로 개발자가 따로 암호화 로직을 구현하지 않아도 되는 것입니다. 패스워드 암호화 저장 PasswordType을 사용하기 위해서는 먼저 SQLAlchemy-Utils를 설치해야합니다. pip install sqlalchemy-utils 설치가 완료되었다면 model파일에 import 해줍니다. # models.py from sqlalchemy_utils import PasswordType import 후 아래에 User model을 작..

Poetry로 프로젝트 패키지를 관리하자

Poetry는 왜 사용하는가? Poetry는 파이썬에서 종속성 관리 및 패키징을 위한 도구입니다. 즉, 프로젝트가 의존하고있는 라이브러리 패키지를 설치 및 삭제 등 효과적으로 관리할 수 있습니다. 때문에 Poetry는 pip의 requirements나 virtualenv를 대체할 수 있습니다. poetry를 pip로 설치하는 방법은 다음과 같습니다. pip install --user poetry 다른 경로의 설치 방법은 공식문서를 참고하기 바랍니다. installation Poetry로 프로젝트 생성하기 poetry를 설치했다면 이제 shell에서 poetry 명령어를 사용할 수 있습니다. poetry new project-name 위의 명령어를 통해 새로운 프로젝트를 생성할 수 있습니다. 생성된 프로젝..

pre-commit 에서 ‘flake8’ 과 ‘black’ 커스텀 문제

예제 코드 # setup.cfg [flake8] exclude = .git max-line-length = 88 [black] line-length = 88 flake8 과 black 에 ‘line-length’설정 값이 중복되는 것이 아니냐는 의견이 있었습니다. 우선 결론부터 말씀드리자면 둘다 있어야 한다고 생각합니다. 그 이유는 어느 한쪽을 생략한 경우, 생략한 쪽은 기본값을 채택하여 개발자가 원하는대로 작동하지 않기 때문입니다. 예를들어 위에 문서에서 flake8의 ‘max-line-length = 88’ 를 생략하는 경우 # 코드 수정 [flake8] exclude = .git # max-line-length = 88 black은 88자를 통과시키지만 flake8은 기본값인 79자를 기준으로 검사..

pre-commit 을 이용해 commit 전 코드 체크를 자동화하자.

pre-commit 적용하기 해당 글은 깃헙 레포지토리에서도 확인가능합니다. 깃헙 링크 pre-commit란? 커밋 메시지를 작성하기 전에 호출이 되는 명령어입니다. 커밋이 되기 전 문법 오류나 스타일, 정렬, 타입 오류 등을 체크할 때 사용합니다. 개발자의 기호에 따라 선택하고 커스텀까지 할 수 있습니다. pre-commit 적용 순서 1. git init 2. pip install pre-commit 3. pre-commit install >>> pre-commit installed at .git/hooks/pre-commit 4. pre-commit run >>> An error has occurred: InvalidConfigError: =====> .pre-commit-config.yaml is..