분류 전체보기 371

라즈베리파이 고정 IP 기준

라즈베리파이에서 SSH, VNC, 홈 서비스, 센서 수집 프로그램을 안정적으로 쓰려면 접속할 IP 주소가 자주 바뀌지 않아야 합니다. Raspberry Pi OS Bookworm 이후에는 NetworkManager가 기본 네트워크 설정 도구이므로, 예전처럼 dhcpcd.conf만 떠올리면 현재 환경과 맞지 않을 수 있습니다.결론부터 말하면 대부분의 가정과 소규모 사무실 네트워크에서는 라우터의 DHCP 예약이 무난한 기준입니다. 라즈베리파이 자체에 정적 IP를 직접 넣는 방법도 가능하지만, 주소 충돌과 게이트웨이·DNS 오입력 위험을 사용자가 직접 관리해야 합니다.고정 IP는 어디에서 정해야 할까고정 주소를 만드는 위치는 크게 두 곳입니다. 하나는 라우터나 DHCP 서버에서 라즈베리파이의 MAC 주소에 같..

Python contextvars 사용법

contextvars는 비동기 코드에서 요청별 상태, 추적 ID, 로깅 문맥처럼 "현재 실행 흐름에만 붙어야 하는 값"을 다룰 때 쓰는 Python 표준 라이브러리입니다. 전역 변수처럼 보이지만 실제 값은 현재 Context에 묶이므로, 같은 변수 이름을 써도 실행 문맥이 다르면 다른 값을 가질 수 있습니다.핵심 기준은 세 가지입니다. 변수를 모듈 최상위에 만들고, 값을 바꿀 때는 set()이 돌려준 Token으로 되돌리며, asyncio 작업처럼 동시 실행되는 흐름에서는 threading.local()보다 ContextVar를 우선 검토합니다.contextvars는 무엇을 해결하나Python 공식 문서는 contextvars가 context-local 상태를 관리하는 API라고 설명합니다. 특히 상태를..

Git bundle 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.git bundle은 Git 저장소의 객체와 ref 정보를 하나의 파일로 묶어 옮길 때 쓰는 명령입니다. 원격 서버에 바로 접근할 수 없는 환경에서 저장소를 전달하거나, 특정 시점의 저장소 상태를 파일로 보관할 때 기준을 잡기 좋습니다.핵심은 bundle이 일반 압축 파일이 아니라 Git이 읽을 수 있는 전송용 묶음이라는 점입니다. git clone, git fetch, git ls-remote는 bundle 파일을 읽을 수 있지만, bundle 파일로 git push하는 방식은 지원하지 않습니다.git bundle은 무엇을 담을까공식 Git 문서 기준으로 bundle은 pack 파일에 헤더를 더한 형식입니다. pack에..

HTML blocking 속성 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.HTML blocking 속성은 특정 리소스나 문서 일부가 준비될 때까지 렌더링을 기다리게 하는 속성입니다. 현재 표준에서 널리 설명되는 토큰은 render이며, 주로 안의 중요한 스타일시트나 스크립트가 첫 화면 전에 준비되어야 할 때 검토합니다.결론부터 말하면 blocking="render"는 성능을 무조건 빠르게 만드는 옵션이 아닙니다. 오히려 첫 화면 표시를 늦출 수 있습니다. 이 속성은 "이 리소스가 준비되기 전에는 화면을 보여 주면 안 된다"는 의도를 명시할 때 쓰는 장치에 가깝습니다.blocking 속성은 무엇을 뜻할까WHATWG HTML 표준은 blocking attribute를 외부 리소스 가져오기 같은 ..

systemd RootDirectory와 RootImage 기준

systemd 서비스에서 실행 파일이 보는 파일시스템 범위를 줄이고 싶다면 RootDirectory=와 RootImage=를 검토할 수 있습니다. 두 설정은 서비스 프로세스의 루트 파일시스템을 바꿔서, 호스트 전체가 아니라 지정한 디렉터리나 이미지 안을 기준으로 실행되게 합니다.결론부터 말하면, 이미 준비된 디렉터리 트리를 서비스 루트로 쓰려면 RootDirectory=, 파일시스템 이미지 파일이나 블록 장치를 루트로 쓰려면 RootImage=가 맞습니다. 단순한 읽기 전용 보호가 목적이라면 먼저 ProtectSystem=, ProtectHome=, ReadWritePaths= 같은 하드닝 설정으로 충분한지 확인하는 편이 좋습니다.RootDirectory와 RootImage는 무엇을 바꿀까RootDire..

리눅스 Device Tree GPIO 기준 정리

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Device Tree에서 GPIO는 장치가 어떤 GPIO controller의 몇 번째 라인을 어떤 극성으로 쓰는지 적는 방식입니다. reset-gpios = 같은 값은 단순한 핀 번호가 아니라 phandle, gpio specifier, flag가 함께 해석되는 구조입니다.2026년 8월 18일 기준 Devicetree Specification과 Linux 커널 GPIO binding 문서를 보면 검토 기준은 다섯 가지입니다. GPIO를 쓰는 장치 속성 이름, GPIO controller 노드의 필수 속성, #gpio-cells가 정하는 specifier 길이, active-low 같은 flag의 의미, 그리고 pin..

PostgreSQL generated columns 기준

PostgreSQL generated columns는 다른 컬럼 값으로 항상 계산되는 컬럼입니다. 일반 컬럼처럼 값을 직접 넣는 용도가 아니라, 같은 행의 값에서 파생되는 값을 스키마 안에 명확히 표현할 때 사용합니다.PostgreSQL 18 공식 문서 기준으로 생성 컬럼에는 VIRTUAL과 STORED 두 종류가 있습니다. VIRTUAL은 읽을 때 계산되고 별도 저장 공간을 차지하지 않습니다. STORED는 행을 쓰거나 갱신할 때 계산되어 일반 컬럼처럼 디스크에 저장됩니다.generated columns는 무엇을 해결하나생성 컬럼은 같은 행 안의 원본 값에서 반복적으로 계산되는 값을 테이블 정의에 넣는 기능입니다. 예를 들어 센티미터 값을 기준으로 인치 값을 항상 계산해야 한다면, 애플리케이션마다 같은..

Python compression.zstd 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Python 3.14부터 표준 라이브러리에서 compression.zstd 모듈을 사용할 수 있습니다. Zstandard 형식의 데이터를 파일처럼 읽고 쓰거나, 메모리의 bytes를 한 번에 압축하고 풀거나, 큰 데이터를 스트리밍 방식으로 처리할 때 쓰는 모듈입니다.핵심 기준은 간단합니다. .zst 파일을 다루면 compression.zstd.open()을 먼저 보고, 작은 bytes 데이터면 compress()와 decompress()를 쓰며, 입력이 크거나 조각 단위로 들어오면 ZstdCompressor와 ZstdDecompressor를 검토하면 됩니다.compression.zstd는 무엇인가compression.zs..

CSS @starting-style 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.CSS @starting-style은 요소가 처음 화면에 나타날 때 CSS transition의 시작값을 지정하는 at-rule입니다. DOM에 새로 추가된 요소, display: none에서 보이는 상태로 바뀐 요소, popover나 처럼 top layer에 올라오는 요소는 이전 렌더링 상태가 없을 수 있습니다. 이때 시작값을 따로 주지 않으면 기대한 진입 전환이 생기지 않을 수 있습니다.결론부터 말하면 @starting-style은 "처음 보이는 순간도 transition으로 처리하고 싶을 때" 쓰는 기능입니다. 반복 애니메이션이나 키프레임 효과를 만들려는 목적이라면 CSS animation을 쓰는 편이 더 직접적입니..

Git notes 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.git notes는 커밋 메시지를 고치지 않고 커밋에 추가 설명을 붙이고 싶을 때 쓰는 기능입니다. 커밋 객체 자체를 다시 만들지 않기 때문에 이미 공유된 커밋의 해시를 바꾸지 않는다는 점이 핵심입니다.결론부터 말하면 공개 이력의 의미를 바꾸는 내용은 새 커밋이나 문서로 남기는 편이 맞고, 빌드 번호, 리뷰 메모, 외부 시스템 식별자처럼 커밋에 덧붙여 읽으면 유용하지만 커밋 메시지에 넣기 애매한 정보에는 git notes가 맞습니다. 다만 notes는 일반 브랜치와 별도 ref에 저장되므로 공유, 표시, rewrite 정책을 따로 확인해야 합니다.git notes는 무엇을 바꿀까공식 Git 문서 기준으로 git notes..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사