전체 글 468

Nginx proxy_buffering 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Nginx proxy_buffering은 애플리케이션에서 받은 응답을 버퍼에 담아 클라이언트로 전달하는 설정입니다. 기본값은 on이며, SSE처럼 응답 조각의 도착 시점이 중요한 경우에는 off를 검토합니다. 업로드 요청의 버퍼링이나 응답 캐시와는 구분해야 합니다.버퍼링을 켜면 응답 전체를 기다릴까?그렇지 않습니다. Nginx는 응답을 받아 저장하면서 클라이언트에도 보낼 수 있습니다. 버퍼링은 응답 전체가 끝나야 전송을 시작한다는 뜻이 아닙니다.클라이언트가 천천히 내려받더라도 Nginx가 응답을 먼저 받아 두면 애플리케이션의 응답 전송이 더 빨리 끝날 수 있습니다. 다만 버퍼와 임시 저장에는 한계가 있으므로 두 구간의 속..

Git check-ignore 사용법

git check-ignore는 파일에 적용된 무시 규칙의 출처를 확인하는 명령입니다. 파일이 보이지 않을 때는 추적 상태를 먼저 확인하고, -v로 실제로 일치한 패턴을 확인하면 원인을 좁힐 수 있습니다.파일이 왜 무시되는지 어떻게 확인할까?다음은 설명을 위한 가상 파일 이름을 사용하는 예시입니다.git check-ignore -v sample.log상세 출력은 규칙이 있는 파일, 줄 번호, 패턴, 검사한 파일 순서입니다. 예를 들어 .gitignore:1:*.log 뒤에 파일 이름이 나오면 해당 규칙이 일치했다는 뜻입니다. 패턴 앞에 !가 있으면 재포함 규칙이므로 출력이 있다는 이유만으로 무시된다고 판단하면 안 됩니다. 이 출력 형식은 Git check-ignore 공식 문서에 정의되어 있습니다..gi..

리눅스 cgroup.freeze 사용법

프로세스 묶음의 실행을 잠깐 멈췄다가 이어 가려면 어떻게 해야 할까요? cgroup v2의 cgroup.freeze는 그룹과 하위 그룹의 실행을 일시정지합니다. 핵심은 정지 요청과 완료 상태를 구분하고, 해제할 때 상위 그룹의 상태까지 확인하는 것입니다.cgroup.freeze 값은 무엇을 뜻하나요?루트가 아닌 cgroup에 있는 이 파일은 기본값이 0입니다. 1을 쓰면 해당 그룹과 자손 그룹을 정지시키고, 0을 쓰면 자신의 정지 요청을 해제합니다. 이 동작은 프로세스를 종료하는 것이 아닙니다. 자세한 인터페이스는 커널 cgroup v2 문서에 정의되어 있습니다.1을 썼으면 이미 멈춘 상태인가요?정지에는 시간이 걸릴 수 있습니다. 완료 확인은 cgroup.freeze를 다시 읽는 것으로 끝내지 말고, c..

ResizeObserver 사용법

ResizeObserver는 브라우저 창이 아니라 특정 요소의 크기 변화를 감지하는 API입니다. 사이드바가 열리거나 부모 레이아웃이 바뀌어 차트 영역이 줄어드는 경우에도 사용할 수 있습니다. 스타일만 바꿀 목적이라면 CSS container query를 먼저 검토하고, 크기에 따라 JavaScript 계산이나 다시 그리기가 필요할 때 ResizeObserver를 사용합니다.window resize와 무엇이 다른가요?창 크기가 그대로여도 요소 크기는 달라질 수 있습니다. 예를 들어 같은 창에서 사이드바가 공간을 차지하면 나머지 콘텐츠 영역이 좁아집니다. window의 resize 이벤트만으로는 이런 요소 단위 변화를 모두 다룰 수 없습니다. ResizeObserver는 등록한 대상의 박스 크기가 달라졌을..

리눅스 flock 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.리눅스 flock은 같은 파일에 대한 잠금으로 여러 실행의 작업 구간을 조율하는 도구입니다. 기본값은 배타 잠금이며, 잠금이 이미 잡혀 있으면 기다립니다. 중복 실행을 건너뛰려면 -n, 대기 시간을 제한하려면 -w를 사용합니다.flock은 무엇을 막아 줄까?여러 실행이 하나의 자원을 동시에 바꾸면 안 되는 상황에서, 공통 잠금 파일을 기준으로 작업 진입을 조율할 수 있습니다. 파일이 존재하는지 확인하는 방식과 달리, 잠금 획득 성공 여부로 실행을 결정합니다.일반적인 로컬 파일시스템의 flock 잠금은 협력적 잠금(advisory lock)입니다. 잠금을 사용하지 않는 프로그램의 파일 접근까지 막지는 않습니다. 보호할 작업..

Python singledispatch 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.타입마다 같은 연산을 다르게 처리해야 한다면 어디에 구현을 둘까요? Python의 functools.singledispatch는 첫 번째 인수의 런타임 타입에 따라 등록한 함수를 선택합니다. 타입별 동작을 확장하려는 경우에 쓰며, 여러 인수의 조합이나 값 자체를 기준으로 분기하는 기능은 아닙니다.어떤 문제를 해결하나요?하나의 함수 안에서 타입 검사와 처리를 계속 늘리면 새 타입을 지원할 때 기존 함수를 수정해야 합니다. 단일 디스패치는 연산과 타입별 구현을 분리하고, 등록을 통해 동작을 추가하는 구조입니다. PEP 443은 이런 확장 가능한 공통 인터페이스를 제안했습니다.연산을 중심으로 여러 타입을 지원하고, 타입 정의를..

서피스 랩톱 울트라 RTX 스파크 정리

엔비디아의 Spark가 서피스 노트북에도 들어옵니다. 제품명은 서피스 랩톱 울트라(Surface Laptop Ultra)입니다. 마이크로소프트는 2026년 10월 7일 예약 판매를 시작했고, 공식 판매 시작일을 10월 16일로 안내했습니다. 이제는 출시 가능성을 따지는 단계에서 실제 구성과 가격을 비교하는 단계로 넘어왔습니다. Microsoft 예약 판매 발표이 제품에서 눈여겨볼 부분은 엔비디아 GPU라는 이름보다 Arm CPU, RTX 그래픽, 큰 통합 메모리를 함께 쓰는 구조입니다. 로컬 AI 모델을 다루는 개발자와 영상·그래픽 작업자에게 어떤 의미가 있는지부터 볼 필요가 있습니다.가격과 일정은 2026년 10월 11일 확인한 공식 발표 기준입니다. 달러 가격은 미국 발표 가격이며, 한국 판매 가격이..

라즈베리파이 HAT EEPROM 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.라즈베리파이 HAT을 볼 때 EEPROM은 단순한 부품 목록 저장소가 아닙니다. 보드가 어떤 제품인지, 어떤 핀을 기본으로 쓰는지, 어떤 Device Tree overlay를 적용해야 하는지를 부팅 과정에서 전달하는 식별 장치에 가깝습니다.2026년 10월 10일 기준 Raspberry Pi HAT+ specification은 부팅 시 펌웨어가 ID_SD, ID_SC 핀에서 ID EEPROM을 찾고, EEPROM에 지정된 Device Tree overlay를 로드한다고 설명합니다. 따라서 정식 HAT처럼 자동 인식을 기대하려면 EEPROM, ID 핀, overlay를 함께 봐야 합니다.HAT EEPROM은 왜 필요한가?라..

HTTP RateLimit header 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.RateLimit header fields는 서버가 클라이언트에 "지금 어느 정도 요청을 보낼 수 있는지"를 알려 주기 위한 HTTP 응답 헤더 초안입니다. 기존에는 429 Too Many Requests와 Retry-After만 보고 재시도 시점을 판단하는 경우가 많았지만, 이 헤더들은 제한에 걸리기 전에도 남은 요청량과 재설정 시점을 힌트로 제공할 수 있다는 점이 다릅니다.2026년 10월 10일 확인 기준 IETF Datatracker의 draft-ietf-httpapi-ratelimit-headers 최신판은 2026년 5월 23일 등록된 Internet-Draft입니다. 따라서 글에서는 이 값을 최종 RFC로 단..

Git scalar 기준

Git scalar는 큰 Git 저장소를 더 다루기 쉽게 만들기 위한 저장소 관리 도구다. 새 VCS가 아니라 Git 명령 체계 안에서 동작하며, sparse checkout, partial clone 성격의 초기 clone, background maintenance, 대형 저장소용 권장 설정을 한 흐름으로 묶어 준다.2026년 10월 9일 확인 기준 Git 공식 문서는 Scalar를 대형 저장소에서 Git을 최적화하기 위한 도구로 설명한다. 핵심 판단은 단순하다. 저장소가 작고 일반적인 개발 흐름이면 보통 기존 git clone과 git maintenance만으로 충분하다. 반대로 파일 수가 많고 clone, fetch, status, history 조회 비용이 계속 문제가 된다면 scalar를 검토할..

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