본문 바로가기
반응형

Python112

Python - 리스트(Lists)간 교집합(중복/공통값), 합집합(고유/유일값) 값 확인하기 Python 코드에서 리스트를 자주 다루는데, 이때 동시에 List에서 중복 값, 고유/유일값을 확인해야 하는 상황이 종종 발생한다. 이때 활용할 수 있는 방법으로 List간 교집합을 하는 방법으로 몇가지가 있는지 알아보도록 하자. 그럼 먼저 쉬운 합집합 부터 확인해보자. 1. 합집합(고유/유일값) 합집합은 두 집합의 속한 중복이 제외된 모든 원소의 집합이라고 할 수 있다. 파이썬에서는 합집합을 쉽게 작성할 수 있는데, 바로 set 함수 이다. 이외에도 | 를 이용해서 포함되는 모든 원소를 확인이 가능하다. 1. | 함수 | 함수를 이용해서 중복값을 제외한 값들을 반환한다. >>> alist = {1,2,3,4,5} >>> blist = {4,5,6,7,8} >>> clist = alist | blist.. 2024. 4. 12.
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 - SQLAlchemy, NULL/empty Column 포함하기 Python을 사용하는데, SQLAlchemy를 활용하는 경우가 많다. 이때 NULL을 허용하는 Column이 정상적으로 조회가 되지 않는 경우가 발생하면서, !=과 is not 의 차이점을 알게되었는데 다음과 같다. A Column에는 Int형으로, 1과 0으로 데이터를 넣을 수 있고, Null을 포함한 데이터가 쌓이고 있었다. 하여 필자가 만들고 싶었던 쿼리는 다음과 같다. # 원하는 쿼리 select * from Table where Table.result is not 1 그래서 != 1 통해 쿼리를 만들어 조회하였다. Session.query(Table).filter(Table.result != 1).all() 하지만 실제 쿼리를 해보면, NULL 이거나 Empty인 컬럼은 조회가 되지 않는다. .. 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.
Regex - 소/중/대 괄호 이해 Regex를 이용하면 가장 많이 사용되는 것이 바로 (),[],{} (앞에서부터 소괄호 대괄호 중괄호)조합이다. 이 조합은 조금 사용하다보면 익숙해 지는데, 보다 쉽게 이해할 수 있는 방법에 대해서 정리를 해보도록 하겠다. 하나의 표현에 사용되는 기본 조합식은 다음과 같다. 먼저 소괄호 대괄호(이하 ()괄호, []괄호로 표현)는 각각 하나의 조건이라고 보면 된다. 그리고 만약 ()[]{} 순서로 사용한다면, 정규표현식은 다음과 같이 조건1, 조건2, 그리고 조건2의 길이라는 의미이다. 또하나 중요한 점이 기본적으로, 줄바꿈(엔터)을 기준으로 입력한 매칭조건을 찾게 된다. (줄바꿈 이후 다시 매칭 조건과 일치하는 값이 있으면 매칭이 여러개 생성.) 소괄호() 괄호는 문자 그룹을 정의하는데 사용이 된다. 특.. 2024. 4. 8.
SQLalchemy - Query 결과 데이터 Dict로 변환하기 SQLalchemy의 쿼리를 이용해서 결과를 보다 다양하게 활용하고자 할때, Key, Value 형식인 Dict로 변환하는것이 유용할 때가 있다. Dict 형태의 자료형은 Python에서 다양하고, 편하게 활용할 수 있도록 지원해주기 때문에, 필자 역시 이 변환이 가능한지 확인해 보았다. 방법은 총 2가지인데, 하나는 _asdict를 이용한 자동 변환이고, 두번째는 SQLalchemy에서 제공하는 inspect를 이용해서 Dict 형태로 변환하는 방식이다. 1. _asdict 활용 _asdict는 SQLalchemy에서 제공하는 내장 함수 인데, namedtuple을 통해서 Dict 타입으로 변환하게 된다. import datetime as dt from sqlalchemy import Text, cre.. 2024. 4. 1.
xz-utils backdoor 백도어 경고/패치 필요, 칼리리눅스등 위험 아래 글에 따라면, 칼리 리눅스(Kali Linux)에 백도어로 활용할 수 있는 보안 위험이 있었다고 한다. 해당 패키지는 xz-utils package 로 데이터 압축 소프트웨어 라이브러리 xz 에서 발견되었는데, 이 취약점이 칼리리눅스에도 적용된다. https://nvd.nist.gov/vuln/detail/CVE-2024-3094 NVD - CVE-2024-3094 CVE-2024-3094 Detail Received This vulnerability has been received by the NVD and has not been analyzed. Description Malicious code was discovered in the upstream tarballs of xz, starting w.. 2024. 3. 31.
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 - 쓸만한 무료 코파일럿(Copilot) GitHub Copilot은 VScode를 활용해서 코드 생성시점에 편한게 코드를 미리 생성해주기 때문에 상당한 코드 생산성을 가지고 있다. 하지만 월 결제 방식의 유료이기 때문에, 사용하고자 할 때 적지 않은 부담이 생길 수 밖에 없는데, 여기에서는 VSCode에도 제공되고 무료로 사용할 수 있는 Codeium을 소개한다. https://codeium.com/playground Playground | Codeium · Free AI Code Completion & Chat Experience the power of Codeium right in your browser. No account or download needed. See how you could level up your development .. 2024. 3. 26.
반응형