IT/파이썬 2021. 8. 10.
vscode git bash terminal 에서 파이썬 버전 변경 실행
vscode git bash terminal 에서 파이썬 버전 변경 실행하는 방법은 기본적인 방법이지만, python.exe가 실행되는 위치의 경로를 기본 PATH 로 잡아 주는 방법이 가장 쉽다. 일단 PC에는 필요한 파이썬 버전을 각각 설치해 둔다. 내 컴퓨터의 경우 아래 처럼 설치가 되어 있다. C:\Users\User1\AppData\Local\Programs\Python\Python39 C:\Users\User1\AppData\Local\Programs\Python\Python38-32 C:\Users\User1\AppData\Local\Programs\Python\Python38 평소에 Python 3.8 버전의 Python을 사용하다가 필요에 따라 버전을 변경해야 하면 실행되는 python...
IT/파이썬 2021. 8. 6.
임베디드 보드 파이썬 - CircuitPython MicroPython
PC 환경이 아닌 임베디드 보드에서 동작하는 파이썬 환경이 있다. MicroPython 이 대표적이라고 볼 수 있다. RaspberryPi Pico 보드의 공식 포트는 이 마이크로파이썬으로 되어 있긴 하네. 그런데, 여러 라이브러리를 import 해서 쓰려고 하니 여기저기 찾아봐야 하는 것이 많다. CircuitPython ! 임베디드 보드 및 프로젝트에서 엄청 유명한 Adafruit 에서 공식적으로 배포하고 있는 MicroPython fork 버전이다. 여기에는 그냥 갖다 쓸 수 있는 라이브러리가 많다. 왠만한 모듈에 대한 드라이버의 기본 예제는 제공하는 듯 하다. 부품을 워낙 많이 팔고 있으니 계속 유지보수 될 것이라는 기대도 있다. Adafruit 홈페이지에서 내세우는 차이와 장점을 살펴보자. ht..
IT/Git, GitHub 2021. 8. 4.
GitHub 에서 코드 부분에 대한 참조 링크를 원할때
이슈를 쓰던, 댓글을 달던 사용된 코드에 대한 언급이 필요할 때 해당 코드를 글에 포함하고 싶다면 코드 블럭을 참조하는 링크를 가져오면 된다. 방법은 코드를 보다가 필요한 부분은 라인번호를 클릭하면 노란색으로 변경이 되면서 ... 메뉴를 누를 수 있는 버튼 같은 것이 나온다. 여러줄을 언급할 모양이면 라인숫자 쪽에서 Shift를 누르고 라인번호를 클릭하면 여러줄 선택도 된다. 여기서 링크를 복사해두고 다른 곳에 가서 붙여 쓰면 된다. 대충 복사된 주소의 모양은 아래와 같다. 라인넘버도 있고, 파일 위치도 있고 그렇네요. https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/blob/f00a3f72ad20b71a71e8a590dfdf78a82f9b1e7..
IT/DB 2021. 8. 3.
Mongoengine 키, 인덱스 등록시 2개 이상 필드로 unique 등록
하나의 필드가 하나의 키나 인덱스로 작용이 되면 unique=True 이렇게 편하게 주면 되는데, 2개의 필드가 합쳐야 유일한 키가 되는 경우는 어떻게 하나? 당연히 선지자들은 많이 해본 경험으로 이런 함수를 만들어 두었네 unique_with='같이고려해야하는필드명' 이렇게 선언부에 넣어두면 된다는 말씀. 원본 문서에서 가져옴 https://docs.mongoengine.org/guide/defining-documents.html#uniqueness-constraints 2.3.3.6. Uniqueness constraints MongoEngine allows you to specify that a field should be unique across a collection by providing un..
IT/파이썬 2021. 7. 28.
파이썬 리스트 축약 문법 : 리스트 항목에 어떤 특정함수를 일괄 적용
꼭 저장해두고 싶어서 글로 남긴다. 람다표현식과 맵, 필터, 리듀스 (Python) 람다표현식과 맵, 필터, 리듀스 (Python) · Wireframe 람다(lambda, )는 본래 수리논리학에서의 함수정의를 추상화한 형식 체계로, 간단히 말해서 이름이 없는 함수 혹은 인라인으로 정의하는 함수로 이해할 수 있다. 수학에서의 람다대수의 정의와 비 soooprmx.com 리스트 축약의 문법은 다음과 같다. [ {표현식} for {변수} in {반복자/연속열} if {조건표현식} ] 리스트 축약은 람다식의 본체가 될 표현식을 그대로 사용하기 때문에 따로 람다함수를 정의할 필요가 없다. 또 if {조건표현식} 은 선택적으로 사용할 수 있으며, 이 부분이 필터에 해당한다. 즉 하나의 구문에서 맵과 필터를 동시에..
IT/파이썬 2021. 7. 27.
Flask RESTful API 작성시 넘어오는 변수값 확인
Flask, flask_restful 라이브러리를 쓰고 있다면 꼭 참고하세요!! 넘어오는 변수를 매번 체크하기 귀찮아서, 그냥 대충 무시하고 Exception 처리가 발생하길 기대하는데, 꼼꼼하게 체크하기 위한 코드 작성법은 알아놔야 할 듯 아래 코드는 여기 자료에서 레퍼런스 했습니다. 자세한 내용은 원본글로 들어가서 봐 주시면 감사~~ https://m.blog.naver.com/dsz08082/222016994151 reqparse 모듈에 add_argument 를 이용해서 필수 파라메터 (매개변수라고 해야 하나 한국말로 ㅎㅎㅎ) 를 미리 체크하도록 할 수 있다. from flask_restful import reqparse parser = reqparse.RequestParser() parser.a..
IT/파이썬 2021. 7. 27.
파이썬 동작 로그 파일 저장하기 - flask gunicorn logging
무슨 로그 파일 저장하는 것이 이렇게나 어렵노? Flask + Gunicorn + Nginx 이렇게 궁합을 싸 놓으니, 어데 저장되는지 누가 주체인지도 모르겠고 어렵다. 그냥 내가 원할 때 저장하고 파일 위치도 쉽게 알 수 있으면 되는데..... 일단 아래 코드 적용해서 돌려보니 작업 디렉토리에 파일이 생기긴 하네. 잘 모르지만 일단 아래 코드로 적용 원본 코드 위치 - https://gist.github.com/andrisasuke/0d5958c076fcf44e6a15c9d99d9c8c86 flask logging gunicorn and file flask logging gunicorn and file. GitHub Gist: instantly share code, notes, and snippets...
IT/파이썬 2021. 7. 27.
윈도우 flask gunicorn 에러 발생 시 대안 - No module named 'fcntl'
윈도우 환경에서 아래와 같이 Flask 과 Gunicorn 환경을 실행 시키려고 하면 아래와 같은 에러가 발생한다. gunicorn --bind 0.0.0.0:8000 wsgi:app fcntl 을 찾을 수 없다고... pip 로 설치하려 해도 윈도우 환경에서는 설치가 안된다. ModuleNotFoundError: No module named 'fcntl' 그럼, 포기~~~ 역시 인터넷에는 답이 있다. 그대로 쓸 수는 없지만 환경을 확인하는 정도는 가능하다. Gunicorn 대신에 waitress 를 사용하면 대충 비슷하게 돌릴 수 있다. 먼저 설치하고, > pip install waitress 아래와 같이 실행 시킨다. > waitress-serve --listen=*:8000 wsgi:app 답변 참..
IT/리눅스 2021. 7. 26.
우분투 rsync 를 통한 특정 폴더 백업하기 - 원격서버 접속, 원격 명령
백업을 하려니 ftp, sftp 로 연결해서 해도 되는데, 막 찾아보니 rsync 가 편리해 보여 일단 시도해봄! SSH 연결 설정 먼저 SSH 가 연결되는 환경을 맞춰둬야 한다. 접속하려는 서버의 홈디렉토리 밑에 .ssh 폴더 아래에 보면, authorized_keys 라는 파일을 열어서 현재 접속을 시도하는 PC의 공개키를 복사해 둬야 한다. 머 인증된 사용자라는 뜻이 될듯. 그냥 vi로 열어서 맨 마지막에 공개키 내용을 긁어서 복사해 주면 된다. 엇. 공개키가 어데 있나? 이미 만들었다면 자신의 홈 밑에 .ssh 디렉토리 아래에 xxxx.pub 이라고 설정되어 있을 확률이 높다. 내 우분투 시스템에 내용을 살펴보니 아래 그림과 같이 있었다. (언제 만들었는지 ㅋㅋㅋ) 없다면, 아래 명령을 입력해서 ..
IT/DB 2021. 7. 22.
MongoDB 기본적인 내용 이해 - 글 소개
검색을 많이 해 보고, 나름 찾아놓은 괜찮는 자료 https://kciter.so/posts/about-mongodb MongoDB 이해하기 사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때 kciter.so MongoDB와 RDBMS는 적합한 사용처가 다르다. 내 개인적인 생각으론 MongoDB를 비롯한 NoSQL은 최대한 단순하게 사용하는 것이 옳은 방향이라고 생각한다. NoSQL은 최대한 단순하면서 많은 데이터, RDBMS는 복잡하면서 무결성이 중요한 데이터에 적합하다고 생각한다. 물론 데이터를 단순화하는 것도 쉬운 일은 아니기 때문에 만약 ..
IT/Software 2021. 7. 16.
저작권 copyright 표기법
머 여러가지 버전이 있는데, 복잡한거 단순한거... 정답은 단순할 수록 더 범위가 커진다는 거.. 아래글 참고합시다. 소스 코드 내 저작권 표시 이유와 올바른 방법 TL;DR 아래 포맷의 저작권 및 라이선스 표시 당신이 작성한 모든 소스 코드 파일에 추가하라. SPDX-FileCopyrightText: © {$year_of_file_creation} {$name_of_copyright_holder} SPDX-License-Identifier: {$SPDX_license_name} 예를 들어, 내가 오늘 소스 코드 파일을 하나 작성하였고, 이를 [BSD-3-Clause license][bsd-3-clause] 라이선스로 공개하였다면, 다음과 같은 내용을 파일 상단 주석 부분에 추가한다. SPDX-FileC..
IT/DB 2021. 7. 15.
MongoDB - 이미지 파일 같은 바이너리 데이터 입력하기
요거요거 DB 에 바이너리 데이터를 입력해 둬야 한다. 머 FTP를 이용해서 파일은 따로하고, DB에는 Meta 데이터만 넣고 처리할 수 있으나 한번에 되는게 효율적이긴 하고 사용자도 더 편리할 듯~~~~ 다행히 MongoDB 를 쓰기 위해 사용준인 MongoEngine에는 FileField 라는 것이 정의되어 있다. 간단하게 사용할 수 있는 예제를 아래 페이지에서 찾아 낼 수 있었다. https://www.tutorialspoint.com/mongoengine/mongoengine_gridfs.htm MongoEngine - GridFS - Tutorialspoint MongoEngine - GridFS In MongoDB, the files with size larger than 16 MB are s..
IT/Software 2021. 7. 13.
GitHub - Access token 을 이용한 로그인
GitHub 접속시에 2단계 인증으로 되어 있는 경우, 일반 로그인이 되지 않는다. (그리고, 2021년 이후에는 그냥 ID, Password 로그인으로 접근하는 것을 허용하지 않는다나 머라나~~) 이때는 Access token 방식으로 접근하는 것이 편하다. GitHub Access token 생성 GitHub 에 접속해서 Access token을 하나 생성한다. 참고로 아래 그림은 하나 생성한 이후의 화면으로 화살표 부분에 생성된 token값을 볼 수 있다. 1. Settings -> Developer settings 2. Personal access tokens에 들어가서 우측상단 Generate new token 클릭 3. 생성하고자 하는 토큰에 권한 부여 (아래 스크린샷 참고) 4. Genera..