반응형 PYTHON78 Ansible - Playbook 실행시 User 와 Password 입력 방법 Ansible 플레이북을 실행할 때 SSH ID와 비밀번호를 포함하려면, Ansible 명령어에 필요한 옵션을 추가해야한다.다음과 같이 구현이 가능하다.ansible-playbook 명령어에 --user와 --ask-pass 옵션을 추가한다.--user 옵션은 SSH 사용자 이름을 지정하고, --ask-pass 옵션은 비밀번호를 입력하도록 요청한다.subprocess.run을 사용하여 Ansible 플레이북을 실행할 때 SSH 사용자 이름과 비밀번호를 포함하도록 Python 코드이다.import subprocess# SSH 사용자 이름과 비밀번호ssh_user = "your_username"ssh_password = "your_password"# Ansible 플레이북 실행 명령어command = [ .. 2025. 4. 9. Python - 글로벌 인터프리터 락(GIL) 제거를 위한 주요 기술 Python에서 글로벌 인터프리터 락(GIL) 은 동시성을 없애서 충돌이 없도록 하여, 쉽게 코딩할 수 있었지만, 그만큼 성능적으로 특히 멀티 코어에서 약점을 보였다. 하여 Python 3.12버전부터 GIL 없이 실행하는 방법은 주로 PEP 703에서 제안된 여러 기술을 통해 가능하게 되었는데, GIL은 CPython에서 여러 스레드가 동시에 Python 코드를 실행하는 것을 방지하는 메커니즘으로, 멀티코어 CPU를 효율적으로 활용하지 못하던 부분이 어떻게 가능하게 된 것일까? 관련하여 알아보도록 하자.GIL 제거를 위한 주요 기술멀티스레드에서 가장 큰 문제는 바로 변수 접근이라고 할 수 있다. 따라서 이를 Python에서는 객체가 참조되는지를 카운트하는 방식을 채택했다고 보면된다. 즉 삭제해도 되는 .. 2025. 4. 9. FastAPI - Docs, Redoc 비활성화 하기 오늘은 간단한 주제인데, FastAPI를 이용해서 API Interface 확인을 위해서 Docs, Redoc많이 활성화해서 사용하는데, 실제 보안적으로 생각해보면, 내 인터페이스 전체를 노출하는건 상당한 위험이 될 수 있다.API 호출할 수 있는 파라메터를 전부 제공해주기 때문에, 다양한 공격 시나리오 및 테스트할 수 있는 루트를 제공하는 것이나 마찬가지가 된다. 따라서 대외적으로 API 서비스를 하지 않는 거라면 API 상세를 없애는게 바람직하다. 비활성화하는 방법은 간단하다.FastAPI app 생성 시점에 docs_url과 redoc_url 를 생성하지 않도록 하면된다.app = FastAPI(docs_url=None, redoc_url=None)그럼 아래와 같이 기존 Docs, Redoc 주소가.. 2025. 3. 28. Python - (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') INSERT (pymysql.err.OperationalError) (1241, 'Operand should contain 1 column(s)') 이 오류의 정확안 의미는 간단하다.내가 행하는 행위중 컬럼 하나 혹은 그 이상이 잘못되었다는 것이다.이 때 확인해보기 좋은것은 당시 입력값을 보여주는데, 하나씩 값을 확인해보면, 분명 잘못된 컬럼 값이 있음을 알 수 있을 것이다.주의하게 봐야 하는것으로 TSQL 문으로 넣을 때 규칙을 알고 있으면 좋은데 - 기본적으로 컬럼 과 입력값 을 쌍따옴표로 구분하기 때문에 이것이 잘 지켜지는지 보면 좋다.필자가 오류 내용 찾았던 값으로 msg 컬럼에 값을 넣는데, '(따옴표)으로 시작해야 하는데 입력값에 문제가 있다는 것을 알게 되었다.'msg': (False, '', '안녕이렇.. 2025. 1. 13. Python - uv 패키지, 프로젝트 관리자 설치 및 사용법 오늘은 요즘 핫하다고 할 수 있는 uv를 이용해서 설치와 기본 사용법에 대해서 설명해보고자 한다.uv는 Python 패키지와 프로젝트를 관리할 수 있는데, pip 의 차기 버전이라고 할 수 있을 정도로 빠른 속도와 관리의 편의성을 제공한다.pip의 기존 문제점이라고 하기는 어렵지만, pip는 쉽게 사용할 수 있는 장점이 있는 반면에 프로젝트별 버전관리의 불편함과 느린 속도가 큰 문제점이다. uv는 프로젝트 관리와 패키지 관리를 일원화 하여 편의성을 높이고,(npm 같은 느낌)패키지를 설치하는데도 기존 pip보다 빠르게 구성되어 많은 최적화가 되어진 모습을 보여준다.또 기존에 Python의 버전 설치에 대한 부분도 함께 해결된다는 점은 큰 장점이라고 생각되며, 패키지 관리 역시 요즘 통합되고 있는 pypr.. 2025. 1. 8. Python - 3.12 Datetime 변화( 메서드는 더 이상 사용되지 않습니다.) 3.12 Datetime 버전에서 Datetime이 큰 변화가 있을 예정이다.Python 3.12에서 datetime 관련 변환에 대한 주요 내용은 다음과 같다.datetime.utcfromtimestamp()와 datetime.datetime.utcnow()가 deprecated되어 향후 버전에서 제거될 예정이다. utcnow() 및 utcfromtimestamp() 메서드의 사용 중단:datetime.datetime의 utcnow()와 utcfromtimestamp() 메서드는 더 이상 권장되지 않으며, 향후 버전에서 제거될 예정이다. 대신, UTC 시간대를 나타내는 객체를 사용하여 now()와 fromtimestamp() 메서드를 호출할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 좋.. 2024. 11. 11. 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. 이전 1 2 3 4 ··· 9 다음 반응형