전체 글 410

CSS if() 함수 기준

CSS if() 함수는 하나의 CSS 값 자리에서 조건에 따라 다른 값을 고르는 함수입니다. 조건은 media(), supports(), style() 테스트를 사용할 수 있고, 먼저 참이 된 조건의 값이 적용됩니다. 다만 2026년 8월 기준 MDN은 이 기능을 Limited availability이자 experimental로 표시하므로, 운영 서비스의 기본 스타일을 대체하기보다 점진적 향상으로 다루는 것이 안전합니다.핵심 기준은 간단합니다. 한 속성의 값만 조건에 따라 바꾸고 싶다면 if()가 코드를 가깝게 모아 줍니다. 여러 선언을 한꺼번에 바꾸거나 지원하지 않는 브라우저까지 같은 결과가 필요하다면 기존 @media, @supports, container style query와 fallback 선언..

Python TypeIs 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Python TypeIs는 사용자가 직접 만든 판별 함수를 통해 타입 체커가 변수 타입을 더 좁게 해석하도록 돕는 typing 기능입니다. Python 3.13부터 typing.TypeIs로 제공되며, 조건문에서 True인 경우뿐 아니라 False인 경우에도 타입 좁히기 결과를 줄 수 있다는 점이 TypeGuard와의 핵심 차이입니다.기준은 간단합니다. 판별 함수가 isinstance()처럼 "이 값은 해당 타입이다 / 아니다"를 정확히 말할 수 있고, 좁히려는 타입이 입력 타입과 호환된다면 TypeIs를 먼저 봅니다. 반대로 입력 타입과 호환되지 않는 타입으로 좁혀야 하거나, 조건이 일부 값만 골라내는 필터라면 Type..

리눅스 pidfd 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.리눅스에서 프로세스를 다룰 때 PID 숫자만 저장해 두면 애매한 순간이 생깁니다. 대상 프로세스가 종료된 뒤 같은 PID가 다른 프로세스에 재사용될 수 있기 때문입니다. pidfd는 이 문제를 줄이기 위해 프로세스를 파일 디스크립터처럼 참조하는 방식입니다.기준은 단순합니다. 이미 존재하는 프로세스에 안정적인 참조가 필요하면 pidfd_open()을 검토하고, 새 자식 프로세스를 만들면서 처음부터 참조를 확보해야 하면 clone() 또는 clone3()의 CLONE_PIDFD 계열 흐름을 검토합니다. PID 문자열을 오래 보관해 두고 나중에 신호를 보내거나 종료를 감시하는 구조라면 pidfd가 더 직접적인 선택지입니다.pi..

CSS scroll-driven animations 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.CSS scroll-driven animations는 애니메이션의 진행 기준을 시간에서 스크롤 위치로 바꾸는 기능입니다. 일반 CSS 애니메이션은 문서가 로드된 뒤 시간이 흐르면서 진행되지만, scroll-driven animation은 사용자가 스크롤할 때 앞으로 진행되고 반대로 스크롤하면 되감깁니다.실무 기준은 단순합니다. 읽기 진행률, 가로 캐러셀 진행 표시처럼 스크롤 컨테이너의 전체 이동량이 중요하면 scroll() 또는 scroll-timeline을 봅니다. 카드 등장, 이미지 reveal처럼 특정 요소가 화면에 들어오는 구간이 중요하면 view() 또는 view-timeline을 봅니다. 다만 animation..

HTTP 103 Early Hints 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.HTTP 103 Early Hints는 서버가 최종 응답을 준비하는 동안 브라우저에 먼저 보낼 수 있는 정보성 상태 코드입니다. 목적은 HTML이 도착하기 전에도 중요한 연결이나 리소스 요청을 조금 더 일찍 시작하게 만드는 것입니다.핵심은 “서버 생각 시간이 있는 문서 요청에서, 최종 응답에 포함될 가능성이 높은 Link 힌트를 먼저 보낸다”는 점입니다. 모든 사이트에 넣는 성능 옵션이라기보다, 첫 문서 응답이 늦고 초기에 필요한 리소스가 분명할 때 검토할 기능입니다.103 Early Hints는 어디에 끼어드나일반적인 문서 요청에서는 브라우저가 HTML 응답을 받은 뒤 , 스타일시트, 스크립트, 폰트 같은 하위 리소스를..

PostgreSQL pipeline mode 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.PostgreSQL pipeline mode는 libpq 클라이언트가 앞선 쿼리의 결과를 모두 읽기 전에 다음 쿼리를 보낼 수 있게 하는 기능입니다. 네트워크 왕복 지연이 큰 환경에서 작은 SQL을 여러 번 실행해야 할 때 대기 시간을 줄이는 데 목적이 있습니다.기준은 명확합니다. 서로 독립적인 작은 INSERT, UPDATE, DELETE를 짧은 시간에 많이 보내고, 각 요청의 결과를 순서대로 매칭할 수 있다면 pipeline mode를 검토할 만합니다. 반대로 앞 쿼리 결과로 다음 쿼리를 만들어야 하거나, COPY처럼 pipeline mode에서 허용되지 않는 작업이 핵심이라면 다른 방식을 먼저 봐야 합니다.pipel..

Python TaskGroup 기준

Python asyncio.TaskGroup은 여러 비동기 작업을 하나의 구조 안에서 만들고, 그 구조를 빠져나갈 때 모든 작업이 끝났는지 확인하는 API입니다. 단순히 여러 coroutine 결과를 모으는 도구라기보다, 관련된 작업 묶음을 하나의 실패 단위로 다루기 위한 기능에 가깝습니다.실무 기준은 명확합니다. 여러 작업 중 하나가 실패하면 나머지도 더 진행할 필요가 없는 경우에는 TaskGroup이 잘 맞습니다. 반대로 각 작업이 서로 독립적이고 일부 실패 후에도 나머지 결과를 계속 받고 싶다면 asyncio.gather()의 동작을 먼저 확인하는 편이 낫습니다.TaskGroup은 무엇을 보장하나Python 공식 문서 기준으로 TaskGroup은 비동기 context manager입니다. async..

Git shallow clone 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Git shallow clone은 저장소 이력을 전부 받지 않고, 지정한 깊이나 기준 이후의 커밋만 받아 clone하는 방식입니다. CI처럼 최신 소스만 빠르게 받아 빌드하면 되는 작업에서는 네트워크 전송량과 저장 공간을 줄일 수 있습니다. 반대로 이력 분석, 태그 기반 버전 계산, 오래된 커밋으로의 이동이 필요한 작업에서는 제한이 바로 드러납니다.기준은 단순합니다. 단기 빌드와 테스트처럼 최신 커밋 근처만 쓰는 환경이면 --depth를 검토할 수 있습니다. 하지만 릴리스 태그, changelog, blame, bisect, merge-base, 오래된 브랜치 비교가 필요하면 처음부터 전체 이력을 받거나, 필요한 시점에 ..

Python eager task factory 기준

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.Python asyncio.eager_task_factory는 task를 만들 때 coroutine을 이벤트 루프에 나중에 맡기지 않고 즉시 실행해 보는 task factory입니다. coroutine이 바로 끝나면 이벤트 루프에 예약되지 않고 완료될 수 있고, 실행 중 await로 막히면 그때 이벤트 루프에 예약됩니다.선택 기준은 단순합니다. 캐시 조회처럼 실제 I/O 없이 바로 끝나는 coroutine이 많고, task 실행 순서 변화가 문제가 되지 않는 코드에서만 검토할 만합니다. 반대로 task 생성 뒤 실행이 “나중에” 시작된다는 전제를 둔 코드라면 기본 동작을 유지하는 편이 안전합니다.eager task fac..

PostgreSQL AIO 기준

PostgreSQL AIO는 PostgreSQL 18에서 추가된 asynchronous I/O 하위 시스템입니다. 목적은 디스크 읽기를 하나씩 기다리는 대신 여러 I/O 요청을 동시에 진행할 수 있게 해서, 순차 스캔, bitmap heap scan, vacuum 같은 작업의 읽기 대기 시간을 줄이는 것입니다.기준은 단순합니다. PostgreSQL 18 이상에서 큰 테이블을 읽는 쿼리나 vacuum 작업이 I/O 대기 때문에 느려진다면 AIO 관련 설정을 볼 만합니다. 반대로 CPU 계산, 잠금 대기, 잘못된 인덱스 선택, 네트워크 지연이 병목이라면 io_method를 바꿔도 핵심 문제가 해결되지 않을 수 있습니다.PostgreSQL AIO가 해결하려는 문제전통적인 동기 I/O 흐름에서는 한 읽기 요청을..

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