study/Python 🌼 7

[Node, Python] filter와 reduce 함수

프로젝트 중에 Node 코드를 Python으로 짜야하는 프로젝트 진행 중에 같은 이름으로 같은 기능을 하는 함수지만 사용 방법이 다른 두 개의 함수를 공부하였다. 우선 JS, 즉 Node에서 사용되는 filter와 reduce를 정리해본다. filter 함수와 reduce 함수는 고차 함수로서 다른 함수를 소비 또는 생성하는 함수다. reduce 함수 array.reduce(callbackFunction(previousValue, currentValue, currentIndex, array1), initValue); reduce 함수의 매개변수는 callbackFunction과 initVaule이다. callback 함수는 4개의 매개변수를 선택적으로 받을 수 있고, 차례대로 배열의 첫번째 값, 혹은 i..

study/Python 🌼 2021.07.07

[Python] 월 단위의 날짜 차이 계산

보통 파이썬은 내장 라이브러리인 timedelta로 날짜의 차이를 구할 수 있다 하지만 아무리 검색해봐도 월단위의 날짜 계산은 찾아보기가 힘들고 계산 방법을 가늠할 수 가 없던 와중 빛같은 글을 발견 월단위 계산은 relativedelta 라이브러리를 사용하여 계산하게 되는데 from dateutil.relativedelta import relativedelta delta = relativedelta(end, start) # 두 날짜의 차이 구하기 result = 12 * delta.years + delta.months # 두 날짜의 차이나는 개월수 for i in range(result): count = start + relativedelta(months=i) # 달수 증가 print(count.str..

study/Python 🌼 2021.07.05

[Python] Mac SSLCertVerificationError

파이썬 웹 크롤링 예제를 따라하던 중 윈도우에서는 아무 문제없이 실행되는 파일 다운로드가 mac에서는 실행이 되지 않았다. 스크래핑을 하는 도중 SSL 문제 발생하여 HTTPS가 적용된 웹 페이지에 대해 스크래핑을 시도할 경우 생기는 문제이다. python 모듈인 urllib을 사용하여 진행 중 해당 에러 봉착. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129) 이 문제는 파이썬이 설치된 경로에서 Install Cerificates.command 파일을 실행해 주면 해결이 된다. 해당 파일 실행시키면 ..

study/Python 🌼 2021.06.30

[Python] dataclass 모듈 사용법

파이썬으로 코딩을 하면서 데이터를 담아두기 위해 여러가지 방법을 사용한다. 리스트, 튜블, 딕셔너리, 네임드 튜플, 세트, 프로즌 세트 등등.. 반면 클래스를 통해 데이터를 담아두면 type-safe해지기 때문에 프로그램 실행 중 오류가 발생할 확률이 적어진다는 장점이 있다. 파이썬 3.7에서 dataclass라는 모듈이 표준 라이브러리에 추가되었다. 이를 알아보고자 한다. 공식문서 dataclasses - Data Classes - Python 3.9.5 documentation dataclasses — Data Classes — Python 3.9.5 documentation This module provides a decorator and functions for automatically addin..

study/Python 🌼 2021.05.28

[Python] SQLAlcehmy

SQLAlechmy란? python에서 사용가능한 ORM ORM이란 말 그대로 객체와 관계를 연결해 주는 것 → MyBatis, JVM 같은 것 데이터베이스의 데이터를 ← 매핑 → Object 장점 객체 지향적인 코드로 비즈니스 로직에 집중 가능 재사용 및 유지보수 편리성 증가 DBMS에 대한 종속성이 줄어듬 단점 ORM 만으로는 서비스를 구현하기 어려움 프로시저가 많은 시스템에서는 장점을 가져가기 어려움 공식 사이트 SQLAlchemy - The Database Toolkit for Python SQLAlchemy - The Database Toolkit for Python The Python SQL Toolkit and Object Relational Mapper SQLAlchemy is the Py..

study/Python 🌼 2021.05.28

[Python] 암호화를 하는 bcrypt

bcrypt는 단방향 암호화해주는 파이썬 라이브러리 단방향이라면 평문→암호화는 가능하지만 암호화→평문으로 복호화는 어렵다 비밀번호를 관리할 때 유용하게 쓰인다 db에 암호화되어 저장된 비밀번호를 복호화하는 것도 불가능하기 때문에 내부자가 회원의 비밀번호를 알아내는 것도 불가능하며, 회원이 입력한 비밀번호화 일치하는지만 확인한다 hahsing : 원본의 의미를 알 수 없게 섞어놓은 것 salting : 실제 비밀번호에 랜덤 값을 더해서 해시값을 계산하는 방법 key stretching : 해쉬 값을 여러번 반복하는 행위 pip install bcrypt pip install pyjwt → pyjwt는 jwt(json web token)을 암호화, 복호화해주는 라이브러리이다 >>> import bcrypt ..

study/Python 🌼 2021.05.28

[Python] classmethod vs staticmethod

정적메소드 정적 메소드라 함은 클래스에서 직접 접근할 수 있는 메소드이다 파이썬에서는 클래스에 직접 접근할 수 있는 메소드가 두 가지이다 정적메소드임에도 불구하고 인스턴스에서도 접근이 가능하다 class CustomClass: # instance method def add_instance_method(self, a,b): return a + b # classmethod @classmethod def add_class_method(cls, a, b): return a + b # staticmethod @staticmethod def add_static_method(a, b): return a + b 인스턴스 메소드를 클래스에서 바로 접근하기 >>> from static_method import Custom..

study/Python 🌼 2021.05.28