본문 바로가기
반응형

PYTHON72

Python - Days, 날짜 Count 쉽게 계산하기 Datetime 값을 처리하다보면, Days(날짜)값을 확인하고 싶은 경우가 많다.이럴경우 가장 쉽게 진행할 수 있는 방법은 초단위로 변환한 후 Round 내장함수로 처리해주는 것이 가능하다.코드는 다음과 같다. import datetimestart_date = datetime.datetime.now()end_date = datetime.datetime.now()end_date = end_date + datetime.timedelta(days=5)sub_date = end_date - start_date# 전체 초시간을 하루 초단위로 구해진 값day_count = (sub_date.total_seconds() / 86400)#.0 이하를 버리기 위해서는 round로 처리해주는.. 2024. 4. 24.
Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. 설치가 완료되면, pip 패키지 설치는 아래와 같이 가능하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확.. 2024. 4. 12.
Python - JIRA API 로그인 및 검색하기 JIRA를 개발을 시작하게 되면, 가장 먼저 해야할 부분으로 API 로그인 부분이라고 할 수 있다. 필자가 경험하면서 진행했던 내용을 주요한 포인트를 집어서 정리해보았다. 주요한 포인트는 SSL 인증 부분과 패스워드 인코딩 이였다. User/Password(Token) 로그인 하기 ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) 가장 먼저 프록시와 같은 별도 인증서를 사용하는 경우 인증서 오류가 발생한다. 이를 해결하기 위해서는 options에 Dict 구조로 설정하여 접근 사이트와 'verify'를 .. 2024. 4. 12.
sqlalchemy - connect database Instance Database is not bound to a Session 해결하기 connect database Instance xxx is not bound to a Session; attribute refresh operation cannot proceed (Background on this error 해결 이 에러는 세션 close() 와 관계가 있다. 코드를 살펴보면, session을 close() 한 이후에 Database에서 가져온 Object 를 활용하는 코드가 있을 것이다. close()를 통해 세션을 닫게 되면, sqlalchemy 에서 관리하는 Object 도 함께 종료가 된다. 그런데 세션의 Object를 계속 사용하면 나타나는 오류이다. 예제로 살펴보면 다음과 같다. db_session = scoped_session(sessionmaker(autocommit=Fa.. 2024. 3. 30.
VSCode - Python 자동 주석 생성 autoDocstring 코드를 작성하다보면, 코드가 점점 길어지고, 작성한 함수에서 사용하는 파라미터를 일일이 기억해서 사용하는것이 어려워진다. 이때 함수에 작성해 놓은 주석 생성을 도와주는 유용한 앱이 있다. autoDocstring 앱을 설치하고 쌍따옴표 3개를 입력하면 Docstring을 생성할 것인지를 확인하는 창이 나타난다. 여기에서 엔터를 누르면, 현재 기준으로 함수 설명, 입력 값, 출력 값의 기본 포맷을 만들어 주어서 쉽게 설명을 작성할 수 있다. 2024. 3. 25.
Python - Log Decorator 활용 이글을 통해 Python에서 제공하는 중요 기능중 하나인 Decorator를 활용한 Log Decorator관련해서 정리해보고자 한다. Decorator 활용이 Log에 적절한 이유는 Decorator는 Python 설명을 보면 잘 나와 있듯이 함수를 감싸는 기능을 제공하기 때문에 실행전, 실행후에 일관성있게 정의하여 적용하고자 할때 Decorator만 한 것이 없다. 즉 log 입장으로 보면, 함수 실행전과 실행후에 대한 로그를 한번에 구성할 수 있어서 매우 유용하다고 할 수 있겠다. 그리고 개발한 프로그램을 서비스할 때 문제 분석을 위해 로그를 기록해야 하는 경우 log를 위한 코드를 추가를 해야하기 때문에 Decorator를 활용하기가 제격이라고 할 수 있다. 가장 간단하게 만들수 있는 log De.. 2024. 3. 25.
Python - 왜 f-string을 쓰라는 걸까 "Formatting a regular string which could be a f-string" Vusual Studio Code를 작성하다보면 기존 format 습관에 다음과 같은 경고문구를 자주 접하게 된다. Formatting a regular string which could be a f-string 필자도 본 경고가 눈에 띄어서 찾아본 결과 Python 3.6 버전부터 만들어진 새로운 문자열 작성 방법으로 f-string 사용을 권장하는 것이다. 이유는 보다 간결히 작성이 가능하다는 것. 그리고 코드 실행상의 성능 이점도 있다고 한다. 다만 %-formatting 이 가장 속도상 이점이 있지만, 기존 format 을 사용하는 방식보다 속도 개선과 코드 가독성이 좋은 f-string이 가장 효율적일 것으로 판단된다. %-formatting >>> timeit.timeit("""test = ".. 2024. 3. 25.
Python - Class, self 메모리 할당과 관리 Reference counting Python는 개발 편의성을 위해서 메모리 관리를 별도로 하지 않아도 사용이 가능한 프로그램 언어이다. 그리고 최근에 나오는 언어들은 GC(Garbage Collection)라고 하는 메모리 청소 도구 통해 자동으로 메모리에서 불필요한 데이터를 청소해 준다. 하지만 개발자라면 서비스를 위해 개발을 진행하게 되고, 이는 운영체제에서 장시간 사용되는 프로그램을 작성해야 한다는 의미이다. 이때 메모리 관리를 잘못한다면 안정성에 큰 문제가 생기게 된다. 즉 큰 장애를 만날 수 있다는 의미이다. 여기에서는 메모리 관리가 어떻게 되는지 이해하여, Python 코드를 보다 효과적으로 사용할 수 있을 것이라는 생각에, 관련 자료를 찾아서 정리해본다. Python에서 메모리 관리에 사용하는 방식은 Reference co.. 2024. 3. 25.
Python - List 에서 문자열 포함 유무를 확인 Python에서 List 의 문자열 포함 유무를 확인할 수 있는 3가지 방법에 대해서 정리해 보겠다. 가장 쉽게는 for문을 이용하는 것이다. 이는 익히 사용을 많이 하기 때문에 여기에 정리하지 않겠다. 여기에서는 Pandas 및 지능형 리스트 활용하는 방법에 대해서 정리해 본다. 먼저 Pandas에서 제공하는 str.contains를 통해서 리스트에서 검색이 가능하다. 여기에서 특히 강점은 contains 조건을 다중으로 설정 할 수 있다는 것이다. 아래 코드를 보면 a|b라는 문장을 만들어 a또는b가 포함된 리스트를 확인하는 것이 가능하다. Pandas >>> import pandas as pd >>> >>> abc_list ={'name':['aaaa', 'bcd', 'xyz', 'y']} >>> .. 2024. 3. 25.
반응형