IT/python 51

Linux 네트워크 패킷 관리의 핵심: sk_buff 구조체와 메모리 레이아웃

sk_buff는 Linux 커널에서 네트워크 패킷을 표현하는 핵심 데이터 구조로, netdev_alloc_skb, skb_reserve, skb_put 함수를 통해 메모리 레이아웃이 동적으로 관리됩니다. 이 글에서는 네트워크 드라이버 개발자에게 필수적인 sk_buff를 할당하는 3형제를 소개합니다..1. sk_buff 의 세 가지 할당 단계1) netdev_alloc_skb() 실행 후head(0), data(0), tail(0), end(68) 포인터 초기화68바이트 전체가 사용 가능한 빈 버퍼 생성2) skb_reserve(2) 적용데이터 시작 위치를 2바이트로 설정(data=2)패킷 헤더 공간 확보를 위한 전형적인 작업3) skb_put(64) 실행64바이트 데이터 추가로 tail 포인터 66으로 ..

IT/python 2025.04.17

Valkey vs Redis: 2024 오픈소스 인메모리 DB 선택 가이드 및 기능 비교

Redis의 라이선스 변경 이후, 오픈소스 기반의 대안 DB를 찾는 움직임이 활발해졌고, 그 중심에 Valkey가 있습니다.이 글에서는 Redis와 Valkey의 기능, 사용 환경, 클라우드 지원, AI 확장성, 라이선스 구조를 비교하고, 실제 사용 시 어떤 선택이 적합한지 안내합니다.🚀 Redis의 라이선스 변화와 Valkey의 탄생 배경Redis는 2023년부터 라이선스를 RSAL/BSL 형태로 변경하면서, SaaS 환경이나 클라우드 제품에서의 자유로운 사용에 제약이 생겼습니다.이로 인해 기업과 커뮤니티에서는 기존과 동일한 API·구조를 유지하면서도 오픈소스 철학을 지키는 대안이 필요해졌고, 그 결과 Redis 7.2.4를 기반으로 한 Valkey가 Linux Foundation 주도로 등장했습니다..

IT/python 2025.03.27

[python3][one-liner] 섹션 헤더 없는 설정 파일 값 바꾸기

기록용으로 남깁니다.A=B 형태의 설정파일이고, REMOTE_ADDR 이란 변수가 있으며, 섹션 헤더는 없는 경우에 한줄로 원하는 값으로 바꾸는 명령을 소개합니다.참고로 ssh_config 파일 내용은 다음과 같습니다.REMOTE_ADDR=1.2.3.4바꾸고 싶은 값은 val='1' 에서 수정하고 파일명은 f='ssh_config' 에서 수정하도록 합니다.결과물!!python3 -c "val='1';from configparser import ConfigParser;f='ssh_config';c=ConfigParser();c.optionxform=str;c.read_string('[sec]\n'+open(f,'r').read());c['sec']['REMOTE_ADDR']=val;open(f,'w').w..

IT/python 2024.12.19

윈도우 디펜더에서 바이러스라며 pyinstaller 로 생성한 exe 막는 문제

윈도우에는 기본적으로 윈도우 디펜더라는 백신이 설치되어 있습니다.pyinstaller 로 생성한 exe 실행파일이 디펜더에게 바이러스라며 실행이 차단 당하는 문제를 겪었습니다.os 는 윈도우 11 이었습니다.pyinstaller 에는 bootloader 라는 개념이 있습니다.bootloader 는 os 의 그것과는 다르게 미리 컴파일된 특정 플랫폼 전용 라이브러리를 포함시킨 바이너리입니다.bootloader 가 지정되지 않은 pyinstaller 는 관련한 패키지나 소스를 내려받아 이를 빌드하는 구조입니다.pip 로 설치한 pyinstaller 로 생성된 exe 는 특정 플랫폼 전용이 아닌 범용이고 다운로드를 높은 확률로 시도할텐데 이를 백신이 바이러스로 판단하는 것으로 추정됩니다. 이것을 어떻게 구축해..

IT/python 2024.05.27

[python3] windows10 에서 pyenv + poetry 환경 구축하기

기록용으로 남깁니다.Win + X 키를 눌러 터미널을 관리자 권한으로 실행권한 설정powershell 이 실행된 상태에서 아래 명령 입력. 이 것 실행 없이 실치 시도하면 '보안 오류' 발생함. 스크립트를 실행할 수 없다고 함Set-ExecutionPolicy RemoteSignedpyenv 설치 명령 입력Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"pyenv 실행 확인설치 했더니.. 실행을 못하네?이..

IT/python 2024.05.03

[python3] 윈도우에서 한줄 실행하는 방법

python3 -c 'import os; print(os.environ)' 이 명령을 리눅스에서 실행할 때에는 다른 os 에서는 실행이 안 될지는 몰랐습니다. 잘 실행됬었으니까요.. 하지만 윈도우에서 실행하면 SyntaxError: EOL while scanning string litteral 이라는 오류가 발생합니다. 윈도우라고 안 될리는 없을텐데.. 하며 여러번 명령들을 바꿔가며 실패만 거듭하다가 포기할 즈음에 설마 윈도우는 따옴표를 가리나? 하는 생각에 큰 따옴표로 감싸봤습니다. 그러니... 잘 되네요!! 작은 따옴표 ' 와 큰 따옴표 " 모두 혼용할 수 있는 리눅스와 달리 윈도우에서는 -c 옵션으로 cli 상의 한 줄 명령을 주려면 반드시 큰 따옴표 " 로 둘러쌓아야 정상 실행됩니다.

IT/python 2024.02.01

[python3][auto py to exe] 설치해보기

설치 자체는 쉽습니다!!(사실이라면 이런 글도 안썼음..) python3 -m pip install auto-py-to-exe 이렇게 명령 내리면 2.42.0 버전이 설치됩니다(되어야 합니다) 그리고 어렵습니다.. ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. autoit-ripper 1.1.0 requires pefile==2019.4.18, but you have pefile 2023.2.7 which is incompatible. Suc..

IT/python 2024.01.26

[python3] 셸 명령 파싱하기 성능 비교

기존에 파이썬 cpu 온도 얻어오는 코드가 awk 를 두번 돌려서 파싱하는 구조로 되어 있었습니다. vcgencmd measure_temp 명령 결과를 파이썬에서 파싱해도 되는데 뭐가 성능이 더 좋을까 하는 궁금증이 생겼습니다. pi@RPwiznet013:~/wiznet/skp_arhis/app $ python3 Python 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> ret, res = subprocess.getstatusoutput("vcgencmd measure_te..

IT/python 2024.01.05

[fastapi] main.py 가 아닌 test.py 실행하기

fastAPI 를 잘 몰라서 헤매다가 이 단순한 내용을 기록용으로 남깁니다... 저는 fastapi_test.py 라는 파일을 실행시키려고 합니다. 그 파일 안에 다음 내용이 들어 있습니다. app = FastAPI() 기존에는 main.py 를 uvicorn main:app --reload 명령으로 실행시켰습니다. 그러면 main.py 가 없이 fastapi_test.py 를 실행하려면 어떻게 해야 할까요? uvicorn fastapi_test:app --reload 이 간단한 명령을 몰라서 엄청 삽질했습니다.. ㅎㅎ 참고로 현재 실행하는 디렉토리가 소스가 위치한 곳과 다르다면 이를 앱 이름에 반영해줘야 합니다. 현재 디렉토리 하위에 examples 안에 fastapi_test.py 가 존재하고 이를 ..

IT/python 2023.12.12