본문 바로가기
반응형

분류 전체보기854

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.
스타레일 - 아케론 베스트,추천 파티 조합 및 광추는? 아케론 베스트 조합은 키워드는 바로 디버프 이다. 그리고 이 디버프는 상태이상을 포함(도발등)하기 때문에 디버프를 어떤 방식으로든 생성할 수 있다면 아케론의 필살기를 빠르게 사용하는데 큰 도움이 된다. 그럼 1등공신은 어떤것이 있을까? 광추 먼저 광추부터 살펴보자. 아케론은 필살기에 집중되어 있고 필살기를 발동하기 위해서는 상태이상, 즉 디버프를 많이 걸어야한다. 따라서 자연스럽게 적들은 디버프를 주렁주정 달려있을 것이다. 하여 광추는 전용 광추를 제외하면 밤 인사와 잠든 얼굴 이 제일 효율이 좋다. 디버프 3개 보유시 5재련 기준 72% 피해증가이기 때문에 전용 광추 못지 않은 성능이라고 할 수 있다.(전용광추 기준 피해량 증가는 1재련 기준 48%) 전용광추가 더 좋지만 4성으로 얻을 수 있는 난이도.. 2024. 3. 28.
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.
VSCode - Python 자동 주석 생성 autoDocstring 코드를 작성하다보면, 코드가 점점 길어지고, 작성한 함수에서 사용하는 파라미터를 일일이 기억해서 사용하는것이 어려워진다. 이때 함수에 작성해 놓은 주석 생성을 도와주는 유용한 앱이 있다. autoDocstring 앱을 설치하고 쌍따옴표 3개를 입력하면 Docstring을 생성할 것인지를 확인하는 창이 나타난다. 여기에서 엔터를 누르면, 현재 기준으로 함수 설명, 입력 값, 출력 값의 기본 포맷을 만들어 주어서 쉽게 설명을 작성할 수 있다. 2024. 3. 25.
Python - Log Decorator 활용 이글을 통해 Python에서 제공하는 중요 기능중 하나인 Decorator를 활용한 Log Decorator관련해서 정리해보고자 한다. Decorator 활용이 Log에 적절한 이유는 Decorator는 Python 설명을 보면 잘 나와 있듯이 함수를 감싸는 기능을 제공하기 때문에 실행전, 실행후에 일관성있게 정의하여 적용하고자 할때 Decorator만 한 것이 없다. 즉 log 입장으로 보면, 함수 실행전과 실행후에 대한 로그를 한번에 구성할 수 있어서 매우 유용하다고 할 수 있겠다. 그리고 개발한 프로그램을 서비스할 때 문제 분석을 위해 로그를 기록해야 하는 경우 log를 위한 코드를 추가를 해야하기 때문에 Decorator를 활용하기가 제격이라고 할 수 있다. 가장 간단하게 만들수 있는 log De.. 2024. 3. 25.
Python - 왜 f-string을 쓰라는 걸까 "Formatting a regular string which could be a f-string" Vusual Studio Code를 작성하다보면 기존 format 습관에 다음과 같은 경고문구를 자주 접하게 된다. Formatting a regular string which could be a f-string 필자도 본 경고가 눈에 띄어서 찾아본 결과 Python 3.6 버전부터 만들어진 새로운 문자열 작성 방법으로 f-string 사용을 권장하는 것이다. 이유는 보다 간결히 작성이 가능하다는 것. 그리고 코드 실행상의 성능 이점도 있다고 한다. 다만 %-formatting 이 가장 속도상 이점이 있지만, 기존 format 을 사용하는 방식보다 속도 개선과 코드 가독성이 좋은 f-string이 가장 효율적일 것으로 판단된다. %-formatting >>> timeit.timeit("""test = ".. 2024. 3. 25.
Python - -u PYTHONUNBUFFERED 사용 Python을 Docker 혹은 백그라운드에서 사용하는 빈도가 높아지면서 -u/PYTHONUNBUFFERED 를 사용하는 일이 많아졌다. -u/PYTHONUNBUFFERED를 사용하면 Python 출력 내용을 버퍼에 넣지 않고 바로 출력하라는 의미가 된다. 프로세스를 백그라운드로 실행시에는 -u를 많이 사용하고, Docker와 같이 시스템 자체에 적용하는 PYTHONUNBUFFERED 도 사용할 수 있다. -u force the stdout and stderr streams to be unbuffered; this option has no effect on stdin; also PYTHONUNBUFFERED=x 예로 nohup 백그라운드 실행을 해보면 -u 옵션이 없는 경우 nohup.out에 출력내용이.. 2024. 3. 25.
반응형