전체 글 363

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..

HTTP 429 상태 코드 기준

HTTP 429 Too Many Requests는 클라이언트가 일정 시간 안에 너무 많은 요청을 보냈을 때 서버가 속도를 줄이라고 알리는 상태 코드입니다. 크롤러나 API 클라이언트 입장에서는 실패로만 기록하고 즉시 재시도할 문제가 아니라, 요청 속도와 재시도 시점을 다시 계산해야 하는 신호입니다.결론부터 말하면 429를 받았을 때의 기준은 세 가지입니다. 첫째, 응답에 Retry-After가 있으면 그 값을 우선합니다. 둘째, 없으면 같은 속도로 반복하지 말고 지수 백오프와 요청 큐 조정을 적용합니다. 셋째, 검색 크롤러를 제어하려는 사이트 운영자는 403이나 404 대신 과부하 상황에서 429 또는 503을 임시로 써야 합니다.429는 어떤 상황의 코드인가RFC 6585는 429를 사용자가 주어진 시..

PostgreSQL OAuth 인증 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.PostgreSQL OAuth 인증은 데이터베이스가 비밀번호를 직접 받는 구조가 아니라, 외부 OAuth 제공자가 발급한 bearer token을 PostgreSQL 서버가 검증하는 구조입니다. 그래서 설정을 볼 때는 서버, libpq 클라이언트, OAuth 제공자의 역할을 나누어 봐야 합니다.PostgreSQL 18 문서 기준으로 OAuth 2.0 지원은 클라이언트 인증 영역에 들어갑니다. PostgreSQL은 authorization server를 제공하지 않으며, 토큰 발급과 사용자 승인은 OAuth 제공자 쪽 책임입니다. PostgreSQL 서버는 resource server로 동작하고, libpq 기반 애플리케이..

systemd DynamicUser 기준

systemd 서비스에서 전용 시스템 계정을 둘지 고민된다면 DynamicUser=를 먼저 검토할 수 있습니다. 이 설정은 서비스가 시작될 때 임시 UNIX 사용자와 그룹을 할당하고, 서비스가 멈추면 다시 반환하는 방식입니다.결론부터 말하면, 파일을 남기지 않거나 systemd가 관리하는 전용 디렉터리에만 상태를 저장하는 장기 실행 서비스에는 DynamicUser=yes가 잘 맞습니다. 반대로 고정 UID가 필요하거나, 외부 권한 정책과 사용자 이름을 강하게 묶어야 하거나, 서비스가 임의의 경로에 파일을 계속 남겨야 한다면 정적 사용자 계정이 더 명확합니다.DynamicUser는 무엇을 바꿀까DynamicUser=는 systemd.exec에 정의된 실행 환경 설정입니다. 이 값을 켜면 서비스 시작 시점에..

CSS content-visibility 기준

CSS content-visibility는 브라우저가 요소의 내부 렌더링 작업을 언제까지 미룰 수 있는지 알려주는 속성입니다. 긴 문서, 검색 결과 목록, 대시보드의 아래쪽 패널처럼 처음 화면에 보이지 않는 영역이 많을 때 초기 렌더링 비용을 줄이는 데 쓰입니다.결론부터 말하면 성능 개선 목적으로는 대부분 content-visibility: auto와 contain-intrinsic-size를 함께 검토합니다. auto만 붙이면 브라우저가 화면 밖 내용을 건너뛸 수 있지만, 아직 그리지 않은 영역의 크기를 어떻게 잡을지 정하지 않으면 스크롤 중 레이아웃 이동이 생길 수 있습니다.content-visibility는 무엇을 줄일까웹 페이지를 화면에 보여주려면 브라우저가 스타일 계산, 레이아웃, 페인트 같은 ..

Java Compact Object Headers 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Java Compact Object Headers는 HotSpot JVM의 객체 헤더를 더 작게 쓰기 위한 JDK 25 기능입니다. 핵심은 64비트 환경에서 객체마다 붙는 메타데이터 공간을 줄여 heap 사용량과 GC 부담을 낮출 수 있다는 점입니다.다만 JDK 25에서 이 기능은 제품 기능(product feature)이 되었을 뿐, 기본 객체 헤더 레이아웃은 아닙니다. 운영 서비스에 적용할 때는 JDK 버전, JVM 옵션, 사용 중인 라이브러리의 JVM 내부 의존 여부, 성능 측정 결과를 같이 봐야 합니다.Compact Object Headers는 무엇인가Java 객체는 필드 값만 heap에 저장하지 않습니다. Hot..

Git for-each-ref 사용법

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.git for-each-ref는 branch, tag, remote-tracking branch 같은 Git ref를 원하는 형식으로 나열하는 저수준 명령입니다. 단순히 현재 branch 목록만 보면 git branch가 더 편하지만, ref 이름, object ID, upstream 상태, 날짜, tag 정보처럼 여러 필드를 스크립트용 출력으로 만들 때는 git for-each-ref가 더 직접적입니다.2026년 8월 13일 기준 Git 공식 문서에서 git-for-each-ref 매뉴얼은 Git 2.54.0에서 마지막으로 갱신되었고, Git 2.55.0에서는 내용 변경이 없습니다. 공식 설명의 핵심은 선택한 patte..

PostgreSQL sslcertmode 기준 정리

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.PostgreSQL libpq의 sslcertmode는 클라이언트 인증서를 서버에 보낼 수 있는지, 또는 서버가 인증서를 반드시 요청해야 하는지를 정하는 연결 파라미터입니다. 서버 인증서를 검증하는 sslmode와 이름은 비슷하지만, 실제로는 보는 방향이 다릅니다.sslmode=verify-full은 클라이언트가 서버 인증서를 얼마나 엄격하게 검증할지에 가깝습니다. 반면 sslcertmode는 서버가 클라이언트 인증서를 요청했을 때 libpq가 그 인증서를 보낼지, 그리고 그 요청 자체를 기대할지에 관한 옵션입니다.sslcertmode는 어디에서 동작하나PostgreSQL 클라이언트가 SSL 연결을 만들 때 서버는 필요에..

리눅스 Device Tree interrupts 기준 정리

Device Tree에서 interrupts는 장치가 발생시키는 인터럽트 신호를 어떤 interrupt domain 기준으로 해석할지 적는 속성입니다. 단순히 IRQ 번호 하나를 적는 칸이 아니라, interrupt-parent, #interrupt-cells, interrupt controller binding이 함께 맞아야 의미가 정해집니다.2026년 8월 11일 기준 Devicetree Specification과 Linux 커널 공식 문서를 보면, 검토 기준은 네 가지입니다. 인터럽트 부모를 어떻게 찾는지, specifier의 셀 개수를 누가 정하는지, interrupts와 interrupts-extended 중 무엇을 써야 하는지, 그리고 bus나 GPIO controller처럼 중간 domain..

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