본문 바로가기
반응형

Python125

TSQL - 문자열 포함 확인(Like) TSQL에서 가장 많이 사용되는 것이 바로 문자열 포함유무라고 할 수 있다. 이때 사용할 수 있는 키워드는 바로 Like 이다. 포함 유무이기 때문에 %를 이용해서 앞과 뒤쪽에 문자열에 관계없이 표현할 수 있도록 구성이 가능하다. select from . where like '%com%' select를 이용해서 특정 컬럼을 지정하거나 * 을 이용해 모든 컬럼을 표시하도록 하고 from은 검색을 진행할 데이터베이스와 테이블을 지정한다. 그리고 where 문을 이용해 특정 컬럼을 지정하고 Like로 포함되는 문자열을 지정하면 된다. 2024. 3. 10.
Python - salt와 nonce에 대해 salt와 nonce는 모두 암호화에서 사용되는 용어로, 비밀번호 및 데이터 해킹을 방지하는 데 도움이 된다. salt는 비밀번호에 추가되는 임의의 문자열이다. 비밀번호를 암호화할 때 salt를 사용하면 동일한 비밀번호를 가진 두 사용자의 암호화된 비밀번호가 서로 달라지게 된다. 이는 대규모 데이터베이스에서 비밀번호를 해킹하는 데 사용되는 공통적인 방법인 대조 공격을 어렵게 만들어 암호 보호에 도움이 된다. nonce는 일회용 암호화 키이다. nonce는 암호화 알고리즘에 사용되며, 매번 다른 암호화 키를 생성한다. 이는 같은 데이터를 여러 번 암호화하더라도 매번 다른 암호화된 데이터를 생성하기 때문에, 공격자가 암호화된 데이터를 해독하는 데 어려움을 겪게 만들 수 있다. 예제 코드로 보면 salt와 n.. 2024. 3. 10.
Python - SSL warnings 출력 안하는/비활성화 방법 Python 에서 SSL 인증서를 비활성화 하면, 콘솔 화면에 경고가 출력하게 된다. 이를 비활성화 할 수 있는 방법 urllib3 와 SSLContext를 이용한 2가지 정도를 정리해 본다. 1. urllib3를 이용한 비활성화 import ssl import urllib3 urllib3.disable_warnings() ssl.urllib3.disable_warnings(category=category) 함수를 사용하여 특정 범주의 SSL 경고를 비활성화 할 수 있다. urllib3.exceptions.InsecureRequestWarning: 안전하지 않은 요청에 대한 경고 urllib3.exceptions.InsecurePlatformWarning: 안전하지 않은 플랫폼에 대한 경고 urllib3.. 2024. 3. 7.
Python - HTTP Keep-alive 를 통한 성능 향상 HTTP Keep-Alive를 이용하면, TCP 세션을 연결하는 작업을 하지 않고 추가적인 데이터를 보낼 수 있기 때문에 많은 장점을 가지게 된다. Nginx에서도 Keep-alive를 활성화 할 경우 50%이상의 성능을 더 올릴 수 있기 때문에 만약 웹 요청을 진행해야 하는 경우 Keep-alive 사용 가능 유무를 추후 꼭 체크하는 것이 좋다. 파이썬을 통한 일반적인 요청은 아래와 같다. import requests import time import logging logging.basicConfig(level=logging.DEBUG) url = "https://httpbin.org" start = time.perf_counter() requests.get(url) requests.get(url) r.. 2024. 3. 7.
Python - AWS S3 Select 와 Atena 차이점, 기본 사용법 AWS를 이용하면 S3에 저장되어 있는 데이터를 확인해야 한 경우가 종종 발생한다. 이띠, Atena와 Select를 이용해서 S3에 저장되어 있는 자료를 검색해 부분적으로 가져올 수 있는 기능을 통해 원하는 자료만 빠르게 검색할 수 있다. 먼저 S3 Select와 Atena의 기본적이 차이를 알아보도록 하자. S3 Select 와 Atena 차이점 AWS Select: 가장 비용을 효율적으로 원하는 S3와 Glacier 에서 데이터를 검색할 수 있는 방법이다. AWS Athena: ANSI SQL 방식으로 완전한 SQL 쿼리를 사용할 수 있다. - group by, having, window, geo in SQL DDL and DML등 따라서 검색 위주로 사용하는 경우 S3 Select, Atena는 .. 2024. 3. 7.
pymysql error - RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods pymysql을 이용해서 mysql 인증시 아래와 같은 cryptography 오류가 발생한다면 해당 인증 모듈이 설치가 되어 있지 않아서이다. 아래 명령으로 cryptography 를 설치하도록 하자. pip install cryptography 2024. 3. 7.
Pandas - 자동 줄 바꿈(Warp Text) 서식 적용, 및 컬럼 크기(Auto-Column length) 보다 사용자에게 보여주기 유용한 엑셀을 작성하고자 할 때 유용한 옵션으로, 실제는 스타일 시트를 추가로 입히는 작업이라고 할 수 있다. 먼저 적용할 부분은 컬럼 크기를 글자 크기에 맞춰서 작성하는 코드이다. >>> dict_list = [{'name':'han','age':'10','loc':'seoul','txt':'abcd','txt2':'abcd'},{'name':'kim','age':'14','loc':'busan','txt':'aasdfljleiasdfnncvlasdlhja','txt2':'abcd'},{'name':'lee','age':'12','loc':'iksan','txt':'asdfffffffffffcjkdsakfkdashjfkjlasdfjhasidasdfadsfasdfuoia','tx.. 2024. 3. 7.
Python - 딕셔너리(dict) 리스트 정렬 하기(sort) Python 에서는 sort를 이용하여 리스트를 정렬하는 기능을 제공하고 있다. 간편하게 sort라는 내장 함수를 이용하면, 손쉽게 정렬이 가능한데, 일반적인 List 리스트는 이렇게 진행할 수 있다. >>> int_list = [3,5,6,9,2] >>> int_list [3, 5, 6, 9, 2] >>> int_list.sort() >>> int_list [2, 3, 5, 6, 9] >>> int_list.reverse() >>> int_list [9, 6, 5, 3, 2] 한글 역시 가능하며, reversed 내장 함수를 이용하면 추가적인 조작도 가능해진다. 그런데 Key와 Value가 있는 경우에는 리스트 내장함수로는 어렵고 sorted 라는 별도의 내장함수를 이용하여 Lamda로 처리하여야 한다.. 2024. 3. 6.
Python - 리소스 및 코드 하나로 실행, Single-file executables 프로그램을 제작하다보면, 간편하게 배포 할 수 있도록 하나의 파일로 생성해야 하는 경우가 많다. 이유는 프로그램을 실행하는 사람 입장에서는 개발자의 개발 의도를 온전히 이해하기가 어렵기 때문에 운용해야 하는 파일이 많거나 실행 단계가 많다는 것은 사용자에게 복잡함과 실행 오류를 발생할 수 있는 가능성을 높이기 때문에 이를 간소화 하는 것은 매우 중요하다. C# 기준으로도 아래와 같은 리소스를 exe하나로 만드는 형식으로 배포를 많이 하게 된다. 다만 파이썬은 스크립트 형태의 프로그램이기 때문에 리소스를 별도로 구분하지 않고 실제 코드 내용을 생성하고자 하는 Main 파일에 넣어주어야 하며, 파이썬 코드 특성상 들어쓰기를 주의해야 하기 때문에 라인별로 들어쓰기 유지가 가능하도록 구성하면 된다. 먼저 코드를.. 2024. 3. 3.
반응형