프로그래밍을 하다보면 명령줄을 통해 프로그램에 값을 전달해야하는 경우가 종종 있습니다. C언어에서는 argc와 argv를 통해 이를 처리할 수 있는데 명령 인자를 받아 처리하는 방법에 대해 자세히 알고 싶다면 이전에 작성한 글을 참고해주세요 (C언어 main함수의 매개변수 argc, argv) 파이썬에서도 C언어와 비슷한 방식으로 sys.argv를 사용하여 명령 인자값을 처리할 수 있습니다. 이번 글에서는 파이썬에서 sys.argv를 활용하는 방법을 예제와 함께 알아보겠습니다. 파이썬 sys.argv파이썬에서는 sys 모듈의 argv 리스트를 사용하여 명령줄 인자를 처리할 수 있습니다. python file.py sam예를들어 터미널에 다음과 같은 방식으로 파이썬 파일을 실행할 수 있습니다. 명령어에서 ..
파이썬에서 AI모델을 실행시켜 보니 RuntimeError가 발생하여 GPU를 찾을 수 없다고 출력됩니다.알아보니 위의 오류가 발생하는 것은 PyTorch가 GPU를 인식하지 못하기 때문에 발생하는 문제입니다. CUDA Toolkit 설치엔비디아 그래픽을 사용하면 먼저 CUDA Toolkit을 설치해야 합니다.(링크) 추가적으로 cuDNN에서도 CUDA버전과 호환되는 압축파일을 내려받습니다.(링크) C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.5첫 번째 파일 설치 후 두 번째로 cuDNN에서 내려받은 압축파일은 해제한 다음 위 경로에 덮어씌워야 합니다.12.5 버전은 포스팅 시점에서 설치한 버전이기 때문에 본인이 설치한 버전으로 폴더가 생성되어 있..
파이썬 URL단축 패키지 파이썬에서 사용자에게 링크를 제공할 때 링크의 주소가 길면 보관이나 가독성이 떨어집니다. 또 짧은 주소를 선호하는 상황이 발생할 때 url단축서비스를 이용하여 단축할 수 있지만 매번 url단축 웹사이트에 접속해서 사용자가 직접 링크를 줄이는 과정을 생략하여 파이썬 내에서 패키지를 통해 자동으로 url을 단축시키는 방법에 대해 알아보겠습니다. 오늘 사용할 패키지의 이름은 pyshorteners입니다. 깃허브에 오픈소스로 업로드된 url단축 패키지입니다.(깃허브링크) 패키지 설치방법 pip install pyshorteners 터미널에 pip명령을 입력하여 간편하게 설치 할 수 있습니다. 사용방법 pyshorteners의 Documentation 페이지를 보면 간단한 사용예제를 참고..
카이사르 암호(Caesar cipher) 카이사르 암호(Caesar cipher)는 로마의 황제였던 줄리어스 시저(Julius Caesar)는 시저 암호라고 불리는 환자 암호(substitution cipher, 문자를 다른 문자로 치환하는 암호)를 사용하였다. 카이사르 암호 또는 치환암호로 불리며 간단한 치환암화중 하나입니다. 카이사르 암호화는 알파벳 집합중 일정한 거리만큼 밀어내어 해당알파벳으로 치환하여 결과값을 반환합니다. 예를들어 'ABC'라는 문자열을 3글자씩 밀어내는 카이사르 암호화의 경우 'A'는 'C'로, 'B'는'D'로, 'C'는 'E'로 치환되어 'CDE'라는 값이 반환됩니다. 현대에 쓰기에는 취약하기때문에 잘 쓰이지 않지만 암호학을 학습하는데 고대 암호로부터 현대의 암호까지 이런 방식..
파이썬에서 가상환경을 사용하는 이유 파이썬 개발을 할 때, 프로젝트마다 필요한 패키지와 버전이 다르기 때문에 종종 패키지 관리에 어려움을 겪게 됩니다. 또한 여러 패키지를 설치하다 보면 충돌이 일어나거나 어디에서 문제가 발생했는지 파악하기 어렵습니다. 이런 문제를 해결하기 위해 파이썬은 가상 환경 도구를 제공합니다. 가상환경에서 패키지를 설치하면 패키지 관리도 쉬울뿐더러 다른 컴퓨터 환경에서도 가상환경에서 사용된 패키지 목록들만 requirements.txt 파일로 쉽게 설치할 수 있습니다. 이번 글에서는 파이썬에서 가상 환경을 사용하는 이유와 그 장점에 대해 알아보겠습니다. 파이썬 가상환경 라이브러리 종류 venv(표준 라이브러리) 파이썬 3.3 버전 이상에서는 별도의 설치 없이 바로 사용이 가능한 장..
암호화 알고리즘에는 다양한 종류가 있습니다. 미국 국립표준기술연구소(NIST)에서 표준화한 대칭 블록 방식의 암호인 AES (Advanced Encryption Standard)에 대해서 알아보겠습니다. AES는 미 국가안보국에 의해 1급비밀(Top Secret)에 사용할 수 있도록 승인된 알고리즘 중 최초로 공개되어 있는 알고리즘입니다. 모듈 설치 파이썬에서 사용할 수 있는 PyCryptodome 암호화 라이브러리를 사용해보겠습니다. pip install pycryptodome 터미널에 다음 코드를 붙여 넣어 설치하실 수 있습니다. 필요 모듈 불러오기 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto...