전체 글 375

PostgreSQL keepalives 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.PostgreSQL 클라이언트에서 keepalives 계열 옵션은 오래 열린 TCP 연결이 조용히 끊긴 상황을 더 빨리 감지하기 위한 설정입니다. 쿼리 실행 시간을 제한하는 옵션도 아니고, 최초 접속 시도를 제한하는 connect_timeout의 대체도 아닙니다.핵심 기준은 단순합니다. 연결이 TCP로 열리고, 방화벽이나 NAT, 로드 밸런서 같은 중간 장비가 유휴 연결을 끊을 수 있다면 keepalive 값을 의식적으로 정하는 것이 좋습니다. 반대로 Unix-domain socket으로 붙는 로컬 연결에서는 PostgreSQL 문서 기준으로 이 옵션들이 무시됩니다.PostgreSQL keepalives는 무엇을 조정할까..

Git multi-pack-index 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.git multi-pack-index는 여러 pack 파일에 흩어진 Git 객체를 더 빠르게 찾기 위한 보조 인덱스를 작성하고 점검하는 명령입니다. 저장소가 커지고 fetch, gc, repack을 반복하면 하나의 pack만 남는 상태가 아니라 여러 pack 파일이 함께 존재할 수 있습니다. 이때 Git이 각 pack의 인덱스를 매번 따로 확인하는 비용을 줄이기 위해 MIDX라는 구조를 사용할 수 있습니다.일반 개발자가 매일 직접 실행해야 하는 명령은 아닙니다. 다만 큰 저장소를 운영하거나, clone과 fetch가 느린 저장소를 다루거나, git maintenance가 내부에서 무엇을 하는지 이해해야 한다면 기준을 알아..

CSS anchor positioning 기준

CSS anchor positioning은 팝오버, 툴팁, 메뉴처럼 기준 요소 주변에 떠 있는 UI를 CSS만으로 배치하기 위한 기능입니다. 기준이 되는 요소를 anchor로 정의하고, 별도의 positioned element를 그 anchor의 위치나 크기에 맞춰 놓을 수 있습니다.결론부터 말하면 이 기능은 자바스크립트로 getBoundingClientRect()를 읽고 좌표를 직접 계산하던 UI를 단순하게 만들 수 있습니다. 다만 MDN은 position-anchor를 일부 주요 브라우저에서 동작하지 않는 Limited availability 기능으로 표시하므로, 범용 UI의 기본 구현으로 쓰기 전에는 대상 브라우저를 확인해야 합니다.CSS anchor positioning은 무엇을 해결할까일반적인 ..

HTTP Vary 헤더 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.HTTP Vary 헤더는 같은 URL의 응답이라도 어떤 요청 헤더 값에 따라 다른 표현이 선택될 수 있는지 캐시에 알려주는 응답 헤더입니다. 크롤러나 캐시를 다루는 코드에서는 URL만 같다고 같은 문서로 판단하면 안 되는 경우가 있습니다. 대표적으로 언어, 압축 방식, 콘텐츠 협상 결과가 요청 헤더에 따라 달라질 수 있습니다.기준은 간단합니다. 응답 내용이 Accept-Language, Accept-Encoding, Accept 같은 요청 헤더에 따라 달라진다면 Vary를 확인해야 합니다. 반대로 사용자별 비공개 응답을 캐시하지 않게 하려는 목적이라면 Vary: Cookie보다 Cache-Control: private 또..

라즈베리파이 고정 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..

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